Accessibility
Build keyboard-friendly interfaces with meaningful labels and predictable focus.
Start with native elements
Use buttons for actions, anchors for navigation, associated labels for inputs, and table headers for tabular data. Focus UI classes provide styling; they do not add missing semantics. Give icon-only controls an accessible name and hide decorative icons with aria-hidden="true".
Keyboard and focus
Check every workflow using Tab, Shift+Tab, Enter, Space and Escape. Opening a dialog should move focus inside; closing should restore the trigger. Use role="dialog", aria-modal="true" and a labelled title on existing modal markup. Development modal helpers add dialog/title/input labels, trap focus in the foremost dialog, make background content inert, and restore focus when a layer closes. Dropdown Escape dismisses that popup before the dialog. Existing modals without a header title still need an application-provided accessible name. Application-created controls still need testing.
Forms and feedback
Show errors as text next to the field, associate them with aria-describedby, and set aria-invalid when validation fails. Do not communicate state using color alone. Choose persistent inline errors for problems requiring action; transient toasts should supplement them.
Visual checks
Test light and dark themes, increased text size, a 375px viewport and reduced motion. Verify actual foreground/background contrast in your application, especially after overriding tokens. Reference tables should scroll within their own region without widening the page.
Verification scope
The repository has browser tests for selected keyboard and ARIA behavior. These are regression checks, not a WCAG certification or a replacement for assistive-technology testing with real users.
Keyboard patterns
Development tabs use Left/Right (Up/Down in vertical lists), Home and End with automatic activation. Supply a label for each tab list. Dropdown content keeps native button/link semantics. Compare application behavior with the W3C tabs pattern and modal dialog pattern; the published CDN release predates these development enhancements.