- Success Criterion 2.1.1
- Conformance level A
Clickable Div With No Keyboard Focus or Key Handling at All
2.1.1 — Keyboard
Scenario
Setting
A telehealth app's video-visit waiting room
What’s wrong
Clickable div/span/icon with click handler, no tabindex="0" (code making it keyboard-focusable), no key handling.
Example
<span class="join-call-icon" onclick="joinVisit()">
<svg>...</svg>
</span> Why it matters
A patient tabbing through the waiting room never lands on the join button, so they miss their appointment despite waiting on time.
How to test
Tab to a clickable div/span: if it has no tabindex="0" and no keydown handler, keyboard focus skips over it entirely.
How to fix
Swap the span for a real button; it gets focusability and Enter/Space activation automatically, no extra code needed.
<button class="join-call-icon" onclick="joinVisit()">
<svg aria-hidden="true">...</svg>
</button> Outcome
A patient tabs to the join icon, presses Enter, and gets into their video visit on time.
Who is affected
Keyboard-only users and switch-access users have no way to reach or trigger the join control at all.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Feature That Only Responds to Mouse Events, Not the Keyboard
- Element That Loses Focus the Instant It’s Reached by Keyboard
- Clickable Element Acting Like a Link With No Real Keyboard Role
- Focusable Element That Enter and Space Don’t Actually Activate
- Custom Dropdown That Can’t Be Operated by Keyboard Arrows
- Drag-and-Drop Feature With No Keyboard Alternative