We'd like to set Google Analytics cookies to learn how people use the Knowledge Base, so we can improve it. We set them only if you accept.

Skip to main content
Digital Accessibility Knowledge Base

aria-progressbar-name

Web validation

ARIA progressbar elements must have an accessible name.

A progressbar shows how much of a long-running task has finished. When the component lacks an accessible name, assistive technology users hear only the percentage, not what is loading or uploading. Adding a steady, descriptive name lets people understand the context and decide whether to wait or move on.

Pass Patterns

Using aria-label attribute

The component is given a direct text alternative.

HTML
<div
    role="progressbar"
    aria-label="File upload progress"
    aria-valuenow="30"
    aria-valuemin="0"
    aria-valuemax="100">
    30%
</div>

Using aria-labelledby attribute

Visible text is referenced, so the same wording serves sighted and non-sighted users.

HTML
<div id="load-desc">Page loading</div>
<div
    role="progressbar"
    aria-labelledby="load-desc"
    aria-valuenow="55"
    aria-valuemin="0"
    aria-valuemax="100">
    55%
</div>

Fail Patterns

No name at all

Assistive technologies announce only a generic role.

HTML
<div
    role="progressbar"
    aria-valuenow="40"
    aria-valuemin="0"
    aria-valuemax="100">
    40%
</div>

Empty aria-label attribute

An empty string still leaves the element unnamed.

HTML
<div
    role="progressbar"
    aria-label=""
    aria-valuenow="70"
    aria-valuemin="0"
    aria-valuemax="100">
    70%
</div>

WCAG techniques

Sufficient techniques

Try It Yourself

Using a screen reader

New to screen reader testing, or need a refresher?
Review this article first: Practical guides for using screen readers

  1. Load the page, open a screen reader.
  2. Navigate to the progressbar.
  3. Listen to what the screen reader announces.

Expected result: The reader announces the accessible name followed by the value, such as “File upload progress, 30 percent.”

Actual result: Without a name, only “progress bar, 30 percent” or simply “progress bar” is read.

Inspecting the browser dev-tools

  1. Open the Accessibility Tree panel.
  2. Select the progressbar element.

Expected result: The Name field shows the text supplied by aria-label or aria-labelledby.

Actual result: If unnamed, Name is empty.

FAQ

How does this issue relate to 1.1.1 Non-text Content?

SC 1.1.1 requires every non-text item that conveys information such as a progressbar to have a text alternative that describes its purpose. An accessible name satisfies that requirement.

Why is this issue marked as Serious?

Without context, people who rely on assistive technology cannot tell what operation is underway or whether it concerns them. This hampers task completion across all major browsers and screen readers, so the impact is significant.

Standards and Regulations

StandardSuccess CriterionReference
WCAG 2.21.1.1 Non-text Content (A)All non-text content that is presented to the user has a text alternative that serves the equivalent purpose, except for controls/input, time-based media, tests, sensory experiences, CAPTCHA, and decoration/formatting/invisible content.
EN 301 5499.1.1.1 Non-text ContentSame as the WCAG text.

Personas impacted by this issue