スクリーンリーダーで Claude Code を使用する
VoiceOver や NVDA などのスクリーンリーダー、スクリーン拡大鏡、モーション削減、色覚異常対応テーマの設定で Claude Code をセットアップします。
Claude Code には、ビジュアルターミナルインターフェースをプレーンな線形テキストに置き換えるスクリーンリーダーモードがあります。ボックス、プログレスアニメーション、インプレース再描画の代わりに、Claude Code はラベル付きの行を出力し、VoiceOver や NVDA などのスクリーンリーダーが順番に読み上げます。完全な会話を保持し、ツール権限を承認し、出力を最後まで確認できます。
スクリーンリーダーモードはオプトインです。スクリーン拡大鏡、モーション削減、またはスクリーンリーダーの代わりにカラーブラインド対応テーマを使用する場合は、アクセシビリティ設定テーブルから CLAUDE_CODE_ACCESSIBILITY、prefersReducedMotion、または theme を設定してください。スクリーンリーダーモードはターミナルインターフェースのみを適応させるため、VS Code 拡張機能のチャットパネルではこれを必要としません。Claude Code v2.1.236 以降では、拡張機能は設定なしでスクリーンリーダーにコンバーセーション活動を通知します。
スクリーンリーダーモードをオンにする
スクリーンリーダーを使用する頻度に合わせて方法を選択してください。
- 1 つのセッション用:
claude --ax-screen-readerを実行します。 - 1 つのシェルから開始されたセッション用:
CLAUDE_AX_SCREEN_READER環境変数を1に設定します。Bash または Zsh ではexport CLAUDE_AX_SCREEN_READER=1を実行し、PowerShell では$env:CLAUDE_AX_SCREEN_READER = "1"を実行します。シェルプロファイルにその行を追加して、今後のシェルでも保持します。 - マシン上のすべてのセッション用:ユーザー設定ファイルに
"axScreenReader": trueを追加します。この設定は VS Code 統合ターミナルを含むすべてのターミナルに適用されます。
メソッドを組み合わせた場合、Claude Code は --ax-screen-reader フラグを CLAUDE_AX_SCREEN_READER 環境変数より優先し、その環境変数を axScreenReader 設定より優先します。
SSH 経由で Claude Code を使用する場合は、Claude Code が実行されるリモートマシンで環境変数または設定を設定します。
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 の場合でもモードはオフのままです。
アクセシビリティ設定
次の表は、各アクセシビリティオプション、フラグ、環境変数、または設定として設定するかどうか、および何を変更するかを示しています。
| オプション | タイプ | 変更内容 |
|---|---|---|
--ax-screen-reader |
フラグ | 1 つのセッションのスクリーンリーダーモード。 |
CLAUDE_AX_SCREEN_READER |
環境変数 | それを設定したシェルから開始されたセッションのスクリーンリーダーモード。 |
axScreenReader |
設定 | true の場合、すべてのセッションのスクリーンリーダーモード。 |
CLAUDE_AX_STARTUP_QUIET_MS |
環境変数 | Claude Code が確認行の後、スクリーンリーダーモードで最初のプロンプトを描画する前に待機する時間。Claude Code v2.1.217 以降が必要です。 |
CLAUDE_AX_PREPARK_MS |
環境変数 | Claude Code が行の開始時にカーソルを置いて、スクリーンリーダーモードで新しい行または変更された行を書き込む前に待機する時間。Claude Code v2.1.233 以降が必要です。 |
CLAUDE_CODE_ACCESSIBILITY |
環境変数 | 1 に設定した場合、macOS Zoom などのスクリーン拡大鏡に対して表示されたままのターミナルカーソル。カーソルは入力キャレットに従い、Claude Code v2.1.218 以降では、/config や /plugin などのメニューとパネルの強調表示された行に従います。 |
prefersReducedMotion |
設定 | true の場合、スピナー、シマー、およびその他のアニメーションが削減または非表示になります。 |
theme |
設定 | 色覚異常対応の dark-daltonized および light-daltonized テーマを含むインターフェースカラー。/theme で選択することもできます。 |
preferredNotifChannel |
設定 | 値を "terminal_bell" にすると、Claude があなたを待機している場合、スクリーンリーダーモード外でターミナルベルが鳴ります。 |
スクリーンリーダーが聞く内容
スクリーンリーダーモードでは、Claude Code はフラットテキストを書き込みます:
- インターフェースクロームのボックス描画文字なし
- 色のみのキューなし
- 変更されていないコンテンツの再描画なし。プログレススピナーは静的テキストとしてレンダリングされます
- Claude の返信内のテーブルは、ボックス文字グリッドではなく
Header: value文として読み込まれます
Claude Code は、ターミナルのスクロールバックに印刷するすべてを残すため、スクリーンリーダーのレビューコマンドまたはターミナルの検索を使用して以前のターンを再度読むことができます。Claude Code は、スクリーンリーダーモードで tui 設定 を無視します。既知の制限事項 に記載されている接続されたバックグラウンドセッションを除き、フルスクリーンレンダリング の代わりにスクロールテキストを印刷します。
Claude Code は、スクリーンリーダーが追いつくことができるように 2 つのポイントで待機します:
- Claude Code が確認行を印刷した後、スクリーンリーダーが行を完了できるようにプロンプトを描画する前に 3 秒待機します。任意のキーを押して待機を終了します。待機の長さを変更するには、
CLAUDE_AX_STARTUP_QUIET_MSを設定します。 - Claude Code が新しい行または変更された行(ヒントや Claude の返信の詳細など)を書き込む前に、カーソルを行の開始位置に移動して 50 ミリ秒待機します。その後、スクリーンリーダーは最初の文字から行を読み込みます。入力行の末尾に入力または削除した文字は直ちに表示されます。待機の長さを変更するには、
CLAUDE_AX_PREPARK_MSを設定します。
トランスクリプト内の各メッセージは、スクリーンリーダーが発表するラベルで始まり、それが何であるかを名前付けします:あなたのメッセージ、Claude の返信と思考、ツールアクティビティ、エラーと警告、およびプロンプト。ラベルは検索可能でもあるため、ターミナルのスクロールバックを検索してトランスクリプトのセクション間をジャンプできます:
| ラベル | 意味 |
|---|---|
you: |
あなたのメッセージ |
claude: |
Claude の返信 |
thinking: |
Claude の思考 |
tool: |
ファイル編集やコマンド実行などのツールアクティビティ |
tool error: |
失敗したツール |
error: |
失敗した API リクエストなどの会話内のエラー |
warning: |
モデルフォールバックへの切り替えなど、Claude Code からの警告 |
Permission Required: |
あなたの回答を待つ権限プロンプト |
Cost: |
Claude Code が終了するときのセッションコスト概要(アカウントが コストを表示 している場合) |
Claude Code はターミナルカーソルを入力キャレットに保つため、スクリーンリーダーの現在の行を読むコマンドは、編集しているプロンプトを読み込みます。
入力行の末尾に入力するとき、または Backspace を押すと、Claude Code は変更された文字のみを書き込みます。スクリーンリーダーはそれらの文字のみをエコーします。
テキスト編集ショートカット の 1 つで単語または行を削除すると、Claude Code は削除されたテキストを発表します:
Ctrl+WまたはAlt+Dで単語を削除、または macOS ではOption+Delete、Windows ではCtrl+BackspaceCtrl+UまたはCmd+Backspaceで行の開始位置まで削除Ctrl+Kで行の終了位置まで削除
権限モード を Shift+Tab でサイクルすると、Claude Code は [plan mode on] または [accept edits on] などのランディングした権限モードを発表します。Claude Code は発表を 1 回印刷し、後の再描画では繰り返しません。
ターン間をジャンプする
Claude Code はターン境界で OSC 133 シェル統合マーカーを発行するため、ターミナルの前のプロンプトへジャンプするキーはトランスクリプト全体を読まずにターン間を移動します:
- iTerm2:Cmd+Shift+Up
- VS Code ターミナル:Windows では Ctrl+Up、macOS では Cmd+Up
- Windows Terminal:デフォルトではキーなし。設定で
scrollToMarkアクションをバインドします - Kitty と Ghostty:ターミナルのドキュメントでジャンプ・ツー・プロンプトキーを確認してください
macOS Terminal はマーカーに作用せず、Claude Code は WezTerm では発行しません。これらのターミナルでは、代わりにスクロールバックで you: ラベルを検索してください。
メニューとプロンプトに答える
スクリーンリーダーモードでは、通常は矢印キーで操作するメニュー(権限プロンプトを含む)が番号付きリストになります。Claude Code は各オプションを番号付き行として発表し、その後に有効な範囲を示す Enter selection プロンプトを発表します。希望するオプションの番号を入力して Enter キーを押します。
or Escape to cancelで終わるプロンプトのメニューをキャンセルするには Escape キーを押します。- リストにない番号を入力した場合、Claude Code は有効な範囲を発表し、もう一度試すことができます。
スクリーンリーダーモード外ではスライダーである /effort セレクターは、同じ種類の番号付きリストになります。
はい/いいえプロンプトは、2 つのオプションメニューの代わりに、入力された回答を求めます。y または n と入力して Enter キーを押します。yes と no も機能します。
Claude Code があなたの注意を必要とするときに聞く
スクリーンリーダーモードでは、Claude Code があなたの注意を必要とするときにターミナルベルが鳴るため、トランスクリプトを常に確認する必要がありません。ベルは以下の場合に鳴ります:
- Claude が返信を完了した
- 権限プロンプトなど、プロンプトまたはダイアログがあなたの回答を必要としている
- 5 秒以上実行されたツールが完了した
ベルはターミナルの標準アラートです。これを消音にするには、ターミナルアプリケーションのベル設定を変更してください。スクリーンリーダーモード外では、preferredNotifChannel を "terminal_bell" に設定して、Claude があなたの対応を待っているときに同様のベルを取得します。
既知の制限事項
一部の動作はスクリーンリーダーモード用に適応していません。
- スクリーンリーダーモードは、スクリーンリーダーが実行されているときに自動的にオンになりません。
- Claude Code は
Shift+Tabでサイクリングする以外の方法で行われた権限モード変更を発表しません。例えば、コマンドからプランモードに入るなどです。 claude attachまたは agent view からバックグラウンドセッションにアタッチすると、ターミナルの代替画面に入ります。これはネイティブスクロールバックがありません。これは他のアタッチされたセッションと同じ動作です。抜け出すには、空のプロンプトで左矢印を押すか、ダイアログにフォーカスがある場合は Ctrl+Z を押します。- Claude Code はコストを終了時に出力するサマリーで発表し、ターンごとではありません。
- スクリーンリーダーモードは
-pフラグで非対話型モードを変更しません。非対話型モードは既にプレーンテキストを書き込み、スクリプト作成の代替案のままです。
問題を報告する
スクリーンリーダー、拡大鏡、またはターミナルで何かが機能しない場合は、Claude Code issue tracker で問題を開き、タイトルに支援技術を記載してください。レポートにオペレーティングシステム、ターミナルアプリケーション、支援技術の名前とバージョンを含めます。