Noctie — Screen Reader & Keyboard Access Guide
How to use Noctie with a screen reader and keyboard, and how to help us test it. Want to start playing right away? Jump to Quick start. Testing for us? See For testers.
Status labels
These labels are used throughout the guide instead of icons:
- Supported
- Built and verified to work with a screen reader and keyboard.
- Partial
- Usable but incomplete; the specific gaps are named.
- Untested
- Expected to work but not yet verified — please test. (Used for screen readers we intend to support but have not checked yet.)
- Not yet
- No screen-reader or keyboard support yet; use the suggested alternative.
1. What is Noctie?
Noctie is a humanlike chess bot built for practicing chess. You play positions or games against the bot and get feedback and puzzles.
The main features, roughly in order of importance:
- Play vs. Noctie — a real game against an adaptive humanlike opponent at your own level, with optional live move quality feedback, hints and take backs.
- Game review — step back through a finished game to see where you went wrong (good move / inaccuracy / mistake / blunder).
- Flashcards — your own mistakes become puzzle-style exercises to go through during review or drill later.
- Opening books — you can pick what opening line you and Noctie should play, or even activate a full opening book with multiple annotated variations – a combined opening training experience where you consolidate your repertoire while getting practice in the middle- and endgames that arise from it.
- Scenarios and setup — set up a custom position and play it out against Noctie, or play the weekly scenario where you try to convert a positional advantage to a win.
- Themes / lessons — short training modules made of instructions, flashcard puzzles to reinforce learning, and scenarios to test your knowledge in.
- Connect accounts — connect your Chess.com or Lichess account to import games, analyse them and get flashcard puzzles from your mistakes.
- Progress — as you play, you earn higher ranks corresponding loosely to rating. See your game history and improvement over time.
2. How accessibility works (read first)
In the Noctie web app, there is no separate "blind mode" and nothing to switch on. Instead of a parallel text-only interface, the normal interface is built to work with a screen reader and keyboard. The same board responds to mouse, touch, keyboard, and screen reader at once: every square is a real button, and the board announces what happens. If you navigate with a screen reader, the accessible behaviour is already there.
Do not confuse this with Blindfold mode, an unrelated training setting that hides the pieces as a challenge (see Glossary).
Screen readers we target
| Screen reader | Platform | Status |
|---|---|---|
| VoiceOver | macOS (Safari/Chrome) | Supported Primary platform during development. |
| NVDA | Windows | Partial Implemented and tested by us; needs more testing across versions and browsers — a key thing we want testers to check. |
| JAWS | Windows | Untested Expected to work (it shares the Windows model with NVDA), but not yet verified. Please test. |
| Narrator | Windows | Untested Expected to work, but not yet verified. Please test. |
| VoiceOver | iOS (mobile web) | Partial Implemented, needs more testing. Use the website, not the native app (see Web vs. native). |
| TalkBack | Android (mobile web) | Untested Expected to behave like iOS VoiceOver, but not yet verified. Use the website, not the native app. Please test. |
We aim to support all major screen readers. Where one is marked Untested, we have no reason to expect problems — we just have not verified it yet, so a test report helps a lot.
VoiceOver — turn off Quick Nav. The board uses single-key shortcuts (arrow keys and letters like o, l, m, ?). For these to reach the page, turn Quick Nav off — by default, press the Left and Right arrow keys together. Quick Nav is the VoiceOver feature that lets you move with the arrow keys alone; while it is on, the board never receives those keys. The rest of this guide just says "turn Quick Nav off."
NVDA / JAWS. The board is an application region, so these pass keystrokes straight through. If shortcuts do not respond, make sure you are in focus/forms mode on the board.
3. Quick start
The fastest way to start playing:
- Open app.noctie.ai in a desktop or mobile browser — not the native iOS / Android app.
- Log in (see Accounts) with an email code, Google, or Apple.
- Go to Play in the sidebar.
-
To type moves: Tab to the field labeled "Move
and command input", type a move such as e4, and press
Enter.
To use the board cursor: Tab once more onto the board (VoiceOver: turn Quick Nav off), move with the arrow keys, press Space or Enter to select a piece, and again on the destination to play it. - At any time, press ? on the board, or type help in the input, for the full list of keys and commands.
4. Web vs. native apps (and mobile)
Noctie ships as a web app and as native iOS/Android apps.
- Web app — Supported. All the accessibility described in this guide is in the web app.
- Native iOS/Android apps — Not yet. Only a few buttons are labeled; the board is not screen-reader navigable, there are no announcements, and there is no keyboard model.
Recommendation: if you are blind or low-vision, use the web app — including on your phone. Open the mobile website in your browser rather than the native app.
5. Accounts, login and premium
You need an account
A few things work logged out (you can try Play, and open a shared review or flashcard link), but most features require login: home, flashcards, opening books, themes, progress, profile, and position setup.
How to sign up or log in
The landing page is the login page.
-
Choose a sign-in method:
- Email code — enter your email, press Send code, then type the 6-digit code we email you. There is no password; we email a code each time.
- Continue with Google, or
- Sign in with Apple.
- New users: follow the "Sign up first." link to the sign-up page, or just sign in — first-time sign-in creates the account.
Fields are labeled. A live region announces progress ("Sending code to your email…", "Verifying code…"), and validation errors are announced as alerts.
Free vs. premium
- Noctie Free: unlimited play, a daily game with live feedback, flashcards from your mistakes, and basic content.
- Club Noctie (premium): instant move feedback and hints, flashcards from your games, "play the opening you want", and all lessons.
Free accounts get a few premium "game tokens" that unlock the premium feature set on individual games; after that, premium features prompt you to upgrade. You upgrade from the sidebar, the Profile page, or any "Upgrade" prompt (monthly or yearly billing; a one-time lifetime option is on a separate page). Checkout opens an external payment site.
Screen-reader testers: if you rely on a screen reader and want to help us test, we'll happily give you a free premium account — just email support@noctie.ai.
6. Getting around the app
Landmarks and page announcements
- The app has a navigation landmark (the sidebar, labeled "Site navigation"; logged-out pages use a simple top nav) and a main landmark. Use landmark navigation to jump between them.
- On every page change, Noctie announces the page name (e.g. "Play", "Flashcards"), so after you follow a link you are told where you landed.
- Every page has a top-level heading, even when no title is shown visually, so heading navigation answers "what page is this?".
The sidebar (when logged in)
The left sidebar holds the primary navigation, in this order: Home, Play, Setup (build a position), Flashcards, Opening Books, Themes, Progress, Profile. On a narrow screen it collapses into a menu / hamburger button in a top bar; activate it to open the navigation drawer.
Tab order
Tab order follows the visual reading order, and we keep the number of tab stops low — lists are a single tab stop plus arrow keys, so you do not tab through every item.
Partial Known gap: there are no "skip to content" links yet, and the board and side panels are not separate landmarks. Use page-name announcements, heading navigation, and the board/input shortcuts (see Using the chess board) to move around quickly.
7. Chess-board pages: layout
The board pages — Play, Flashcard, Scenario, Review, and Setup — share a layout with three areas:
- Sidebar — app navigation (see Getting around).
- Board area — the chess board plus a move/command text input sitting just before it.
- Context area — page-specific controls and information (new-game button, hints/takeback, status, variation list, and so on).
Tab order on a board page: you reach the move/command input first, then the board, then the context controls. The 64 squares are not individual tab stops — you tab onto the board once, then move within it with arrow keys and shortcuts.
You usually don't need the context area. Everything you need during a game is either a board shortcut/command or announced automatically — read the clock with c, the last move with l, game info with g, and use commands like hint, takeback, resign, newgame and quality. You can play a whole game without tabbing past the board. Tab to the context area only for extras that have no command — the settings menu (flip board, copy FEN/PGN, share link, open in Lichess analysis).
Jumping between the board and the input (the two main ways to play):
- From the board, press i to jump to the move/command input.
- From the input, type board (or board e4 to land on a square) and press Enter to jump back to the board.
There is no shortcut to jump to the sidebar — reach it via Tab or your screen reader's landmark/heading navigation.
8. Using the chess board
There are two complementary ways to read and play. You can mix them freely.
Method A — Arrow-key cursor (board has keyboard focus)
The board is an application region (see Glossary) labeled "Chess board. Press question mark for help." Tab to it (it comes right after the move input) or type board in the input. VoiceOver: turn Quick Nav off first.
Once the board is focused:
- Arrow keys move a cursor one square at a time, matching the on-screen orientation. Each square is announced, e.g. "e4, White Pawn" or "e5" (empty).
- Space or Enter on a piece selects it ("White Pawn on e2 selected, 2 moves available"). Move to a destination and press Space/Enter again to play ("Knight takes e5. Check. Black to move.").
- Escape deselects a selected piece; with nothing selected, Escape leaves the board.
- Premoves: when it is not your turn, queue a move the same way; it is announced as a premove and plays automatically when your turn comes.
- Promotion: a dialog announces "Promote piece. Press q, r, b, n or escape to cancel." Press the letter for the piece you want.
| Key | Does |
|---|---|
| Arrow keys | Move the cursor; announce the new square and piece. |
| Space / Enter | Select the piece under the cursor, or play to the cursor square. |
| Escape | Deselect; or, if nothing is selected, leave the board. |
| o | Announce the current square and piece. |
| l | Announce the last move (with move quality, if quality feedback is on). |
| c | Announce both clocks. |
| g | Announce game info (players, time control, result). |
| v | Read the whole position (all pieces, by color). |
| m | Announce legal moves of the currently selected piece. |
| i | Jump to the move/command input. |
| ? | Read the keyboard help. |
| k q r b n p | Jump the cursor to your next King / Queen / Rook / Bishop / Knight / Pawn. |
| Alt + A–H | Jump to that file (keeping the current rank). |
| Alt + 1–8 | Jump to that rank (keeping the current file). |
| Shift + A / Shift + D | Step back / forward through moves (in review or finished games). |
Tip: typed in the input, v (view) accepts a target — view white, view black, view 1 (a rank), or view a3 (a square). See Method B.
Method B — Move and command input (type moves and commands)
Just before the board is a text field labeled "Move and command input. Type a move or type help." Reach it with Tab or by pressing i on the board.
Typing moves (press Enter to submit):
- Standard algebraic notation (SAN): e4, Nf3, Bxe5, O-O, O-O-O. Piece letters are case-insensitive (nf3 works).
- Coordinate / UCI notation: e2e4, and e7e8q for promotion.
- On success the move is announced ("Bishop takes e5. Check"). If it cannot be played you hear "Invalid move: …".
| Command (aliases) | What it does |
|---|---|
| board (board e4) | Focus the board (optionally jump the cursor to a square). |
| last | Announce the last move. |
| clock | Announce both clocks. |
| game | Announce game info. |
| view (read, v, r) | Read the position; optional target: white, black, a rank 1–8, or a square like a3. |
| hint | Ask for a hint (premium / token-gated). |
| takeback | Take back your move (premium / token-gated). |
| resign | Resign the game. |
| quality (q) | Toggle move-quality feedback. |
| newgame (new) | Open the new-game dialog. |
| help (?) | Read the command help. |
When a game you are playing ends, the input switches to command mode: typed moves are no longer accepted, and help lists the commands that still apply (newgame, board, last, game, view, quality). In review there is no input at all — read with board shortcuts.
9. Feature-by-feature status
Play vs Noctie — Supported
Fully supported via both board methods, with announcements for your and the opponent's moves, check/checkmate, and game start and over. Hints, takebacks, and resign work as commands or buttons (live feedback, hints, and takebacks are premium or token-gated).
Time controls and the clock. In the new-game dialog you can choose a time control or set Unlimited (no clock). Keep a blitz or rapid time if you want Noctie to move quickly. Don't worry about your own clock: if you run out of time the game does not end — a dialog ("You lost on time!") lets you choose Play on (the game switches to Unlimited) or Give up. So there is no need to feel rushed by a short time control.
Opening book while playing — Supported (via commands)
You can choose and follow an opening book during a game from the move/command input (press i on the board, or Tab to it). The visual book panel is deliberately not exposed to screen readers; use these commands instead (slash optional):
| Command (aliases) | What it does |
|---|---|
| book (ob) | Announce book status: active book(s), in/out of book, target, end-of-variation. |
| books (selectbook) | Open the opening-selection dialog. Selecting/deselecting a book is announced, including the active-book list and a "wrong color" warning. |
| continuations (lines) | Announce the book's continuation moves here. Play one by typing it. |
| restart | Restart the book / variation. |
| next (nextvariation, nextvar) | Jump to the next variation (when at the end of one). |
| continue | Let your opponent move when you are out of book on their turn. |
| revert (tobook) | Undo a move that left the book and return to it. |
| target (bookmarks) | Open the target / bookmarks dialog. |
| booksettings | Open the opening-practice settings dialog. |
With a book active, opponent moves are announced with context ("Black played Pawn e5. From the opening book" / "…Leaving the opening book"). At the end of a variation, or when you deviate, play pauses and a spoken prompt tells you what to do ("End of the variation. Play any move to continue, or type restart."). The selection, bookmarks, and settings dialogs are keyboard-operable and labeled.
Partial Gap: in the target/bookmarks dialog, "Custom variation" opens a visual move tree that is mouse-only. Use "Current variation" or a bookmark to set a target instead.
Game review / walkthrough — Supported (minor gap)
Review is a step-through experience: you move back and forth through the game and read the board. There are no moves to type, so there is no command input — read with board shortcuts. Navigate squares with arrow keys, step with Shift+A / Shift+D (each move is announced, plus "Exercise available, tab to select" where there is a flashcard), and read with o, l, g, v, c, m, ?. Move quality is announced via l and the quality toggle. Open a review from the Progress page.
Partial Gap: the variations / side-lines list is not keyboard-focusable, so you can step the mainline but cannot jump into side lines from the list.
Flashcards — Supported
- Solving a card (standalone or inside review) uses the full accessible board with the move/command input and correct / incorrect / alternative feedback.
- The Flashcards page (deck list) has proper headings, labeled deck buttons (including state like "active deck"), and a progress indicator with a descriptive label.
Connect accounts (import games) — Supported
Link a Chess.com or Lichess account to import your games; Noctie analyses them and creates flashcards from your mistakes. Reach it from Profile → "Linked accounts" → Connect, or during onboarding. Type a username, use the Up/Down arrows to move through the suggestions (they're exposed as a list, with a live "searching / N results / not found" status), press Enter to pick one, then confirm; the connected-account and remove controls are real buttons. Once imported, games open in the accessible Review and Flashcard experiences above. This flow was recently made keyboard- and screen-reader-accessible, so it's a good one to test.
Opening Books page — browse Supported / create-edit Supported
- Browsing your library and public books is supported (headings, labeled folder buttons with expanded state, an accessible "Create opening book" button).
- Creating / editing a book is supported. A book's moves always come from a PGN (paste or upload) — there is no move-by-move board editor for anyone, sighted or not, and the move tree shown on a book's page is only a visual overview. The name, description, PGN-import, colour and visibility toggles, and save controls are all labelled, so you can create and edit a book by typing and importing. One caveat: the optional bookmark position-picker still selects a position from the visual move tree.
Themes / lessons — Partial (mixed)
- Themes list and the theme shell (titles, prev/next) — Supported.
- Scenario view (play out a position) — Supported (accessible board + status announcements).
- Flashcard view — Supported (reuses the accessible flashcard board).
- Instruction view — Partial: you can read the lesson text and use the labeled step controls (first / previous / next / last, plus "Step forward" and "Complete"), but the board is the legacy inaccessible board and the move list is not keyboard-operable.
Profile / Progress — Supported
- Profile: labeled headings, grouped settings, accessible display-name input and subscription controls.
- Progress: game cards are buttons with descriptive labels (e.g. "… White vs Black"), with status conveyed as text, not color or icon alone.
New Game dialog and Settings — Supported
The new-game dialog announces difficulty/color/opening changes (polite live region), groups Difficulty / Time control / Color with labels, and labels every stepper button. Choosing a time control opens a sub-dialog with accessible sliders (announcing meaningful values like the base time, not raw numbers), and the opening selection uses an accessible combobox. The settings dialog is similarly labeled. Dialogs trap focus and announce their title on open.
Position setup (Setup page) — Supported
The position builder has its own accessible board ("Position builder board"), a live region for status, and a keyboard model for placing/removing pieces and reading the position. Letter keys place pieces (Q/K/R/B/N/P for black, Shift+letter for white, D or Delete to remove). The FEN field is labeled. The visual piece palette is not exposed to screen readers; use the placement keys.
Rate Me (rating challenge) — Partial (needs testing)
"Rate Me" is a rating test for logged-out visitors at app.noctie.ai/rate-me, reached from the call-to-action button on the public noctie.ai marketing page. You don't need it — we suggest creating an account and using the logged-in app instead. If you do try it, it uses the same accessible board and game-state announcements as Play, but it has not been specifically verified, so testing is welcome.
Onboarding / login — Supported
Sign-in and sign-up forms have labeled fields, a live region for progress ("Sending code…", "Verifying code…"), and validation errors surfaced as alerts.
Native iOS/Android apps — Not yet
No accessible board, no announcements, no keyboard model. Use the mobile website instead (see Web vs. native).
10. Known gaps at a glance
| Area | Status | Note |
|---|---|---|
| Play board (keyboard + commands) | Supported | Core experience. |
| Opening book during play | Supported | Command-driven; status and pauses announced. Custom-variation tree picker is mouse-only. |
| Review / walkthrough | Partial | Step-through works; no command input here — use board shortcuts. Side-lines list not focusable. |
| Flashcards (solve + list) | Supported | — |
| Connect accounts (import games) | Supported | Username search is a keyboard combobox with announced results; account chips are buttons. Recently added — worth testing. |
| Opening Books — browse | Supported | — |
| Opening Books — create/edit | Supported | PGN-based (no board editor for anyone); controls labelled. Caveat: bookmark position-picker uses the visual move tree. |
| Themes — scenario / flashcard | Supported | — |
| Themes — instruction view | Partial | Text and nav OK; legacy board, move list not keyboard-operable. |
| Profile / Progress | Supported | — |
| New Game / Settings dialogs | Supported | — |
| Position setup | Supported | — |
| Rate Me | Partial | Optional logged-out page (app.noctie.ai/rate-me); prefer the logged-in app. Same infra as Play; needs testing. |
| Skip links / region jumps | Partial | No skip links; only board/input shortcuts. |
| Native apps | Not yet | Use mobile web. |
11. For testers
Before you start
- Use the web app at app.noctie.ai, on desktop or the mobile website. Do not test accessibility in the native apps.
- In every report, note your exact setup: screen reader + version, browser, OS (e.g. "VoiceOver, Safari, macOS 14" / "NVDA 2024.x, Chrome, Windows 11" / "JAWS 2024, Chrome, Windows 11" / "VoiceOver, Safari, iOS 17" / "TalkBack, Chrome, Android 14").
- VoiceOver: turn Quick Nav off (Left + Right arrow keys together) before using board shortcuts.
- NVDA / JAWS: confirm the board responds to arrow keys and single-key shortcuts; note if you have to switch modes.
Suggested test flows
- Log in with an email code, and with Google/Apple. Was each step announced?
- Navigate via the sidebar and via landmarks/headings. Did each page announce its name?
- Play a full game with Method A (arrow-key cursor): select, move, capture, castle, promote, and try a premove. Use o, l, c, g, v, m, ?.
- Play a game with Method B (type SAN and UCI moves; try every command).
- End a game and confirm the result is announced and the input switches to command mode.
- Review the finished game: step with Shift+A/D. Can you tell where the mistakes were?
- Solve a flashcard end to end.
- Connect a Chess.com or Lichess account (Profile → Linked accounts → Connect) and import a game. Could you find a username, pick it, and confirm? Note where the search/selection was hard.
- Browse flashcards, opening books, themes, progress, and profile.
- Play a game using one of the existing opening books, and try the opening controls/commands (book, books, continuations, restart, target…).
- From Home, play the weekly scenario and/or the daily flashcard.
- Go through one of the existing themes and solve all of its elements (instructions, scenarios, flashcards).
- Deliberately try the remaining Partial / Not yet areas — the theme instruction view, the review side-lines list, the opening-book "Custom variation" / bookmark tree pickers, and the native apps — and describe exactly where you get stuck.
What we most want to know
- Anywhere you get stuck or cannot complete an action with the keyboard or screen reader.
- Announcements that are missing, wrong, or too verbose/repetitive.
- Focus getting lost (after dialogs, navigation, or game-over).
- Whether the experience works as intended for an experienced user of alternative screen readers like NVDA, JAWS, Narrator, and Android TalkBack.
- Whether the known gaps (see Known gaps) match what you find.
How to give feedback
Reach us via the in-app feedback widget, our Discord, or email support@noctie.ai. For each issue, please include:
- Your setup (screen reader + browser + OS).
- The page/feature, and whether you used Method A or B.
- Steps to reproduce, what you expected, and what you heard/experienced.
- Severity: blocker (cannot proceed) / annoyance / polish.
12. Glossary
- Quick Nav
- A VoiceOver feature that lets you move through a page with the arrow keys alone. While it is on, the board's arrow-key and single-key shortcuts do not reach the page. Turn it off with the Left and Right arrow keys together.
- Application region / mode
- A part of the page that takes over keyboard keys so they act as app shortcuts instead of screen-reader commands. The board is one — this is why its single keys work.
- Premove
- A move you queue when it is not your turn; it plays automatically once it is.
- SAN (Standard Algebraic Notation)
- Normal chess notation, like e4, Nf3, Bxe5, O-O.
- UCI / coordinate notation
- Start and destination squares written together, like e2e4 (and e7e8q to promote).
- Blindfold mode
- An unrelated training setting that hides the pieces on screen as a challenge. It is not a screen-reader feature.