VS Code extension chat panel: new assistant messages not auto-announced by JAWS
Status Fixed / completed
Reported on v2.1.217
Maintainer reply ✓ Yes — bcherny
Activity 3 comments · opened Jul 22, 2026 · closed Aug 20, 2026
💡 Likely answer: A maintainer (bcherny, collaborator)
responded on this thread — see the highlighted reply below.
Description
In the Claude Code VS Code extension's chat panel, new assistant messages are not automatically announced by JAWS (screen reader) as they stream in / arrive. This means a screen reader user has to manually navigate (e.g. arrow down) to discover and read new content, which significantly slows down interactive use.
Environment
- Claude Code version: 2.1.217
- Entry point: claude-vscode (VS Code native extension)
- OS: Windows 11
- Screen reader: JAWS
Expected behavior
New messages appearing in the chat webview panel should be automatically read aloud by the screen reader as they arrive, similar to how a live chat/notification region works on the web (e.g. via an aria-live polite/assertive region on the message container).
Actual behavior
Messages render visually but are not spoken automatically. The user must manually move focus/navigate to the new content to have it read.
Additional context
- The CLI has a
--ax-screen-readerflag /axScreenReadersettings.json option that renders screen-reader-friendly flat text in the terminal. This is a different code path from the VS Code webview chat panel, and does not appear to address the webview's lack of an ARIA live region. - Requesting either: (a) an
aria-liveregion on the chat panel's message container so JAWS/NVDA/VoiceOver announce new messages automatically, or (b) documentation pointing to an existing setting that already enables this, if one exists.
3 Comments
Additional finding: Markdown headings do not render as semantic HTML headings
Follow-up after further testing with JAWS: even when the assistant's response starts with a Markdown heading (e.g.
## Claude), JAWS's virtual cursor does not announce it as a heading. This indicates the chat webview is not converting Markdown headings into real semantic HTML heading elements (<h1>–<h6>) in the DOM — the text may be styled but has no heading role for the accessibility tree to pick up.This is a second, related accessibility gap on top of the missing ARIA live region, and both are needed to make the panel usable for screen reader users:
Hkey) can jump directly between messages for efficient review, instead of reading everything sequentially.Requesting both be addressed together, since together they cover the two main JAWS workflows: keeping up with new output in real time, and reviewing/navigating past output efficiently.
Fixed in 2.1.236 — changelog: "[VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation" (https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md). Closing — reply to reopen if it still happens on the latest version.
🤖 Generated with Claude Code
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.