Application · lesson 11 of 21 · Navigation And Wayfinding

Step navigation / step indicator

Underlying principle: Navigation exposes the site's structure at the moment a person needs to move. A useful route has a recognizable label, a predictable destination, and an orientation cue after arrival.

Provide a source-backed step indicator for linear tasks with three or more meaningful steps, validated completion states, a matching step heading, and separate Back and Continue controls that preserve entered data.

Start with the decision

Does this fit your task?

A linear form, application, checkout, or setup flow has three or more meaningful steps.

Review the boundary: Compare the task with the alternatives in the decision section.

Review the decision →
Study the interaction

Follow the task before choosing the component

Navigation exposes the site's structure at the moment a person needs to move. A useful route has a recognizable label, a predictable destination, and an orientation cue after arrival.

01 / Recognize the need

What the person is doing

The task spans several screens and users may worry about how much work remains.

02 / Design the response

What the interface must communicate

Provide a source-backed step indicator for linear tasks with three or more meaningful steps, validated completion states, a matching step heading, and separate Back and Continue controls that preserve entered data.

Default state with completed, current, and upcoming steps.

03 / Judge the outcome

What to look for

Are these stable task milestones, or are they hierarchy pages, result pages, or same-page sections?

The current indicator segment always matches the visible page, route, and task heading.

Decision first

Choose this pattern when the problem matches

Use when

  • A linear form, application, checkout, or setup flow has three or more meaningful steps.
  • Users benefit from knowing total progress and remaining work.
  • Steps have stable labels and a mostly stable order.
  • Each step can report completion, current, upcoming, optional, or error status honestly.

Avoid when

  • The journey has only one or two screens.
  • Steps can be completed in any order or the set of steps changes substantially based on answers.
  • The user needs parent hierarchy, same-page section jumps, or result-page traversal.

Problem it prevents

The task spans several screens and users may worry about how much work remains.

Test the behavior

Try strong and weak versions of the interaction

Open the working example, try its controls, and compare the behavior against the decision guidance.

In the lab you can
  • switch between strong UI, weak UI, strong UX, and weak UX;
  • trigger required, empty, loading, error, and recovery states;
  • inspect keyboard and accessibility expectations beside the demo.
Launch Step navigation / step indicator in the lab
Pattern anatomy

What a strong implementation has to make clear

User need

The task spans several screens and users may worry about how much work remains.

Pattern promise

Provide a source-backed step indicator for linear tasks with three or more meaningful steps, validated completion states, a matching step heading, and separate Back and Continue controls that preserve entered data.

Required state

Default state with completed, current, and upcoming steps.

Failure to inspect

Current step, route, and heading drift out of sync.

Access contract

Use aria-current on the current labeled step and include hidden or visible status text for completed, current, upcoming, optional, and error states.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • A five-step application shows Eligibility complete, Contact details current, Documents upcoming, Review upcoming, and Submit upcoming, with the current step emphasized and a matching page heading.
  • A checkout uses short labels such as Cart, Shipping, Payment, Review, and Confirmation with a visible error marker only on the invalid Payment step.
  • A vertical progress indicator in a side panel shows completed checkmarks, current half-filled marker, optional helper text, and future steps in lower emphasis.
  • After a user enters valid contact details and continues, Contact details becomes complete and Documents becomes current.
Weak implementation

Vague, hidden, hard to recover from

  • All future steps look clickable and complete even though required earlier fields are blank.
  • A breadcrumb trail for Home, Benefits, Apply, and Contact is styled as a stepper, confusing hierarchy with task progress.
  • The indicator says Step 4 of 5 while the page content and route still show Step 2.
  • A conditional journey inserts a new step after users start, making the fixed step count wrong.
UI guidance
  • Show a compact ordered list of named steps near the task heading, with visually distinct completed, current, upcoming, optional, and error states.
  • Keep labels short and task-specific; pair the indicator with an explicit step heading such as 'Step 2 of 5: Contact details' rather than relying on the strip alone.
UX guidance
  • Use step navigation to reduce uncertainty in long linear tasks by showing where users are, what is done, and what remains.
  • Treat completion as validated task progress, not page visitation; keep Back and Continue controls separate and preserve answers when users revisit completed steps.
Implementation contract

What the implementation must handle

States

  • Default state with completed, current, and upcoming steps.
  • Current step heading with step number and total step count.
  • Validated completion state after the user successfully continues.
  • Future step blocked or unavailable state before prerequisites are met.

Interaction

  • The current indicator segment always matches the visible page, route, and task heading.
  • A step becomes complete only after required information for that step is valid or saved.
  • Back and Continue move through the linear journey and preserve previously entered answers where valid.
  • Completed steps may be revisited if the product supports editing; future steps remain unavailable until prerequisites are satisfied.

Accessibility

  • Use aria-current on the current labeled step and include hidden or visible status text for completed, current, upcoming, optional, and error states.
  • If the indicator is interactive, make each available step keyboard focusable with visible focus and explain unavailable future steps.
  • Tab reaches interactive completed steps, Back, Continue, and current form controls in a predictable order.
  • Enter or Space activates an available step button when the indicator is interactive.

Review

  • Are these stable task milestones, or are they hierarchy pages, result pages, or same-page sections?
  • What proof marks a step complete, and what happens if a completed answer changes later?
  • Will future-step links be locked, explained, or removed until prerequisites are complete?
  • Does the current route, heading, and indicator all name the same step?
