Accessibility

Verification matrix

Each component implements its WAI-ARIA APG pattern and the related WCAG 2.2 AA criteria. The status below separates each verification layer. Automated checks run in CI, with coverage that differs by component. Keyboard is marked verified only when all required keys from the key tables and explicit contracts have been verified in a real browser. Unverified components remain pending. Real-SR (VoiceOver / NVDA) is signed off per component by hand. SR speech order uses a virtual screen reader and includes cursor navigation through static text; it does not verify automatic announcements of updates.

verified / signed off in progress / sign-off pending not applicable
Verification matrix
Component APG pattern axe-core Keyboard SR speech order Real SR
Dialog Dialog (Modal) ✅ ✅ ✅ ✅
Alert Dialog Alert & Message Dialog ✅ ✅ ✅ ✅
Confirm Bridge Alert & Message Dialog ✅ ✅ ✅ ⏳
Drawer Dialog (Modal) ✅ ✅ ✅ ⏳
Command Palette Dialog (Modal), Combobox ✅ ✅ ✅ ⏳
Dropdown Disclosure ✅ ✅ ✅ ✅
Popover — ✅ ✅ ✅ ⏳
Tooltip Tooltip ✅ ✅ ✅ ✅
Hover Card — ✅ ✅ ✅ ⏳
Menu Button Menu Button ✅ ✅ ✅ ⏳
Context Menu Menu ✅ ✅ ✅ ⏳
Menubar Menubar ✅ ✅ ✅ ✅
Navigation Menu Disclosure ✅ ✅ ✅ ⏳
Overflow Menu Menu Button ✅ ✅ ✅ ⏳
Toolbar Toolbar ✅ ✅ ✅ ⏳
Collapsible Disclosure ✅ ✅ ✅ ✅
Accordion Accordion ✅ ✅ ✅ ✅
Read More Disclosure ✅ ✅ ✅ ✅
Tabs Tabs ✅ ✅ ✅ ✅
Breadcrumb Breadcrumb ✅ ✅ ✅ ⏳
Pagination — ✅ ✅ ✅ ✅
Scrollspy — ✅ — ✅ ✅
Tree View Tree View ✅ ✅ ✅ ✅
Stepper — ✅ ✅ ✅ ✅
Step Indicator — ✅ — ✅ ⏳
Checkbox Checkbox ✅ ✅ ✅ ⏳
Radio Group Radio Group ✅ ✅ ✅ ✅
Switch Switch ✅ ✅ ✅ ✅
Toggle Group Toolbar ✅ ✅ ✅ ✅
Rating Radio Group ✅ ✅ ✅ ✅
Listbox Listbox ✅ ✅ ✅ ⏳
Combobox Combobox ✅ ✅ ✅ ✅
Multi Select Combobox ✅ ✅ ✅ ⏳
OTP Input — ✅ ✅ ✅ ✅
Input Mask — ✅ ✅ ✅ ⏳
Number Input Spinbutton ✅ ✅ ✅ ⏳
Currency Input — ✅ — ✅ ✅
Color Picker — ✅ ✅ ✅ ✅
Slider Slider ✅ ✅ ✅ ⏳
Range Slider Slider (Multi-Thumb) ✅ ✅ ✅ ⏳
Textarea Autosize — ✅ — — —
Tags Input — ✅ ✅ ✅ ✅
Calendar Date Picker Dialog ✅ ✅ ✅ ✅
Date Range Picker Date Picker Dialog ✅ ✅ ✅ ✅
Time Picker Spinbutton ✅ ✅ ✅ ⏳
Relative Time — ✅ — ✅ ⏳
Local Time — ✅ — ✅ ⏳
Timer / Countdown — ✅ — ✅ ⏳
Count Up — ✅ — ✅ ⏳
Form Field — ✅ — ✅ ✅
Form Validation — ✅ — ✅ ✅
Character Counter — ✅ — ✅ ⏳
Password Reveal — ✅ ✅ ✅ ✅
Password Strength Meter Meter ✅ — ✅ ⏳
Editable — ✅ ✅ ✅ ⏳
Conditional Fields — ✅ — — —
Nested Form — ✅ ✅ ✅ ⏳
File Dropzone — ✅ ✅ ✅ ⏳
Direct Upload Progress — ✅ — ✅ ⏳
Auto Submit Form — ✅ — ✅ ⏳
Submit Once — ✅ ✅ ✅ ⏳
Unsaved Changes Guard — — — — —
Persist — ✅ — — —
Optimistic — ✅ — ✅ ⏳
Aspect Ratio — — — — —
Separator — ✅ ✅ ✅ ⏳
Avatar — ✅ — ✅ ⏳
Resizable Window Splitter ✅ ✅ ✅ ⏳
Masonry — — — — —
Sidebar Dialog (Modal) ✅ ✅ ✅ ⏳
Scroll Area — ✅ ✅ ✅ ⏳
Carousel Carousel ✅ ✅ ✅ ✅
Data Grid Grid ✅ ✅ ✅ ✅
Bulk Select — ✅ — ✅ ⏳
Filter — — — — —
Sortable — ✅ ✅ ✅ ⏳
Overflow Indicator — ✅ ✅ ✅ ⏳
Scroll Visibility — ✅ ✅ ✅ ⏳
Sticky State Observer — — — — —
Stick to Bottom — — — — —
Scroll Restore — — — — —
Reading Progress — — — — —
Smart Sticky Header — — — — —
Spinner — ✅ — ✅ ⏳
Skeleton Manager — ✅ — ✅ ⏳
Progress — ✅ — ✅ ⏳
Meter Meter ✅ — ✅ ⏳
Frame Loading State — ✅ — ✅ ⏳
Empty State Observer — ✅ — ✅ ⏳
Announcer — ✅ — ✅ ⏳
Toast — ✅ ✅ ✅ ⏳
Flash Bridge — ✅ ✅ ✅ ⏳
Network Status — ✅ — ✅ ⏳
Dismissible — ✅ ✅ ✅ ⏳
Clipboard — ✅ ✅ ✅ ⏳
Theme Toggle — ✅ ✅ ✅ ✅
Highlight on Insert — — — — —
Idle Detector — ✅ — ✅ ⏳
Lazy Frame — — — — —
Preview Guard — ✅ — ✅ ⏳
Reset on Restore — ✅ — — —
Anchored Positioning — — — — —
Roving Tabindex — ✅ ✅ — —
Pointer Drag — ✅ ✅ — —
Intersection — — — — —
Focus Scope — ✅ ✅ — —
Portal — — — — —
Transition — — — — —
Typing Indicator — ✅ — ✅ ⏳
Presence — ✅ — ✅ ⏳
Live Counter — ✅ — ✅ ⏳

Accessibility is the product's core value. Each column describes its own verification scope. Keyboard "not applicable" follows the existing classification of component-specific key contracts; it does not exempt a component from focus verification. Real-SR (VoiceOver / NVDA) is the top-level sign-off: the golden set is regression-locked automatically while the rest are signed off per component by hand. The real-SR column is marked verified once the component is signed off on both engines (VoiceOver and NVDA); unsigned components with readable output remain in progress.