Scenario 3 of 6

Slow response

Twelve seconds. The interface escalates instead of spinning forever.

Try it in the lab

Expected behaviour

Skeletons at 300ms, a “taking longer than usual” message at 3 seconds, and a Cancel option at 8 seconds.

Why it behaves this way

An unchanged spinner gives no information after a few seconds. Escalating the message tells people the system is still working and lets them decide to stop waiting.

  • “Slow” is not a separate state. It is the same request observed later, so model it as time elapsed rather than as a status.
  • Escalate in steps: acknowledge the delay, then offer a way out.
  • Cancelling must leave the interface in a clear, recoverable state with a way to try again.

Accessibility

Each escalation is announced once. Cancel is a real button that receives focus only when you move to it; the interface never moves focus on its own while you wait.

Mistakes this scenario exposes

  • Infinite spinners with no message and no way out.
  • Cancelling a request but still rendering its response when it arrives late.