[BUG][A11y] Desktop (Windows): new replies in the Code tab are not announced by NVDA
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
In the Claude desktop app for Windows, Code tab, NVDA does not announce a new reply, neither while it streams nor when it is finished. The reply is only read if I move the mouse pointer over the reply area (NVDA mouse tracking); keyboard-only, nothing is spoken. NVDA's "Report dynamic content changes" option is enabled.
I could not determine whether the reply area of the Code tab is exposed as an aria-live region. Issue #83167 says the regular chat view of Claude Desktop has one; if the Code tab has one too, it does not reach NVDA here.
What Should Happen?
When a reply is complete, NVDA announces it automatically, for example through an aria-live="polite" region updated once at completion (not token by token). Alternatively, offer a screen reader mode in the desktop app like the CLI's --ax-screen-reader.
Error Messages/Logs
Steps to Reproduce
- Start NVDA (2026.2) on Windows 11.
- Open the Claude desktop app, Code tab.
- Send any message and wait for the reply.
- NVDA stays silent until the mouse pointer is moved over the reply area.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude desktop app 2.2553.1.0 (Code tab)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Terminal.app (macOS)
Additional Information
Environment: Claude desktop app 2.2553.1.0 (Windows package), NVDA 2026.2, Windows 11 Pro Insider Preview 10.0.26220. The bundled Claude Code version is not shown to me.
Related: #83167 (message list, Claude Desktop), #94353 (Code tab slash menu silent with NVDA), #90761 (keyboard operability tracking).
Workaround I use: a Stop hook that reads last_assistant_message aloud with Windows speech (System.Speech).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