⌨️ Keyboard navigation
- Tab / Shift+Tab moves between controls
- Enter or Space activates buttons; Esc closes any modal, drawer, or dropdown
- ↑ / ↓ / ← / → / Home / End move between adjacent tabs and menu items (output card, formula categories, symbol palette, train picker, drawer items, Copy ▾)
- Modals trap focus inside while open and restore focus to the trigger when closed
- A Skip to main content link appears as the first focus stop on every page
⚡ Global shortcuts
| Shortcut | Action |
|---|---|
| ? | Open the help in a new window (only when not typing) |
| Cmd / Ctrl + K | Toggle the menu drawer |
| Cmd / Ctrl + S | Save the current equation (Editor only) |
| Cmd / Ctrl + Shift + C | Toggle the Quick-calc popup — a floating panel for side calculations without leaving the editor (Enter to evaluate, Esc to close) |
🔊 Screen-reader support
- Toast messages and the Recognition card are live regions — screen readers announce updates automatically
- The math-field is labelled and exposed as a textbox; equation MathML is shipped to assistive tech via the math-field's accessible name
- Page title updates as you switch modes ("Editor — SumIt", "Graphing — SumIt", …)
👁️ Visual accommodations
- Reduced motion — when your OS has "reduce motion" enabled, all transitions and the drawer slide are disabled
- Themes — every bundled theme passes WCAG AA contrast for text and muted text against its surfaces
- Touch targets — all controls hit a minimum 44 × 44 px on touch devices
- Focus rings — every interactive element shows a visible focus indicator when reached by keyboard (suppressed for mouse users via
:focus-visible)
🗣️ Read aloud & voice
- The ▶ Read aloud button on the Editor speaks the equation through your operating system's TTS voice and synchronises a red underline / outline on the rendered equation as it goes
- Choose a different voice or change rate via the menu's Settings → Voice dropdown
- On the Windows app, all installed SAPI voices are available — including premium third-party voices the WebView's built-in TTS would hide