Announce each reply once instead of every streamed chunk
Los mantenedores suelen responder en 1 día
@kachamsiddarth ya está trabajando en esto.
Desde el 26/10/2026.
- #410 de @kachamsiddarth — fusionado
Evaluación
Este issue todavía no se ha evaluado.
Descripción
The message list is role="log" with aria-live="polite", and a reply's text is rebuilt on every streamed chunk. Some screen readers read those partial updates one by one, which is noisy, and others skip them.
What to do
- While a reply streams, set the log to
aria-live="off". - Add a visually hidden
aria-live="polite"region (there's acc-sr-onlyclass already). When a reply finishes, put its final text there once, then set the log back topolite. - Error and cut off replies should be announced too, with their error text.
- Messages the visitor sends don't need an announcement.
Where to look
packages/widget/src/dom/messages.ts(the constructor setsroleandaria-live;updateMessagesetsaria-busywhile streaming)packages/widget/src/widget.ts(handleSend: where streaming starts and ends)packages/widget/tests/dom/messages.test.ts
Acceptance criteria
- The log is
aria-live="off"while a reply streams andpoliteotherwise - The hidden region gets the full reply text once, when it finishes
- Failed replies announce their error message
- Unit tests for each
- A short note in the PR on what you checked with a screen reader, if you have one (not required)
- Changeset for
@chatcops/widget(patch) -
pnpm test:coverage,pnpm lintandpnpm sizepass
The chat panel (dist/chatcops.panel.js) has a 14 kB gzip budget and about 800 B of it is left, shared by several open issues. Keep the change small, and check pnpm size before you open the PR.
- Lenguaje dominante
- TypeScript
- Estrellas
- 13
- Forks
- 7
- Merge medio
- 3 h 28 min
- PR fusionados (30 d)
- 296
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de codercops/chatcops
-
Core README lists old default modelsPosiblemente ocupada @prakashNalla la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
codercops/chatcops#503 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Widget: theme.tokens to set any color or size token, and the full token table in the docsPosiblemente ocupada @Sreehita-here la tomó hoy. Abiertohacktoberfest
codercops/chatcops#500 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Widget: a header menu with New conversation, Download transcript and a privacy linkPosiblemente ocupada @anurag2787 la tomó hoy. Abiertohacktoberfest
codercops/chatcops#496 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Widget: keep a message sent while offline, and send it when the connection is backPosiblemente ocupada @Saifjafri212213 la tomó hoy. Abiertohacktoberfest
codercops/chatcops#495 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Widget: copy a completed assistant replyPosiblemente ocupada @piyusshhjangid la tomó hoy. Abiertohacktoberfest
codercops/chatcops#477 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de codercops/chatcops
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Automattic/data-liberation-agent#1115 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Enhance blog readabilityAbiertoCSS enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pychess/pychess-variants#2448 ·
Los mantenedores suelen responder en 1 día
-
[architect] Stale planning/scratch files at repo root (COMPONENT_SPLIT_SUMMARY.md etc.) describe already-completed workPosiblemente ocupada @hivecommons-hive la tomó hoy. Abiertoagent/architect architecture help wanted stage/040-covered-by-pr tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kubestellar/console#24716 ·
Los mantenedores suelen responder en 1 día
-
helm-knative-apply.sh fails with Helm 4Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea: triage theme: undefined
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
jhipster/generator-jhipster#35895 ·
Los mantenedores suelen responder en 1 día