Compile-time prevention
If a usage cannot be accessible, it must be a TypeScript error. <Image /> with no alt does not compile. An Accordion.Trigger with an empty label does not compile.
accessibility-first react components
Components that refuse to render inaccessibly. Copied into your repo, not installed from npm.
WebAIM Million 2026 found WCAG violations on 95.9% of the top one million homepages.
The same six categories show up every year: missing alt text, unlabelled inputs, empty buttons, low contrast. A library can prevent them.
Every artui component promises one or both of:
If a usage cannot be accessible, it must be a TypeScript error. <Image /> with no alt does not compile. An Accordion.Trigger with an empty label does not compile.
Whatever the type system cannot express surfaces as a red development overlay and a console.error. Both layers are no-ops in production. Shipping is silent. Development is noisy on purpose.
artui has no runtime package. The CLI copies component source into your repo.
The dev overlay says exactly what triggered it. You can read, modify, and own every file.
When the registry changes, you opt in by running artui add again. Your existing copy keeps working.
You import what is in your repo, full stop. No barrel files, no surprise transitive bundles.