Aksesibilitas Claude Code: Screen Reader dan Selebihnya

Ada tiga cara, berurutan prioritas: flag --ax-screen-reader untuk satu sesi, environment variable CLAUDE_AX_SCREEN_READER bernilai 1 untuk satu shell, atau axScreenReader bernilai true di user settings untuk setiap sesi. Baris pertama yang dicetak menegaskan metode mana yang berlaku. Lewat SSH, setel di mesin remote tempat Claude Code berjalan.
Ia mengganti antarmuka terminal visual dengan teks linear biasa: tanpa karakter penggambar kotak, tanpa isyarat yang hanya berupa warna, tanpa penggambaran ulang isi yang tidak berubah, dan tabel dibaca sebagai kalimat header-dan-nilai. Setiap pesan dibuka dengan label yang bisa dicari seperti you, claude, tool, atau Permission Required, dan menu menjadi daftar bernomor yang dijawab dengan mengetik angka.
Tidak. Screen reader mode bersifat opt-in dan tidak menyala otomatis ketika ada pembaca layar berjalan. Itu tercantum sebagai batasan yang diketahui. Anda menyalakannya lewat flag, environment variable, atau setting, dan baris konfirmasi saat startup memberi tahu mana yang berlaku.
Ada tiga. CLAUDE_CODE_ACCESSIBILITY menjaga kursor terminal tetap terlihat untuk magnifier dan membuatnya mengikuti baris tersorot di menu. prefersReducedMotion mengurangi atau menghapus spinner dan shimmer. Tema dark-daltonized dan light-daltonized ramah buta warna dan bisa dipakai sebagai dasar tema kustom.
Ada dua cara. Claude Code memancarkan penanda OSC 133 di batas tiap giliran, jadi tombol lompat ke prompt sebelumnya milik terminal Anda berpindah antargiliran — Cmd+Shift+Up di iTerm2, Ctrl atau Cmd+Up di terminal VS Code. Di tempat penanda itu tidak didukung, cari label pesannya di scrollback, karena ia teks biasa yang bisa dicari.

