- Success Criterion 2.1.1
- Conformance level A
Hover-Only Controls Never Shown to Keyboard Users
2.1.1 — Keyboard
Scenario
Setting
A language-learning app's lesson screen
What’s wrong
Controls revealed only on mouse hover (zoom buttons, quick-action overlays on product cards) are never shown on keyboard focus — keyboard users don't even know the feature exists.
Example
.flashcard-image:hover .zoom-icon { opacity: 1; }
.zoom-icon { opacity: 0; }
<!-- the icon is only ever visible on mouse hover; nothing changes on keyboard focus --> Why it matters
A learner tabbing through flashcards never sees the zoom icon appear, so they don't know a larger view of the image is even available.
How to test
Tab to a product card or similar element: if extra controls (zoom, quick actions) only appear on mouse hover with no keyboard-focus equivalent, keyboard users never know they exist.
How to fix
Any control revealed on hover must also reveal on focus, using :focus-within or a matching JS focus/blur listener, so keyboard users can find it.
.flashcard-image:hover .zoom-icon,
.flashcard-image:focus-within .zoom-icon { opacity: 1; } Outcome
A learner tabs onto a flashcard, sees the zoom icon appear, and opens the larger image.
Who is affected
Keyboard-only users and low-vision keyboard users never discover controls that reveal themselves only to a mouse pointer.
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
- Clickable Div With No Keyboard Focus or Key Handling at All
- Focusable Element That Enter and Space Don’t Actually Activate
- Custom Dropdown That Can’t Be Operated by Keyboard Arrows