Accessible Trading Terminal — Keyboard Shortcuts
All shortcuts are sourced from ShortcutManager.InitializeDefaultProfile(). Shortcuts not listed here are not assigned by default. Users can customise bindings via the Sound Designer or by editing the shortcuts profile saved at %LOCALAPPDATA%\AccessibleTrader\shortcuts.json (MAUI heads) or ~/.local/share/AccessibleTrader/shortcuts.json (Linux WebHost).
Host-specific note: WebHost remaps Ctrl+Shift+letter to Alt+Shift+letter
Firefox (and most browsers) reserve several Ctrl+Shift+letter chords at the browser-chrome level — Ctrl+Shift+T reopens a closed tab, Ctrl+Shift+H opens history, Ctrl+Shift+P starts a private window, Ctrl+Shift+J opens the browser console, etc. — and they are NOT cancellable from page-level JavaScript even with preventDefault. So the Linux WebHost rewrites those bindings in-memory at startup: every Ctrl+Shift+letter chord becomes Alt+Shift+letter (Firefox does not reserve Alt+Shift+*). Same letter, same command, different modifier. Two-modifier chords with three modifiers (Ctrl+Alt+Shift+N etc.) are untouched.
| Drawing tool | MAUI head (Win/Mac/iOS/Android) | Linux WebHost |
|---|---|---|
| Trend line | Ctrl+Shift+T |
Alt+Shift+T |
| Horizontal line | Ctrl+Shift+H |
Alt+Shift+H |
| Vertical line | Ctrl+Shift+V |
Alt+Shift+V |
| Channel | Ctrl+Shift+C |
Alt+Shift+C |
| Fibonacci retracement | Ctrl+Shift+F |
Alt+Shift+F |
| Text label | Ctrl+Shift+L |
Alt+Shift+L |
| Fibonacci extension | Ctrl+Shift+E |
Alt+Shift+E |
| Andrews Pitchfork | Ctrl+Shift+A |
Alt+Shift+A |
| Rectangle | Ctrl+Shift+R |
Alt+Shift+R |
| Measure tool | Ctrl+Shift+M |
Alt+Shift+M |
| Gann fan | Ctrl+Shift+G |
Alt+Shift+G |
| Risk/reward | Ctrl+Shift+P |
Alt+Shift+P |
| Anchored VWAP | Ctrl+Shift+W |
Alt+Shift+W |
| Gann box | Ctrl+Shift+B |
Alt+Shift+B |
| Angle Fibonacci | Ctrl+Shift+J |
Alt+Shift+J |
| Detailed point summary | Ctrl+Shift+D |
Alt+Shift+D |
The remap is purely in-memory and never persisted to shortcuts.json, so the disk profile remains portable between hosts. The Help dialog (F1) reads the live in-memory profile, so each host self-documents its current bindings — you always see the right modifier on the host you're using.
Some reserved chords are not just remapped letter-for-letter — they're single-Ctrl chrome chords the browser handles before any page listener runs, so even capture-phase preventDefault can't stop them. On the WebHost these reserved bindings are removed (so the Help dialog never advertises a chord the browser eats) and the in-app action is rebound to a web-safe equivalent:
Ctrl+T(AddTab) — opens a browser tab. On the web useAlt+Shift+N(a chord browsers leave alone) or the tab bar's always-visible+button. (Ctrl+Tstill works on the desktop heads.)Ctrl+W(CloseTab) — closes the browser tab. Use a tab's×button, or focus the tab bar (Ctrl+Alt+Shift+T) and pressDelete.Ctrl+Tab/Ctrl+Shift+Tab(SwitchTabNext/Prev) — switch browser tabs. On the web, pressCtrl+Alt+Shift+T(FocusTabBar) to move keyboard focus onto the workspace tab switcher bar, then use the arrow keys /Home/End/ the number row (1–9jump to that tab);Deletecloses the active tab andInsert/+opens a new one.Ctrl+PageUp/Ctrl+PageDown(NavSubPanePrev/Next — jump between indicator sub-panes) — also cycle browser tabs, so on the web they move toAlt+PageUp/Alt+PageDown.
The workspace tab switcher bar (a row of tabs just above the chart) is always visible — even with a single tab open — so the + new-tab button is always reachable by mouse, and the bar is always focusable via Ctrl+Alt+Shift+T.
Time Navigation (X Axis)
| Key | Action | Speech Feedback |
|---|---|---|
| Left Arrow | Move cursor one bar back in time | Bar data at new position |
| Right Arrow | Move cursor one bar forward in time | Bar data at new position |
| Home | Jump to leftmost bar in visible viewport | Bar data at start |
| End | Jump to rightmost bar in visible viewport | Bar data at end |
| Backslash () | Jump to the latest (live) bar | Bar data at live edge |
| [ | Pan viewport left (older bars come into view) | "Viewing X bars from..." |
| ] | Pan viewport right (newer bars come into view) | "Viewing X bars from..." |
| Shift+[ | Decrease pan step size | — |
| Shift+] | Increase pan step size | — |
| - (minus) | Zoom out (more bars visible) | "Viewing X bars from..." |
| = (equals) | Zoom in (fewer bars visible) | "Viewing X bars from..." |
Pane and Component Navigation (Y Axis and Series)
| Key | Action | Speech Feedback |
|---|---|---|
| Page Down | Move focus to next pane/series below | "{Series Name}" |
| Page Up | Move focus to pane/series above | "{Series Name}" |
| Down Arrow | Move to next component within focused series | "{Component Name}, {value}" |
| Up Arrow | Move to previous component within focused series | "{Component Name}, {value}" |
| Ctrl+Down | Cycle to next component within the same pane (wraps) | "{Component Name}, {value}" |
| Ctrl+Up | Cycle to previous component within the same pane (wraps) | "{Component Name}, {value}" |
| Alt+Down | Scroll indicator pane list down | "Scroll panes down" |
| Alt+Up | Scroll indicator pane list up | "Scroll panes up" |
| Ctrl+Page Down (web: Alt+Page Down) | Jump to first component of next sub-pane in focused series | "[Pane name]. [Component name]..." or "No sub-panes in [Series]" |
| Ctrl+Page Up (web: Alt+Page Up) | Jump to first component of previous sub-pane in focused series | "[Pane name]. [Component name]..." or "No sub-panes in [Series]" |
Context-Aware Jump Navigation (Ctrl+Left / Ctrl+Right)
Ctrl+Left and Ctrl+Right perform a context-sensitive jump whose target depends on what component is currently focused. The behavior is determined by CommandDispatcher.HandleTrendlineCrossJump.
| Focused Component Type | Jump Target |
|---|---|
| Price candle or candle wick | Next bar where price crosses a drawn trendline |
| Sparse marker (Dot, Diamond, Cross, Arrow, TriangleUp, TriangleDown, Square, ZeroDot) | Next bar where that component has a non-NaN signal value |
| Zero-crossing oscillator (MACD, Momentum, ZeroArea etc.) | Next bar where the oscillator crosses the zero line |
| Threshold oscillator (RSI, MFI, Stoch, CCI — any indicator with OB/OS levels) | Next bar where the indicator enters or leaves the overbought/oversold zone |
| Moving average overlay (EMA, SMA, WMA, Spider Lines etc.) | Next bar where price (close) crosses the focused MA line |
| Band indicator (Bollinger %B / PERCENTB) | Next bar where the indicator crosses the upper (1.0), mid (0.5), or lower (0.0) band boundary |
| No focus / unknown | Next trendline crossing (fallback) |
When no further event exists in the scan direction, speech announces: "No more [component name] signals in this direction." (This was silent until 2026-08-03 — boundary feedback carried the message but only played an earcon.)
Chart Formation Navigation (, and .)
Bare comma and period step between chart formations — double tops, head and shoulders, triangles, wedges, flags. They are unmodified keys because this is something you press repeatedly while reading a chart, and they are chart-scoped, so they remain typable everywhere else.
| Key | Action |
|---|---|
, |
Previous formation edge |
. |
Next formation edge |
| ; | Choose which overlapping formation leads the readout (press again for the next) |
| Shift+; | Stop choosing; go back to largest-first |
They require formation description to be on (Settings → Describe chart patterns). With it off they say so rather than moving you across the chart without explaining why — the announcement that would explain the jump is exactly what the setting disables.
Choosing a formation. When several shapes overlap, the terminal leads with the largest live one
and counts the rest. Semicolon overrides that with your own choice — the twelve-bar flag inside the
eighty-bar triangle may be exactly what your setup is built on, and the terminal has no business
insisting otherwise. The choice sticks per chart until you clear it, and nothing is hidden either
way: the others are still counted and Alt+Shift+D still reads them all.
Nesting. A formation inside a larger one says so — "…Inside a larger double bottom that began 12 March." The container's start date is given rather than just its name, because that is what lets you go and find it.
Quick Trade (from the chart, no dashboard)
Size a position from your risk budget and place it without leaving the chart.
| Key | Action |
|---|---|
Ctrl+Alt+Shift+1 |
Arm 0.5% risk |
Ctrl+Alt+Shift+2 |
Arm 1% risk |
Ctrl+Alt+Shift+3 |
Arm 2% risk |
Ctrl+Alt+Shift+X |
Use the bar under the cursor as the stop |
Shift+Enter |
Place a limit at the bar under the cursor |
Ctrl+Enter |
Place at market |
Ctrl+Alt+Shift+Q |
Say what is currently armed |
Ctrl+Alt+Shift+0 or Escape |
Cancel |
The stop comes before the size, and that is not a formality. A risk percentage is a cash budget; it becomes a quantity only once the distance to your stop is known, because that distance is what one unit can lose. So arming a percentage puts the system in "stop needed" and it refuses to place until you have set one. What you get in return is the arithmetic a sighted trader does in a position-size calculator — equity, risk, stop distance, quantity — spoken in one sentence at the moment of the decision:
"Armed 1 percent. $1,000.00 at risk, stop 42,100, long 0.625 units, entry 43,700."
Direction is inferred, not asked. A stop below the current price can only be protecting a long; above it, a short.
You are told you are armed on every bar you move to — "Armed 1 percent, ready." Forgetting is
the failure this feature is designed against, so the reminder is short and unconditional. Escape
always cancels, and takes precedence over cancelling a half-placed drawing.
The stop is always sent with the entry. The size was derived from the stop distance, so a position placed without it would have a quantity justified by protection that does not exist.
The stops are edges, not formations. Each one contributes two: the bar its structure first became knowable, and the bar its story ended — the break, or the point it aged out unconfirmed. Landing on those two bars walks you through the same narrative arrow-key navigation gives you, so the jump keys and the arrow keys always agree about what is worth saying.
There is no equivalent for candle patterns, deliberately. Dojis, spinning tops and small-bodied bars occur on a large share of every chart, so "jump to the next candle pattern" would usually mean "move one bar right" — a key that does nothing you could not do with the right arrow, while consuming a binding. Candle patterns are already read on the bar you are standing on, which is the right place for something that common.
What you hear
Formation narration is opt-in (Settings → Describe chart patterns) and is edge-triggered: a formation speaks twice over its whole life, not once per bar.
| When | Example |
|---|---|
| The formation's first bar | "Start of possible double top forming, neckline 42,100, measured target 39,400 if it breaks. Spans 22 bars." |
| Its resolution bar | "End of double top: price closed below the neckline at 42,100, measured target 39,400. Spans 22 bars." |
| The bar it confirmed | "Double top confirmed here: closed below the neckline at 42,100, measured target 39,400." |
| The bar it aged out | "Double top ends here without confirming — the neckline at 42,100 held." |
| Overlapping formations | "…Plus 2 more formations here." (Alt+Shift+D reads them all) |
Three properties are worth knowing, because each is a deliberate choice:
- The edge is named, and it describes the BAR rather than your direction of travel. A formation's first bar says "Start of" whether you arrowed onto it going left or right; its last bar says "End of" either way. If the word changed with direction, the same bar would describe itself differently depending on how you reached it, and no picture of the chart could be built by moving around in it.
- An outcome is stated as what price did, never as a verdict. The word "completed" is never spoken: it could not tell you whether the pattern worked or failed, and it never meant either — only that price closed through a line. So the narration names the side and the level instead.
- Nothing is ever called bullish or bearish. The measured target is spoken because it is
arithmetic on numbers already on screen, and it is always framed as the measured target,
conditional on if it breaks. It has never been tested here — see
ALPHA_LEDGER.md, where every price-derived pattern claim tested so far has come back null.
Bar Replay
Reveals loaded history one bar at a time so you can practise reading a market forward, without hindsight. Live updates are suspended while replay runs and the full series is restored when you stop.
| Key | Action |
|---|---|
| F11 or Ctrl+Alt+Shift+P | Start replay at the cursor bar / stop replay and restore full history |
| F9 | Reveal the next bar |
| Shift+F9 | Hide the last revealed bar |
| F10 | Play / pause auto-advance |
Also on the toolbar's second row as Replay, which shows its own pressed state.
On the WebHost, use Ctrl+Alt+Shift+P rather than F11 — browsers own F11 for fullscreen
and page-level preventDefault on it is not reliable.
Split View
Renders a second tab beside (or below) the active chart. The second pane is a read-only reference view — keyboard navigation, speech, sonification and trading all continue to address the active tab. Falls back to a single full-size chart when there is no second tab or the window is too narrow to divide.
Mouse pointing is correct in split view: pointer coordinates are mapped into the ACTIVE pane, and a click over the divider or over the read-only second chart is ignored rather than applied to the chart you are working in.
| Key | Action |
|---|---|
| Ctrl+Alt+Shift+S | Split view on / off |
| Ctrl+Alt+Shift+E | Move the second pane to the next tab |
| Ctrl+Alt+Shift+O | Side-by-side / stacked |
Also on the toolbar's second row as Split, which shows its own pressed state.
Playback
| Key | Action | Notes |
|---|---|---|
| Space | Play/Stop entire chart | All visible series, bar by bar |
| Shift+Space | Play/Stop focused series | Only components of the focused indicator |
| Ctrl+Shift+Space | Play/Stop focused component | Single component only |
| Ctrl+Space | Pause / Resume active playback | Cursor syncs to pause point |
| Shift+Escape | Force-stop all playback immediately | — |
| Shift+= | Increase playback speed | — |
| Shift+- | Decrease playback speed | — |
Speech and Sonification
| Key | Action | Speech Feedback |
|---|---|---|
| F2 | Toggle interactive speech (navigation values, zoom/pan, summaries — everything you asked for) | "Speech on/off" |
| Shift+F2 | Toggle event speech (alerts, monitoring, new bars — everything that happens to you). Order fills and stops break through unless you opt them in (Settings → Speech) | "Alerts and events on/muted" |
| F3 | Toggle chart sonification (navigation tones, playback) | "Sound on/off" |
| Shift+F3 | Toggle earcons. Order-outcome and error earcons break through | "Earcons on/muted" |
| F4 | Toggle braille / tactile display output ("Braille not available on this platform" where unsupported) | "Braille on/off" |
| Shift+F4 | Open braille display settings (Settings dialog) | — |
| Shift+F1 | Announce context summary (moved from F4 in 1.10) | "{Symbol} on {Provider}, {Timeframe}" |
| Ctrl+Alt+Shift+C | Focus chart area + announce context summary | "{Symbol} context summary" |
Volume Controls
| Key | Action | Speech Feedback |
|---|---|---|
| F5 | Component volume up (+10%) | "Component volume N percent" |
| Shift+F5 | Component volume down (-10%) | "Component volume N percent" |
| F6 | Series volume up (+10%) | "Series volume N percent" |
| Shift+F6 | Series volume down (-10%) | "Series volume N percent" |
| F7 | Master chart volume up (+10%) | "Chart volume N percent" |
| Shift+F7 | Master chart volume down (-10%) | "Chart volume N percent" |
Indicator Visibility and Mute
H and M respect the last interaction context. If you last pressed Up/Down (component navigation), they apply to the focused component. If you last pressed Left/Right (bar navigation), they apply to the whole series.
| Key | Action | Speech Feedback |
|---|---|---|
| H | Toggle visibility of focused series or component | "{Series/Component} visible/hidden" |
| M | Toggle mute of focused series or component | "{Series/Component} active/muted" |
| 0 (zero) | Add or remove a reference line on the focused series. On an oscillator pane a new line goes at zero; on the price pane there is no meaningful zero, so it goes at the price under the cursor. Press 0 again where one of your levels sits and it is removed — indicator-declared levels are never removed this way. New levels report crossings from either direction straight away. |
"Level added at 63,920.11, audible on crossing." / "Level removed." / "No price under the cursor to place a level at." |
| Delete | Remove the focused indicator series (candles are protected) | Confirmation |
Chart Display Toggles
| Key | Action |
|---|---|
| Alt+C | Toggle Heikin-Ashi candle mode |
| Alt+L | Toggle logarithmic (log) scale |
| Alt+H | Toggle volume heatmap overlay |
Indicator Management
| Key | Action |
|---|---|
| Alt+A | Open the Add Indicator dialog |
| P | Open indicator properties dialog (parameters, audio, visual settings) |
| Shift+F12 | Open indicator properties dialog (alternative to P) |
Market Structure
The Market Structure overlay (HH/HL/LH/LL) is added to new OHLCV charts by default. Turn it off in Settings, or delete the series from the Object Tree (Alt+O) to drop it for the session. Navigate to its Structure State component and press Shift+F1 (context summary) for the full structural read: current state, last swing high and low, and where price sits between them.
Analysis
| Key | Action | Speech Feedback |
|---|---|---|
| Ctrl+Shift+D (web: Alt+Shift+D) | Full candle pattern + indicator analysis for the current bar, plus every chart formation the cursor sits inside with its trigger and measured target | Spoken summary |
| Ctrl+Alt+Shift+N | Toggle auto-narration for the focused series on/off | "Narration on/off" |
| Ctrl+Alt+Shift+A | Open the AI Analyst modal | — |
Tabs and Workspaces
| Key | Action |
|---|---|
| Alt+Shift+N | Add a new chart tab (works on every head; the web-safe new-tab chord) |
| Ctrl+T | Add a new chart tab (desktop only — browser-reserved on the web) |
| Ctrl+W | Close the current chart tab (desktop; on the web use a tab's × button, or focus the bar and press Delete) |
| Ctrl+Tab | Switch to the next tab (desktop only — browser-reserved on the web) |
| Ctrl+Shift+Tab | Switch to the previous tab (desktop only — browser-reserved on the web) |
| Ctrl+Alt+Shift+T | Focus the workspace tab switcher bar (web-safe path to tab switching) |
| Ctrl+Alt+Shift+W | Save the current workspace (all tabs + layout) |
| Ctrl+Alt+W | Load a saved workspace |
| Ctrl+Alt+Shift+L | Load the chart for the toolbar's selected market/provider/symbol (same as the Load button, including the shape-change warning) |
| Ctrl+Alt+Shift+I | Import / manage My Data CSV datasets (also the Import button on the toolbar when the My Data market is selected) |
| Ctrl+Alt+Shift+M | Speak background monitoring status (which tabs are watched, data freshness, armed strategies) |
The tab switcher bar (a row of tabs just above the chart) is always visible, even with a single tab open, so the + new-tab button is always there. When the bar has focus (via Ctrl+Alt+Shift+T, or by clicking it): ←/→ (or ↑/↓) switch tabs, Home/End jump to the first/last tab, the number row 1–9 jumps to that tab, Insert / + opens a new tab, and Delete closes the active tab. It is an ARIA tablist — your screen reader announces the newly selected tab as you move.
Drawing Tools — Sequential Anchoring
All drawing shortcuts use sequential anchoring: there is no separate "mode" and no Enter key. Each anchor is set by pressing the same tool shortcut again at the current cursor bar. The DrawingInteractionManager state machine advances one anchor per press.
- Navigate to the first bar with the Left/Right arrows.
- Press the tool shortcut (e.g.
Ctrl+Shift+T) to set anchor 1 at the current bar. Speech announces the price and timestamp and prompts: "Navigate to next point and press the shortcut again." - Navigate to the next bar.
- Press the same shortcut again to set anchor 2. For two-anchor tools this completes the drawing and speech confirms placement.
- For three-anchor tools (Fibonacci extension, Risk/Reward, Andrews' pitchfork), press the shortcut once more for anchor 3.
- Press Escape at any time to cancel the in-progress placement.
Single-anchor tools (horizontal line, vertical line, text label, anchored VWAP) complete on the first press.
The default profile also keeps a mouse path (click/drag to place, drag a handle to reposition), but the keyboard re-press flow above is the canonical accessible path. Enter/Return is not used for drawing — the
ConfirmCoordinateEntrycommand is reserved/unused and has no key binding or dispatch handler.
| Key | Tool | Anchors Required |
|---|---|---|
| Ctrl+Shift+T | Trendline | 2 |
| Ctrl+Shift+H | Horizontal line (price level) | 1 |
| Ctrl+Shift+V | Vertical line (time marker) | 1 |
| Ctrl+Shift+C | Price channel (two parallel lines) | 2 |
| Ctrl+Shift+F | Fibonacci retracement | 2 (swing high and swing low) |
| Ctrl+Shift+E | Fibonacci extension | 3 (move start, move end, pullback) |
| Ctrl+Shift+L | Text label | 1 |
| Ctrl+Shift+R | Rectangle | 2 (opposite corners) |
| Ctrl+Shift+M | Measure / range tool | 2 |
| Ctrl+Shift+A | Andrews' pitchfork | 3 |
| Ctrl+Shift+G | Gann fan | 2 |
| Ctrl+Shift+B | Gann box | 2 |
| Ctrl+Shift+J | Angle / Fibonacci angle | 2 |
| Ctrl+Shift+P | Risk/Reward tool | 2 (entry and stop loss) |
| Ctrl+Shift+W | Anchored VWAP | 1 (the anchor bar) |
| Key | Drawing Placement Action |
|---|---|
| (re-press the tool shortcut) | Set the next anchor at the current bar position |
| ContextMenu / Shift+F10 | Open the context menu for the focused drawing |
| Escape | Cancel the active in-progress drawing |
Modals and Panels
| Key | Opens |
|---|---|
| F1 | Help dialog (built-in keyboard reference) |
| F12 | Settings dialog |
| Alt+A | Add Indicator dialog |
| Alt+O | Object tree (manage chart layers, indicators, drawings) |
| Alt+J | Alerts manager |
| Alt+K | API key manager |
| Alt+T | Trading dashboard |
| Alt+B | Order book |
| Alt+S | Strategy manager |
| Alt+W | Sound designer |
| Alt+D | Drawing tools panel |
| Ctrl+Shift+L | Pin a text label at the cursor bar, then type what it says |
| Ctrl+Alt+Shift+Y | Describe the chart's LAYOUT — axes, scales, panes, series counts, what is hidden or muted |
| Ctrl+Alt+Shift+K | Show every hidden component again (announces how many) |
| Ctrl+Alt+Shift+U | Unmute every muted component (announces how many) |
| Alt+M | Market watch — watchlists and the screener (toolbar: Watch) |
| Alt+R | Respect report — which levels and moving averages this market actually holds (toolbar: Zones) |
| Alt+I | Asset dossier for the loaded symbol (I for Instrument/Info) |
| Alt+, | Custom scripts panel (PineScript / Roslyn) |
| Ctrl+Alt+Shift+J | Journal — review every speech utterance, alert, strategy setup, and error this session (filterable, copyable monospace text view) |
Journal Modal (Ctrl+Alt+Shift+J)
The Journal is the persistent review surface for everything the application has spoken or alerted on during the current session. It is the primary tool for reviewing setups that scrolled past in speech.
- The modal is a console-style text area (monospace, screen-reader friendly). Tab into it to read or copy any line.
- Filter buttons partition the buffer by category: All / Speech / Alerts / Setups / Errors / Backtests.
- "Copy visible" puts the currently filtered view onto the clipboard.
- "Clear" empties the in-memory ring buffer.
- The buffer holds up to 2000 entries. Newest entries are at the bottom.
- Composite-strategy setups appear with their full reasoned rationale: side, score, stop price, first target, R:R, and stop placement notes — exactly the form needed to review why a setup fired.
Mouse and touch equivalents
Every mouse or touch action routes into the same store the keyboard navigates, so speech and sonification fire identically for all three. The keyboard remains the canonical path; the other columns show the parity actions.
| Action | Keyboard | Mouse | Touch |
|---|---|---|---|
| Move cursor to a bar and hear it | Left / Right arrows | Single click on the bar | Tap the bar |
| Jump to the latest live bar | \ (Backslash) |
Double-click the chart | Double-tap the chart |
| Pan the viewport | [ / ] |
Click-drag the chart, or Shift+scroll (or horizontal trackpad swipe) | One-finger drag |
| Zoom in / out | = / - |
Scroll wheel (anchored at the pointer) | Pinch (anchored between fingers) |
| Chart context menu (play from here, jump to latest, crosshair, per-series actions) | Application key or Shift+F10 (chart focused, no drawing focused) | Right-click on open chart space | Press and hold (~½ s) |
| Drawing context menu (Delete / Duplicate / Properties) | Application key or Shift+F10 (drawing focused) | Right-click on a drawing's anchor handle | Press and hold on the anchor handle |
| Place a drawing | Tool shortcut, navigate, re-press | Click-drag (live preview) or click-click | Tap-tap (after arming the tool) |
| Move a drawing anchor | Re-place via tool shortcut | Drag the anchor handle | Drag the anchor handle |
| Inspect a bar without moving the cursor | — (arrows always move the cursor) | Hover — crosshair readout shows date, price, OHLC (visual only, never spoken); optional hover sound ticks per bar | — |
| Focus the indicator under the pointer | Page Up / Page Down + Up / Down | Click near its line (falls back to bar-select on a miss) | Tap near its line |
| Measure a range (spoken summary, cursor stays put) | — | Shift+click the far bar | — |
| Snap drawing anchors to O/H/L/C | — (keyboard anchors already land on the bar's close) | Right-click menu → Magnet snap (off by default) | same |
With VoiceOver or TalkBack running, the screen reader owns the touchscreen, so use the Bar navigator slider (flick up/down to step through bars; TalkBack steps one bar, iOS VoiceOver ~10% of the chart per flick) and the touch toolbar below the chart (Previous/Next bar, Previous/Next component, Play, Chart menu — swipe to a button, double-tap to press).
Notes
- Tab is not a shortcut in this application. Series switching uses Page Up / Page Down.
- Ctrl+I is not assigned. The Add Indicator dialog is Alt+A.
- Ctrl+Shift+C opens a Price Channel drawing — it is not a trendline shortcut. Trendlines use Ctrl+Shift+T.
- The P key opens indicator properties regardless of whether you use it alone or as Shift+F12. Both route to the same
OpenPropertiescommand. - Drawing tools use sequential anchoring: press the tool shortcut once per anchor (navigate, re-press the same shortcut). There is no Enter-to-confirm and no Coordinate Entry mode —
Enter/Returnis not bound to drawing.