--- name: tabs-accessibility description: "Use when reviewing templates, rendered HTML, or shared components related to Make tabs keyboard navigable. Validate the final browser-facing markup, not just the source framework abstraction." metadata: category: html priority: medium difficulty: intermediate estimatedTime: "25" source: frontendchecklist.io url: https://frontendchecklist.io/en/rules/html/tabs-accessibility --- # Make tabs keyboard navigable Incorrectly implemented tabs trap keyboard users or leave screen reader users unable to understand the relationship between tabs and their content. ## Quick Reference - Use tablist, tab, and tabpanel roles - Only one tab in the tab order at a time (roving tabindex) - Arrow keys navigate between tabs, Tab moves to panel - Connect tabs to panels with aria-controls/aria-labelledby ## Check Verify tabs use tablist/tab/tabpanel roles, aria-selected state, and arrow key navigation between tabs. ## Fix Implement tabs with role='tablist', role='tab', role='tabpanel', aria-selected, and proper keyboard interaction patterns. ## Explain Explain the ARIA tabs design pattern and how proper implementation ensures keyboard and screen reader accessibility. ## Code Review Review templates, server-rendered HTML, and shared components that output markup related to Make tabs keyboard navigable. Flag exact elements, attributes, and routes where the rendered HTML violates the rule. --- For full implementation details, code examples, and framework-specific guidance, see `references/rule.md`. Rule page: https://frontendchecklist.io/en/rules/html/tabs-accessibility