| UI or UX | UI + UX - Attempted-departure safeguard for unrecoverable in-progress work | UI + UX - Background-saving form progress | UI + UX - Unpublished object version lifecycle | UI + UX - Consequential alert decision |
| UI guidance | Show a warning only when the user attempts to leave with real unsaved, pending, failed, or unrecoverable work; place in-app route warnings at the point of departure with Save and leave, Discard and leave, and Stay editing choices. | Render a clear autosave message before users start, then keep a persistent status surface for Pending, Saving, Saved with timestamp, Failed, Retry, and unsafe-to-leave states. | Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions. | Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope. |
| UX guidance | Help the person reach a clear task outcome. | Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button. | Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version. | Help the person reach a clear task outcome. |
| Good UI | A grant form user clicks Back with two unsaved answers; a dialog names the changed section and offers Save and leave, Discard and leave, or Stay editing. | A long application step says the application is saved on every change, shows Saving after an edited title blurs, then shows Draft saved just now with a timestamp. | A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish. | Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive. |
| Bad UI | Every navigation shows Are you sure you want to leave? even after the form is saved. | A green Saved toast appears after one field saves, while another changed field is still pending or failed. | A draft label is missing from the editor, so users publish or discard the wrong version. | The red destructive action is enabled immediately and sits where users expect the routine primary button. |
| Good UX | A user chooses Discard and leave from an in-app warning and is taken to the intended destination with a clear understanding of what was discarded. | A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable. | A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers. | Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive. |
| Bad UX | A user clicks a sidebar link after typing a long answer and loses it because the product only watched final Submit. | A password or permission field autosaves immediately and takes effect before the user reviewed the consequence. | A user discards a shared draft and unknowingly removes another editor's unpublished changes. | Every archive, filter, and dismiss action opens the same confirmation until users click through automatically. |
| Best fit | A route change, tab close, reload, browser Back, external link, or sign-out action can interrupt a task. | Users spend meaningful time entering form content or application progress. | Users need to pause and resume unfinished work across sessions, devices, or routes. | The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible. |
| Avoid when | The page is clean, read-only, or all changes are safely saved and recoverable. | The form is short enough that a visible manual Save or Submit is clearer. | The change is a small one-field edit that should be saved or canceled immediately. | The action is routine and easily reversible. |
| Required state | Dirty unsaved state with local unsaved-work status. | Initial state that explains progress will be saved automatically. | Published or active state with an available draft. | Pre-action state with an explicit consequential trigger. |
| Accessibility burden | Use a real dialog or alertdialog for in-app warnings, with a heading that names the loss risk. | Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states. | Use headings and status regions so screen reader users know whether they are editing a draft or viewing the active version. | Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response. |
| Common misuse | Warning on every navigation regardless of whether work is dirty. | Showing Saved when only an older change was saved. | Using Saved to mean both saved draft and published content. | Asking users to confirm every routine action until they stop reading. |