claude-code - 💡(How to fix) Fix Built-in voice/TTS announcements for accessibility (screen-reader-friendly mode)

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Add first-class voice/TTS support to Claude Code so it can speak aloud:

  1. Attention prompts — when waiting for permission approval or user input
  2. Turn summaries — a brief announcement of what the assistant just did

This is currently achievable via custom Notification and Stop hooks calling macOS say (or espeak/spd-say on Linux), but every user has to assemble it themselves — pick a voice, parse the transcript JSONL to get the last assistant text, strip markdown, etc.

Root Cause

Add first-class voice/TTS support to Claude Code so it can speak aloud:

  1. Attention prompts — when waiting for permission approval or user input
  2. Turn summaries — a brief announcement of what the assistant just did

This is currently achievable via custom Notification and Stop hooks calling macOS say (or espeak/spd-say on Linux), but every user has to assemble it themselves — pick a voice, parse the transcript JSONL to get the last assistant text, strip markdown, etc.

Fix Action

Fix / Workaround

Workaround today

RAW_BUFFERClick to expand / collapse

Summary

Add first-class voice/TTS support to Claude Code so it can speak aloud:

  1. Attention prompts — when waiting for permission approval or user input
  2. Turn summaries — a brief announcement of what the assistant just did

This is currently achievable via custom Notification and Stop hooks calling macOS say (or espeak/spd-say on Linux), but every user has to assemble it themselves — pick a voice, parse the transcript JSONL to get the last assistant text, strip markdown, etc.

Why

Accessibility. Blind and low-vision developers rely on screen readers, but Claude Code's TUI updates don't always announce cleanly through VoiceOver/NVDA (spinners, streaming tokens, tool-call panels). A built-in narration mode would make the tool usable for screen-reader users out of the box.

Hands-free / multitasking. Useful when stepping away from the screen (cooking, parenting, walking) — you can hear when Claude needs you and what it just finished, without watching the terminal.

Proposed shape

A `narration` settings block, e.g.:

```json { "narration": { "enabled": true, "voice": "Allison (Enhanced)", "announceOnIdle": true, "announceTurnSummary": "first-line" | "full" | "off", "stripMarkdown": true, "maxChars": 240 } } ```

Cross-platform backend: `say` on macOS, `spd-say`/`espeak` on Linux, SAPI on Windows. Or pluggable: `narration.command` for a user-provided TTS pipe.

Workaround today

Hooks-based config in `~/.claude/settings.json` — works but requires:

  • knowing the transcript JSONL format and filtering sidechain entries
  • markdown stripping with sed
  • platform-specific TTS command discovery
  • voice selection from a non-obvious list (`say -v '?'`)

Most users won't get there. Worth being a first-class feature.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Built-in voice/TTS announcements for accessibility (screen-reader-friendly mode)