| UI or UX | UI + UX - Dirty-editor decision prompt before closing, canceling, switching, or replacing unsaved edits | UI + UX - Attempted-departure safeguard for unrecoverable in-progress work | UI + UX - Background-saving form progress | UI + UX - Consequential alert decision |
| UI guidance | Show a focused prompt when users try to close, cancel, switch records, replace content, or leave edit mode while current edits are dirty and not yet recoverable. | 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. | 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 | Use an unsaved changes prompt to protect local edits at the moment a user is about to abandon or replace them inside the product. | Use exit warning to interrupt an attempted departure that would lose work, context, payment state, upload progress, or session-bound data the product cannot safely recover. | Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button. | Interrupt users only when the action has a meaningful consequence that cannot be safely recovered afterward. |
| Good UI | A profile editor close button opens Save changes to Billing contact?, lists edited phone and department fields, and offers Keep editing, Review changes, Save changes, or Discard changes. | 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. | 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 | A modal says Are you sure? when the user clicks Cancel, with OK and Cancel labels that do not say whether edits will be saved or discarded. | Every navigation shows Are you sure you want to leave? even after the form is saved. | A form removes the Save button and shows no save status, leaving users unsure whether typed answers are safe. | A popup says Are you sure? with OK and Cancel but does not name the project, notes, or irreversible outcome. |
| Good UX | A user edits two fields, clicks Close, reviews the changed fields in the prompt, saves, and the editor closes only after the saved state is confirmed. | A user starts to close a tab after a failed autosave, sees the risk before leaving, stays on the page, retries the save, and then leaves without another warning. | A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable. | Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive. |
| Bad UX | A user chooses Save, the request fails, and the editor still closes as though the latest values were safe. | A user clicks a sidebar link after typing a long answer and loses it because the product only watched final Submit. | A user leaves after seeing an old saved message, but the newest field was never persisted. | Every archive, filter, and dismiss action opens the same confirmation until users click through automatically. |
| Best fit | A close, cancel, switch, or edit-mode exit would discard unsaved local changes. | Users have unsaved or pending changes that cannot be recovered if they leave. | Users spend meaningful time entering form content or application progress. | The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible. |
| Avoid when | There are no actual unsaved changes. | 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 action is routine and easily reversible. |
| Required state | Clean editor state with no prompt. | Clean state with no exit warning attached. | Initial state that explains progress will be saved automatically. | Pre-action state with an explicit consequential trigger. |
| Accessibility burden | Use dialog or alertdialog semantics when the prompt interrupts the current task and requires a response. | 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 alertdialog semantics or platform equivalent when the decision is urgent and requires a response. |
| Common misuse | Prompting when nothing changed. | Warning on every navigation regardless of whether work is dirty. | Removing the Save button while providing no autosave status. | Asking users to confirm every routine action until they stop reading. |