Scenario 1 of 6
Loaded
A normal, fast response with full access.
Expected behaviour
Data arrives in about 0.7 seconds. Skeletons appear after 300ms and are replaced by content of exactly the same size.
Why it behaves this way
The happy path is the baseline every other state is measured against. Reserving final dimensions keeps layout shift near zero.
- Reserve the final size of every widget before data arrives, so content replaces placeholders instead of pushing the page around.
- Only announce updates the user caused. Announcing the initial load competes with the screen reader reading the page.
- Format numbers for the reader: currency with units, deltas with a direction in words, not just colour or an arrow.
Accessibility
The dashboard region is marked busy while loading. Nothing is announced on first load; a change you trigger is announced once when it completes.
Mistakes this scenario exposes
- Spinners that shift the layout when content arrives.
- Deltas conveyed only by red and green.