| UI or UX | UI + UX - Anti-pattern where validation or failed submission destroys recoverable user-entered values | UI + UX - Field-level validation feedback | UI + UX - Form recovery summary | UI + UX - Short related multi-field submission page | UI + UX - Recovery surface for failed or uncertain background saves | UI + UX - Recoverable failure surface |
| UI guidance | Keep the failing value visible and editable beside a precise field error, and preserve valid sibling fields, uploaded file names, selected options, text area drafts, and formatted/raw values unless policy explicitly requires clearing a sensitive secret. | Render a labeled field with hint text, field-adjacent error text, invalid styling, preserved value, and corrected state. | Render a top-of-form summary block with heading, linked error list, and matching field-level error messages. | Render a clear form heading, short instruction, required or optional indicator explanation, grouped related fields, one primary submit action, and a visible error summary only after failed submit. | Keep the user's latest local value visible or copyable until recovery succeeds, and distinguish Retry save, Keep local copy, Restore last saved, Compare versions, Download copy, and Continue after recovery. | Render a persistent error region near the affected content with a specific failure heading, plain-language cause, preserved context, and recovery actions. |
| UX guidance | Treat value preservation as part of validation: every client rule, server rule, formatter, retry, reload, session return, and masked input path must either preserve the value or explain a narrow, policy-backed exception. | Help the person reach a clear task outcome. | Move users from the summary to the exact field, group, or first invalid control that needs correction. | Use a single-page form when users benefit from seeing, comparing, and editing a small related set of fields before one submission. | Use autosave recovery when users need to preserve effort after background saving fails, stalls, conflicts, expires, or only stores a local copy. | Match the next action to the failure cause: retry transient failures, edit correctable input, use cached fallback for read-only continuity, or provide support reference when recovery is outside the UI. |
| Good UI | A failed email validation keeps maya@@example visible, shows Enter an email address in the correct format, and leaves the phone and message fields intact. | Error text appears next to the field with readable spacing, persistent label, hint text, and the invalid value still visible. | Top-of-form summary with a clear heading, linked error list, and matching inline field messages. | A contact-details form shows one heading, a required-field note, grouped name and contact fields, communication preference radios, aligned field errors, and a Save details button at the end. | A claim form says Household income answer failed to autosave at 10:42, keeps the typed answer visible, and offers Retry save, Copy answer, Restore last saved, and Continue after saved. | A failed save state keeps the draft visible and labels the support reference separately from the user-facing explanation. |
| Bad UI | A checkout form fails cardholder-name validation and reloads with every shipping field blank. | Error message appears far from the field it describes. | Summary and field messages visually disconnected or contradictory. | A long application with eligibility, address history, uploads, and payment fields is dumped onto one scrolling page. | The app clears the field after a failed autosave and offers only Reload page. | Tiny transient toast for a blocking failure. |
| Good UX | A user corrects one mistyped character in a preserved phone number after validation instead of re-entering the full number. | Validation appears after blur or submit when it helps correction. | After failed submit, focus or reading order makes the summary discoverable before users scan the form. | A user reviews all contact details before submitting because the fields are short, related, and visible in one scan. | A user loses network while writing a long answer, sees it is saved on this device only, reconnects, retries the same value, and continues after the timestamp updates. | User input and filter context are preserved after failure, and retry returns to recovered content or a clear still-failed state. |
| Bad UX | A user uploads evidence, enters long notes, hits Submit, and loses the notes because one date was invalid. | Showing errors before users type. | Only showing errors below the fold. | A validation failure clears completed fields, forcing the user to re-enter unrelated information. | A stale saved timestamp hides that the latest answer failed after the timestamp. | Clearing work after save failure. |
| Best fit | Use this anti-pattern entry to audit forms, editors, imports, checkouts, onboarding flows, and configuration screens where validation can erase recoverable user work. | A single field has a specific correctable problem. | Form submission can produce one or more errors. | A compact set of related fields should be reviewed together before one submit. | Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work. | A system or task failure blocks expected content or action. |
| Avoid when | Choose another interaction when the task calls for a different route. | The main recovery task is finding several errors across a submitted page. | The message is a system failure, permission problem, or outage rather than a validation issue. | The form is long, high-stakes, branched, or too hard to recover from on one page. | The work is a durable draft object with list-level resume, publish, and discard lifecycle. | Nothing exists yet and the state is expected. |
| Required state | Initial typed state with values entered across multiple fields. | Invalid field with preserved user value and adjacent correction text. | Failed-submit state with summary visible near the form heading. | Initial empty state with form heading, instruction, required or optional indicator explanation, grouped fields, and submit action. | Clean saved state with current server timestamp. | Normal expected state before failure. |
| Accessibility burden | Preserved values must remain in their controls so screen reader and keyboard users can edit them in place. | Expose invalid state on the input and connect error text to the field description where possible. | Use a heading and alert behavior that makes the summary discoverable. | Keep field order in the DOM the same as the visible order. | Place recovery controls in reading order near the affected field, section, or submit action. | Use appropriate alert or status semantics for newly appearing critical errors. |
| Common misuse | Calling form reset after submit regardless of success or failure. | Showing field errors before users have interacted with the control. | Replacing field-level messages with only a top-level summary. | Using one page for a long complex application just to avoid designing steps. | Leaving a green Saved label visible after a failed or stale autosave. | Using a transient toast for critical errors. |