Problem
The stream region and thinking indicator expose no aria-live/role="status", so screen readers miss new messages and loading state.
Where
src/web/App.tsx (stream <main> + thinking <span>, zero aria attributes in src/).
Acceptance
Add a failing test first asserting the stream region and thinking indicator expose aria-live="polite" / role="status". Then fix.
Problem
The stream region and thinking indicator expose no
aria-live/role="status", so screen readers miss new messages and loading state.Where
src/web/App.tsx(stream<main>+ thinking<span>, zero aria attributes insrc/).Acceptance
Add a failing test first asserting the stream region and thinking indicator expose
aria-live="polite"/role="status". Then fix.