Keyboard Navigation in EchoQuest: Play Without a Mouse
Plenty of people play EchoQuest without ever touching a mouse. Some are blind and drive everything through a screen reader; others just like the keyboard better. (And yes, sometimes the mouse simply dies ten minutes before you sit down to play.) I built the game so every feature can be reached from the keyboard and every in-game action has a shortcut. There shouldn't be a single spot, from the main menu and the world library through character creation, a live session, settings and your account page, where you're forced to grab a mouse to make progress. If you find one, that's a keyboard trap, and I treat it as a bug to fix before anything else. The W3C puts No Keyboard Trap at Level A, the most basic tier of its accessibility guidelines, and I think that's exactly where it belongs.
Part of that promise gets checked by machines, which helps me sleep. Every change to the web app runs through an automated accessibility suite: Playwright drives a real browser while axe scans each screen. Among other things, it presses Tab on the home page to confirm the skip link lands in the main content, and it plays a turn by keyboard to confirm the number keys really do pick a choice.
This post is the full reference for keyboard players. We'll start with the basics (Tab and Escape, mostly), move on to the shortcuts you'll use mid-session, then cover how screen readers fit in, and finish with a handful of power-user tricks. New to keyboard-first browsing? The first section is all you need today, and the rest will sink in over your first few sessions.
The Core Navigation Model
EchoQuest follows standard web accessibility patterns, so if you can get around a web page by keyboard, most of this will feel familiar:
- Tab moves focus forward through interactive elements
- Shift+Tab moves focus backward
- Enter or Space activates the focused button or link
- Escape closes open panels and gets you out of the text box
- Arrow keys move inside compound widgets (tab lists, sliders, radio groups)
Focus is always visible. Whatever element is active gets a thick outline, 3 pixels wide with a small gap around it, so it's hard to lose. The W3C's Focus Visible criterion only asks that some focus indicator be visible, and version 2.2 added a stricter, optional criterion (Focus Appearance, Level AAA) about its size and shape. Some sighted keyboard users find bold focus rings ugly. I made ours loud on purpose anyway, because players with a little residual vision, and players with motor disabilities who move slowly through a page, should never have to hunt for where they are. If the default still isn't enough, Settings also offers a high-contrast theme and a large-text option.
The tab order follows the logic of the page, not merely its looks. Within a section, focus travels top to bottom and left to right, then moves on to the next section. My rule is never to use CSS tricks that rearrange content visually without rearranging the underlying page, because that pulls the tab order out of sync with what's on screen. The W3C even lists "changing the meaning of content by positioning information with CSS" as a documented failure. So if the tab order ever seems wrong somewhere, it's a bug. Please tell me about it.
In-Game Shortcuts
During a play session, these keys let you act quickly without reaching for anything else:
| Key | Action |
|---|---|
| 1 to 9 | Pick the matching numbered choice |
| T | Jump to the text box to type your own action |
| Enter | Submit your action |
| V | Start voice input |
| R | Replay the last narration |
| Space or P | Pause or resume narration |
| [ and ] | Slow speech down or speed it up |
| M | Turn the ambient soundtrack on or off |
| L | Hear where you are |
| S | Hear your character's status |
| I | Open or close your inventory |
| Q | Open or close the quest log |
| C | Open or close the character sheet |
| U | Undo the last turn |
| H | Open or close Help |
| Esc | Close an open panel or leave the text box |
A few notes on the thinking behind these.
Choices sit on the number keys because the game reads them to you in order, so "option two" is simply the 2 key, and you get up to nine of them. T is a single letter on purpose: switch users, who often map one switch to "type", can open the text box in a single action. R earns its one-key slot too. Re-listening to a line of narration is the audio version of rereading a paragraph, and I'd bet it ends up being the key you press most. Every time you nudge the speed with [ or ], the game tells you the new value out loud, so you're never guessing.
There's one wrinkle with Space, though. If a choice button has focus (which is where focus lands after each turn by default), Space presses that button, the way it does anywhere on the web. So P is the safer pause key. Also, while you're typing in the text box, the single-letter shortcuts switch themselves off, which means you can type "I search the chest" without your inventory popping open halfway through. Press Escape to step out of the box and the shortcuts come right back.
H is your safety net. Press it at any point in a session and the Help panel opens as a labelled dialog, then press H again (or use its Close button) to put it away. New players also hear a short reminder about H when their first session begins, so nobody has to discover it by accident.
Screen Reader Compatibility
EchoQuest sticks to plain semantic HTML and standard ARIA, so it's meant to work with the screen reader you already use, be it NVDA, JAWS, VoiceOver, TalkBack or Orca. That matters, because no single reader rules the field. In WebAIM's most recent screen reader user survey (1,539 responses, collected in December 2023 and January 2024), JAWS and NVDA ran neck and neck as primary desktop readers at 40.5% and 37.7%, with VoiceOver at 9.7%. I won't pretend every combination is flawless. Here's what the game does:
- All game text is real HTML text, never images, so your screen reader can read it natively
- When new choices arrive, they're announced as a group ("3 options available...") and focus moves to the first one, but only once the narrator has stopped talking
- Each choice button carries its own text in its label ("Option 2: Follow the smuggler"), plus a note when a choice advances an active quest, so you hear exactly what a sighted player sees
- Status changes (damage taken, health recovered, items gained or lost) go to a screen-reader-only live region set to polite, so they never trample the narration; hitting zero health or levelling up is announced straight away
- Scene transitions get announced too, and the game screen is split into labelled regions (the story, the available choices, the game controls) that you can jump between
- Form fields have visible or programmatically associated labels, never placeholder text on its own
That "only once the narrator has stopped" rule came out of a mistake. Early on I realised choices were being announced and focused while the narrator was still mid-sentence, so screen reader users got two voices talking over each other. Now the game simply waits for the narration to finish. Funny thing is, it's a bug you can only hear and never see, which is exactly why audio-first testing matters so much to me.
The result: a screen reader user playing EchoQuest hears the story and knows when their health changes. They hear which choices are on the table and act on them, all without leaving their own screen-reader rhythm.
The Skip Link
At the very top of every page, before any navigation, sits a hidden link that appears the moment it gets focus: "Skip to main content." It lets keyboard and screen reader users jump straight past the navigation bar instead of tabbing through it on every page load. Right behind it are two more, "Skip to audio controls" and "Skip to action input", which really pay off during a session. The W3C's Bypass Blocks criterion names a link like this, placed at the top of each page, as one way to meet its Level A requirement. For repeat visitors it's the single most useful accessibility feature on the site, and once you know it's there, you'll reach for it constantly.
If you're sighted and have never noticed the skip link, that's by design. It stays off-screen until it receives focus, then pops into view at the top-left. Press Tab once after any EchoQuest page loads and it's the very first thing you'll hit.
Setting Up Your Preferred Voice
If you use a system screen reader alongside EchoQuest's built-in narrator, you'll probably want to silence the narrator so you don't get double narration. Go to Settings → Voice and slide the narration Volume down to zero. That's the switch that counts. Whenever the narrator is audible, I hide the spoken narration from screen readers so you don't hear every line twice; the moment you mute it, the story text opens back up to your screen reader. You then read each scene in the "Story narration" region with your own voice, at the rate your ears are already trained to. Spoken prompts elsewhere, such as the step-by-step questions in the World Builder Wizard, move over to your screen reader's live region as well. Honestly, I think this is the best setup for anyone fluent with NVDA or JAWS, because the game then sounds just like the rest of their computer.
If you're not using a system screen reader, the built-in narrator handles everything: ElevenLabs premium voices on the Storyteller and Creator plans, and a clean browser voice on the free plan. Either way, narration speed runs from 0.5× to 2.0×. The settings slider moves in fine steps, while the [ and ] keys nudge it by 0.1 at a time. Here's the setup I'd suggest for seasoned screen reader users, though: mute EchoQuest's narration so your own reader handles the text, and keep the ambient soundtrack running on its own for atmosphere. M toggles that soundtrack mid-game, and there's an ambient switch on the same Voice settings page.
Tips for Power Users
- Keep the game in its own browser tab and hop back with your browser's tab shortcuts (Ctrl+Tab on Windows and Linux, Cmd+Option+arrow on a Mac). Browsers normally remember which element had focus, so you land back where you left off.
- Use browser zoom (Ctrl+plus, or Cmd+plus on a Mac) to enlarge text. The interface is sized in relative units, so zooming scales the text instead of chopping it off, and the Large text setting stacks on top. If anything breaks at 200% zoom, that's a bug I want to hear about.
- The text box supports standard editing shortcuts: Home and End, Ctrl+A, Ctrl+Backspace to delete the previous word, and Ctrl+Z to undo your typing. (That Ctrl+Z only touches your text. The U key, pressed outside the box, undoes the whole last turn.) If you write long custom actions, these save real time.
- On NVDA or JAWS, mind browse mode. There, the screen reader keeps single letters and numbers for its own quick navigation (in NVDA, H jumps to the next heading and 1 to 6 jump by heading level), so EchoQuest never sees those keys. Switch to focus mode with NVDA+Space, or pass one key through with NVDA+F2. JAWS has its own pass-through command too.
- Use landmark and heading navigation to get around a busy page. D jumps between regions in NVDA, and the rotor does the same job in VoiceOver. On the game screen, the story, the choices and the controls are each a labelled region.
- The R key replays the last narration. It's the audio equivalent of rereading a sentence, and it's the one key I'd tell any new player to learn first.
- Lost the thread after a break? The Catch up button in the game controls recaps the last three scenes.
- Prefer typing to picking? Open the audio controls during a session and change "After each turn, focus" from the first choice to the action input. That saves you a Tab on every single turn.
- If a session feels stuck, Tab through the game area to find the focused choice or text field. After a slow network response, focus can occasionally land somewhere unexpected.
Reporting Issues
If something doesn't work for you with the keyboard or your screen reader, please tell me. Accessibility reports go straight to the top of my list. The quickest route is the Contact page, linked from the site footer. Tell me which browser and screen reader you were using, and describe the exact action you were trying to take; with those details I can usually reproduce the problem on the first attempt.
EchoQuest rests on one belief: accessibility isn't a separate experience. It's the same game, whichever input suits you. Keyboard-only play isn't a "lite" edition, either. It's the same world and the same AI Game Master, just reached through different keys. So why not try a free campaign with your hands on the keyboard tonight? Start playing →
Related reading: Browse all EchoQuest blog posts.