Evidence trail

Source-backed claims behind this guidance

USWDS Step indicator

U.S. Web Design System - checked

USWDS defines step indicators for multi-page linear forms or processes with three or more high-level steps and requires separate navigation plus current-step semantics.

Carbon Progress indicator

IBM Carbon Design System - checked

Carbon defines progress indicators for linear multistep tasks with completed, current, future, optional, disabled, and error states plus validation guidance.

Material Design Steppers

Material Design - checked

Material defines steppers as progress through logical numbered steps with editable, non-editable, optional, mobile, horizontal, vertical, linear, and non-linear variants.

Full agent/debug reference

Problem Context

  • The task spans several screens and users may worry about how much work remains.
  • The steps have a stable order that can be explained before or during the task.
  • Users must complete or validate information before moving safely to later steps.

Selection Rules

  • Choose step navigation when a form, checkout, onboarding, or application has three or more high-level linear steps.
  • Use it to communicate completed, current, upcoming, optional, and error states; do not use it as ordinary site navigation.
  • Show the current step in the indicator and in the page heading, and keep those labels synchronized with the route or task state.
  • Keep Back and Continue controls separate from the indicator unless the product deliberately supports interactive step navigation.
  • Allow navigation to completed steps only when previous data can be preserved and revisited safely.
  • Lock, disable, or explain future steps until prerequisites are complete; never let users skip required validation silently.
  • Avoid a step indicator for fewer than three steps, nonlinear tasks, highly conditional step counts, or same-page content sections.
  • Use a task list or process list when users need a detailed overview of many tasks that can be completed out of order.

Required States

  • Default state with completed, current, and upcoming steps.
  • Current step heading with step number and total step count.
  • Validated completion state after the user successfully continues.
  • Future step blocked or unavailable state before prerequisites are met.
  • Completed step revisit state with previous answers preserved.
  • Error state on the affected step when validation fails.
  • Responsive compact state with labels shortened or counters used when space is limited.

Interaction Contract

  • The current indicator segment always matches the visible page, route, and task heading.
  • A step becomes complete only after required information for that step is valid or saved.
  • Back and Continue move through the linear journey and preserve previously entered answers where valid.
  • Completed steps may be revisited if the product supports editing; future steps remain unavailable until prerequisites are satisfied.
  • Optional steps are labeled as optional and do not block progress when skipped.
  • If a step has an error, the indicator shows the error state and the page provides field-level or inline recovery guidance.

Implementation Checklist

  • Model steps as task milestones with stable IDs, labels, route ownership, prerequisites, completion status, and optional or error metadata.
  • Render the indicator near the task heading and include a text heading that states the current step number, total, and label.
  • Use semantic ordered-list or equivalent step semantics, and apply aria-current to the current labeled step.
  • Validate the current step before marking it complete or unlocking later steps.
  • Preserve answers when users go back or revisit completed steps, and recompute downstream status when earlier answers change.
  • Keep labels short, responsive, and readable; use counters or omitted labels only when the heading still communicates the current step.
  • Test keyboard operation, focus order, visible focus, screen reader status text, and mobile wrapping.

Common Generated-UI Mistakes

  • Using a step indicator as breadcrumbs, tabs, side navigation, or pagination.
  • Marking steps complete because they were visited rather than validated.
  • Letting users jump to unavailable future steps without saved prerequisites.
  • Showing a fixed step count for a journey whose steps change based on answers.
  • Hiding the actual page heading and expecting the indicator to serve as the only title.
  • Using vague labels such as Details, More, Next, or Processing that do not explain what the step accomplishes.

Critique Questions

  • Are these stable task milestones, or are they hierarchy pages, result pages, or same-page sections?
  • What proof marks a step complete, and what happens if a completed answer changes later?
  • Can the user revisit completed steps without losing data or invalidating hidden downstream answers?
  • Will future-step links be locked, explained, or removed until prerequisites are complete?
  • Does the current route, heading, and indicator all name the same step?
Accessibility
  • Use aria-current on the current labeled step and include hidden or visible status text for completed, current, upcoming, optional, and error states.
  • Do not rely on color alone; combine shape, text, icon, or status copy with accessible contrast.
  • Use the correct page heading level for the current step and ensure the indicator does not replace the page title.
  • If the indicator is interactive, make each available step keyboard focusable with visible focus and explain unavailable future steps.
  • Keep disabled future steps honest: if users need to perceive them, do not use disabled styling that removes them from assistive technology without alternate text.
Keyboard Behavior
  • Tab reaches interactive completed steps, Back, Continue, and current form controls in a predictable order.
  • Enter or Space activates an available step button when the indicator is interactive.
  • Arrow-key movement may be supported for an interactive progress indicator if the component documents that behavior.
  • Unavailable future steps are skipped or announced as unavailable with an explanation, not silently focused.
  • After Continue or Back, focus moves to the new step heading or first invalid field according to the validation outcome.
Variants
  • Horizontal step indicator
  • Vertical progress indicator
  • Counter-only step indicator
  • Interactive stepper for revisiting completed steps
  • Non-interactive progress indicator with separate navigation buttons
  • Mobile compact step progress
  • Error-state step indicator
  • Optional-step indicator

Verification

Source trail checked:

Saved items