WCAG 2.1 · Level A · Operable
WCAG 2.1.4 — Character Key Shortcuts, explained with examples
Single-character keyboard shortcuts must be turn-offable, remappable, or only active when the relevant control has focus. Voice control users speak the alphabet. A site with single-key shortcuts triggers commands every time the user dictates.
- Number
- 2.1.4
- Level
- A
- Principle
- Operable
- Guideline
- 2.1 Keyboard Accessible
Why this criterion exists
Voice control users speak the alphabet. A site with single-key shortcuts triggers commands every time the user dictates.
If you only remember one thing: single-character keyboard shortcuts must be turn-offable, remappable, or only active when the relevant control has focus. Everything else on this page is detail.
Who feels it when this fails
Accessibility criteria sometimes feel abstract until you see who pays the cost when a site ignores them. Character Key Shortcuts affects:
Voice control users
Users who type with assistive devices
How sites typically fail it
These are the patterns we see week after week. None are intentional — they are accidents of how teams build interfaces under deadline. Knowing the failure modes is the fastest path to writing them out of your component library.
Pressing "j" navigates to the next item without a modifier or focus requirement
How to test for it
Try every single-key shortcut; either require a modifier or scope to focused element.
Automated scanners catch this criterion most of the time, but never all of the time. Manual testing with the keyboard and a screen reader closes the gap.
A code fix you can copy
Require a modifier, or check that the target element has focus, before acting on single-key shortcuts.
The problem
document.addEventListener('keydown', e => { if (e.key === 'j') next(); });The fix
document.addEventListener('keydown', e => {
if (e.key === 'j' && (e.metaKey || e.ctrlKey)) next();
});Require a modifier, or check that the target element has focus, before acting on single-key shortcuts.
Frequently asked questions
What does "remappable" mean in 2.1.4 terms?
The user must be able to reassign a single-character shortcut to a different key, or to turn off the shortcut entirely. Providing a settings panel with "Keyboard shortcuts" configuration where users can change bindings satisfies this. Single-key shortcuts that are only active when a specific component has focus — like arrow keys in a carousel — do not need to be remappable because they are already scoped.
Do Gmail-style keyboard shortcuts violate 2.1.4?
Gmail's keyboard shortcuts (j, k, c, etc.) require opt-in by the user. When disabled by default, they do not violate 2.1.4 because the single-character behavior is off until explicitly turned on. When enabled, the user has been warned and consented. This is a valid approach: gate single-character shortcuts behind a toggle, with a way to disable them.
Other Operable criteria
Find every accessibility issue on your site in 60 seconds.
Free public scan. No card. AI-generated fixes for every issue we find.