Select your language
Select other languages

Automatic translation

Loading translator…

Magoomake your components work correctlyBack to homepage

Loading and progress

Communicates waiting and operation advancement, distinguishing unknown duration, measurable progress, completion, and failure.

For working examples and design patterns for this component, see the references tab (opens the references on this page).

COMPONENT GUIDE

Explore behaviors before defining the interface.

Quick guide for designers

When to use

Use when an operation requires waiting. Show determinate progress only when there is a real measure of advancement.

What to design

Show what is happening, the affected area, waiting, progress, success, failure, and recovery actions.

How it behaves

Updates keep focus predictable. Completion, failure, and cancellation end waiting with understandable feedback.

What to document in Figma

Define what progress measures, what remains available while waiting, and the effects of canceling or retrying.

How to review

Check messages and states in the design. In the implementation, verify updates, focus, announcements, and reduced motion preferences.

Waiting and measuring advancement

Availability and continuity

Completion and recovery

Interaction Methods

Mouse, touch, and keyboard

An informational indicator is followed by reading its message and progress without clicking it. Clicking or tapping Cancel or Retry executes that action when available.

Tab and Shift + Tab traverse available controls; Enter or Space on Cancel or Retry executes the action. Progress updates keep focus on the task; the static indicator does not create a focus stop.

Screen readers

Using screen reader reading commands identifies the operation and its value when determinate. With indeterminate progress, people identify waiting without receiving a fictitious percentage.

On operation start or completion, people perceive progress, completion, or failure feedback without moving focus to the bar. To recover from failure, they navigate to Retry and activate the button.

With a mobile screen reader, swiping traverses messages and controls in standard mode; double tapping activates Cancel or Retry when available.

Gherkin

BDD (Behavior-Driven Development) methodology focusing on three pillars: User Stories, Acceptance Criteria, and Gherkin Syntax (Given, When, Then).

Scenario: Given that I am on a page containing Loading and progress

Educational scenarios for reviewing behavior. Adapt them to context and execute them in the implementation; the presence of this text does not mean tests were performed.

Keyboard navigation

Screen reader on desktop

Screen reader on mobile devices

Additional scenarios — editorial extension

Progress with an unknown total

Actual completion

Failure and recovery

Focus during updates

Points to consider

Operation progress differs from a journey step indicator. Completed steps do not necessarily represent a percentage of remaining time.

Respect reduced motion preferences and preserve textual feedback when reducing animation. Avoid flashing effects.

Skeletons and spinners do not replace error, completion, or unavailability messages. Avoid waiting that never reaches an outcome.

Implementation notes and behavior decisions

An informational indicator does not need focus. Cancel and Retry, when available, follow button behavior and Tab.

Do not move focus on every update. If a focused control is removed at completion, direct focus to a coherent, documented destination.

A progress bar needs a name and a value when determinate. For indeterminate progress, do not expose a false numeric value. Prefer native progress when appropriate.

Communicate the start and outcome and, if needed, relevant milestones. A progressbar does not guarantee automatic announcement of every change; avoid forcing announcements for every percentage point.

If aria-busy is used on an updated region, reset it to false on completion or failure. Keep the status message perceivable, including while the region is busy.

References

Additional references for components of type Loading and progress.

Important:
Most references are on the course platform alongside the lessons cited in this material.

Disclaimer:
The links listed here are a curated collection of references where you can find implemented components, rather than recommendations. There is no unified implementation format and no guarantee that these links follow every design pattern. Direct questions to the teams responsible for the linked materials. Before copying a model, remember that all materials are constantly updated and that patterns, particularly proprietary ones, may change.

Technical references and examples consulted for this editorial adaptation. Each source retains its scope; consulting an example does not prove accessibility of another implementation.

Carbon — Progress bar (external link, opens in a new tab)

MDN — progress (external link, opens in a new tab)

W3C WAI — Status messages (external link, opens in a new tab)

Original content by Marcelo Sales, initially used in the AccessBoost course (external link - opens in a new window). These interactions represent standard industry patterns, but may be customized in specific cases, provided there are sufficient instructions for people to understand the behavioral change.