Custom keyboard shortcuts make power users faster, but a poorly chosen one can fire by accident for speech-input users or collide with a screen reader’s own commands. WCAG 2.1.4 specifically targets single-character shortcuts, and assistive technologies reserve many keys you might want to use. This checker compares your shortcut list against both.
How it works
You enter your shortcuts one per line in a natural form like / search, Ctrl+K command palette, or j next item. The tool parses each line into a normalised key combination — separating modifiers (Ctrl, Alt, Shift, Cmd/Meta) from the main key and canonicalising order and casing. It then runs two checks:
- WCAG 2.1.4 single-key rule. If a shortcut is a single character key (a letter, digit, or punctuation symbol) with no modifier, it is flagged. To comply you must let the user disable it, remap it to add a modifier, or make it active only on focus.
- Reserved-command conflicts. The normalised combination is matched against a bundled list of reserved shortcuts for JAWS, NVDA, VoiceOver, and the Chrome, Firefox, and Safari browsers. An exact match is reported with the conflicting tool, because overriding it either fails for the user or hijacks an expected command.
Each result is shown as pass, a single-key warning, or a reserved-conflict error, with a concrete suggestion.
Example
The shortcut r reply is a single letter with no modifier. The tool flags it under WCAG 2.1.4 and notes that NVDA and JAWS use bare letters for navigation, so a screen reader user pressing r may trigger your reply action unexpectedly. The suggestion is to require Ctrl+R-style modification (avoiding the reload binding) or to gate the shortcut to when a message has focus.
Tips and notes
- Prefer modifier combinations for global shortcuts and reserve bare single keys for when a specific component already has focus.
- Always offer a settings panel to remap or disable shortcuts — it satisfies the criterion outright and helps every user.
- Avoid the well-known reserved combinations (
Ctrl+W,Ctrl+T,Ctrl+N,F6, screen reader pass-through keys) even with a modifier. - The reference list is bundled and the check is local; nothing you enter is uploaded.