The actor has given the system something it cannot accept, and is about to find out on the system’s terms. Validation arrives at the field where the input happened, says what is wrong and how to fix it, and stays until the correction.
Persistence is the defining property — a message demanding action must outlive the glance, which makes validation the counterpart of transient feedback within status feedback’s three delivery shapes.
Timing
Reward early, punish late. A first-time entry should not be judged while the actor is still typing — flag it when they leave the field, or on submit. Once a field has been flagged, reverse the rule: re-validate on every keystroke, so the fix is confirmed the moment it lands rather than at the next blur.
Resources & references
- NN/g / How to Report Errors in Forms
- Smashing Magazine / A Complete Guide To Live Validation UX
- GOV.UK / Help users to recover from validation errors
Consequences
- the message sits at the field that produced it, says what is wrong and what would fix it, and stays there until the correction lands
- the timing rule inverts once a field has failed: judging a first attempt mid-typing is punishment, and waiting for the next blur to confirm a fix is withholding
- every message is prose somebody wrote, and a long form's worth of them is a body of writing that decides whether the actor recovers or abandons the form
Related patterns
Instantiates
- Status feedback — the persistent, correction-demanding delivery shape of status feedback
Complements
- Data entry — a forgiving format prevents errors this move would otherwise have to report
Tangentially related
- Disabled state — disabling submit until the form is valid hides the problem this move exists to explain
Related
- Editing in place — when the display is the control, the message has to fit beside the value rather than under a labelled field
- Prompt scaffolding — prompt-quality feedback is validation applied before the request runs
Preceded by
- Data entry — input that arrived cleanly can still be wrong in ways the control can't catch, so accepting a value and accepting it as correct are separate steps
Hosted by
- Form — the form is the surface that hosts fieldwise messages and wires them to submission