Skip to content

Announce new chat messages to screen readers #64

Open

Description

@anurag629

Screen reader users don't hear new replies arrive. The typing indicator and the message box also have no accessible text. Each fix here is small, mostly a single attribute.

Where to look

  • packages/widget/src/dom/messages.ts (the .cc-messages container in the constructor, and showTyping())
  • packages/widget/src/dom/input.ts (the textarea)
  • packages/widget/src/i18n.ts (typingIndicator exists but is never used)
  • packages/widget/tests/dom/messages.test.ts, and packages/widget/tests/dom/input.test.ts for the textarea

Acceptance criteria

  • The messages container has role="log" and aria-live="polite", so new replies are announced
  • The typing indicator has accessible text from typingIndicator (visually hidden text or aria-label), and the three dots are aria-hidden="true"
  • The textarea has an aria-label (today it only has a placeholder; reusing inputPlaceholder is fine)
  • Screen readers don't re-read the whole reply on every chunk while it streams (for example, set aria-busy="true" on the streaming message and remove it when complete)
  • Tests for the new attributes
  • Changeset for @chatcops/widget (patch)

Want to work on this? Comment below and I'll assign it to you. Please take one issue at a time, branch off dev, and open your PR against dev with Closes #<this issue number>. Setup notes (pnpm, build before test) are in CONTRIBUTING.md.

Activity

  1. added
    widgetAffects @chatcops/widget package
    hacktoberfestGood pick for Hacktoberfest contributors
    accessibilityKeyboard, screen reader and a11y fixes
    on Sep 30, 2026
  2. prakashNalla commented on Oct 17, 2026

    @prakashNalla
    Contributor

    I'd like to take this one. I'll add role="log" and aria-live="polite" to .cc-messages, give the typing indicator the typingIndicator text with the dots aria-hidden, label the textarea with inputPlaceholder, and set aria-busy on a reply while it streams. Tests and a patch changeset for the widget too.

  3. anurag629 commented on Oct 17, 2026

    @anurag629
    MemberAuthor

    Hey @prakashNalla, go for it, it's yours!

    Your plan covers every point. Everything in the issue still holds on dev after #150: the textarea only has a placeholder and typingIndicator is still unused. This one and codercops/discord-bot#37 are your two.

    Let me know if you have any questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

accessibilityKeyboard, screen reader and a11y fixesgood first issueGood for newcomershacktoberfestGood pick for Hacktoberfest contributorswidgetAffects @chatcops/widget package

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions