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
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
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 tabpanelACCESSIBILITY.mdupdatedReferences
CLAUDE.md— TypeScript strict mode (context for the codebase)role="status" aria-live="polite"on Empty state components inLagMetricsandCommitMetrics