8 8
9Claude Code 具有屏幕阅读器模式,可将其视觉终端界面替换为纯文本、线性文本。该模式不使用框、进度动画和原地重绘,而是打印带标签的行,屏幕阅读器(如 VoiceOver 或 NVDA)按顺序读取这些行,因此您可以进行完整对话、批准工具权限并从头到尾查看输出。9Claude Code 具有屏幕阅读器模式,可将其视觉终端界面替换为纯文本、线性文本。该模式不使用框、进度动画和原地重绘,而是打印带标签的行,屏幕阅读器(如 VoiceOver 或 NVDA)按顺序读取这些行,因此您可以进行完整对话、批准工具权限并从头到尾查看输出。
10 10
11屏幕阅读器模式是可选的。如果您使用屏幕放大镜、减少动画或色盲友好主题而不是屏幕阅读器,请参阅[屏幕阅读器模式之外的辅助功能设置](#accessibility-settings-beyond-screen-reader-mode)。11屏幕阅读器模式是可选的。如果您使用屏幕放大镜、减少动画或色盲友好主题而不是屏幕阅读器,请从[辅助功能设置](#accessibility-settings)表中设置 `CLAUDE_CODE_ACCESSIBILITY`、`prefersReducedMotion` 或 `theme`。屏幕阅读器模式仅调整终端界面,因此您不需要在 VS Code 扩展的聊天面板中使用它。在 Claude Code v2.1.236 或更高版本上,该扩展[在不需要任何设置的情况下向您的屏幕阅读器宣布对话活动](/docs/zh-CN/vs-code#use-a-screen-reader)。
12 12
13<Note>13屏幕阅读器模式需要 Claude Code v2.1.181 或更高版本。早期版本会拒绝 `--ax-screen-reader` 标志,并显示 `error: unknown option '--ax-screen-reader'`。
14 屏幕阅读器模式需要 Claude Code v2.1.181 或更高版本。早期版本会拒绝 `--ax-screen-reader` 标志,并显示 `error: unknown option '--ax-screen-reader'`。
15</Note>
16 14
17<h2 id="turn-on-screen-reader-mode">15<h2 id="turn-on-screen-reader-mode">
18 打开屏幕阅读器模式16 打开屏幕阅读器模式
21选择与您使用屏幕阅读器频率相匹配的方法:19选择与您使用屏幕阅读器频率相匹配的方法:
22 20
23* 对于一个会话:运行 `claude --ax-screen-reader`。21* 对于一个会话:运行 `claude --ax-screen-reader`。
24* 对于从一个 shell 启动的会话:将 `CLAUDE_AX_SCREEN_READER` 环境变量设置为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`;在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以覆盖每个 shell。22* 对于从一个 shell 启动的会话:设置 `CLAUDE_AX_SCREEN_READER` 环境变量为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`。在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以保持它用于未来的 shell。
25* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](/docs/zh-CN/settings)。这涵盖任何终端,包括 VS Code 集成终端。23* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](/docs/zh-CN/settings)。该设置适用于任何终端,包括 VS Code 集成终端。
26 24
27<Note>25如果您组合方法,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) 设置。
28 这些方法按优先级顺序列出:[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志覆盖 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars) 环境变量,后者覆盖 [`axScreenReader`](/docs/zh-CN/settings#available-settings) 设置。
29</Note>
30 26
31如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。27如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。
32 28
33当模式打开时,Claude Code 打印的第一件事是一条确认行,命名打开它的方法:`[Screen Reader Mode: on via flag]`、`[Screen Reader Mode: on via env]` 或 `[Screen Reader Mode: on via settings]`。此方法命名格式需要 Claude Code v2.1.206 或更高版本。当 Claude Code 重新启动自身时(例如完成安装更新),新进程通过 `CLAUDE_AX_SCREEN_READER` 环境变量继承该模式,因此其确认行读取 `[Screen Reader Mode: on via env]`,无论您使用了哪种方法。29Claude Code 打印的第一行确认该模式:`[Screen Reader Mode: on via flag]`、`[Screen Reader Mode: on via env]` 或 `[Screen Reader Mode: on via settings]`。
34早期版本打印 `[Accessible screen reader mode: on]`。
35 30
36<h2 id="turn-off-screen-reader-mode">31<h2 id="turn-off-screen-reader-mode">
37 关闭屏幕阅读器模式32 关闭屏幕阅读器模式
38</h2>33</h2>
39 34
40反转打开模式的任何方法:启动时不使用标志、取消设置环境变量或将 `axScreenReader` 设置为 `false`。设置 `CLAUDE_AX_SCREEN_READER=0` 即使设置为 `true` 也会保持模式关闭。35反转打开模式的任何方法:启动时不使用标志、取消设置环境变量或将 `axScreenReader` 设置为 `false`。如果将 `CLAUDE_AX_SCREEN_READER` 设置为 `0`,Claude Code 即使在设置为 `true` 时也会保持模式关闭。
36
37<h2 id="accessibility-settings">
38 无障碍设置
39</h2>
40
41该表列出了每个无障碍选项、您是将其设置为标志、环境变量还是设置,以及它改变的内容。
42
43| 选项 | 类型 | 改变的内容 |
44| :------------------------------------------------------------------------- | :--- | :--------------------------------------------------------------------------------------------------------------------------- |
45| [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) | 标志 | 单个会话的屏幕阅读器模式。 |
46| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars#variables) | 环境变量 | 从您设置它的 shell 启动的会话的屏幕阅读器模式。 |
47| [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) | 设置 | 当为 `true` 时,每个会话的屏幕阅读器模式。 |
48| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在确认行之后等待多长时间才能在屏幕阅读器模式下绘制第一个提示。需要 Claude Code v2.1.217 或更高版本。 |
49| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在屏幕阅读器模式下,光标位于行首时,等待多长时间才能写入新行或更改的行。需要 Claude Code v2.1.233 或更高版本。 |
50| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-CN/env-vars#variables) | 环境变量 | 当您将其设置为 `1` 时,终端光标对屏幕放大镜(如 macOS Zoom)保持可见。光标跟随输入插入符号,在 Claude Code v2.1.218 或更高版本上,跟随菜单和面板(如 `/config` 和 `/plugin`)中的突出显示行。 |
51| [`prefersReducedMotion`](/docs/zh-CN/settings-reference#prefersreducedmotion) | 设置 | 当为 `true` 时,减少或没有旋转器、闪烁和其他动画。 |
52| [`theme`](/docs/zh-CN/settings-reference#theme) | 设置 | 界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。您也可以使用 [`/theme`](/docs/zh-CN/commands#all-commands) 选择一个。 |
53| [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) | 设置 | 当值为 `"terminal_bell"` 时,在屏幕阅读器模式外,当 Claude 等待您时发出终端铃声。 |
41 54
42<h2 id="what-your-screen-reader-hears">55<h2 id="what-your-screen-reader-hears">
43 您的屏幕阅读器听到的内容56 屏幕阅读器听到的内容
44</h2>57</h2>
45 58
46在屏幕阅读器模式中,Claude Code 写入平面文本:59在屏幕阅读器模式中,Claude Code 写入平面文本:
47 60
48* 界面装饰没有制表符绘制字符61* 界面框架没有方框绘制字符
49* 没有仅限颜色的提示62* 没有仅限颜色的提示
50* 没有未更改内容的重绘;进度旋转器呈现为静态文本63* 没有未更改内容的重绘。进度旋转器呈现为静态文本
51* Claude 回复中的表格读作 `Header: value` 句子而不是制表符字符网格。需要 Claude Code v2.1.198 或更高版本;早期版本即使在屏幕阅读器模式下也将表格绘制为网格。64* Claude 回复中的表格读作 `Header: value` 句子而不是方框字符网格
65
66Claude Code 将其打印到终端滚动条中的所有内容都保留下来,因此您可以使用屏幕阅读器的审查命令或终端的搜索功能重新阅读之前的回合。Claude Code 在屏幕阅读器模式下忽略 [`tui` 设置](/docs/zh-CN/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加后台会话外,它打印滚动文本而不是[全屏渲染](/docs/zh-CN/fullscreen)。
52 67
53输出在您的终端滚动缓冲区中累积,因此您可以使用屏幕阅读器的查看命令或终端的搜索功能重新阅读早期的轮次。68Claude Code 还在两个点等待,以便屏幕阅读器能够跟上:
54 69
55屏幕阅读器模式呈现为纯滚动文本,即使您已使用 [`tui` 设置](/docs/zh-CN/settings#available-settings)打开[全屏渲染](/docs/zh-CN/fullscreen);当模式处于活动状态时,该设置无效。附加的后台会话仍呈现全屏;请参阅[已知限制](#known-limitations)。70* Claude Code 打印确认行后,在绘制提示之前等待 3 秒,以便屏幕阅读器可以完成该行。按任意键结束等待。要更改等待的长度,请设置 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables)。
71* 在 Claude Code 写入新行或更改的行(例如提示或更多 Claude 的回复)之前,它将光标移到行的开始处并等待 50 毫秒。然后屏幕阅读器从其第一个字符读取该行。您在输入行末尾键入或删除的字符立即出现。要更改等待的长度,请设置 [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables)。
56 72
57成绩单中的每条消息都以您的屏幕阅读器宣布的标签开头,命名它是什么:您的消息、Claude 的回复、工具活动、错误和提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动缓冲区在成绩单的各个部分之间跳转:73成绩单中的每条消息都以屏幕阅读器宣布的标签开头,命名其内容:您的消息、Claude 的回复和思考、工具活动、错误和警告以及提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动条在成绩单的各个部分之间跳转:
58 74
59| 标签 | 含义 |75| 标签 | 含义 |
60| :--------------------- | :------------------------------------------------ |76| :--------------------- | :------------------------------------------------ |
61| `you:` | 您的消息 |77| `you:` | 您的消息 |
62| `claude:` | Claude 的回复 |78| `claude:` | Claude 的回复 |
79| `thinking:` | Claude 的思考 |
63| `tool:` | 工具活动,例如文件编辑或命令运行 |80| `tool:` | 工具活动,例如文件编辑或命令运行 |
64| `tool error:` | 失败的工具 |81| `tool error:` | 失败的工具 |
65| `error:` | 对话中的错误,例如失败的 API 请求 |82| `error:` | 对话中的错误,例如失败的 API 请求 |
66| `Permission Required:` | 等待您回答的权限提示 |83| `warning:` | Claude Code 的警告,例如切换到备用模型 |
84| `Permission Required:` | 等待您的答案的权限提示 |
67| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](/docs/zh-CN/costs) |85| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](/docs/zh-CN/costs) |
68 86
69终端光标跟随输入插入符号,因此屏幕阅读器的读取当前行命令用您正在编辑的提示回答"我在哪里"。87Claude Code 将终端光标保持在输入插入符上,因此屏幕阅读器的读取当前行命令读取您正在编辑的提示。
88
89当您在输入行末尾键入时,或在那里按 `Backspace`,Claude Code 仅写入更改的字符。您的屏幕阅读器仅回显这些字符。
90
91当您使用[文本编辑快捷键](/docs/zh-CN/interactive-mode#text-editing)之一删除单词或行时,Claude Code 宣布删除的文本:
92
93* 使用 `Ctrl+W` 或 `Alt+D` 删除单词,或在 macOS 上使用 `Option+Delete` 或在 Windows 上使用 `Ctrl+Backspace`
94* 使用 `Ctrl+U` 或 `Cmd+Backspace` 删除到行的开始
95* 使用 `Ctrl+K` 删除到行的末尾
96
97当您使用 `Shift+Tab` 循环[权限模式](/docs/zh-CN/permission-modes)时,Claude Code 宣布您登陆的权限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 打印公告一次,不会在以后的重绘中重复。
70 98
71<h3 id="jump-between-turns">99<h3 id="jump-between-turns">
72 在轮次之间跳转100 在回合之间跳转
73</h3>101</h3>
74 102
75Claude Code 在轮次边界处发出 OSC 133 shell 集成标记,因此您的终端的跳转到上一个提示键可在轮次之间移动,而无需读取整个成绩单:103Claude Code 在回合边界处发出 OSC 133 shell-integration 标记,因此您的终端的跳转到上一个提示键在回合之间移动,而无需阅读整个成绩单:
76 104
77* iTerm2:Cmd+Shift+Up105* iTerm2:Cmd+Shift+Up
78* VS Code 终端:Windows 上的 Ctrl+Up,macOS 上的 Cmd+Up106* VS Code 终端:Windows 上的 Ctrl+Up,macOS 上的 Cmd+Up
79* Windows Terminal:默认没有键;在其设置中绑定 `scrollToMark` 操作107* Windows Terminal:默认情况下没有键;在其设置中绑定 `scrollToMark` 操作
80* Kitty 和 Ghostty:检查终端的文档以了解其跳转到提示键108* Kitty 和 Ghostty:检查终端的文档以获取其跳转到提示键
81 109
82macOS Terminal 不对标记进行操作,Claude Code 在 WezTerm 中不发出标记。在这些终端中,搜索滚动缓冲区中的 `you:` 标签。110macOS Terminal 不对标记进行操作,Claude Code 在 WezTerm 中不发出它们。在这些终端中,搜索滚动条中的 `you:` 标签。
83 111
84<h2 id="answer-menus-and-prompts">112<h2 id="answer-menus-and-prompts">
85 回答菜单和提示113 回答菜单和提示
86</h2>114</h2>
87 115
88在屏幕阅读器模式中,您通常使用箭头键导航的菜单(包括权限提示)变成编号列表。每个选项都宣布为编号行,后跟一个 `Enter selection` 提示,该提示命名有效范围。键入您想要的选项的编号,然后按 Enter。116在屏幕阅读器模式中,您通常使用箭头键导航的菜单(包括权限提示)会变成编号列表。Claude Code 将每个选项宣布为编号行,然后是一个 `Enter selection` 提示,该提示命名有效范围。输入您想要的选项的编号,然后按 Enter。
89 117
90* 要取消可关闭的菜单:按 Escape。其提示以 `or Escape to cancel` 结尾。118* 按 Escape 键取消提示以 `or Escape to cancel` 结尾的菜单。
91* 如果您键入列表中不存在的编号:Claude Code 宣布有效范围并让您重试。119* 如果您输入的数字不在列表中,Claude Code 会宣布有效范围,让您重试。
92 120
93是或否提示要求输入类型答案而不是两选项菜单。回答 `y` 或 `n` 并按 Enter。`yes` 和 `no` 也可以。121[`/effort`](/docs/zh-CN/model-config#adjust-effort-level) 选择器在屏幕阅读器模式外是一个滑块,在屏幕阅读器模式中变成相同类型的编号列表。
122
123是或否提示要求输入类型的答案,而不是两选项菜单。回答 `y` 或 `n` 并按 Enter。`yes` 和 `no` 也可以。
94 124
95<h2 id="hear-when-claude-code-needs-you">125<h2 id="hear-when-claude-code-needs-you">
96 听到 Claude Code 何时需要您126 听取 Claude Code 何时需要你
97</h2>127</h2>
98 128
99在屏幕阅读器模式中,Claude Code 在需要您注意时会响起终端铃声,因此您不必一直检查成绩单。铃声在以下情况下响起:129在屏幕阅读器模式下,当 Claude Code 需要你的注意时,它会响起终端铃声,这样你就不必一直检查记录。铃声在以下情况下响起:
100 130
101* Claude 完成回复131* Claude 完成回复
102* 出现权限提示132* 提示或对话框需要你的答案,例如权限提示
103* 运行时间超过 5 秒的工具完成133* 运行时间超过 5 秒的工具完成
104 134
105铃声是您的终端的标准警报。要使其静音,请更改您的终端应用程序中的铃声设置。铃声不需要屏幕阅读器模式:在模式外,将 [`preferredNotifChannel`](/docs/zh-CN/settings#available-settings) 设置为 `"terminal_bell"` 以在 Claude 等待您时获得类似的警报。请参阅[获取终端铃声或通知](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification)。135铃声是你的终端的标准警报。要使其静音,请更改你的终端应用程序中的铃声设置。在屏幕阅读器模式之外,设置 [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) 为 `"terminal_bell"` 以在 Claude 等待你时获得[类似的铃声](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification)。
106
107<h2 id="accessibility-settings-beyond-screen-reader-mode">
108 屏幕阅读器模式之外的辅助功能设置
109</h2>
110
111这些选项解决屏幕阅读器模式之外的辅助功能需求。所有这些都与它一起工作。
112
113* `CLAUDE_CODE_ACCESSIBILITY` [环境变量](/docs/zh-CN/env-vars)用于屏幕放大镜。设置 `CLAUDE_CODE_ACCESSIBILITY=1` 以保持本机终端光标可见,以便放大镜(如 macOS Zoom)可以跟踪光标位置。
114* `prefersReducedMotion` [设置](/docs/zh-CN/settings#available-settings)减少或禁用旋转器、闪烁和其他动画,而不改变界面的其余部分。
115* `theme` [设置](/docs/zh-CN/settings#available-settings)选择界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。
116 136
117<h2 id="known-limitations">137<h2 id="known-limitations">
118 已知限制138 已知限制
121某些行为不适应屏幕阅读器模式:141某些行为不适应屏幕阅读器模式:
122 142
123* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。143* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。
124* 模式更改(例如进入[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode))尚未宣布。144* Claude Code 不会宣布通过除了使用 `Shift+Tab` 循环以外的任何方式进行的权限模式更改,例如从命令进入[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)。
125* 使用 `claude attach` 或从代理视图附加到[后台会话](/docs/zh-CN/agent-view)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](/docs/zh-CN/fullscreen)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。145* 使用 `claude attach` 或从代理视图附加到[后台会话](/docs/zh-CN/agent-view)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](/docs/zh-CN/fullscreen)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。
126* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。146* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。
127* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。147* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。
131</h2>151</h2>
132 152
133如果屏幕阅读器、放大镜或终端出现问题,请在 [Claude Code 问题跟踪器](https://github.com/anthropics/claude-code/issues)上打开问题,并在标题中提及您的辅助技术。在报告中包括您的操作系统、终端应用程序以及辅助技术名称和版本。153如果屏幕阅读器、放大镜或终端出现问题,请在 [Claude Code 问题跟踪器](https://github.com/anthropics/claude-code/issues)上打开问题,并在标题中提及您的辅助技术。在报告中包括您的操作系统、终端应用程序以及辅助技术名称和版本。
134
135<h2 id="related-resources">
136 相关资源
137</h2>
138
139这些页面包含此页面涵盖内容的完整参考条目和相关设置:
140
141* [Settings](/docs/zh-CN/settings#available-settings):`axScreenReader`、`prefersReducedMotion`、`theme` 和 `preferredNotifChannel` 条目
142* [Environment variables](/docs/zh-CN/env-vars):`CLAUDE_AX_SCREEN_READER` 和 `CLAUDE_CODE_ACCESSIBILITY` 条目
143* [CLI reference](/docs/zh-CN/cli-reference#cli-flags):`--ax-screen-reader` 标志
144* [Terminal configuration](/docs/zh-CN/terminal-config):屏幕阅读器模式外的铃声、通知和主题
145* [Non-interactive mode](/docs/zh-CN/headless):脚本化 `claude -p` 运行,写入纯文本而不使用屏幕阅读器模式