AnnouncementFocus the demo to see what it exposes.
Labeling
Spinnerhasrole="progressbar"without a value, like a native<progress>withoutvalue: an indeterminate loading indicator.- It has no built-in label. Name it with
aria-labelor pointaria-labelledbyat visible text next to it. - Set
aria-hiddenwhen the spinner only decorates something that already announces the loading state.
Keyboard Behavior
Spinnerhas no keyboard behavior.
Focus Behavior
Spinneris not focusable.
Screen Reader Semantics
- Screen readers announce the spinner as a busy progress bar with its label when they reach it; a spinner that appears later is not announced on its own.
- Pair loading indicators with status text or a higher-level live region when the operation matters to assistive technology users.
Form Semantics
- In forms, use the spinner as supporting feedback rather than as the only state signal.
Accessibility Risks
- a spinner without
aria-labeloraria-labelledby, which screen readers announce as an unnamed progress bar - relying only on motion to communicate loading