Skip to content

[Challenge]: Inaccessible Custom Tabs #42

Description

@d-koppenhagen

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

  • I searched existing issues and didn't find a similar proposal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    challengeNew accessibility challengeenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions