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
01 / 05

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.

02 / 05

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
03 / 05

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
04 / 05

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.

05 / 05

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

JavaScript
document.addEventListener('keydown', e => { if (e.key === 'j') next(); });

The fix

JavaScript
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.

Find every accessibility issue on your site in 60 seconds.

Free public scan. No card. AI-generated fixes for every issue we find.