The HTML progress
tag inherits the progressbar role. The HTML
meter
element, on the other hand, inherits no role in ARIA 1.1, though
1.2 does have a meter role. Both elements are supposed to support all global aria-
attributes. Both roles also have attributes specific to them (aria-valuemax
, aria-valuemin
,
aria-valuenow
), and progress has aria-valuetext
, similar to the range/slider control, though both progressbar and
meter are read only).
The two elements are supposed to be used to indicate different scenarios. progress
indicates
(some portion of) completion of a task
(“you have complete 30% of tasks”); whereas, meter
is
a guage indicating the scalar or fractional amount within a known range
(“2GB of 10GB storage used”).
What is the screen reader support for the progress
and meter
elements and the progressbar and meter ARIA roles?
meter
element with aria labelledbys and description and most other HTML valid attributesprogress
element and recommended aria- attributesdiv
with progressbar role and recommended aria- attributes (as in example 2, but with usage of role instead of
the element, and including aria-label for a name (to satisfy axe))
div
element with a progressbar role and just aria-valuetextdiv
element with a progressbar role, aria-valuemin, aria-valuemax, and aria-valuenow, and aria-label used for
accessible name, since it appears to be better supported
div
element with a meter role, aria-valuemin, aria-valuemax, and aria-valuenow, and aria-label used for
accessible name, since it appears to be better supported
div
element with a progressbar role, aria-valuemin, aria-valuemax, and aria-valuenow, aria-valuetext and an
aria-label (doubling-up on the name/value, to attempt wider AT support)