Back to compare picker

Ambiguous destructive action copy vs Destructive action confirmation vs Typed confirmation vs Dangerous-action review vs Confirmation fatigue vs Warning text

Flag ambiguous destructive action copy when labels hide what will be destroyed, preserved, cancelled, revoked, or executed. Use the related patterns when the issue is the review surface, exact target gate, high-impact payload review, prompt overuse, or before-action warning copy.

Learn the decision

Match the interaction to the person's task

Flag ambiguous destructive action copy when labels hide what will be destroyed, preserved, cancelled, revoked, or executed. Use the related patterns when the issue is the review surface, exact target gate, high-impact payload review, prompt overuse, or before-action warning copy.

Ambiguous destructive action copy

Use it when: Auditing destructive dialogs, action sheets, menu items, command palette actions, delete receipts, account cancellation flows, permission revocation, bulk actions, and high-impact execution reviews.

Make this state clear: Clear destructive title state with verb, target, and consequence.

Observe the result: A user reads Keep subscription and Cancel subscription and correctly chooses the path that preserves billing.

Study the full pattern →

Destructive action confirmation

Use it when: A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.

Make this state clear: Review state that names the destructive verb, target object, and affected scope.

Observe the result: A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.

Study the full pattern →

Typed confirmation

Use it when: A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.

Make this state clear: Required phrase state showing the exact target phrase to reproduce.

Observe the result: A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.

Study the full pattern →

Dangerous-action review

Use it when: A user, agent, automation, or admin tool is about to execute a high-impact action that can affect money, access, production systems, legal/compliance state, customers, external recipients, sensitive data, or safety.

Make this state clear: Armed action state with verb, target, payload, actor, source, and exact execution boundary.

Observe the result: A release manager sees that a deploy action affects production EU, has a stale smoke test, cancels execution, refreshes checks, and then runs the action with an audit record.

Study the full pattern →

Confirmation fatigue

Use it when: Use this anti-pattern entry to audit products that ask for confirmation on many routine actions or use identical prompts for different levels of risk.

Make this state clear: Prompt inventory state showing which actions are confirmed, how often they occur, and what consequence each confirmation prevents.

Observe the result: A user archives ten low-risk notifications quickly, can undo the last archive, and still pauses when the only modal names permanent account deletion.

Study the full pattern →

Warning text

Use it when: A user must understand a serious consequence before taking or skipping an action.

Make this state clear: Before-action warning state placed immediately before the related control or declaration.

Observe the result: Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.

Study the full pattern →

