8 8
9Claude Code 具有屏幕阅读器模式,可将其视觉终端界面替换为纯文本、线性文本。该模式不使用框、进度动画和原地重绘,而是打印带标签的行,屏幕阅读器(如 VoiceOver 或 NVDA)按顺序读取这些行,因此您可以进行完整对话、批准工具权限并从头到尾查看输出。9Claude Code 具有屏幕阅读器模式,可将其视觉终端界面替换为纯文本、线性文本。该模式不使用框、进度动画和原地重绘,而是打印带标签的行,屏幕阅读器(如 VoiceOver 或 NVDA)按顺序读取这些行,因此您可以进行完整对话、批准工具权限并从头到尾查看输出。
10 10
11屏幕阅读器模式是可选的。如果您使用屏幕放大镜、减少动画或色盲友好主题而不是屏幕阅读器,请从[辅助功能设置](#accessibility-settings)表中设置 `CLAUDE_CODE_ACCESSIBILITY`、`prefersReducedMotion` 或 `theme`。屏幕阅读器模式仅调整终端界面,因此您不需要在 VS Code 扩展的聊天面板中使用它。在 Claude Code v2.1.236 或更高版本上,该扩展[在不需要任何设置的情况下向您的屏幕阅读器宣布对话活动](/docs/zh-CN/vs-code.md#use-a-screen-reader)。11屏幕阅读器模式是可选的。如果您使用屏幕放大镜、减少动画或色盲友好主题而不是屏幕阅读器,请从[辅助功能设置](#accessibility-settings)表中设置 `CLAUDE_CODE_ACCESSIBILITY`、`prefersReducedMotion` 或 `theme`。屏幕阅读器模式仅调整终端界面,因此您不需要在 VS Code 扩展的聊天面板中使用它。在 Claude Code v2.1.236 或更高版本上,该扩展[在不需要任何设置的情况下向您的屏幕阅读器宣布对话活动](https://code.claude.com/docs/zh-CN/vs-code.md#use-a-screen-reader)。
12 12
13## 打开屏幕阅读器模式13## 打开屏幕阅读器模式
14 14
16 16
17* 对于一个会话:运行 `claude --ax-screen-reader`。17* 对于一个会话:运行 `claude --ax-screen-reader`。
18* 对于从一个 shell 启动的会话:设置 `CLAUDE_AX_SCREEN_READER` 环境变量为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`。在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以保持它用于未来的 shell。18* 对于从一个 shell 启动的会话:设置 `CLAUDE_AX_SCREEN_READER` 环境变量为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`。在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以保持它用于未来的 shell。
19* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](/docs/zh-CN/settings.md)。该设置适用于任何终端,包括 VS Code 集成终端。19* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](https://code.claude.com/docs/zh-CN/settings.md)。该设置适用于任何终端,包括 VS Code 集成终端。
20 20
21如果您组合使用多种方法,Claude Code 会优先应用 [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志而非 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars#variables) 环境变量,并优先应用该环境变量而非 [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) 设置。21如果您组合使用多种方法,Claude Code 会优先应用 [`--ax-screen-reader`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 标志而非 [`CLAUDE_AX_SCREEN_READER`](https://code.claude.com/docs/zh-CN/env-vars#variables) 环境变量,并优先应用该环境变量而非 [`axScreenReader`](https://code.claude.com/docs/zh-CN/settings-reference#axscreenreader) 设置。
22 22
23如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。23如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。
24 24
28 28
29启动时显示的 `Screen reader mode is off: project settings can't turn it on` 这一行表示项目请求了屏幕阅读器模式,但没有其他方式将其打开。Claude Code 会忽略项目的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 `axScreenReader` 键以及 `env` 下的 `CLAUDE_AX_SCREEN_READER` 值,无论其值为何。29启动时显示的 `Screen reader mode is off: project settings can't turn it on` 这一行表示项目请求了屏幕阅读器模式,但没有其他方式将其打开。Claude Code 会忽略项目的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 `axScreenReader` 键以及 `env` 下的 `CLAUDE_AX_SCREEN_READER` 值,无论其值为何。
30 30
31* **要打开该模式**:使用 `--ax-screen-reader` 启动 Claude Code,在您的 shell 中将 `CLAUDE_AX_SCREEN_READER` 设置为 `1`,或将 `"axScreenReader": true` 添加到您的用户[设置文件](/docs/zh-CN/settings.md)并重新启动 Claude Code。您无需更改项目的文件。打开该模式后,启动时将改为显示[确认行](#turn-on-screen-reader-mode)。31* **要打开该模式**:使用 `--ax-screen-reader` 启动 Claude Code,在您的 shell 中将 `CLAUDE_AX_SCREEN_READER` 设置为 `1`,或将 `"axScreenReader": true` 添加到您的用户[设置文件](https://code.claude.com/docs/zh-CN/settings.md)并重新启动 Claude Code。您无需更改项目的文件。打开该模式后,启动时将改为显示[确认行](#turn-on-screen-reader-mode)。
32* **如果您不使用屏幕阅读器**:您无需执行任何操作。要阻止该行出现,请将 `"axScreenReader": false` 添加到您的用户设置文件,或从项目的设置文件中删除 `axScreenReader` 键和 `CLAUDE_AX_SCREEN_READER` 变量。32* **如果您不使用屏幕阅读器**:您无需执行任何操作。要阻止该行出现,请将 `"axScreenReader": false` 添加到您的用户设置文件,或从项目的设置文件中删除 `axScreenReader` 键和 `CLAUDE_AX_SCREEN_READER` 变量。
33 33
34## 关闭屏幕阅读器模式34## 关闭屏幕阅读器模式
41 41
42| 选项 | 类型 | 改变的内容 |42| 选项 | 类型 | 改变的内容 |
43| :- | :- | :- |43| :- | :- | :- |
44| [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) | 标志 | 单个会话的屏幕阅读器模式。 |44| [`--ax-screen-reader`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) | 标志 | 单个会话的屏幕阅读器模式。 |
45| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars#variables) | 环境变量 | 从您设置它的 shell 启动的会话的屏幕阅读器模式。 |45| [`CLAUDE_AX_SCREEN_READER`](https://code.claude.com/docs/zh-CN/env-vars#variables) | 环境变量 | 从您设置它的 shell 启动的会话的屏幕阅读器模式。 |
46| [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) | 设置 | 当为 `true` 时,每个会话的屏幕阅读器模式。 |46| [`axScreenReader`](https://code.claude.com/docs/zh-CN/settings-reference#axscreenreader) | 设置 | 当为 `true` 时,每个会话的屏幕阅读器模式。 |
47| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在确认行之后等待多长时间才能在屏幕阅读器模式下绘制第一个提示。需要 Claude Code v2.1.217 或更高版本。 |47| [`CLAUDE_AX_STARTUP_QUIET_MS`](https://code.claude.com/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在确认行之后等待多长时间才能在屏幕阅读器模式下绘制第一个提示。需要 Claude Code v2.1.217 或更高版本。 |
48| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | 设置后,Claude Code 在屏幕阅读器模式下写入新行或更改的行之前,将终端光标停留在当前行行首的毫秒数。需要 Claude Code v2.1.233 或更高版本。 |48| [`CLAUDE_AX_PREPARK_MS`](https://code.claude.com/docs/zh-CN/env-vars#variables) | 环境变量 | 设置后,Claude Code 在屏幕阅读器模式下写入新行或更改的行之前,将终端光标停留在当前行行首的毫秒数。需要 Claude Code v2.1.233 或更高版本。 |
49| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-CN/env-vars#variables) | 环境变量 | 当您将其设置为 `1` 时,终端光标对屏幕放大镜(如 macOS Zoom)保持可见。光标跟随输入插入符号,在 Claude Code v2.1.218 或更高版本上,跟随菜单和面板(如 `/config` 和 `/plugin`)中的突出显示行。 |49| [`CLAUDE_CODE_ACCESSIBILITY`](https://code.claude.com/docs/zh-CN/env-vars#variables) | 环境变量 | 当您将其设置为 `1` 时,终端光标对屏幕放大镜(如 macOS Zoom)保持可见。光标跟随输入插入符号,在 Claude Code v2.1.218 或更高版本上,跟随菜单和面板(如 `/config` 和 `/plugin`)中的突出显示行。 |
50| [`prefersReducedMotion`](/docs/zh-CN/settings-reference#prefersreducedmotion) | 设置 | 当为 `true` 时,减少或没有旋转器、闪烁和其他动画。 |50| [`prefersReducedMotion`](https://code.claude.com/docs/zh-CN/settings-reference#prefersreducedmotion) | 设置 | 当为 `true` 时,减少或没有旋转器、闪烁和其他动画。 |
51| [`theme`](/docs/zh-CN/settings-reference#theme) | 设置 | 界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。您也可以使用 [`/theme`](/docs/zh-CN/commands#all-commands) 选择一个。 |51| [`theme`](https://code.claude.com/docs/zh-CN/settings-reference#theme) | 设置 | 界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。您也可以使用 [`/theme`](https://code.claude.com/docs/zh-CN/commands#all-commands) 选择一个。 |
52| [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) | 设置 | 当值为 `"terminal_bell"` 时,在屏幕阅读器模式外,当 Claude 等待您时发出终端铃声。 |52| [`preferredNotifChannel`](https://code.claude.com/docs/zh-CN/settings-reference#preferrednotifchannel) | 设置 | 当值为 `"terminal_bell"` 时,在屏幕阅读器模式外,当 Claude 等待您时发出终端铃声。 |
53 53
54## 屏幕阅读器听到的内容54## 屏幕阅读器听到的内容
55 55
61* Claude 回复中的表格读作 `Header: value` 句子而不是方框字符网格61* Claude 回复中的表格读作 `Header: value` 句子而不是方框字符网格
62* diff 以纯文本形式逐行读出,用 `+` 和 `-` 标记添加和删除的行,因此您可以在回答文件编辑批准提示之前听到建议的更改62* diff 以纯文本形式逐行读出,用 `+` 和 `-` 标记添加和删除的行,因此您可以在回答文件编辑批准提示之前听到建议的更改
63 63
64Claude Code 将其打印到终端滚动缓冲区中的所有内容都保留下来,因此您可以使用屏幕阅读器的审查命令或终端的搜索功能重新阅读之前的轮次。Claude Code 在屏幕阅读器模式下忽略 [`tui` 设置](/docs/zh-CN/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加后台会话外,它打印滚动文本而不是[全屏渲染](/docs/zh-CN/fullscreen.md)。64Claude Code 将其打印到终端滚动缓冲区中的所有内容都保留下来,因此您可以使用屏幕阅读器的审查命令或终端的搜索功能重新阅读之前的轮次。Claude Code 在屏幕阅读器模式下忽略 [`tui` 设置](https://code.claude.com/docs/zh-CN/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加后台会话外,它打印滚动文本而不是[全屏渲染](https://code.claude.com/docs/zh-CN/fullscreen.md)。
65 65
66Claude Code 在启动时打印[确认行](#turn-on-screen-reader-mode)后,会在绘制输入框之前等待 3 秒,以便屏幕阅读器可以读完该行。按任意键结束等待。要更改等待的长度,请设置 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables)。66Claude Code 在启动时打印[确认行](#turn-on-screen-reader-mode)后,会在绘制输入框之前等待 3 秒,以便屏幕阅读器可以读完该行。按任意键结束等待。要更改等待的长度,请设置 [`CLAUDE_AX_STARTUP_QUIET_MS`](https://code.claude.com/docs/zh-CN/env-vars#variables)。
67 67
68会话记录中的每条消息都以屏幕阅读器宣布的标签开头,命名其内容:您的消息、Claude 的回复和思考、工具活动、错误和警告以及提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动缓冲区在会话记录的各个部分之间跳转:68会话记录中的每条消息都以屏幕阅读器宣布的标签开头,命名其内容:您的消息、Claude 的回复和思考、工具活动、错误和警告以及提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动缓冲区在会话记录的各个部分之间跳转:
69 69
77| `error:` | 对话中的错误,例如失败的 API 请求 |77| `error:` | 对话中的错误,例如失败的 API 请求 |
78| `warning:` | Claude Code 的警告,例如切换到备用模型 |78| `warning:` | Claude Code 的警告,例如切换到备用模型 |
79| `Permission Required:` | 等待您的答案的权限提示 |79| `Permission Required:` | 等待您的答案的权限提示 |
80| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](/docs/zh-CN/costs.md) |80| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](https://code.claude.com/docs/zh-CN/costs.md) |
81 81
82Claude Code 将终端光标保持在输入插入符上,因此屏幕阅读器的读取当前行命令读取您正在编辑的输入内容。82Claude Code 将终端光标保持在输入插入符上,因此屏幕阅读器的读取当前行命令读取您正在编辑的输入内容。
83 83
84当您在输入行末尾键入时,或在那里按 `Backspace`,Claude Code 仅写入更改的字符。您的屏幕阅读器仅回显这些字符。84当您在输入行末尾键入时,或在那里按 `Backspace`,Claude Code 仅写入更改的字符。您的屏幕阅读器仅回显这些字符。
85 85
86当您使用[文本编辑快捷键](/docs/zh-CN/interactive-mode.md#text-editing)之一删除单词或行时,Claude Code 宣布删除的文本:86当您使用[文本编辑快捷键](https://code.claude.com/docs/zh-CN/interactive-mode.md#text-editing)之一删除单词或行时,Claude Code 宣布删除的文本:
87 87
88* 使用 `Ctrl+W` 或 `Alt+D` 删除单词,或在 macOS 上使用 `Option+Delete` 或在 Windows 上使用 `Ctrl+Backspace`88* 使用 `Ctrl+W` 或 `Alt+D` 删除单词,或在 macOS 上使用 `Option+Delete` 或在 Windows 上使用 `Ctrl+Backspace`
89* 使用 `Ctrl+U` 或 `Cmd+Backspace` 删除到行的开始89* 使用 `Ctrl+U` 或 `Cmd+Backspace` 删除到行的开始
90* 使用 `Ctrl+K` 删除到行的末尾90* 使用 `Ctrl+K` 删除到行的末尾
91 91
92当您使用 `Shift+Tab` 循环[权限模式](/docs/zh-CN/permission-modes.md)时,Claude Code 宣布您切换到的权限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 打印公告一次,不会在以后的重绘中重复。92当您使用 `Shift+Tab` 循环[权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md)时,Claude Code 宣布您切换到的权限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 打印公告一次,不会在以后的重绘中重复。
93 93
94### 阅读之前的输出而不丢失位置94### 阅读之前的输出而不丢失位置
95 95
115* 按 Escape 键取消提示以 `or Escape to cancel` 结尾的菜单。115* 按 Escape 键取消提示以 `or Escape to cancel` 结尾的菜单。
116* 如果您输入的数字不在列表中,Claude Code 会宣布有效范围,让您重试。116* 如果您输入的数字不在列表中,Claude Code 会宣布有效范围,让您重试。
117 117
118[`/effort`](/docs/zh-CN/model-config#adjust-effort-level) 选择器在屏幕阅读器模式外是一个滑块,在屏幕阅读器模式中变成相同类型的编号列表。118[`/effort`](https://code.claude.com/docs/zh-CN/model-config#adjust-effort-level) 选择器在屏幕阅读器模式外是一个滑块,在屏幕阅读器模式中变成相同类型的编号列表。
119 119
120是或否提示要求输入类型的答案,而不是两选项菜单。回答 `y` 或 `n` 并按 Enter。`yes` 和 `no` 也可以。120是或否提示要求输入类型的答案,而不是两选项菜单。回答 `y` 或 `n` 并按 Enter。`yes` 和 `no` 也可以。
121 121
127* 提示或对话框需要你的答案,例如权限提示127* 提示或对话框需要你的答案,例如权限提示
128* 运行时间超过 5 秒的工具完成128* 运行时间超过 5 秒的工具完成
129 129
130铃声是你的终端的标准警报。要使其静音,请更改你的终端应用程序中的铃声设置。在屏幕阅读器模式之外,设置 [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) 为 `"terminal_bell"` 以在 Claude 等待你时获得[类似的铃声](/docs/zh-CN/terminal-config.md#get-a-terminal-bell-or-notification)。130铃声是你的终端的标准警报。要使其静音,请更改你的终端应用程序中的铃声设置。在屏幕阅读器模式之外,设置 [`preferredNotifChannel`](https://code.claude.com/docs/zh-CN/settings-reference#preferrednotifchannel) 为 `"terminal_bell"` 以在 Claude 等待你时获得[类似的铃声](https://code.claude.com/docs/zh-CN/terminal-config.md#get-a-terminal-bell-or-notification)。
131 131
132## 已知限制132## 已知限制
133 133
134某些行为不适应屏幕阅读器模式:134某些行为不适应屏幕阅读器模式:
135 135
136* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。136* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。
137* Claude Code 不会宣布通过命令进行的权限模式更改,例如使用 `/plan` 进入[计划模式](/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)。137* Claude Code 不会宣布通过命令进行的权限模式更改,例如使用 `/plan` 进入[计划模式](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)。
138* 使用 `claude attach` 或从代理视图附加到[后台会话](/docs/zh-CN/agent-view.md)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](/docs/zh-CN/fullscreen.md)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。138* 使用 `claude attach` 或从代理视图附加到[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](https://code.claude.com/docs/zh-CN/fullscreen.md)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。
139* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。139* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。
140* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless.md)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。140* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。
141 141
142## 报告问题142## 报告问题
143 143