Accessibility
WCAG 2.2 AA compliance built into every interactive component.
Compliance Target
Every interactive component in NexusStratum targets WCAG 2.2 AA. This means:
- 2.1.1 Keyboard — all functionality available via keyboard
- 2.1.2 No Keyboard Trap — focus can always escape (except intentional traps in dialogs)
- 2.4.3 Focus Order — logical and intuitive
- 2.4.7 Focus Visible — always visible for keyboard users
- 4.1.2 Name, Role, Value — correct ARIA attributes on every component
ARIA Implementation
The AriaAttributes struct in stratum-core provides 40+ ARIA fields. Every primitive automatically emits the correct ARIA attributes in its RenderOutput. Framework adapters apply these to DOM elements.
Keyboard Navigation
All keyboard patterns follow the ARIA Authoring Practices Guide (APG):
| Pattern | Keys |
|---|---|
| Button | Enter, Space |
| Checkbox | Space |
| Radio group | Arrow keys, Space |
| Menu | Arrow, Enter/Space, Escape, Type-ahead |
| Dialog | Escape, Tab/Shift+Tab cycle |
| Tabs | Arrow keys, Home/End |
| Accordion | Enter/Space, Arrow, Home/End |
| Slider | Arrow, Page Up/Down, Home/End |
Focus Management
FocusManager provides four strategies:
- Auto — browser default
- Trap — focus stays within component (dialogs)
- Restore — focus returns to trigger on close (popovers)
- TrapAndRestore — both (modals)
Reduced Motion
stratum-motion provides a reduced_motion_css field on every AnimationStyle with 0ms duration. Framework adapters apply this when prefers-reduced-motion: reduce is detected.