Skip to content

Don't Let Your Users Spin Out of Control: Making Progress Indicators Accessible

Have you ever clicked a button and felt like you've entered the digital abyss? No spinning wheel, no progress bar, just... silence. Frustrating, right?

That frustration can be caused by a lack of or an inaccessible progress indicator. 

Those visual elements are crucial for informing users, but what if they can't see them? What about users who rely on assistive technologies like screen readers? For them, an inaccessible indicator can not only be frustrating but can also create a confusing experience.

Let's look at ways to prevent that by making your loading and progress indicators usable for everyone.

  • Speak the Users' Language
    • Use ARIA role=progressbar - This HTML attribute provides additional information for assistive technologies. To ensure accessibility, make sure each element with role="progressbar" has one of the following characteristics:
      • non-empty aria-label attribute.
      • aria-labelledby points to an element with text that is discernible to screen reader users.
    • In addition, if the progress bar's minimum is not 0 or the maximum value is not 100, you must set aria-valuemin and aria-valuemax to indicate the minimum and maximum progress indicator values. (See additional information in the Resources list).
    • Descriptive labels—Don't just rely on visuals. Add clear labels that describe the indicator's purpose, such as "Loading Search Results" or "Uploading Image (50% complete)."
  • Show, Don't Just Tell
    • Use proper color contrast—Ensure your indicators have the proper contrast ratio between the colors in the indicator itself and the background. This makes them easily identifiable for users with visual impairments.
    • Animations that work—Avoid flashy animations, which can be distracting for some users. Opt for smooth and proper contrast animations.
  • Keep it Clear for Everyone
    • Don't use cryptic icons—If you must use icons, ensure they have clear and concise labels or tooltips that explain their meaning.
    • Consider keyboard navigation—Make sure users can interact with the page even while content is loading.

As always, test your website with assistive technologies like screen readers to identify and fix any accessibility issues with your loading indicators.

By following these simple steps, you can create a more inclusive user experience for everyone.

Resources

Maggie Vaughan, CPACC
Content Marketing Practitioner
DubBot