Working title
Tab Out of Control
Accessibility problem
A tab widget built entirely from <div> elements and CSS. No ARIA roles (tablist, tab, tabpanel), no keyboard navigation (Arrow keys), no aria-selected state. Screen readers see only generic text and divs — not a tab interface. Keyboard users must Tab through all tab elements rather than using Arrow keys between them. The active panel relationship is purely visual.
Learning objective
- Learn the complete ARIA tab pattern:
role="tablist", role="tab", role="tabpanel"
- Implement correct keyboard interaction (Arrow keys between tabs, Tab into panel)
- Use
aria-selected, aria-controls, and aria-labelledby to communicate state and relationships
- Understand the roving tabindex pattern (
tabindex="0" on active tab, tabindex="-1" on others)
Difficulty
advanced
Related WCAG success criterion
4.1.2 Name, Role, Value (Level A), 2.1.1 Keyboard (Level A)
References
Learning objective
Before submitting
Working title
Tab Out of Control
Accessibility problem
A tab widget built entirely from
<div>elements and CSS. No ARIA roles (tablist,tab,tabpanel), no keyboard navigation (Arrow keys), noaria-selectedstate. Screen readers see only generic text and divs — not a tab interface. Keyboard users must Tab through all tab elements rather than using Arrow keys between them. The active panel relationship is purely visual.Learning objective
role="tablist",role="tab",role="tabpanel"aria-selected,aria-controls, andaria-labelledbyto communicate state and relationshipstabindex="0"on active tab,tabindex="-1"on others)Difficulty
advanced
Related WCAG success criterion
4.1.2 Name, Role, Value (Level A), 2.1.1 Keyboard (Level A)
References
Learning objective
Before submitting