A single interactive component can carry an enormous accessibility
surface. A modal alone needs focus trapping, scroll locking,
escape-key handling, focus restoration, and
aria-modal
management. Rudiment doesn't rebuild that for every component. It
leans on React Aria, maintained by Adobe's design system team, to
carry the behavior layer.
React Aria owns keyboard navigation, focus management, ARIA
semantics, pointer normalization, and i18n. Tailwind CSS 4 handles
the visuals. The two layers stay cleanly separated — which is what
lets the library re-skin without touching any behavior.
Tests then lock in that separation. Layout primitives are verified
against the tokens and classes they emit. UI components are
verified against their
accessibility contract: keyboard activation, disabled and
error states, focus behavior, loading-state ARIA, and zero
axe-core violations. Tests query by role and text, never by class
name, so refactors don't silently break coverage.