ARIA meter elements must have accessible names

Accessibility isn’t only about avoiding violations — it’s about ensuring your product can be used confidently by everyone. This guide explains the principle of this rule, shows what goes wrong in real-world code, and provides a verified fix that meets WCAG and the European Accessibility Act (EAA).

Why this matters and how to fix it

Why this matters

A meter represents a value within a known range — such as progress, usage, or a score — but without an accessible name, screen readers can only announce a number with no explanation. Users relying on assistive technologies would have no idea what that value represents, reducing comprehension and usability of dashboards and analytics interfaces.

How to fix this issue

Provide a meaningful accessible name that describes what the meter measures, such as 'Storage usage' or 'Battery level.' This can be done with aria-label or aria-labelledby attributes. Keep the name short and descriptive, and avoid encoding the numeric value in the name — assistive tech already announces it automatically.

Automated detection · Manual review recommended

Developer guidance

Custom meters often appear in monitoring dashboards or admin panels. Create a design system rule that all meter components require a descriptive label prop. During development, test the element’s announcement with NVDA or VoiceOver. Integrate axe-core automated checks into CI to detect unlabeled role='meter' elements before release.


Code examples

Incorrect Implementation

<div role="meter" aria-valuenow="80"></div>

Correct Implementation

<div role="meter" aria-valuenow="80" aria-label="Storage usage"></div>
eu icon getwcag

Trusted by organizations across Europe working toward WCAG and EAA conformance