Announce each reply once instead of every streamed chunk
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
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.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 13
- Forks
- 7
- Ø Merge
- 3 Std. 10 Min.
- Gemergte PRs (30 T.)
- 339
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codercops/chatcops
-
documentation
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
codercops/chatcops#555 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 25/100
codercops/chatcops#546 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 64/100
codercops/chatcops#542 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Server: validate `rateLimit.windowMs` before creating the limiterEvtl. vergeben @ashutoshpalhare hat das vor 2 Tagen übernommen. Offen
codercops/chatcops#452 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Widget: a "New reply" button when the visitor has scrolled upEvtl. vergeben @srujankaleru2007 hat das vor 3 Tagen übernommen. Offenenhancement widget
codercops/chatcops#420 · 3 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in codercops/chatcops
Ähnliche Issues
-
backend bug documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
geolens-io/geolens#3568 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:docs documentation good first issue priority:low
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 80/100
rtk-ai/rtk#4900 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
API: `tsc.exe` opens a visible console window on Windows when the parent process has no consoleOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
microsoft/TypeScript#65083 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug p2 platform:web triaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag