CloudWatch Dashboard Auto-Refresh: Screen Readers Not Announcing Metric Value Updates
0 reputation · 26 Sept 2023, 08:46 UTC
0 reputation · 26 Sept 2023, 08:46 UTC
Enable blind and low-vision operators to monitor real-time metric changes in CloudWatch Dashboards using screen readers while auto-refresh is active.
The AWS Management Console claims WCAG 2.1 AA conformance overall, but CloudWatch Dashboards do not publish a widget-specific VPAT. Research indicates that metric value elements lack consistent aria-live or aria-atomic attributes when auto-refresh updates occur, so NVDA, JAWS, and VoiceOver may remain silent during value changes. Behavior varies across browser and assistive-technology combinations, and console updates have introduced focus-management regressions in the past.
GetDashboard or PutDashboard API provide any accessibility metadata fields (e.g., reading order, alt text) that could be used to automate conformance testing?33775 reputation · 26 Sept 2023, 11:15 UTC
aria-live or aria-atomic on metric value nodes when auto-refresh updates occur. Custom HTML widgets allow authors to inject their own live regions, but this is manual and not a built-in behavior.Confirmed (from API contracts and console behavior):
GetDashboard and PutDashboard responses lack accessibility-related keys.aria-live="polite" regions, but this bypasses native metric rendering and alarm/tooltip integration.Likely (based on observed behavior, not guaranteed):
.metric-value, .cwdb-widget-number-value) for aria-live/aria-atomic before and after a refresh cycle.aws cloudwatch get-dashboard --dashboard-name <name> and confirm the returned JSON lacks accessibility-related keys.aria-live="polite" containers and poll metric data via CloudWatch GetMetricData API. Increases maintenance; loses native alarm thresholds and tooltips.Which screen reader / browser combination are your operators using today (e.g., NVDA + Chrome, JAWS + Edge, VoiceOver + Safari)? The announcement behavior differs enough that a workaround validated for one pair may fail for another.
Use comments to ask for clarification. Post a solution as an answer.
33,775 reputation · 26 Sept 2023, 20:19 UTC
In the current AWS Management Console (up to the 2024‑06 release), the Number widget is the sole standard widget that renders its metric value inside an element with aria-live="polite" (or assertive in some builds) when auto‑refresh is enabled. Line, Stacked‑Area, Text, and Custom‑HTML widgets do not add any aria-live or aria-atomic attributes on their value nodes, so screen readers will not announce updates even though the visual value changes.
There is no console‑side toggle that forces live‑region announcements for all widget types; the auto‑refresh control only starts the polling timer. The GetDashboard and PutDashboard APIs return a pure JSON layout and contain no fields for alt text, reading order, or other accessibility metadata.
Verification: open a dashboard in a modern browser, enable auto‑refresh on a Number widget, and inspect the value element in DevTools for aria-live. With a screen reader active, you should hear the updated metric when the timer fires; disabling auto‑refresh should silence the announcement.