Practice the judgment: Imagine this situation: A plan cancellation dialog uses Cancel for both closing the dialog and cancelling the subscription. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Ambiguous destructive action copyDestructive action confirmationTyped confirmationDangerous-action reviewConfirmation fatigueWarning text
UI or UX UI + UX - Destructive copy anti-patternUI + UX - Final destructive commit reviewUI + UX - Exact target phrase gate before severe commitUI + UX - Pre-execution review of high-impact actions that may affect money, access, production systems, legal status, customers, external recipients, or safetyUI + UX - Anti-pattern where repeated low-value confirmations train users to dismiss real risk prompts automaticallyUI + UX - Severe-consequence warning copy before an action
UI guidance Replace vague destructive controls with labels that name the verb, target, count, and outcome, such as Delete workspace, Keep workspace, Revoke Maya's access, or Cancel subscription.Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.Render a visible non-secret text field inside a destructive or high-consequence confirmation, labelled with the exact target phrase the user must type before the final action enables.Render dangerous-action review as a pre-execution checkpoint that names the armed action, actor, target, scope, affected systems, external effects, risk reason, evidence, freshness, permissions, alternatives, and exact outcome of Run, Cancel, Edit, or Escalate.Make the UI distinguish routine action feedback from genuine risk: use inline status, undo, warning text, disabled prevention, review, or clearer command placement instead of another generic Are you sure dialog.Render warning text as a short high-emphasis statement with a warning icon, visible or hidden warning label, and explicit consequence copy placed before the relevant action, declaration, or instruction.
UX guidance Make the copy carry the decision boundary: users should know which choice destroys, which preserves, which closes the surface, and which continues review.Make the safe path explicit and easy, keep the destructive action unavailable until required review is satisfied, and report whether the object was kept, blocked, or permanently committed.Use typed confirmation only when reproducing the target phrase meaningfully reduces severe wrong-object or wrong-scope mistakes, such as deleting a repository, project, account, workspace, production dataset, or root credential.Help users decide whether to run, revise, cancel, defer, or escalate the action by making the action payload inspectable, comparing it with safer alternatives, revalidating stale state, and recording what the reviewer saw before execution.Help the person reach a clear task outcome.Use warning text when users must understand a serious consequence before acting or failing to act, such as a fine, loss of access, permanent deletion, eligibility impact, or legal responsibility.
Good UI A dialog title says Delete Payments project?, the safe action says Keep project, and the final action says Delete Payments project.Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.Delete repository acme/payments-api? requires typing acme/payments-api, shows a mismatch until the exact path matches, and then enables Delete repository.A production console shows Restart payment workers, affected region, open incidents, customer impact, rollback owner, evidence links, change window, dry-run result, and Run restart only after the reviewer checks the risk inventory.Archiving a message completes immediately with Message archived and Undo, while permanently deleting a workspace opens a specific destructive confirmation.Before Submit declaration, a warning with an exclamation icon says the user may be fined if they provide false information.
Bad UI A destructive prompt says Are you sure? with OK and Cancel.A soft archive action opens the same severe deletion confirmation used for permanent account closure.The typed field is masked like a password, making users unable to check the repository name they entered.A warning says This may be risky but hides the target, policy trigger, evidence, and whether the action can be undone.Every Save, Dismiss, Filter, Archive, and Close action opens the same Are you sure? modal with OK and Cancel.A red sentence says Important below the submit button after the user has already acted.
Good UX A user reads Keep subscription and Cancel subscription and correctly chooses the path that preserves billing.A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.A release manager sees that a deploy action affects production EU, has a stale smoke test, cancels execution, refreshes checks, and then runs the action with an audit record.A user archives ten low-risk notifications quickly, can undo the last archive, and still pauses when the only modal names permanent account deletion.Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.
Bad UX A user presses OK because it looks like a neutral acknowledgement and accidentally deletes the workspace.A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.A user believes typing the phrase is the only safeguard, but the dialog hides forks, members, billing effects, and recovery limits.A user approves a notification from email after the underlying payload changed, and the system executes against a different customer.A user clicks OK through a production delete prompt because the last 30 prompts all looked identical and protected harmless actions.Users incur a penalty because the warning looked like ordinary hint text.
Best fit Auditing destructive dialogs, action sheets, menu items, command palette actions, delete receipts, account cancellation flows, permission revocation, bulk actions, and high-impact execution reviews.A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.A user, agent, automation, or admin tool is about to execute a high-impact action that can affect money, access, production systems, legal/compliance state, customers, external recipients, sensitive data, or safety.Use this anti-pattern entry to audit products that ask for confirmation on many routine actions or use identical prompts for different levels of risk.A user must understand a serious consequence before taking or skipping an action.
Avoid when The issue is repeated prompt overuse; use confirmation fatigue.The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.The action is routine, reversible, local, or recoverable through undo or trash restore.The risk is narrowly permanent deletion or loss of a named object; use destructive action confirmation.Choose another interaction when the task calls for a different route.The message is a dynamic task status that must be announced when it appears.
Required state Clear destructive title state with verb, target, and consequence.Review state that names the destructive verb, target object, and affected scope.Required phrase state showing the exact target phrase to reproduce.Armed action state with verb, target, payload, actor, source, and exact execution boundary.Prompt inventory state showing which actions are confirmed, how often they occur, and what consequence each confirmation prevents.Before-action warning state placed immediately before the related control or declaration.
Accessibility burden Keep the target and consequence in reading order before compact action labels.Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.Associate the input with a label that includes or references the required phrase.Use headings and labels that name the action and target before risk details.Reducing unnecessary dialogs reduces focus disruption, but replacement feedback and undo controls must remain keyboard reachable and programmatically identifiable.Keep the warning in reading order before the control, declaration, or instruction it qualifies.
Common misuse A subscription flow has a Cancel button that could mean close the dialog or cancel the subscription.Labelling the destructive commit OK, Yes, Continue, or Confirm.Requiring users to type yes, confirm, or delete instead of the target name.Showing a risk warning but hiding the action payload, target, recipients, amount, command, environment, or external effect.Using one generic confirmation component for every action from closing a panel to deleting a workspace.Using warning text for routine hints, explanations, or mild reminders.

Ambiguous destructive action copy

