WCAG 2.1 AA — release blocker
Keyboard
| Key | Action |
|---|---|
Enter / Space | Toggle the focused trigger's content panel. |
Tab | Move focus to the next focusable element (next trigger or content). |
Shift + Tab | Move focus to the previous focusable element. |
Screen reader
AccordionTriggerrenders a<button>witharia-expandedreflecting the open state.AccordionContentrendersrole="region"witharia-labelledbypointing to its trigger.- Collapsed content is
hidden— not in the accessibility tree until expanded.
Focus management
- Each trigger is independently focusable via
Tab— no arrow-key roving. - Expanding a section does not move focus. The user decides when to
Tabinto the content. - Disabled triggers remain in tab order but do not activate.
React Native
AccordionTriggerusesaccessibilityRole="button"withaccessibilityState={{ expanded }}.- Disabled items set
disabledon the triggerPressable.
Audit checklist
-
aria-expandedreflects open/closed state on every trigger -
role="region"on expanded content - Enter / Space toggles the section
- Collapsed content hidden from assistive tech
- 4.5:1 contrast on trigger text in light and dark
- Focus ring visible on all triggers