Progress bar
Showing state and identity · researchedA bar showing how far a task has progressed.
atom
Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.
Ant Design
Progress native: no antd 6.6.5Carbon
Progress bar contested native: no @carbon/react 1.117.0- Variants
- Determinate, Indeterminate
- Sizes
- small, big
- States documented
- error
- Accessibility guidance
- yes
Job is split across components: Progress bar (div role=progressbar, not native progress), Progress indicator (a step tracker) and Loading/Inline loading (spinners), each with its own docs page. Row describes Progress bar; its documented statuses are active, success and error.
1 corrected on re-read
- urls: {"docs_url":"https://carbondesignsystem.com/components/progress-bar/usage/","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/ProgressBar"} → {"docs_url":"https://www.carbondesignsystem.com/building-blocks/core/components/progress-bar/guidelines","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/ProgressBar"} curl -L: HTTP 200 for both; docs_url redirects to this final URL
GOV.UK
Checked the Components index (https://design-system.service.gov.uk/components/), the Patterns index (https://design-system.service.gov.uk/patterns/), the Styles index (https://design-system.service.gov.uk/styles/) and the repo components directory (alphagov/govuk-frontend packages/govuk-frontend/src/govuk/components, plus installed 6.5.1 dist). No progress bar or spinner. Task list (status per task) and the Complete multiple tasks and Step by step navigation patterns show progress through tasks, but not process progress.
Material Web
Progress indicators (<md-circular-progress>, <md-linear-progress>) native: no @material/web 2.5.0Primer
ProgressBar native: no @primer/react 38.40.1- Variants
- —
- Sizes
- small, default, large
- States documented
- default
- Accessibility guidance
- yes
Renders a span with role=progressbar, not the native progress element. Supports multiple segments and animated. Size is the barSize prop. Spinner (sizes small, medium, large) is the indeterminate counterpart and has its own Accessibility page.
Spectrum
Progress bar; Progress circle subset native: no @spectrum-web-components/button 1.12.4- Variants
- —
- Sizes
- S, M, L, XL
- States documented
- default
- Accessibility guidance
- yes
Two sibling components, each covering part of the concept (docs on both swc and rsp). Sizes from the SWC 2nd-gen bar data file; the circle has s, m, l only and staticColor is an option. Native check: SWC 2nd-gen and 1st-gen bars are divs with role=progressbar, the circle is an svg, and S2 uses React Aria ProgressBar (div), never the progress element. Bar's Accessibility section is the Button keyboard table reused; the circle page has none.
USWDS
Step indicator contested native: no @uswds/uswds 3.14.0- Variants
- .usa-step-indicator--no-labels, .usa-step-indicator--counters, .usa-step-indicator--counters-sm, .usa-step-indicator--center
- Sizes
- —
- States documented
- default
- Accessibility guidance
- yes
Shows position in a multi-step process using an ol of segments; there is no progress bar or spinner component.
1 corrected on re-read
- builds_on_native: "partly" → "no" Twig renders div > ol (li segments, aria-current) plus heading; no progress element
Platform facts
Anatomy
- progress bar — The progress element; APG role progressbar is referenced by the Meter page. Spec: determinate (0 to max) or indeterminate.
- label — MDN Accessibility: provide an accessible label (label element, aria-labelledby or aria-label); text between the tags is only a fallback.
- value optional — value attribute; absence means indeterminate.
The seven states
| default | Determinate at a value. |
|---|---|
| hover | n/a — Not interactive. |
| focus | n/a — Not focusable. |
| active | n/a — Not interactive. |
| disabled | n/a — Not defined. |
| error | n/a — Not defined. |
| loading | Mapping inference: 'loading' is taken to be indeterminate. Spec: indeterminate means progress is being made but it is not clear how much more work remains; MDN: :indeterminate matches when value is absent. |
Every cell was read twice, the second time from raw sources by a separate pass. 2 of 35 fields changed on the second read — open any “corrected” note to see what it said before.