[A11y] Desktop app: expose speech-rate and voice controls for the built-in read-aloud feature

Resolved 💬 1 comment Opened Jun 25, 2026 by bretthalle Closed Jun 29, 2026

Summary

The desktop app has a read-aloud / "speak response" control, but there is no way to adjust the speaking rate or the voice. For screen-reader users this makes the feature largely unusable: we routinely listen to speech far faster than default TTS, and a fixed, slow rate is not workable for real use. Please expose a speech-rate control (and ideally a basic voice selection) for the read-aloud output, with a persisted setting.

When I asked about changing the rate, I was told there was no way to set it and that this was a known limitation — so I'm filing it explicitly as a request to expose that control.

Why this matters

Blind and low-vision users commonly listen at 300–500+ words per minute, well above typical default TTS rates. Without a rate control, the read-aloud feature can't keep up with how we actually consume text, so it goes unused even though the underlying capability is exactly what we need. (For what it's worth, driving macOS say directly with an elevated rate is a perfectly serviceable experience — so the speech engine supports it; the app just isn't exposing the control.)

Ask

  1. A speech-rate control for the read-aloud feature, with a range that goes well above the default (please don't cap it at a "comfortable for sighted users" maximum).
  2. Ideally a voice picker (and any other minor adjustments that aid intelligibility, e.g. volume).
  3. Persist the chosen rate/voice across sessions.

Related

  • #58429 — built-in option to speak Claude's responses aloud.
  • #69687 — read selected text aloud via TTS.

Even once those ship, they aren't usable for screen-reader users without rate control — so this should be considered part of making read-aloud genuinely accessible.

Environment & offer

Claude desktop app 1.15962.0, macOS 26.5.1, VoiceOver. I'm a blind software engineer and happy to test.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