Conformance
Every component is checked against shared, implementation-agnostic behavioural contracts — on both the React and vanilla reference implementations, across Chromium, Firefox, and WebKit. Each component declares which contracts apply; the same assertion then runs for every component that declares it.
- Axe
- No WCAG 2 A/AA axe-core violations
- Name
- The widget container exposes an accessible name
- Roving
- Exactly one tab stop; Arrow keys move within the widget
- Focus
- A visible focus indicator appears on keyboard focus (WCAG 2.4.7)
- Escape
- Escape dismisses the open overlay
- Drag
- Pointer-drag surfaces don't select text or hijack touch scrolling
Inputs & controls
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Switch | ✓ | · | · | ✓ | · | · |
| Radio Group | ✓ | ✓ | ✓ | ✓ | · | · |
| Toggle Group | ✓ | · | · | · | · | · |
| Slider | ✓ | · | · | ✓ | · | ✓ |
| Range Slider | ✓ | · | · | · | · | · |
| Stepper | ✓ | · | · | ✓ | · | · |
| Hold Stepper | ✓ | · | · | · | · | · |
| Scrubber | ✓ | · | · | · | · | ✓ |
| Rating | ✓ | · | · | ✓ | · | · |
Text fields
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Password Field | ✓ | · | · | ✓ | · | · |
| Masked Input | ✓ | · | · | ✓ | · | · |
| Time Field | ✓ | · | · | ✓ | · | · |
| OTP Input | ✓ | · | · | ✓ | · | · |
| Char Counter | ✓ | · | · | ✓ | · | · |
| Inline Edit | ✓ | · | · | · | · | · |
| Submit Field | ✓ | · | · | ✓ | · | · |
| Mention Input | ✓ | · | · | ✓ | · | · |
| Tags Input | ✓ | · | · | ✓ | · | · |
Selection & autocomplete
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Listbox | ✓ | ✓ | ✓ | ✓ | · | · |
| Combobox | ✓ | · | · | ✓ | ✓ | · |
| Multi Combobox | ✓ | · | · | · | · | · |
| Typeahead Listbox | ✓ | · | · | ✓ | · | · |
| Async Combobox | ✓ | · | · | ✓ | · | · |
| Debounced Search | ✓ | · | · | ✓ | · | · |
| Hotkey Search | ✓ | · | · | ✓ | · | · |
| Tag Filter | ✓ | · | · | ✓ | · | · |
| Transfer List | ✓ | · | · | ✓ | · | · |
Pickers
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Color Area | ✓ | · | · | ✓ | · | ✓ |
| Color Picker | ✓ | · | · | ✓ | · | ✓ |
| Swatch Picker | ✓ | · | ✓ | · | · | · |
| Date Picker | ✓ | · | · | ✓ | · | · |
| Date Range Picker | ✓ | · | · | ✓ | · | · |
| Range Calendar | ✓ | · | · | ✓ | · | · |
| Slot Picker | ✓ | · | · | ✓ | · | ✓ |
| Dropzone | ✓ | · | · | ✓ | · | · |
Validation & async fields
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Validated Field | ✓ | · | · | ✓ | · | · |
| Async Validation | ✓ | · | · | ✓ | · | · |
| Error Summary | ✓ | · | · | · | · | · |
Buttons
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Split Button | ✓ | · | · | ✓ | · | · |
| Copy Button | ✓ | · | · | ✓ | · | · |
| Confirm Button | ✓ | · | · | ✓ | · | · |
| Hold Button | ✓ | · | · | ✓ | · | · |
| Busy Button | ✓ | · | · | ✓ | · | · |
Menus & toolbars
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Dropdown Menu | ✓ | · | · | ✓ | ✓ | · |
| Nested Menu | ✓ | · | · | ✓ | · | · |
| Context Menu | ✓ | · | · | ✓ | · | · |
| Menubar | ✓ | ✓ | ✓ | ✓ | · | · |
| Option Menu | ✓ | · | · | ✓ | · | · |
| Command Palette | ✓ | · | · | · | ✓ | · |
| Toolbar | ✓ | ✓ | ✓ | ✓ | · | · |
| Overflow Toolbar | ✓ | · | ✓ | ✓ | · | · |
Navigation
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Tabs | ✓ | · | ✓ | ✓ | · | · |
| Manual Tabs | ✓ | · | ✓ | ✓ | · | · |
| Closeable Tabs | ✓ | · | ✓ | ✓ | · | · |
| Breadcrumb | ✓ | · | · | ✓ | · | · |
| Overflow Breadcrumb | ✓ | · | · | · | · | · |
| Disclosure Nav | ✓ | · | · | ✓ | · | · |
| Scrollspy | ✓ | · | · | ✓ | · | · |
| Pagination | ✓ | · | · | ✓ | · | · |
| Steps | ✓ | · | · | ✓ | · | · |
| Carousel | ✓ | · | · | ✓ | · | · |
Trees
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Tree | ✓ | ✓ | ✓ | · | · | · |
| Tree Multiselect | ✓ | ✓ | ✓ | · | · | · |
| Tree Reorder | ✓ | ✓ | ✓ | · | · | · |
| Check Tree | ✓ | ✓ | ✓ | · | · | · |
| Tree Grid | ✓ | ✓ | ✓ | · | · | · |
Tables & grids
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Data Grid | ✓ | ✓ | ✓ | ✓ | · | · |
| Range Grid | ✓ | ✓ | ✓ | · | · | · |
| Editable Grid | ✓ | ✓ | ✓ | · | · | · |
| Spreadsheet | ✓ | ✓ | ✓ | · | · | · |
| Virtual Grid | ✓ | ✓ | ✓ | · | · | · |
| Sortable Table | ✓ | · | · | · | · | · |
| Select Table | ✓ | · | · | · | · | · |
| Resizable Table | ✓ | · | · | · | · | ✓ |
| Frozen Table | ✓ | · | · | · | · | · |
| Reorder Columns | ✓ | · | · | · | · | · |
Lists & collections
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| File List | ✓ | ✓ | ✓ | · | · | · |
| Virtual List | ✓ | ✓ | ✓ | · | · | · |
| Sortable | ✓ | · | · | · | · | ✓ |
| Reorder List | ✓ | · | · | · | · | · |
| Kanban | ✓ | · | · | · | · | ✓ |
| Feed | ✓ | · | · | · | · | · |
| Show More List | ✓ | · | · | · | · | · |
| Load More | ✓ | · | · | · | · | · |
| Lazy List | ✓ | · | · | · | · | · |
Editing & canvas
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Text Editor | ✓ | · | · | · | · | · |
| Rich Text | ✓ | · | · | · | · | · |
| Selection Info | ✓ | · | · | · | · | · |
| Canvas Shape | ✓ | · | · | · | · | ✓ |
| Marquee Canvas | ✓ | · | · | · | · | ✓ |
| Group Move | ✓ | · | · | · | · | ✓ |
| Snap Canvas | ✓ | · | · | · | · | ✓ |
| Rotate Canvas | ✓ | · | · | · | · | · |
| Gantt | ✓ | · | · | · | · | ✓ |
| Crop Frame | ✓ | · | · | · | · | ✓ |
| Zoomable Viewport | ✓ | · | · | · | · | · |
| Pan View | ✓ | · | · | · | · | ✓ |
| Coordinate Canvas | ✓ | · | · | · | · | · |
Overlays
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Dialog | ✓ | · | · | · | · | · |
| Alert Dialog | ✓ | · | · | · | · | · |
| Popover | ✓ | · | · | · | · | · |
| Tooltip | ✓ | · | · | · | · | · |
| Toggle Tip | ✓ | · | · | · | · | · |
| Tour | ✓ | · | · | · | · | · |
Layout & disclosure
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Disclosure | ✓ | · | · | · | · | · |
| Accordion | ✓ | · | · | · | · | · |
| Reveal | ✓ | · | · | · | · | · |
| Scroll Area | ✓ | · | · | · | · | · |
| Splitter | ✓ | · | · | · | · | ✓ |
| Split View | ✓ | · | · | · | · | ✓ |
Feedback & status
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Async Content | ✓ | · | · | · | · | · |
| Live Loader | ✓ | · | · | · | · | · |
| Retry Loader | ✓ | · | · | · | · | · |
| Toast | ✓ | · | · | · | · | · |
| Toast Stack | ✓ | · | · | · | · | · |
| Banner | ✓ | · | · | · | · | · |
| Activity Log | ✓ | · | · | · | · | · |
| Progress | ✓ | · | · | · | · | · |
| Meter | ✓ | · | · | · | · | · |
Accessibility foundations
| Component | Axe | Name | Roving | Focus | Escape | Drag |
|---|---|---|---|---|---|---|
| Skip Link | ✓ | · | · | · | · | · |
| Focus Ring | ✓ | · | · | · | · | · |
| Icon Bar | ✓ | · | · | · | · | · |
| Reflow Bar | ✓ | · | · | · | · | · |