C6.28.4Autofill versus live validation timingdesignresearch

Autofill and validation timing must be coordinated so fill does not trip instant errors

Aliases: fill trips validation · error before fill finishes · premature validation

What it is

Many forms run validation on input or change: email must contain @, phone must be full length. Autofill often writes box by box and frame by frame. The first box is full, the second still empty, and live validation treats an in-flight fill as an error; red outlines and messages appear before the user can even read the values. What must be coordinated is when validation runs, not whether the fill is correct. Errors before fill completes make the profile look invalid and can even interrupt fill that has not finished.

Why it happens

Browser fill may fire input then change; several boxes may update in an unstable order. If validation treats every input as “the user is done,” intermediate states (area code only, local part of an email) all fail. Error animation and summaries steal focus and interrupt the password manager's next box. Some sites fire network checks on input (is this email registered), so fill emits a burst of requests in milliseconds. The right hooks are: per-field after blur or after a fill batch ends (autofill pseudo-class on animation, or several boxes changing in one microtask); whole-form again on submit.

Studying it

Fill a live-validated form, record when error messages appear versus when each box's value stabilizes, and look for “message earlier than stable.” Compare input, change, blur, and submit hooks. Watch the network panel for checks that should not have fired early. Slow-motion fill (stepwise writes) enlarges the intermediate state. Do not only score final submit success—a flash of error in the middle is already a defect to users.

Where it stops holding

A single box whose fill writes a complete legal value in one shot may never flash. The server must still validate on submit; deferring on the client is not skipping validation. Live errors remain useful for hand typing; the policy should branch on “are we in a fill batch,” not globally disable. SMS-filled one-time codes have an even shorter window and should still wait for a stable value.

Applying it

  • Suppress per-keystroke validation during fill; run after blur or after detecting the fill batch has ended.
  • Do not fire “already registered?” requests on input.
  • If a value is still changing when an error appears, clear the error until it stabilizes.
  • Verify with slowed developer tools: trigger fill; red outlines must not appear before every target box is written. Then leave a real error on submit and confirm validation still reports it.

Related

  • Same group: C6.28.1 Autofill depends on field semantics; missing or wrong annotation fills the wrong content · C6.28.2 Autofilled content must stay editable before submit, not locked · C6.28.3 Autofill may insert mismatched history across origins, with privacy and error risk
  • Adjacent: C6.24 Autocapitalization and formatting · C6.10 Autocomplete
  • Search: autofill validation · input event timing · premature errors

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/C6.28.4