UI or UX
UI + UX - Destructive copy anti-pattern
UI guidance
Replace vague destructive controls with labels that name the verb, target, count, and outcome, such as Delete workspace, Keep workspace, Revoke Maya's access, or Cancel subscription.
UX guidance
Make the copy carry the decision boundary: users should know which choice destroys, which preserves, which closes the surface, and which continues review.
Good UI
A dialog title says Delete Payments project?, the safe action says Keep project, and the final action says Delete Payments project.
Bad UI
A destructive prompt says Are you sure? with OK and Cancel.
Good UX
A user reads Keep subscription and Cancel subscription and correctly chooses the path that preserves billing.
Bad UX
A user presses OK because it looks like a neutral acknowledgement and accidentally deletes the workspace.
Best fit
Auditing destructive dialogs, action sheets, menu items, command palette actions, delete receipts, account cancellation flows, permission revocation, bulk actions, and high-impact execution reviews.
Avoid when
The issue is repeated prompt overuse; use confirmation fatigue.
Required state
Clear destructive title state with verb, target, and consequence.
Accessibility burden
Keep the target and consequence in reading order before compact action labels.
Common misuse
A subscription flow has a Cancel button that could mean close the dialog or cancel the subscription.

Destructive action confirmation

UI or UX
UI + UX - Final destructive commit review
UI guidance
Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.
UX guidance
Make the safe path explicit and easy, keep the destructive action unavailable until required review is satisfied, and report whether the object was kept, blocked, or permanently committed.
Good UI
Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.
Bad UI
A soft archive action opens the same severe deletion confirmation used for permanent account closure.
Good UX
A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.
Bad UX
A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.
Best fit
A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.
Avoid when
The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.
Required state
Review state that names the destructive verb, target object, and affected scope.
Accessibility burden
Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.
Common misuse
Labelling the destructive commit OK, Yes, Continue, or Confirm.

Typed confirmation

UI or UX
UI + UX - Exact target phrase gate before severe commit
UI guidance
Render a visible non-secret text field inside a destructive or high-consequence confirmation, labelled with the exact target phrase the user must type before the final action enables.
UX guidance
Use typed confirmation only when reproducing the target phrase meaningfully reduces severe wrong-object or wrong-scope mistakes, such as deleting a repository, project, account, workspace, production dataset, or root credential.
Good UI
Delete repository acme/payments-api? requires typing acme/payments-api, shows a mismatch until the exact path matches, and then enables Delete repository.
Bad UI
The typed field is masked like a password, making users unable to check the repository name they entered.
Good UX
A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.
Bad UX
A user believes typing the phrase is the only safeguard, but the dialog hides forks, members, billing effects, and recovery limits.
Best fit
A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.
Avoid when
The action is routine, reversible, local, or recoverable through undo or trash restore.
Required state
Required phrase state showing the exact target phrase to reproduce.
Accessibility burden
Associate the input with a label that includes or references the required phrase.
Common misuse
Requiring users to type yes, confirm, or delete instead of the target name.

Dangerous-action review

UI or UX
UI + UX - Pre-execution review of high-impact actions that may affect money, access, production systems, legal status, customers, external recipients, or safety
UI guidance
Render dangerous-action review as a pre-execution checkpoint that names the armed action, actor, target, scope, affected systems, external effects, risk reason, evidence, freshness, permissions, alternatives, and exact outcome of Run, Cancel, Edit, or Escalate.
UX guidance
Help users decide whether to run, revise, cancel, defer, or escalate the action by making the action payload inspectable, comparing it with safer alternatives, revalidating stale state, and recording what the reviewer saw before execution.
Good UI
A production console shows Restart payment workers, affected region, open incidents, customer impact, rollback owner, evidence links, change window, dry-run result, and Run restart only after the reviewer checks the risk inventory.
Bad UI
A warning says This may be risky but hides the target, policy trigger, evidence, and whether the action can be undone.
Good UX
A release manager sees that a deploy action affects production EU, has a stale smoke test, cancels execution, refreshes checks, and then runs the action with an audit record.
Bad UX
A user approves a notification from email after the underlying payload changed, and the system executes against a different customer.
Best fit
A user, agent, automation, or admin tool is about to execute a high-impact action that can affect money, access, production systems, legal/compliance state, customers, external recipients, sensitive data, or safety.
Avoid when
The risk is narrowly permanent deletion or loss of a named object; use destructive action confirmation.
Required state
Armed action state with verb, target, payload, actor, source, and exact execution boundary.
Accessibility burden
Use headings and labels that name the action and target before risk details.
Common misuse
Showing a risk warning but hiding the action payload, target, recipients, amount, command, environment, or external effect.

Confirmation fatigue

