Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

The Retry Never Got Announced: Debugging a Stuck aria-busy in a Streaming Chat

Description and use

The bug was caused by leaving aria‑busy set to true on the retried message, which prevented the live region from announcing it. Clearing aria‑busy on all code paths resolved the issue.

Problem

A screen reader silently ignored a retried message in a streaming chat, while the visible text appeared and the error message was announced.

Outcome

The bug was caused by leaving aria-busy set to true on the retried message, which prevented the live region from announcing it. Clearing aria-busy on all code paths resolved the issue.

Workflow

  • 1. User submits a prompt and the client streams tokens into a message element with aria-busy="true".
  • 2. The stream fails mid‑sentence and emits an error event; the message element remains busy.
  • 3. User clicks Retry, triggering a new stream that completes successfully.
  • 4. The client never clears aria-busy on the retried message, so the live region stays busy and the retried text is not announced.

Evidence

During the retry: nothing.

Source

The live region was present, correctly labelled, and working on the happy path.

Source

The buggy client, in eleven lines

Source

  • Record date: 2026-10-19T08:41:02.711Z