Follow Discord
Sweep 27 Oct 2026 · 19:04Z Build v2.1.312 531 read Stable v2.1.308 Latest v2.1.312 Next v2.1.312 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Use Claude Code with a screen reader changedaccessibility

Nearest release: v2.1.309, published 2 hours after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 22 Oct 2026 18:08 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 23 Oct 2026 19:07 UTC.

Upstream edited
Recorded here
Lines+23added
Lines−23removed
From line 4 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits14to this page, all time

The whole hunk

from line 4, old and new numbered
/
lines
from line 4
44 
55Claude Code has a screen reader mode that replaces its visual terminal interface with plain, linear text. Instead of boxes, progress animations, and in-place redraws, Claude Code prints labeled lines that a screen reader such as VoiceOver or NVDA reads in order. You can hold a full conversation, approve tool permissions, and review output end to end.
66 
7Screen reader mode is opt-in. If you use a screen magnifier, reduced motion, or a colorblind-friendly theme instead of a screen reader, set `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion`, or `theme` from the [Accessibility settings](#accessibility-settings) table. Screen reader mode adapts the terminal interface only, so you don't need it in the VS Code extension's chat panel. On Claude Code v2.1.236 or later, the extension [announces conversation activity to your screen reader](/docs/en/vs-code.md#use-a-screen-reader) there without any setting.
7Screen reader mode is opt-in. If you use a screen magnifier, reduced motion, or a colorblind-friendly theme instead of a screen reader, set `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion`, or `theme` from the [Accessibility settings](#accessibility-settings) table. Screen reader mode adapts the terminal interface only, so you don't need it in the VS Code extension's chat panel. On Claude Code v2.1.236 or later, the extension [announces conversation activity to your screen reader](https://code.claude.com/docs/en/vs-code.md#use-a-screen-reader) there without any setting.
88 
99## Turn on screen reader mode
1010 
from line 12
1212 
1313* For one session: run `claude --ax-screen-reader`.
1414* For sessions started from one shell: set the `CLAUDE_AX_SCREEN_READER` environment variable to `1`. In Bash or Zsh, run `export CLAUDE_AX_SCREEN_READER=1`. In PowerShell, run `$env:CLAUDE_AX_SCREEN_READER = "1"`. Add that line to your shell profile to keep it for future shells.
15* For every session on the machine: add `"axScreenReader": true` to your user [settings file](/docs/en/settings.md). The setting applies in any terminal, including the VS Code integrated terminal.
15* For every session on the machine: add `"axScreenReader": true` to your user [settings file](https://code.claude.com/docs/en/settings.md). The setting applies in any terminal, including the VS Code integrated terminal.
1616 
17If you combine methods, Claude Code applies the [`--ax-screen-reader`](/docs/en/cli-reference#cli-flags) flag over the [`CLAUDE_AX_SCREEN_READER`](/docs/en/env-vars#variables) environment variable, and the variable over the [`axScreenReader`](/docs/en/settings-reference#axscreenreader) setting.
17If you combine methods, Claude Code applies the [`--ax-screen-reader`](https://code.claude.com/docs/en/cli-reference#cli-flags) flag over the [`CLAUDE_AX_SCREEN_READER`](https://code.claude.com/docs/en/env-vars#variables) environment variable, and the variable over the [`axScreenReader`](https://code.claude.com/docs/en/settings-reference#axscreenreader) setting.
1818 
1919If you use Claude Code over SSH, set the environment variable or setting on the remote machine where Claude Code runs.
2020 
from line 24
2424 
2525The startup line `Screen reader mode is off: project settings can't turn it on` means the project asked for screen reader mode and nothing else turns it on. Claude Code ignores both the `axScreenReader` key and a `CLAUDE_AX_SCREEN_READER` value under `env` in the project's `.claude/settings.json` and `.claude/settings.local.json`, whatever their value.
2626 
27* **To turn the mode on**: start Claude Code with `--ax-screen-reader`, set `CLAUDE_AX_SCREEN_READER` to `1` in your shell, or add `"axScreenReader": true` to your user [settings file](/docs/en/settings.md) and restart Claude Code. You don't need to change the project's files. Once you turn the mode on, the [confirmation line](#turn-on-screen-reader-mode) appears at startup instead.
27* **To turn the mode on**: start Claude Code with `--ax-screen-reader`, set `CLAUDE_AX_SCREEN_READER` to `1` in your shell, or add `"axScreenReader": true` to your user [settings file](https://code.claude.com/docs/en/settings.md) and restart Claude Code. You don't need to change the project's files. Once you turn the mode on, the [confirmation line](#turn-on-screen-reader-mode) appears at startup instead.
2828* **If you don't use a screen reader**: you don't need to do anything. To stop the line from appearing, add `"axScreenReader": false` to your user settings file, or remove the `axScreenReader` key and the `CLAUDE_AX_SCREEN_READER` variable from the project's settings files.
2929 
3030## Turn off screen reader mode
from line 37
3737 
3838| Option | Type | What it changes |
3939| :- | :- | :- |
40| [`--ax-screen-reader`](/docs/en/cli-reference#cli-flags) | Flag | Screen reader mode for one session. |
41| [`CLAUDE_AX_SCREEN_READER`](/docs/en/env-vars#variables) | Environment variable | Screen reader mode for sessions started from the shell where you set it. |
42| [`axScreenReader`](/docs/en/settings-reference#axscreenreader) | Setting | Screen reader mode for every session when `true`. |
43| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/en/env-vars#variables) | Environment variable | How long Claude Code waits after the confirmation line before it draws the first prompt in screen reader mode. Requires Claude Code v2.1.217 or later. |
44| [`CLAUDE_AX_PREPARK_MS`](/docs/en/env-vars#variables) | Environment variable | When you set it, how many milliseconds Claude Code holds the terminal cursor at the start of the current line before writing a new or changed line in screen reader mode. Requires Claude Code v2.1.233 or later. |
45| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/en/env-vars#variables) | Environment variable | A terminal cursor that stays visible for screen magnifiers such as macOS Zoom when you set it to `1`. The cursor follows the input caret and, on Claude Code v2.1.218 or later, the highlighted row in menus and panels such as `/config` and `/plugin`. |
46| [`prefersReducedMotion`](/docs/en/settings-reference#prefersreducedmotion) | Setting | Reduced or no spinners, shimmer, and other animations when `true`. |
47| [`theme`](/docs/en/settings-reference#theme) | Setting | The interface colors, including the colorblind-friendly `dark-daltonized` and `light-daltonized` themes. You can also pick one with [`/theme`](/docs/en/commands#all-commands). |
48| [`preferredNotifChannel`](/docs/en/settings-reference#preferrednotifchannel) | Setting | With the value `"terminal_bell"`, a terminal bell outside screen reader mode when Claude is waiting on you. |
40| [`--ax-screen-reader`](https://code.claude.com/docs/en/cli-reference#cli-flags) | Flag | Screen reader mode for one session. |
41| [`CLAUDE_AX_SCREEN_READER`](https://code.claude.com/docs/en/env-vars#variables) | Environment variable | Screen reader mode for sessions started from the shell where you set it. |
42| [`axScreenReader`](https://code.claude.com/docs/en/settings-reference#axscreenreader) | Setting | Screen reader mode for every session when `true`. |
43| [`CLAUDE_AX_STARTUP_QUIET_MS`](https://code.claude.com/docs/en/env-vars#variables) | Environment variable | How long Claude Code waits after the confirmation line before it draws the first prompt in screen reader mode. Requires Claude Code v2.1.217 or later. |
44| [`CLAUDE_AX_PREPARK_MS`](https://code.claude.com/docs/en/env-vars#variables) | Environment variable | When you set it, how many milliseconds Claude Code holds the terminal cursor at the start of the current line before writing a new or changed line in screen reader mode. Requires Claude Code v2.1.233 or later. |
45| [`CLAUDE_CODE_ACCESSIBILITY`](https://code.claude.com/docs/en/env-vars#variables) | Environment variable | A terminal cursor that stays visible for screen magnifiers such as macOS Zoom when you set it to `1`. The cursor follows the input caret and, on Claude Code v2.1.218 or later, the highlighted row in menus and panels such as `/config` and `/plugin`. |
46| [`prefersReducedMotion`](https://code.claude.com/docs/en/settings-reference#prefersreducedmotion) | Setting | Reduced or no spinners, shimmer, and other animations when `true`. |
47| [`theme`](https://code.claude.com/docs/en/settings-reference#theme) | Setting | The interface colors, including the colorblind-friendly `dark-daltonized` and `light-daltonized` themes. You can also pick one with [`/theme`](https://code.claude.com/docs/en/commands#all-commands). |
48| [`preferredNotifChannel`](https://code.claude.com/docs/en/settings-reference#preferrednotifchannel) | Setting | With the value `"terminal_bell"`, a terminal bell outside screen reader mode when Claude is waiting on you. |
4949 
5050## What your screen reader hears
5151 
from line 57
5757* Tables in Claude's replies read as `Header: value` sentences instead of a box-character grid
5858* Diffs read as plain text, line by line with `+` and `-` marking added and removed lines, so you can hear the proposed change in a file edit approval prompt before you answer it
5959 
60Claude Code leaves everything it prints in your terminal's scrollback, so you can re-read earlier turns with your screen reader's review commands or your terminal's search. Claude Code ignores the [`tui` setting](/docs/en/settings-reference#tui) in screen reader mode. Apart from the attached background sessions listed under [Known limitations](#known-limitations), it prints scrolling text instead of [fullscreen rendering](/docs/en/fullscreen.md).
60Claude Code leaves everything it prints in your terminal's scrollback, so you can re-read earlier turns with your screen reader's review commands or your terminal's search. Claude Code ignores the [`tui` setting](https://code.claude.com/docs/en/settings-reference#tui) in screen reader mode. Apart from the attached background sessions listed under [Known limitations](#known-limitations), it prints scrolling text instead of [fullscreen rendering](https://code.claude.com/docs/en/fullscreen.md).
6161 
62After Claude Code prints the [confirmation line](#turn-on-screen-reader-mode) at startup, it waits 3 seconds before it draws the prompt, so your screen reader can finish the line. Press any key to end the wait. To change the length of the wait, set [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/en/env-vars#variables).
62After Claude Code prints the [confirmation line](#turn-on-screen-reader-mode) at startup, it waits 3 seconds before it draws the prompt, so your screen reader can finish the line. Press any key to end the wait. To change the length of the wait, set [`CLAUDE_AX_STARTUP_QUIET_MS`](https://code.claude.com/docs/en/env-vars#variables).
6363 
6464Each message in the transcript starts with a label your screen reader announces, naming what it is: your messages, Claude's replies and thinking, tool activity, errors and warnings, and prompts. The labels are also searchable, so you can jump between sections of the transcript by searching your terminal's scrollback:
6565 
from line 73
7373| `error:` | An error in the conversation, such as a failed API request |
7474| `warning:` | A warning from Claude Code, such as a switch to a fallback model |
7575| `Permission Required:` | A permission prompt waiting for your answer |
76| `Cost:` | The session cost summary when Claude Code exits, if your account [shows costs](/docs/en/costs.md) |
76| `Cost:` | The session cost summary when Claude Code exits, if your account [shows costs](https://code.claude.com/docs/en/costs.md) |
7777 
7878Claude Code keeps the terminal cursor on the input caret, so your screen reader's read-current-line command reads the prompt you're editing.
7979 
8080As you type at the end of the input line, or press `Backspace` there, Claude Code writes only the characters that change. Your screen reader echoes only those characters.
8181 
82When you delete a word or a line with one of the [text editing shortcuts](/docs/en/interactive-mode.md#text-editing), Claude Code announces the deleted text:
82When you delete a word or a line with one of the [text editing shortcuts](https://code.claude.com/docs/en/interactive-mode.md#text-editing), Claude Code announces the deleted text:
8383 
8484* Deleting words with `Ctrl+W` or `Alt+D`, or with `Option+Delete` on macOS or `Ctrl+Backspace` on Windows
8585* Deleting to the start of the line with `Ctrl+U` or `Cmd+Backspace`
8686* Deleting to the end of the line with `Ctrl+K`
8787 
88When you cycle [permission modes](/docs/en/permission-modes.md) with `Shift+Tab`, Claude Code announces the permission mode you land on, such as `[plan mode on]` or `[accept edits on]`. Claude Code prints the announcement once and doesn't repeat it on later redraws.
88When you cycle [permission modes](https://code.claude.com/docs/en/permission-modes.md) with `Shift+Tab`, Claude Code announces the permission mode you land on, such as `[plan mode on]` or `[accept edits on]`. Claude Code prints the announcement once and doesn't repeat it on later redraws.
8989 
9090### Read earlier output without losing your place
9191 
from line 111
111111* Press Escape to cancel a menu whose prompt ends with `or Escape to cancel`.
112112* If you type a number that isn't on the list, Claude Code announces the valid range and lets you try again.
113113 
114The [`/effort`](/docs/en/model-config#adjust-effort-level) selector, which is a slider outside screen reader mode, becomes the same kind of numbered list.
114The [`/effort`](https://code.claude.com/docs/en/model-config#adjust-effort-level) selector, which is a slider outside screen reader mode, becomes the same kind of numbered list.
115115 
116116Yes-or-no prompts ask for a typed answer instead of a two-option menu. Answer `y` or `n` and press Enter. `yes` and `no` also work.
117117 
from line 123
123123* A prompt or dialog needs your answer, such as a permission prompt
124124* A tool that ran longer than 5 seconds finishes
125125 
126The bell is your terminal's standard alert. To silence it, change the bell setting in your terminal application. Outside screen reader mode, set [`preferredNotifChannel`](/docs/en/settings-reference#preferrednotifchannel) to `"terminal_bell"` to get a [similar bell](/docs/en/terminal-config.md#get-a-terminal-bell-or-notification) when Claude is waiting on you.
126The bell is your terminal's standard alert. To silence it, change the bell setting in your terminal application. Outside screen reader mode, set [`preferredNotifChannel`](https://code.claude.com/docs/en/settings-reference#preferrednotifchannel) to `"terminal_bell"` to get a [similar bell](https://code.claude.com/docs/en/terminal-config.md#get-a-terminal-bell-or-notification) when Claude is waiting on you.
127127 
128128## Known limitations
129129 
from line 130
130130Some behaviors aren't adapted for screen reader mode:
131131 
132132* Screen reader mode doesn't turn on automatically when a screen reader is running.
133* Claude Code doesn't announce a permission mode change you make with a command, such as entering [plan mode](/docs/en/permission-modes.md#analyze-before-you-edit-with-plan-mode) with `/plan`.
134* Attaching to a [background session](/docs/en/agent-view.md) with `claude attach` or from agent view enters the terminal's alternate screen, which has no native scrollback. This is the [same behavior as other attached sessions](/docs/en/fullscreen.md). To get back out, press Left Arrow on an empty prompt, or Ctrl+Z if a dialog has focus.
133* Claude Code doesn't announce a permission mode change you make with a command, such as entering [plan mode](https://code.claude.com/docs/en/permission-modes.md#analyze-before-you-edit-with-plan-mode) with `/plan`.
134* Attaching to a [background session](https://code.claude.com/docs/en/agent-view.md) with `claude attach` or from agent view enters the terminal's alternate screen, which has no native scrollback. This is the [same behavior as other attached sessions](https://code.claude.com/docs/en/fullscreen.md). To get back out, press Left Arrow on an empty prompt, or Ctrl+Z if a dialog has focus.
135135* Claude Code announces costs in the summary it prints at exit, not per turn.
136* Screen reader mode doesn't change [non-interactive mode](/docs/en/headless.md) with the `-p` flag. Non-interactive mode already writes plain text and remains an alternative for scripting.
136* Screen reader mode doesn't change [non-interactive mode](https://code.claude.com/docs/en/headless.md) with the `-p` flag. Non-interactive mode already writes plain text and remains an alternative for scripting.
137137 
138138## Report an issue
139139 
Feedback