Skip to content

Error messages and NetworkBanner have no aria-live region — silent for screen readers #545

Description

@k-deejah

Problem

src/screens/ConnectScreen.tsx and src/components/TopBar.tsx both render error messages in a <p> tag without role="alert". When an error occurs (e.g., wallet connect failure), the error text updates in the DOM, but screen readers will not automatically announce the new content because there is no live region.

A second related problem: src/components/NetworkBanner.tsx renders a colored banner that changes when the network switches, but has no role="status" or aria-live attribute, so the change goes unannounced.

Both of these are silent for assistive technology users — they would see no visual change (on screen readers) and receive no notification that something important happened.

Solution

  1. Add role="alert" to error <p> elements in ConnectScreen.tsx and TopBar.tsx. This implicitly sets aria-live="assertive".
  2. Add role="status" and aria-live="polite" to the NetworkBanner container so network switches are announced without interrupting the user.

Acceptance Criteria

  • Error paragraph in ConnectScreen.tsx has role="alert"
  • Error banner in TopBar.tsx has role="alert"
  • NetworkBanner.tsx container has role="status" and aria-live="polite"
  • Screen reader (NVDA/JAWS/VoiceOver) announces errors immediately when they appear
  • Network banner changes are announced politely without interrupting speech

Note for Contributors: If you are assigned to this issue, write a clear and detailed description for your pull request. Explain what was changed, why it was needed, how it was implemented, and include any relevant testing or screenshots where applicable.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityA11y, ARIA, keyboard navigation, screen readersfrontendUI, component, or visual layer concern

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions