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

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

Описание и применение

Ошибка в чат‑интерфейсе, где aria‑busy оставался установленным после повторной попытки, приводила к тому, что экранный чтец не объявлял завершённый ответ. Очистка aria‑busy исправила проблему.

Задача

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

Результат

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.

Рабочий процесс

  • 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.

Доказательства

During the retry: nothing.

Источник

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

Источник

The buggy client, in eleven lines

Источник

  • Дата записи: 2026-10-19T08:41:02.711Z