What the person is doing
Users need reassurance that the click, submit, refresh, save, sync, or region load was received.
Foundation · lesson 6 of 30 · Feedback, Status, And System State
Underlying principle: Status connects an action to a real system event. A useful message names the current state, its consequence, and the next available action.
Show a labeled, scoped spinner only while the named operation is genuinely in flight, prevent duplicate actions, expose busy semantics for the affected region, and transition to a resolved, progress, cancelled, timeout, or error state on a defined path.
Status connects an action to a real system event. A useful message names the current state, its consequence, and the next available action.
Users need reassurance that the click, submit, refresh, save, sync, or region load was received.
Show a labeled, scoped spinner only while the named operation is genuinely in flight, prevent duplicate actions, expose busy semantics for the affected region, and transition to a resolved, progress, cancelled, timeout, or error state on a defined path.
Inline processing state for a button or small local action.
What exact action or region does the spinner belong to?
The spinner appears only after the operation starts and disappears or changes state when the operation resolves, fails, is cancelled, or moves to background.
Users need reassurance that the click, submit, refresh, save, sync, or region load was received.
Open the working example, try its controls, and compare the behavior against the decision guidance.
Users need reassurance that the click, submit, refresh, save, sync, or region load was received.
Show a labeled, scoped spinner only while the named operation is genuinely in flight, prevent duplicate actions, expose busy semantics for the affected region, and transition to a resolved, progress, cancelled, timeout, or error state on a defined path.
Inline processing state for a button or small local action.
Users think the whole app is frozen because a page overlay hides a local update.
Give the spinner or affected region an accessible name that identifies the operation.
IBM Carbon Design System - checked
Carbon supports scoped loading indicators, optional labels, inline and overlay placement, disabled related actions, and skeleton alternatives.
Google Material Design - checked
Material supports indeterminate circular indicators when progress is not detectable and determinate progress when completion can be measured.
Apple - checked
Apple supports activity indicators for concise indeterminate status in background operations or constrained spaces.
MDN Web Docs - checked
MDN supports accessible progress naming, indeterminate state, determinate values, and aria-busy on affected loading regions.
Source trail checked: