- Success Criterion 2.1.1
- Conformance level A
Feature Usable Only by Right-Click, With No Keyboard Route
2.1.1 — Keyboard
Scenario
Setting
A used-car marketplace's listing filter
What’s wrong
Right-click/context-menu-only actions with no keyboard route.
Example
listingCard.addEventListener('contextmenu', (e) => {
e.preventDefault();
showCompareMenu(e.clientX, e.clientY);
});
// left-click just opens the listing; there is no other way to reach "Add to compare". Why it matters
A shopper using only a keyboard can open a listing but can never add it to their comparison list, since that action exists only behind a right-click.
How to test
Tab to an item with right-click-only actions and try Shift+F10 (context menu key): if there's no keyboard route to those actions at all, it fails.
How to fix
Treat a context menu as a shortcut, never the only path, and expose every action it offers through a normal focusable control.
<button class="compare-btn" onclick="addToCompare(listingId)">Add to compare</button>
<!-- keep the right-click shortcut for mouse users, but always show a visible button too --> Outcome
A shopper tabs to the new "Add to compare" button and presses Enter to build their list.
Who is affected
Keyboard-only users and switch-access users have no route at all to a feature that lives only in a context menu.
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