Feedback should appear where the action happened
Aliases: action-effect coupling · local confirmation · in-control feedback
What it is
Double-tap a photo and a heart bursts from the picture; “liked” is billed to that tap. The same tap that only flashes Saved in the nav bar loosens the causal link — the timing matches, the place does not. Co-located feedback means the visible effect grows at the coordinates of the action: the heart that was hit, the button that was submitted, the slider that was dragged.
The claim is about attribution, not loudness. A large red banner somewhere else can still fail to be counted as this action.
Why it happens
Action and effect are bound by common coding: an effect is registered as the result of this action when it occurs at the action’s locus. Temporal closeness only finishes half the bind. Once the place splits, the effect is filed as something the system did on its own, or as nothing. Hence the classic second tap — the submit already went through, but nothing changed on the button, so the finger presses again.
A state change on the control itself (depression, a stepped number, a switch throw) is the cheapest co-location: it spends no extra layer. A toast or a banner is a move of the effect off the action’s site.
Studying it
Compare three effect locations for the same action: inside the control, beside it, and a remote global bar. Do not ask “did you see a message?” Ask “did that tap work?” and count retries.
Independent variables: distance from contact point to effect, whether the control itself is rewritten, duration. Dependent variables: unprompted correctness of the result judgement, repeat-click count, time from press to stopping waiting.
Use real forms and lists, not an isolated button. In a running task people will not volunteer to hunt evidence elsewhere.
Where it stops holding
When the result does not live on this control at all (“payment accepted” has to be checked in the order list), co-location can only leave a local receipt; the real result still has to appear where the result lives. A full-page jump is itself a location change; a title change on the landing page already confirms, and a toast on the old page is leftover. Screen readers do not use coordinates; co-location has to become a control state or speech at the focus. On a shared canvas, other people’s actions have no local contact point, so co-location cannot say who did it — authorship marks have to.
Applying it
- Prefer rewriting the control: the switch travels, the stepper number jumps, the like icon fills. Do not park those success states only somewhere else.
- When the control cannot hold the full result, leave a quiet local receipt beside it and link to the result page.
- A submit button should enter an in-progress state in place during the request, so a blank wait is not read as a missed tap.
- How to check: drop the network or add delay, and watch whether people hammer the button. Repeat presses mean the success signal did not grow at the action’s site.