UI or UX
UI + UX - Anti-pattern where repeated low-value confirmations train users to dismiss real risk prompts automatically
UI guidance
Make the UI distinguish routine action feedback from genuine risk: use inline status, undo, warning text, disabled prevention, review, or clearer command placement instead of another generic Are you sure dialog.
UX guidance
Help the person reach a clear task outcome.
Good UI
Archiving a message completes immediately with Message archived and Undo, while permanently deleting a workspace opens a specific destructive confirmation.
Bad UI
Every Save, Dismiss, Filter, Archive, and Close action opens the same Are you sure? modal with OK and Cancel.
Good UX
A user archives ten low-risk notifications quickly, can undo the last archive, and still pauses when the only modal names permanent account deletion.
Bad UX
A user clicks OK through a production delete prompt because the last 30 prompts all looked identical and protected harmless actions.
Best fit
Use this anti-pattern entry to audit products that ask for confirmation on many routine actions or use identical prompts for different levels of risk.
Avoid when
Choose another interaction when the task calls for a different route.
Required state
Prompt inventory state showing which actions are confirmed, how often they occur, and what consequence each confirmation prevents.
Accessibility burden
Reducing unnecessary dialogs reduces focus disruption, but replacement feedback and undo controls must remain keyboard reachable and programmatically identifiable.
Common misuse
Using one generic confirmation component for every action from closing a panel to deleting a workspace.

Warning text

UI or UX
UI + UX - Severe-consequence warning copy before an action
UI guidance
Render warning text as a short high-emphasis statement with a warning icon, visible or hidden warning label, and explicit consequence copy placed before the relevant action, declaration, or instruction.
UX guidance
Use warning text when users must understand a serious consequence before acting or failing to act, such as a fine, loss of access, permanent deletion, eligibility impact, or legal responsibility.
Good UI
Before Submit declaration, a warning with an exclamation icon says the user may be fined if they provide false information.
Bad UI
A red sentence says Important below the submit button after the user has already acted.
Good UX
Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.
Bad UX
Users incur a penalty because the warning looked like ordinary hint text.
Best fit
A user must understand a serious consequence before taking or skipping an action.
Avoid when
The message is a dynamic task status that must be announced when it appears.
Required state
Before-action warning state placed immediately before the related control or declaration.
Accessibility burden
Keep the warning in reading order before the control, declaration, or instruction it qualifies.
Common misuse
Using warning text for routine hints, explanations, or mild reminders.
Decision rules
  • Choose ambiguous destructive action copy when a destructive or safe control says OK, Yes, No, Continue, Confirm, Submit, Done, Remove, Cancel, Clear, Reset, Close, or Dismiss without naming the actual outcome and target.
  • Choose destructive action confirmation when the user needs a final destructive review with loss inventory, target scope, dependency blocking, acknowledgement, safe cancellation, and committed outcome states.
  • Choose typed confirmation when severe wrong-target risk requires users to reproduce a visible target phrase before the final action enables; the final typed-confirmation button still needs specific destructive copy.
  • Choose dangerous-action review when the risky decision is high-impact execution involving money, access, production, legal, customers, external recipients, sensitive data, safety, or agent tool use, and the user must inspect payload, evidence, freshness, and side effects.
  • Choose confirmation fatigue when the main defect is repeated low-value prompts, same-copy prompt spam, or confirmation habituation across routine actions.
  • Choose warning text when consequence copy should appear before users start the risky action, not as the final decision copy inside the prompt.
  • Use verb-plus-target final labels for destructive commits, such as Delete project, Revoke editor access, Cancel subscription, Permanently delete 12 files, or Run production restart.
  • Use preserved-outcome safe labels, such as Keep project, Keep subscription, Keep access, Cancel deletion, Close review, or Back to settings.
  • If Cancel can mean both close this prompt and cancel the underlying service, avoid it or qualify it with the object and outcome.
  • If Remove can mean detach, hide, unshare, revoke, move to trash, or delete permanently, name the exact operation instead of relying on context or color.
  • If a compact mobile label must be short, nearby text and accessible names must still include the destructive verb, target, and count.
  • Do not rely on red styling, button order, warning icon, or an earlier paragraph to make an OK or Continue button safe.
Inspect live examples
Failure modes
  • A delete prompt uses OK and Cancel, so users cannot tell which button deletes the object when reading controls out of context.
  • A plan cancellation dialog uses Cancel for both closing the dialog and cancelling the subscription.
  • A permission dialog says Remove without distinguishing Revoke Maya's access from removing a row from the visible list.
  • A high-impact review uses Continue for actual execution, so users think they are moving to another preview step.
  • A bulk destructive action omits selected count and object type, hiding whether one item or many items will be deleted.
  • A screen reader exposes only Confirm because the specific destructive wording appears only in surrounding text.

Saved items