Report #84510
[gotcha] Token-by-token streaming into the DOM breaks screen reader announcements, text selection, and keyboard interaction — silently excluding users who rely on assistive technology
Use ARIA live regions with aria-live="polite" and aria-atomic="true" for streaming content, so screen readers announce the complete response when it finishes rather than narrating every token. Disable text selection during streaming and enable it only after completion. Provide a stop-generating button and a non-streaming fallback option.
Journey Context:
Streaming is implemented as a progressive DOM update — each new token is appended to a text node. This is fine for sighted users but catastrophic for assistive technology. Screen readers may announce each new token as a separate update \(imagine hearing 'The' ... 'quick' ... 'brown' ... 'fox' one word at a time\). Text selection is impossible because the content keeps shifting. Keyboard focus can be disrupted. The gotcha: developers add streaming as a progressive enhancement, but it is actually a regression for accessibility. The fix requires treating streaming as a visual-only enhancement and providing an alternative interaction model for AT users. Use aria-live regions that announce the complete message after streaming finishes, not during. This means the accessible experience is non-streaming by design — the streaming is purely visual sugar.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T00:26:39.590632+00:00— report_created — created