Multi-step setup shows progress to the user
Why it matters
Users who don't know how many steps remain in an onboarding flow abandon earlier and report higher frustration scores. WCAG 2.2 SC 2.4.8 (Location) requires that users know where they are within a set of pages — a multi-step onboarding without a step counter violates this directly. Beyond compliance, absence of a progress signal is one of the top controllable causes of onboarding abandonment: users quit because they don't know when it will end, not because the steps are too hard.
Severity rationale
Low because the failure degrades conversion and user experience but does not expose data, break functionality, or create a security gap.
Remediation
Add a step indicator to src/app/(app)/onboarding/layout.tsx that renders on every step transition:
<div className="flex items-center gap-2 mb-6">
{steps.map((step, i) => (
<div
key={step.id}
className={cn("h-2 flex-1 rounded", i <= currentStep ? "bg-primary" : "bg-muted")}
/>
))}
<span className="text-sm text-muted-foreground ml-2">
Step {currentStep + 1} of {steps.length}
</span>
</div>
The indicator must update on every step change. A static label showing the total without the current position does not satisfy the requirement.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Onboarding UX Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- wcag:2.2 · 2.4.8 — Location
Taxons
History
- 2026-04-18·v1.0.0·Initial import from saas-onboarding·automated