B3.11.4Golden Rulesdesign

Design dialogs to yield closure

Aliases: task closure · dialog sequencing · completion feedback

What it is

Designing dialogs to yield closure means every stretch of human-computer interaction should have a clear beginning, progression, and end: the request was accepted, the task is done, the exception was handled, or the session was deliberately kept open. Users should not be left in a state of "probably done, but not sure."

Why it happens

Closure lets a user formally cross a goal off the mental list they are monitoring. A task that has not received an explicit end signal keeps consuming a small amount of ongoing monitoring attention — the user periodically wonders "is this actually finished" even without checking. A clear breakdown into stages, backed by evidence of the result, terminates that low-level monitoring early, instead of relying on animation or celebratory effects to manufacture an illusion of completion. One common but shaky explanation attributes the value of closure to the Zeigarnik effect — the folk claim that unfinished tasks are remembered better and generate more tension than finished ones — but replications of this effect have been inconsistent, so it should not be treated as settled. The more defensible account only needs that an un-retired item on a goal stack keeps consuming monitoring resources, regardless of whether the Zeigarnik effect itself holds up.

Where it stops holding

A common failure mode is manufacturing false closure: showing a "success" screen before background processing has actually finished. When the real state later diverges — a payment settles late, an export actually fails — the user does not experience "no closure," they experience "revoked closure," which damages trust more than an honest "still processing" would have. A second boundary is long, multi-day, multi-stage workflows: forcing every session to be packaged as one complete loop, purely to manufacture a sense of closure, fragments the continuity of the actual task. In that case it is more reliable to honestly show the state as "still open, currently owned by whom, next step is what" than to pretend every exit is a tidy wrap-up.

Applying it

  • Define six exit states for key flows — start, stage, complete, fail, cancel, and pause — and only show the corresponding feedback once that state is genuinely reached.
  • Show a result summary, scope of impact, next step, and an undo/continue entry point on the completion screen; if completion depends on an asynchronous background confirmation, wait for that confirmation before displaying it, not before.
  • Save drafts on interruption or exit, and on return show the actual resume point and current real state, rather than repackaging it as a fresh start.
  • Walk through task logs looking for steps where users repeatedly confirm or ask "is this done" — these usually mark a missing or premature closure signal.

Related

  • Same group: B3.11.1 Strive for consistency · B3.11.2 Provide universal usability · B3.11.3 Offer informative feedback · B3.11.5 Prevent errors · B3.11.6 Permit easy reversal of actions · B3.11.7 Keep users in control · B3.11.8 Reduce short-term memory load
  • Nearby: H1 Interaction Patterns and Flows · I1 State, Time, and Responsiveness
  • Search terms: closure · task completion · dialog flow

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/B3.11.4