Progress Indicator
A progress indicator shows that work is still happening. A bar or ring shows known progress. A spinner means the wait time is unknown.
A real example
A 400 MB upload shows 62% and the time left. A quick lookup with unknown timing uses a small spinner.
Main parts
- 01State signal
- 02Human-readable message
- 03Timing or progress
- 04Recovery path
Use it when
Use a bar with an end point whenever you can measure the work.
Do not use it when
Never show an endless spinner with no explanation, no way to cancel, and no failure state.
Name used in code
<progress> / aria-busy Before you ship
Before release, check the page structure, keyboard access, visible focus, contrast, and zoom. Also check loading, empty, error, success, cancel, and reduced-motion states.
Outcome: Use Progress Indicator to solve this user need without losing the current context. User context: A 400 MB upload shows 62% and the time left. A quick lookup with unknown timing uses a small spinner. Recommended pattern: Progress Indicator. Why it fits: Use a bar with an end point whenever you can measure the work. Do not use it when: Never show an endless spinner with no explanation, no way to cancel, and no failure state. Product requirements: Define the default, loading, empty, error, success, and recovery states. Keep user input. Give clear feedback after every action. Accessibility and resilience: Use semantic HTML, full keyboard access, and visible focus. Make the layout work when zoomed and support reduced motion. Follow the project’s current rules. Do not add a new UI library unless the project already uses it. Acceptance criteria: The main task works with keyboard only and at 320px width. Focus and status changes are announced. Check loading, failure, retry, cancel, and reduced-motion paths. Evidence and limits (evidence boundary): No single official standard controls the whole term. Its meaning may change across teams, platforms, or frameworks. Unknowns to confirm: Product wording, data source, analytics events, supported devices and languages, and platform limits.
Check this request
Review the current use of Progress Indicator. Definition: A progress indicator shows that work is still happening. A bar or ring shows known progress. A spinner means the wait time is unknown. Release checks: Before release, check the page structure, keyboard access, visible focus, contrast, and zoom. Also check loading, empty, error, success, cancel, and reduced-motion states. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.