• Success Criterion 4.1.3
  • Conformance level AA

Loading Spinner With No Programmatic Busy or Status State

4.1.3 — Status Messages

Scenario

Setting

A recipe site's ingredient list

What’s wrong

Loading/busy states ("Loading…", spinners) with no role="status" (code that makes updates announced) or aria-busy (code marking a region as loading) strategy.

Example

Try this on a recipe site's ingredient list: loading/busy states ("Loading…", spinners) with no role="status" (code that makes updates announced) or aria-busy (code marking a region as loading) strategy.

Why it matters

Screen-reader users who need spoken confirmation of saves, errors, and results. On a recipe site's ingredient list, that means they can't complete the task without extra help.

How to test

Trigger a loading state with a screen reader running: if 'Loading…' or a spinner appears with no role="status" or aria-busy strategy, it fails.

How to fix

The status text must be wired as a live region (code that makes screen readers announce updates)/status role so screen readers announce it automatically without moving focus.

Outcome

With the fix in place on a recipe site's ingredient list, they get the same outcome as everyone else.

Who is affected

Screen-reader users who need spoken confirmation of saves, errors, and results.

Learn more