claude-code - 💡(How to fix) Fix [A11y feature request] Built-in option to speak Claude's responses aloud

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

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 a built-in option to have Claude's responses spoken aloud in the Claude Code desktop app. This benefits blind users, low-vision users, and anyone working hands-busy or hands-free.

Root Cause

Add a built-in option to have Claude's responses spoken aloud in the Claude Code desktop app. This benefits blind users, low-vision users, and anyone working hands-busy or hands-free.

Fix Action

Fix / Workaround

Why built-in beats a hook workaround

A hook-based version (Stop hook + say) is theoretically possible but has problems:

  • The Stop hook fires on /clear, /resume, /compact, etc., not just on actual response completion.
  • The hook payload likely does not contain the response text, so it has to scrape the transcript file.
  • Markdown and code blocks sound terrible when read by raw text-to-speech (literal asterisks, backticks, "hash hash hash" for headings) — would need clean message data and intelligent rendering.
  • No clean way to interrupt when the user starts typing the next prompt.
RAW_BUFFERClick to expand / collapse

Summary

Add a built-in option to have Claude's responses spoken aloud in the Claude Code desktop app. This benefits blind users, low-vision users, and anyone working hands-busy or hands-free.

Proposal

Two patterns, either or both:

  1. User setting (opt-in, off by default) — when enabled, completed Claude responses are read aloud automatically as soon as streaming finishes.
  2. Keyboard shortcut — a binding (e.g. cmd+shift+R) that reads the most recent Claude response on demand.

Either pattern is well-established in accessibility tooling: think VoiceOver's "speak the focused item" or screen reader "read from here" commands.

Why built-in beats a hook workaround

A hook-based version (Stop hook + say) is theoretically possible but has problems:

  • The Stop hook fires on /clear, /resume, /compact, etc., not just on actual response completion.
  • The hook payload likely does not contain the response text, so it has to scrape the transcript file.
  • Markdown and code blocks sound terrible when read by raw text-to-speech (literal asterisks, backticks, "hash hash hash" for headings) — would need clean message data and intelligent rendering.
  • No clean way to interrupt when the user starts typing the next prompt.

A built-in implementation would have access to clean message data, settings UI, proper interrupt handling on user input, and nicer voices than say.

Context

I submitted the same feedback via the in-app /feedback channel and to [email protected] so the team can dedupe.

I am Lead Accessibility Architect at Paramount Streaming, blind, daily VoiceOver user. Happy to help spec, test, or pilot.

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