Skip to content

a11y: aria-live region for snapshot state changes (WCAG 4.1.3 / 1.3.1) #33

Description

@jamilagibson

Context

When a user navigates the timeline, snapshot state changes are visual only. Screen reader users get no announcement that the displayed state has changed. This fails WCAG 4.1.3 (Status Messages) and partially fails 1.3.1 (Info and Relationships).

Implementation

Add an aria-live="polite" region to the snapshot panel that announces the current snapshot index and total when focus moves to a new snapshot.

Example announcement: "Snapshot 4 of 12"

Acceptance criteria

  • aria-live="polite" region present in the snapshot tabpanel
  • Region announces snapshot index + total on timeline navigation
  • Announcement does not interrupt the current AT reading flow (polite, not assertive)
  • Tested with VoiceOver (macOS) and NVDA (Windows)
  • ACCESSIBILITY.md updated

References

  • Decision 20 in CLAUDE.md — TypeScript strict mode (context for the codebase)
  • Existing pattern: role="status" aria-live="polite" on Empty state components in LagMetrics and CommitMetrics

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityWCAG compliance, ARIA, keyboard nav, contrastgood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions