Keyboard shortcuts
Every shortcut in the editor and the runtime player, with the screen-reader contract.
Coursentials is built to be operable without a mouse. This page is the canonical list — it mirrors docs/accessibility/keyboard-shortcuts.md in the source tree so engineering and product stay in sync.
Editor — navigation
| Shortcut | Action |
|---|---|
| Tab / Shift+Tab | Move focus: left pane → canvas → inspector → timeline |
| Esc | Clear selection / close any open dialog |
| Cmd+1 / Ctrl+1 | Focus the SCENES tab |
| Cmd+2 / Ctrl+2 | Focus the ELEMENTS tab |
| Cmd+3 / Ctrl+3 | Focus the ANIMATIONS tab |
Editor — canvas focused
| Shortcut | Action |
|---|---|
| Arrow keys | Nudge selected element(s) by 1 px |
| Shift+Arrow | Nudge by 10 px |
| Delete / Backspace | Delete selection |
| Cmd+D | Duplicate |
| Cmd+G / Cmd+Shift+G | Group / ungroup |
| Cmd+A | Select all visible |
| Cmd+] / Cmd+[ | Bring forward / send backward |
| Cmd+Shift+] / Cmd+Shift+[ | Bring to front / send to back |
| Cmd+Z / Cmd+Shift+Z | Undo / redo |
Editor — timeline
| Shortcut | Action |
|---|---|
| Space | Play / pause preview |
| Home / End | Jump to scene start / end |
| , / . | Step ±200 ms |
Runtime player
| Shortcut | Action |
|---|---|
| Space | Play / pause narration |
| → / PgDn | Next scene |
| ← / PgUp | Previous scene |
| Home | Restart scene |
| ? | Open the shortcut overlay |
Screen-reader contract
The runtime player wraps each scene in <main role="main" aria-label="Scene X: …"> and announces every scene change via an off-screen aria-live="polite" region containing the scene title + spoken script. The footer is role="navigation" with previous/next buttons that announce their disabled state. Quiz widgets use native radio/checkbox inputs with labels so assistive tech reads choices in the standard pattern.
The editor canvas is role="application" with an aria-keyshortcuts attribute exposing the full shortcut surface. Every icon-only button has anaria-label.