Claude Code には、ターミナルの見た目の画面を、平らで一直線のテキストに置き換えるスクリーンリーダーモードがあります。枠線やアニメーション、同じ場所の描き直しの代わりに、ラベル付きの行を順に出力するので、VoiceOver や NVDA などのスクリーンリーダーが上から順に読み上げられます。会話も、ツールの許可も、出力の確認も最後まで行えます。この記事では公式ドキュメント「Use Claude Code with a screen reader」に沿って、設定方法と読み上げの仕組みを紹介します。
スクリーンリーダーモードは自分でオンにする機能です(既定ではオフ)。スクリーンリーダーではなく画面拡大鏡や動きの抑制、色覚に配慮したテーマを使いたい場合は、後半の設定一覧の項目だけを使えば足ります。なお、このモードが変えるのはターミナルの画面だけで、VS Code 拡張のチャットパネルでは必要ありません。
スクリーンリーダーモードをオンにする
使う頻度に合わせて、3つの方法から選びます。
- その1回のセッションだけ:
claude --ax-screen-readerで起動します。 - あるシェルから起動するセッションすべて: 環境変数
CLAUDE_AX_SCREEN_READERを1にします。Bash や Zsh ならexport CLAUDE_AX_SCREEN_READER=1、PowerShell なら$env:CLAUDE_AX_SCREEN_READER = "1"です。この行をシェルのプロファイルに書けば、以後のシェルでも有効になります。 - そのマシンのすべてのセッション: ユーザーの設定ファイルに
"axScreenReader": trueを追加します。VS Code の統合ターミナルを含め、どのターミナルでも効きます。
複数の方法を組み合わせた場合の優先順位は、--ax-screen-reader フラグ、環境変数 CLAUDE_AX_SCREEN_READER、設定 axScreenReader の順です。SSH 越しに使う場合は、Claude Code が実際に動いているリモート側のマシンで環境変数か設定を入れてください。
オンになると、最初に出力される行でどの方法で有効になったかが分かります。
[Screen Reader Mode: on via flag]
[Screen Reader Mode: on via env]
[Screen Reader Mode: on via settings]
オフにするときは、オンにした方法を元に戻します(フラグを付けずに起動する、環境変数を消す、axScreenReader を false にする)。CLAUDE_AX_SCREEN_READER を 0 にすると、設定が true でもモードはオフのままになります。環境変数一覧によると、CLAUDE_AX_SCREEN_READER は Claude Code v2.1.181 以降で使えます。
読み上げられる内容とラベル
スクリーンリーダーモードでは、Claude Code は次のような平らなテキストを書き出します。
- 画面の枠に罫線文字を使わない
- 色だけで伝える表示を使わない
- 変わっていない内容を描き直さない。進行中のスピナーは動かない文字で表示する
- Claude の返答に含まれる表は、罫線の格子ではなく
見出し: 値の文として読める形にする - 差分は1行ずつのテキストで、追加行に
+、削除行に-が付く。ファイル編集の承認前に、提案された変更を耳で確かめられる
出力はすべてターミナルのスクロールバックに残るので、スクリーンリーダーのレビュー機能やターミナルの検索で前のやり取りを読み返せます。このモードでは tui 設定は無視され、全画面表示ではなく流れるテキストで表示されます。起動時の確認行を出したあと、スクリーンリーダーが読み終えられるよう 3 秒待ってからプロンプトを描きます。何かキーを押せば待ちは終わり、長さは CLAUDE_AX_STARTUP_QUIET_MS で変えられます(既定 3000 ミリ秒、0 で即時、上限は 10 分。v2.1.217 以降)。
会話の各メッセージには、何のメッセージかを示すラベルが先頭に付きます。ラベルは検索もできるので、スクロールバックを検索して区切りの間を移動できます。
| ラベル | 意味 |
|---|---|
you: | 自分のメッセージ |
claude: | Claude の返答 |
thinking: | Claude の思考 |
tool: | ファイル編集やコマンド実行などのツールの動き |
tool error: | 失敗したツール |
error: | API リクエストの失敗など、会話中のエラー |
warning: | 代替モデルへの切り替えなど、Claude Code からの警告 |
Permission Required: | 答えを待っている許可の確認 |
Cost: | 終了時のセッション費用のまとめ(費用を表示するアカウントの場合) |
ターミナルのカーソルは入力位置に置かれたままなので、スクリーンリーダーの「現在の行を読む」で編集中のプロンプトが読まれます。入力行の末尾で文字を打つか Backspace を押すと、変わった文字だけが書き出され、その文字だけが読み上げられます。単語や行を消すショートカット(Ctrl+W / Alt+D、macOS の Option+Delete、Windows の Ctrl+Backspace、行頭まで消す Ctrl+U / Cmd+Backspace、行末まで消す Ctrl+K)を使うと、消えたテキストが読み上げられます。Shift+Tab で権限モードを切り替えると、[plan mode on] や [accept edits on] のように切り替わったモードが1回だけ読み上げられます。
前の出力を読んでいる途中で位置を失わない
前の出力を読んでいるとプロンプトに引き戻されるのは、スクリーンリーダーがターミナルのカーソルを追っているためです。Claude Code は新しいテキストを書くたびにカーソルをプロンプトへ戻します。読む位置を保つには、カーソルの追従を止めます。NVDA なら NVDA+6 でレビューカーソルの追従を止め、もう一度押すと元に戻ります。
やり取りの区切りへ移動する
Claude Code はやり取りの区切りに OSC 133 のシェル統合マーカーを出すので、ターミナルの「前のプロンプトへ移動」キーで区切りごとに移動できます。iTerm2 は Cmd+Shift+Up、VS Code のターミナルは Windows で Ctrl+Up・macOS で Cmd+Up です。Windows Terminal には既定のキーが無いので、設定で scrollToMark アクションを割り当てます。Kitty と Ghostty は各ターミナルの説明を確認してください。macOS のターミナル.app はマーカーに反応せず、WezTerm ではマーカーが出ないので、代わりにスクロールバックを you: で検索します。
メニューと確認プロンプトへの答え方
通常は矢印キーで選ぶメニュー(許可の確認を含む)は、スクリーンリーダーモードでは番号付きの一覧になります。選択肢が番号付きの行で読み上げられ、続いて有効な番号の範囲を示す Select with numbers のプロンプトが出ます。選びたい番号を入力して Enter を押します。
- プロンプトの末尾が
or Escape to cancelのメニューは、Escape でキャンセルできます。 - 一覧に無い番号を入れると、有効な範囲が読み上げられ、もう一度入力できます。
- 通常はスライダーの
/effortの選択も、同じ番号付きの一覧になります。
はい・いいえの確認は、2択のメニューではなく文字で答える形になります。y か n を入力して Enter を押します。yes と no も使えます。
また、このモードでは Claude Code が注意を必要とするときにターミナルのベルを鳴らします。鳴るのは、Claude が返答を終えたとき、許可の確認などの答えを待つプロンプトが出たとき、5 秒より長く動いたツールが終わったときです。ベルはターミナル標準の通知音なので、止めたい場合はターミナル側のベル設定を変えます。
拡大鏡・動きの抑制・色覚向けの設定
スクリーンリーダーモード以外にも、アクセシビリティに関わる設定があります。公式ドキュメントの一覧を日本語にまとめると次のとおりです。
| 項目 | 種類 | 変わること |
|---|---|---|
--ax-screen-reader | フラグ | その1回のセッションをスクリーンリーダーモードにする |
CLAUDE_AX_SCREEN_READER | 環境変数 | そのシェルから起動するセッションをスクリーンリーダーモードにする |
axScreenReader | 設定 | true ですべてのセッションをスクリーンリーダーモードにする |
CLAUDE_AX_STARTUP_QUIET_MS | 環境変数 | 確認行のあと最初のプロンプトを描くまでの待ち時間(v2.1.217 以降) |
CLAUDE_AX_PREPARK_MS | 環境変数 | 新しい行や変わった行を書く前に、カーソルを行頭で待たせるミリ秒数(v2.1.233 以降。環境変数一覧では既定 0・上限 5000) |
CLAUDE_CODE_ACCESSIBILITY | 環境変数 | 1 で、macOS のズーム機能などの画面拡大鏡が追えるようにターミナルのカーソルを表示したままにする |
prefersReducedMotion | 設定 | true でスピナーやきらめき表示などのアニメーションを減らす・止める |
theme | 設定 | 画面の配色。色覚に配慮した dark-daltonized と light-daltonized がある。/theme でも選べる |
preferredNotifChannel | 設定 | "terminal_bell" にすると、スクリーンリーダーモード以外でも Claude が待っているときにベルを鳴らす |
たとえば画面拡大鏡を使う人なら、スクリーンリーダーモードはオンにせず、CLAUDE_CODE_ACCESSIBILITY=1 と prefersReducedMotion だけを使う、という組み合わせができます。公式ドキュメントによると、v2.1.218 以降ではこのカーソルが入力位置だけでなく /config や /plugin などのメニューで選択中の行にも追従します。
既知の制限と不具合の報告
次の動きはスクリーンリーダーモード向けに調整されていません。
- スクリーンリーダーが動いていても、モードは自動ではオンになりません。
/planのようにコマンドで権限モードを変えた場合は読み上げられません(Shift+Tabでの切り替えは読み上げられます)。claude attachやエージェントビューからバックグラウンドセッションに入ると、スクロールバックの無い代替画面に切り替わります。抜けるときは空のプロンプトで左矢印キー、ダイアログが前面にあるときはCtrl+Zを押します。- 費用はやり取りごとではなく、終了時のまとめで読み上げられます。
-pフラグの非対話モードはこのモードの影響を受けません。非対話モードはもともと平らなテキストを出すので、スクリプトから使う場合の代わりになります。
スクリーンリーダーや拡大鏡、ターミナルとの組み合わせでうまく動かないときは、Claude Code の issue トラッカーに報告できます。タイトルに使っている支援技術の名前を入れ、本文に OS、ターミナルアプリ、支援技術の名前とバージョンを書くよう公式ドキュメントは案内しています。
なお、VS Code 拡張のチャットパネルでは、Claude Code v2.1.236 以降なら設定なしで会話の動きがスクリーンリーダーに通知されます。
出典: Use Claude Code with a screen reader(Claude Code 公式ドキュメント)/Environment variables(同)。2026年10月3日に確認。