Users can commit destructive or high-consequence actions because the final labels do not say the real outcome, target, scope, or safe alternative.
Audit details
Detection cue
A dialog, sheet, action menu, toast, command palette, mobile action sheet, or review page includes a destructive command.
Common signs
- A delete prompt uses OK and Cancel without naming what OK will delete.
- A subscription flow has a Cancel button that could mean close the dialog or cancel the subscription.
Safer move
- Inventory every destructive prompt and record the trigger label, title, final action, safe action, status message, object, count, and consequence.
- Replace OK, Yes, No, Continue, Confirm, Submit, and Done with outcome-specific labels.
When products ask users to confirm too many routine actions, users learn that confirmations are meaningless friction. The prompt no longer creates attention when the consequence is genuinely destructive, costly, external, or hard to undo.
Audit details
Detection cue
A product uses modal confirmations, alert dialogs, browser confirms, action sheets, or extra OK prompts for many commands in the same workflow.
Common signs
- Adding a confirmation after every user mistake without asking whether the mistake was reversible.
- Using one generic confirmation component for every action from closing a panel to deleting a workspace.
Safer move
- Inventory all confirmation prompts in the workflow and tag each by action, frequency, reversibility, external effects, consequence severity, and existing recovery.
- Remove modal confirmation from routine save, close, filter, dismiss, archive, hide, reorder, and delete-to-trash actions when undo or status feedback is sufficient.
Users encounter disabled buttons, menu items, toggles, form controls, or workflow actions that block progress without a usable route to meet the requirement, request access, resolve a dependency, recover from state, or choose a safe alternate path.
Audit details
Detection cue
The interface gates an action behind form completion, permission, quota, account status, dependency setup, offline state, session expiry, review approval, or safety policy.
Common signs
- A Continue button remains disabled until all fields are valid but no field or checklist names the missing work.
- A disabled Invite teammate action hides that billing setup, owner approval, or admin policy is required.
Safer move
- Inventory each disabled control and record the exact condition, owner, timeout, retry rule, and recovery path.
- Place prerequisite, permission, offline, dependency, or session recovery text before or next to the disabled control.
Undo creates strong user trust, but products sometimes expose an undo label before they can actually reverse the action. The result is worse than no recovery because users believe a harmful change was undone when data, permissions, order, messages, or external effects remain changed.
Audit details
Detection cue
A product shows Undo in a toast, snackbar, activity row, command bar, keyboard shortcut, history stack, or recovery panel after a completed action.
Common signs
- Showing Undo after an action that has already sent email, money, permissions, or webhooks outside the product.
- Restoring only a visible row while losing comments, labels, sharing, order, or ownership.
Safer move
- Define what exact prior state must be restored for each action: ID, parent, order, labels, ownership, permissions, relationships, counts, draft values, and focus target.
- Capture the restore payload before mutating local, server, and external systems.
Validation is supposed to help users correct data, but clearing input after errors turns a small correction into rework, loses context, and can make users abandon or mistrust the form.
Audit details
Detection cue
A form, editor, checkout, upload, import, authentication, or configuration screen validates user-entered values on blur, submit, save, retry, or server response.
Common signs
- Calling form reset after submit regardless of success or failure.
- Replacing the user's raw value with an empty string when parsing fails.
Safer move
- Keep form state separate from validation state so adding an error cannot reset field values.
- On failed submit, render the previous submitted values back into every safe control before showing errors.