Keyboard shortcuts dialog (?) lists 7 shortcuts and omits Ctrl+K, ↑ to edit, all composer formatting keys and your push-to-talk/deafen keys #334

Closed
opened 2026-10-05 23:36:07 -04:00 by jared · 0 comments
Owner

KeyboardShortcutsDialog (src/app/features/shortcuts/KeyboardShortcutsDialog.tsx:105-133, added for accessibility in 21dda93d) shows: ?, Esc, "any character", Enter, Shift+Enter, Ctrl+Enter, and "hover/focus". The app binds many more, none of them discoverable anywhere else:

Shortcut Where it's bound
Ctrl/⌘+K: quick switcher / search features/search/Search.tsx:436
↑ in an empty composer: edit your last message composer (verified working in this audit)
Ctrl+B / I / U / S / [ / H: bold, italic, underline, strike, code, spoiler components/editor/keyboard.ts:7-14
Ctrl+1 / 2: heading; Ctrl+7 / 8 / ' / ;: numbered list, bullets, quote, code block keyboard.ts:17-24
Ctrl+E or Esc: clear formatting keyboard.ts:70
Push-to-talk and deafen keys (user-configurable, default Space / M) hooks/useCallHotkeys.ts, Settings → Calls

For keyboard and screen-reader users, the dialog is the only way to find these. Ctrl+S being strikethrough (not the browser's save) is also worth stating explicitly.

Fix: add the sections "Navigation" (Ctrl+K), "Composer formatting" (generated from INLINE_HOTKEYS / BLOCK_HOTKEYS so they can't drift) and "Calls" (show the user's current pttKey / deafenKey bindings, or "not set").


Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny 30e2dbcd, cinny-desktop 8f67ec7, element-call 3b0050e8.

`KeyboardShortcutsDialog` (src/app/features/shortcuts/KeyboardShortcutsDialog.tsx:105-133, added for accessibility in 21dda93d) shows: `?`, Esc, "any character", Enter, Shift+Enter, Ctrl+Enter, and "hover/focus". The app binds many more, none of them discoverable anywhere else: | Shortcut | Where it's bound | |---|---| | **Ctrl/⌘+K**: quick switcher / search | `features/search/Search.tsx:436` | | **↑** in an empty composer: edit your last message | composer (verified working in this audit) | | **Ctrl+B / I / U / S / [ / H**: bold, italic, underline, strike, code, spoiler | `components/editor/keyboard.ts:7-14` | | **Ctrl+1 / 2**: heading; **Ctrl+7 / 8 / ' / ;**: numbered list, bullets, quote, code block | `keyboard.ts:17-24` | | **Ctrl+E** or **Esc**: clear formatting | `keyboard.ts:70` | | **Push-to-talk** and **deafen** keys (user-configurable, default Space / M) | `hooks/useCallHotkeys.ts`, Settings → Calls | For keyboard and screen-reader users, the dialog is the only way to find these. Ctrl+S being *strikethrough* (not the browser's save) is also worth stating explicitly. **Fix:** add the sections "Navigation" (Ctrl+K), "Composer formatting" (generated from `INLINE_HOTKEYS` / `BLOCK_HOTKEYS` so they can't drift) and "Calls" (show the user's *current* `pttKey` / `deafenKey` bindings, or "not set"). --- _Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny `30e2dbcd`, cinny-desktop `8f67ec7`, element-call `3b0050e8`._
jared added the priority: lowa11yarea: navigation labels 2026-10-05 23:36:07 -04:00
jared closed this issue 2026-10-18 05:21:22 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#334