
Accessibility-first looks different from accessibility-compliant
Passing an axe-core audit is not the same thing as designing for accessibility. The outputs can look identical. The process that produced them is not. Most component libraries retrofit accessibility. The ARIA roles get added, the keyboard navigation gets wired, the contrast ratios get verified. It passes. But the architecture was not designed around the constraint. It was designed first, then adjusted to meet it. nuka-ui was built with WCAG 2.2 AA as a hard requirement from the first commit. Not a goal. A constraint. That distinction is in the README. This article is what that sentence means in practice: nine decisions from the codebase where accessibility as a non-negotiable constraint produced an outcome that a retrofit would not. 1. The hidden attribute instead of conditional rendering The default React pattern for a dropdown is {open && <SelectContent />} . It is clean, idiomatic, and wrong for an accessible combobox. The SelectTrigger has aria-controls pointing to the listbox ID.
Continue reading on Dev.to
Opens in a new tab