Ringkasan Utama
Claude Code punya screen reader mode yang bersifat opt-in dan mengganti antarmuka terminal visualnya dengan teks linear biasa. Alih-alih karakter penggambar kotak, animasi progres, dan penggambaran ulang di tempat, ia mencetak baris berlabel yang dibaca VoiceOver atau NVDA secara berurutan. Menu berubah menjadi daftar bernomor yang Anda jawab dengan mengetik angka.
Antarmuka pengguna terminal secara konstruksi memusuhi pembaca layar. Kotak yang digambar dari karakter garis, spinner yang menggambar ulang sel yang sama empat puluh kali per detik, tabel yang dirender sebagai kisi pipa — masing-masing adalah desain yang mengandaikan adanya mata. Pembaca layar yang diberi keluaran itu akan membacakan tanda baca.
Jawaban Claude Code adalah mode rendering terpisah alih-alih sekumpulan penyesuaian, dan ia layak dipahami bahkan kalau Anda tidak memakai pembaca layar, karena tiga setting di sekitarnya membantu untuk magnifier, sensitivitas gerak, dan penglihatan warna tanpa menyentuh mode itu sama sekali. Tulisan ini membahas cara mengaktifkannya, apa yang berubah, cara kerja menunya, integrasi terminal yang membuat navigasinya praktis, dan batasannya yang dinyatakan jujur.
Mode ini bersifat opt-in dan tidak menyala otomatis ketika ada pembaca layar berjalan. Pilih metode yang sesuai seberapa sering Anda membutuhkannya — sebuah flag untuk satu sesi, environment variable untuk satu shell, sebuah setting untuk seluruh mesin — dan perhatikan bahwa variabel bernilai nol menahan mode itu tetap mati bahkan ketika settingnya menyatakan sebaliknya, dan itulah jalan keluar ketika setting seluruh mesin tidak nyaman untuk satu tugas.
# Three ways in, highest precedence first.
claude --ax-screen-reader # one session
export CLAUDE_AX_SCREEN_READER=1 # sessions from this shell
{ "axScreenReader": true } # every session on the machine
# The flag beats the variable, and the variable beats the
# setting. Setting the variable to 0 keeps the mode OFF even
# when the setting says true.
#
# Over SSH, set it on the REMOTE machine where Claude Code runs.
#
# The first line printed confirms which one won:
# [Screen Reader Mode: on via flag]
# [Screen Reader Mode: on via env]
# [Screen Reader Mode: on via settings]
# Other accessibility options, none of which need this mode:
CLAUDE_CODE_ACCESSIBILITY=1 # cursor stays visible for
# magnifiers, and follows the
# highlighted row in menus
{ "prefersReducedMotion": true } # no spinners or shimmer
{ "theme": "dark-daltonized" } # colourblind-friendlyLewat SSH, setel variabel atau settingnya di mesin remote tempat Claude Code benar-benar berjalan, bukan di mesin tempat Anda mengetik. Itu alasan paling umum mode ini tampak tidak berfungsi — dan baris konfirmasi yang dicetak saat startup adalah cara memeriksanya, karena ia menyebut metode mana dari ketiganya yang berlaku.
Mode ini bukan versi lebih kecil dari antarmuka visualnya. Ia format keluaran berbeda yang dibangun untuk dibacakan secara berurutan:
Setiap pesan di transkrip dibuka dengan label yang menyebut jenisnya. Itu membuat tugas pembaca layar tidak ambigu, dan ia punya manfaat kedua yang mudah terlewat: labelnya berupa teks biasa yang bisa dicari, sehingga fitur find terminal Anda menjadi cara melompat antarbagian transkrip yang panjang.
# Every message opens with a label your screen reader
# announces — and the labels are SEARCHABLE, so your
# terminal's find jumps between sections of the transcript.
you: your messages
claude: Claude's replies
thinking: Claude's thinking
tool: a file edit, a command run
tool error: a tool that failed
error: a failed API request
warning: a switch to a fallback model, and similar
Permission Required: waiting for your answer
Cost: the session summary printed at exit
# Two deliberate pauses let the reader keep up:
# 3s after the confirmation line, before the first prompt.
# Press any key to skip. CLAUDE_AX_STARTUP_QUIET_MS
# 50ms before writing a new or changed line, with the cursor
# parked at the start of it, so the reader reads from
# character one. CLAUDE_AX_PREPARK_MSClaude Code memancarkan penanda integrasi shell di batas tiap giliran, jadi tombol lompat ke prompt sebelumnya milik terminal Anda berpindah antargiliran tanpa membacakan semua yang ada di antaranya. iTerm2 dan terminal VS Code sama-sama punya tombolnya secara default; Windows Terminal butuh Anda mengikat sendiri action scroll-to-mark-nya. Terminal macOS mengabaikan penandanya dan ia tidak dipancarkan di WezTerm — di keduanya, cari saja label pesannya di scrollback.
Apa pun yang biasanya Anda navigasikan dengan tombol panah berubah menjadi daftar bernomor. Claude Code mengumumkan tiap opsi sebagai baris bernomor, lalu sebuah prompt yang menyebut rentang yang valid, dan Anda mengetik angkanya lalu menekan Enter. Ketik angka yang tidak ada di daftar dan ia mengumumkan rentang validnya lalu membiarkan Anda mencoba lagi — termasuk untuk permission prompt, yang merupakan interaksi paling penting.
Dua adaptasi terkait layak diketahui. Selektor effort, yang berupa slider di antarmuka visual, menjadi daftar bernomor sejenis. Dan prompt ya-atau-tidak meminta jawaban yang diketik alih-alih menyajikan menu dua opsi, menerima baik satu huruf maupun kata utuhnya.
Tiga dari opsi aksesibilitasnya tidak bergantung pada screen reader mode, dan justru itu yang paling mungkin membantu paling banyak orang. Kalau Anda memakai magnifier, sensitif terhadap gerakan, atau punya perbedaan penglihatan warna, tidak satu pun dari ini mengharuskan Anda mengadopsi mode rendering berbeda.
Setting aksesibilitas yang berdiri sendiri:
| Setting | Apa yang dilakukannya |
|---|---|
| Environment variable aksesibilitas | Menjaga kursor terminal tetap terlihat untuk magnifier seperti Zoom di macOS, mengikuti caret input dan baris tersorot di menu maupun panel |
| Setting kurangi gerak | Mengurangi atau menghapus spinner, shimmer, dan animasi lain |
| Tema daltonized | Palet ramah buta warna dalam versi terang dan gelap, bisa dipakai sebagai dasar tema kustom |
| Kanal notifikasi bel terminal | Peringatan audio ketika Claude menunggu Anda, di luar screen reader mode |
Di screen reader mode, bel terminal berbunyi pada tiga momen yang penting, sehingga Anda tidak perlu terus memeriksa transkrip:
Pengeditan teks mengumumkan apa yang dihapusnya alih-alih membiarkan Anda menyimpulkannya. Menghapus satu kata, menghapus sampai awal baris, dan menghapus sampai akhir baris masing-masing mengumumkan teks yang terhapus. Mengetik dan menghapus di ujung input hanya menulis karakter yang berubah, jadi pembaca layar Anda menggemakan itu alih-alih membaca ulang seluruh barisnya — dan itulah detail yang membuat mengedit prompt panjang jadi tertahankan.
Dokumentasinya luar biasa jujur soal apa yang belum diadaptasi, dan itu layak diulang alih-alih ditemukan sendiri. Modenya tidak menyala otomatis ketika ada pembaca layar berjalan. Permission mode yang diubah lewat jalur selain menekan tombol siklusnya tidak diumumkan. Biaya diumumkan pada ringkasan saat keluar, bukan per giliran.
Satu batasan struktural layak diantisipasi: menempel ke sesi background memasuki alternate screen milik terminal, yang tidak punya scrollback asli — perilaku yang sama seperti sesi tertempel mana pun. Keluar darinya lewat tombol panah pada prompt kosong, atau chord suspend kalau ada dialog yang memegang fokus. Kalau alur kerja Anda bersandar pada background agent, di situlah satu-satunya tempat jaminan teks linear itu tidak berlaku.
Yang layak dibawa pulang bahkan kalau Anda bukan audiensnya: mode aksesibelnya bukan versi merosot dari antarmukanya, melainkan rendering berbeda atas sesi yang sama, dan beberapa gagasannya justru lebih baik. Giliran berlabel yang bisa dicari, keluaran yang tidak pernah menggambar ulang dirinya, tabel yang terbaca sebagai kalimat — semuanya perbaikan yang kebetulan wajib bagi satu kelompok dan berguna bagi semua orang. Kalau ada yang tidak bekerja dengan teknologi bantu Anda, issue tracker-nya meminta sistem operasi, terminal, dan versi teknologi Anda, dan laporan itulah yang membuat versi berikutnya benar.
Sumber & bacaan lanjutan