Rule
Every app-level keyboard shortcut must be catalogued, conflict-checked, and discoverable.
Why
Undiscoverable shortcuts go unused. Conflicting shortcuts cause silent errors or browser interception.
Must
- Maintain a single source-of-truth shortcut registry.
- Check for conflicts before registering any shortcut.
- Show a keyboard shortcut reference panel triggered by ? or Ctrl+/.
- Never override default browser shortcuts (Ctrl+R, Ctrl+W, etc.).
- Disable shortcuts while focus is inside text inputs, textareas, or editors.
Should
- Group shortcuts by context in the reference panel.
- Support user-defined overrides stored per-account.
Anti-patterns
- Shortcuts that silently fail because input focus is not guarded.
- No way for users to discover what shortcuts exist.
Test Cases
- ? opens shortcut reference on all major surfaces.
- Shortcuts do not fire while user is typing in a form field.
Telemetry
- shortcut_invoked
- shortcut_reference_opened
- shortcut_conflict_detected