95

Which one is the better option and why?

Delete with Confirmation [The action cannot be undone]

or

Delete with one click [And provide option to Undo]

11
  • 10
    depends on the context. what are you deleting? In what kind of software? etc.
    – DA01
    Jan 14, 2015 at 18:52
  • I think you need to add more to this question in order to get good value in the discussion. Great Q&A has been given on the topic, on this site, already. I think that you need to go farther Jan 14, 2015 at 20:23
  • Possible duplicate of When is it appropriate to ask User confirmation? Jan 14, 2015 at 21:11
  • 3
    This question doesn't even make sense. Delete with once click? It's very much a rip off of the When is it appropriate to ask User confirmation question or at the very least a bad spin-off of the Should “Yes, delete it” be red, or green? question. This should be deleted. Sad that it got on the Hot Network Questions list. What is it with Delete buttons that Hot Network Questions ranks so high? This whole thing should be deleted IMO. Jan 15, 2015 at 9:45
  • 1
    @CodeMaverick It is indeed a special case of the "ask User confirmation" question. But note that 1) questions are not considered duplicates just because they have the same answer, 2) The current question has different answers for different situations, so it's rather broad. Closing it as a duplicate of an even broader question is not such a great idea. 3) The popularity you mention, and the fact that the earlier question does not mention deleting suggest that many people interested in the topic will find this info using "delete" as a search term. In this case, the older question is unfindable.
    – Rumi P.
    Jan 15, 2015 at 11:55

13 Answers 13

139

The site Good-UI argues for Undo: Try Undos instead of prompting for confirmation.

Imagine that you just pressed an action button or link. Undos respect the initial human intent by allowing the action to happen smoothly first and foremost. Prompts on the other hand suggest to the user that he or she does not know what they are doing by questioning their intent at all times. I would assume that most of the time human actions are intended and only in small situations are they accidental. The inefficiency and ugliness of prompts is visible when users have to perform actions repeatedly and are prompted numerously over and over - a dehumanizing experience. Consider making your users feel more in control by enabling the ability to undo actions and not asking for confirmation where possible.

enter image description here

I would tend to agree. Respect the user's ability to rationally think through and perform the action they intended. But give them the opportunity to pull back if necessary.

When Confirmation Makes Sense

This isn't to say that confirmation dialogs are never appropriate. It depends on the situation. The inability for the system to retract an action is, of course, one reason to use a confirmation.

mockup

download bmml source – Wireframes created with Balsamiq Mockups

Doesn't work as well as:

mockup

download bmml source

Other Undo Examples

Here are some other examples of where an "Undo" action is used in place of a confirmation.

Gmail

Gmail has a Labs feature that allows you to undo a send action on an email.

enter image description here

In reality the system simply delays the actual send action and allows the user to retract the request before the send really happens. But to the user this doesn't really matter -- Gmail's ability to magically recall (in short history) an e-mail I accidentally sent is all I need to know.

OSX (and Ubuntu) File Delete

When you delete a file in OSX, most of the time you don't get a dialog box asking you if you are sure. You actually take a "Move to Trash" action. In this instance you can undo the action by restoring the file from the trash (just like the physical world metaphor this action is modeled after).

This changes when you attempt to delete a file from a network drive, or other location where OSX can't move the file the trash can. In this case you do get a confirmation window telling in, very plainly, that if you continue you will never see the file again.

20
  • 20
    Gmail has a Labs addon that displays an Undo message after sending an email. I've used it more than once, when I quickly realize I hit send early. Jan 15, 2015 at 3:19
  • 13
    I disagree with this stance. Significantly destructive actions such as deleting something should always have a prompt, including situations where they can be undone. Otherwise, if I unintentionally delete something (e.g. because I was unaware of the current extent of the selection) and notice that only later, it may be too late to undo that operation and my information is lost. With a prompt, I am explicitly notified that something is about to be destroyed. Jan 15, 2015 at 9:59
  • 2
    And related to that: "The inefficiency and ugliness of prompts is visible when users have to perform actions repeatedly and are prompted numerously over and over" - then I'd say that's an issue of how and when the prompt is displayed, not of having a prompt at all. In the case of a repeated action, there should not be repeated prompts, but there should be one cumulative prompt. What I do see here is a certain reluctance to actually provide such cumulative prompts because developers cannot simply use the standard message boxes for that, but that's just laziness, not a reason against prompts. Jan 15, 2015 at 10:07
  • 3
    The only thing I think this answer could do with is a summary line. ie "Undo is for actions which are retrievable and safe. Confirm is for actions which are irretrievable or dangerous. Where possible, both should be used for dangerous actions."
    – Jon Story
    Jan 15, 2015 at 19:50
  • 8
    If you have to go for confirmation, you can at least put some additional information in there to double-check the selection. That is "Do you really want to delete 'cat_videos.zip'?" instead of "Do you really want to delete the selected files?".
    – AndreKR
    Jan 15, 2015 at 22:39
56

Delete with confirmation

Delete with confirmation looks like this:

Four steps 1 lead to 2 leads to 2b which leads to either 1 or 3

Assuming the user tries to get from 1 to 3 (ie, she intended to perform action 2), the user has no interest in step 2b.

We put delete-guards in place to reduce user errors, but if the action was intentional (which it is more often than not) step 2b is superfluous.

Undo

Undo, on the other hand, looks like this:

The same four steps, only this time 3 is linked back to 1 via 2a

Here, the user travels from 1 to 3 in less steps (less performance load), but still have the option to get back to 1.

So whether UX or graph theory - the latter option is superior to the former.

Exceptions

As Mayo pointed out, there are some exceptions though. Like when the expected user intention is to permanently remove something, as with privacy concerns.

8
  • But what about circumstances when you want to delete (I mean really delete) and not put it into a storage which is called garbage?
    – Mayo
    Jan 14, 2015 at 20:53
  • @Mayo can you give a more concrete example? I'm yet to find a user who is concerned with (or even aware of) concepts like 'garbage' or 'storage', same way you probably don't really care how efficient is the UX.SE code when it comes to Javascript garbage collection. So what was exactly in your mind? Privacy? Security?
    – Izhaki
    Jan 14, 2015 at 20:58
  • I'm mainly concerned about privacy.
    – Mayo
    Jan 14, 2015 at 21:33
  • So yes, a delete guard would be a better option in such case. I've edited my reply. Thanks!
    – Izhaki
    Jan 14, 2015 at 21:41
  • Bubbles! +1! Truly though - very clean visual of the interaction flow. And... Bubbles! Jan 14, 2015 at 21:49
42

As a counter-argument to the (well-expressed) claims already stated in other answers, confirmation dialogs should be used when an action is not performed often and difficult to reverse. A common example is installing a program on your computer:

Installing takes time and is costly to undo

Windows machines provide this confirmation dialog any time a program requests access to your administrator privileges because allowing any program to do anything to your hard drive can have dangerous consequences. Otherwise, users may not even realize when they're harming their system.

Before deciding whether or not to use a confirmation dialog, ask yourself how much impact on the system an accidental delete would have. If it just means remaking a setting or item, the extra step is likely not necessary. If it means that your system will have a security vulnerability until the original state is restored, I would suggest asking for confirmation just to be safe.

2
  • 3
    Excellent point. I have overlooked this.
    – Izhaki
    Jan 15, 2015 at 15:40
  • 4
    I would also add "time consuming to complete" or "causes temporary side effects during processing" as a criteria as well. Even if it is easy to reverse, if it is something that is going to take a long time, a confirmation is nice: "Restarting the nuclear reactor will disrupt service for 2 hours."
    – AaronLS
    Jan 19, 2015 at 1:29
16

In the general case, I agree with Evil Closet Monkey: Undo creates less friction than Delete, so it is preferable. But there is at least one case where Delete+Confirm is preferable: When your users are overwhelmed.

A user is overwhelmed when he wants to complete a task, but has no idea how to do it, and expects to fail. It can be so subtle that the user himself does not realize what he's experiencing, or it can ramp up towards obvious panic. Once you know the state, you can recognize it during user observation. Some users will always be in this state when interacting with a computer ("This machine hates me!"), others will only enter it when faced with a completely novel challenge and left to sink or swim without any visible support.

A user in the overwhelmed state has tunnel vision. He will miss important and obvious cues. He is also acting as if he were scatterbrained - he'll often choose to do obviously wrong actions, without realizing they are wrong. Note that the probability of entering this state does not correlate with intelligence - I have seen prominent STEM researchers in it - and the user within this state will do very stupid things, even if he's normally a very intelligent person.

As a result, the overwhelmed user is quite likely to 1) click the "Delete" button by mistake, and 2) overlook the "Undo" message. So, the whole protection mechanism fails. And to add insult to injury, once the user realizes that his data is missing (which might be days later), it registers as one more unseen danger lurking in the computer interaction, reinforcing the feelings of helplessness which cause the overwhelmed state in the first place.

On the other hand, when the overwhelmed user clicks "Delete" by mistake and is greeted by a modal dialog asking for confirmation, 1) he cannot overlook it. (in the worst case, he will wonder why nothing else works until noticing it). 2) He realizes that, in this system, there is obvious protection preventing him from getting into real danger. This helps him relax a bit and lower his guard, which reduces the intensity of the overwhelmed state. The intrusive nature of the modal dialog, which is mildly annoying to a confident user, is a boon for the panicked/overwhelmed user.

I have observed overwhelmed users interact with both types of system, and I can tell you from experience: If you have reason to think that most of your users will be in the overwhelmed state, choose the Delete+Confirm option. This can be the case when you have e.g. elderly users (they have less computer experience and find it harder to learn new things, so they are frequently overwhelmed, at least slightly) or you are implementing a system which is obligatory for employees in job positions with high job fluctuation and little to no training.

2
  • "If you have reason to think that most of your users will be in the overwhelmed state", fix that ! You put them there!
    – MSalters
    Jan 19, 2015 at 10:35
  • 2
    @MSalters Why do you think it was the UX designer who put them there? I have a user who is permanently overwhelmed when she has to use a PC. No matter what she does, she's scared of the things. And then there are jobs where newbies are thrown at a process they don't understand, and expected to work it. As a designer, I can make my own application feel safe for them (partly by giving them very obvious danger signals like modal dialogs). I can't influence the user's self-efficacy, anxiety of computers, or his job description or qualification.
    – Rumi P.
    Jan 19, 2015 at 12:50
10

There would be a third way that i actually chose to implement in a small cms ui – and the clients seem to be happy with it so far. I also wanted to avoid the confirmation message and implementing undo just wasnt an option. So instead of adding an additional step after the user already tried to delete the content, I added a step before the user does so – so first have to 'unlock' the delete button - and then it's just one click.

Technically it's almost the same as a confirmation screen. The actual user experience however seems to be quite different. The user is treated as if he was rather 'in charge' than 'insane'.

6
  • 2
    Firefox has a similar feature when you go to run an executable you've just downloaded -- it disables the button for a few seconds, to give you a chance to think about whether you really want to run an executable you just downloaded off the Internet. In that example, though, it doesn't require explicit action to enable the button, you just have to wait a few seconds.
    – ruakh
    Jan 15, 2015 at 17:52
  • 2
    @ruakh: Interesting, I always thought that is a bug based on some internal process not enabling the button quickly enough. Always wondered when that was going to be fixed. Why not simply display a message that simply asks whether the user actually wants to run the exectuable, that would me much more comprehensible and also nicer to use in my opinon. Jan 18, 2015 at 11:19
  • @O.R.Mapper: All the other buttons are created in enabled state; it's quite obvious that effort is needed to enable a button at a later moment. (Linked to some sort of event). The reason for the timer is that it's quicker and less visually intrusive than a dialog. However, IE may have the nicer option here where it's "scanning for viruses..." - that tips off the reader to potential risks.
    – MSalters
    Jan 19, 2015 at 10:39
  • 2
    The goal is to break flow. "Stop and think" is not a user event that can be detected, but the tmer enforces at least the "Stop" part of "Stop and think".
    – MSalters
    Jan 19, 2015 at 12:18
  • 3
    It's a bit late to comment but the reason is so that if you are in the middle of a double click and a malicious site downloads a program, you won't accidentally open the program if your mouse happens to be there and you click where the run button is.
    – Daniel M.
    Jun 9, 2016 at 3:27
7

Blocking the user is bad UX unless the operation is catastrophic (i.e. causing great damage and/or suffering)     Imagine the following scenario...


You want to copy a folder full of files from one location to another so you begin the operation and the computer is nice enough to let you know that files are copying and that it will take about 2.5 hours to complete. Cool so you decide to go run some errands and grab a bite to eat and when you return you are greeted with this.

confirm

Which causes the most suffering?

  1. Copying as many files as possible with no conflicts first and then prompting the user what to do with conflicts at the end.
  2. Stopping the operation anytime there is a conflict and wait for user input before continuing then letting the user figure out on their own that they are still over 2 hours away from finishing their original task. (frequently stopping the operation at random and never completing it is frustrating and painful)

If the user is properly aware of the delete operation and there is an easy way to undo it then it doesn't qualify as catastrophic and it's better to not block the user.

9
  • 1
    If option 1 was chosen, how does the user then move those files into the initially desired directory? Copy them and have another conflicting files directory created?
    – Adam Johns
    Jan 15, 2015 at 20:28
  • yeah good point. option 2 is probably the best you could do while allowing the user to choose different behavior for each operation. it would be pretty annoying to ask upfront every time if conflicts are rare.
    – DaveAlger
    Jan 15, 2015 at 23:13
  • iTunes creates a folder of stuff it doesn't know how to Automatically Add to iTunes and I'm okay with that
    – DaveAlger
    Jan 15, 2015 at 23:16
  • 1
    In the specific case of copying files, #1 also has another potential problem which is disk space. While totally running out isn't so much a problem most of the time, it certainly is possible to run out of disk quota.
    – user
    Jan 16, 2015 at 15:50
  • 4
    Stopping such a process at various times throughout and wait for the user to answer a question is the worst design. Keeping all the questions for the end is better, but still not optimal. Asking all the questions in the beginning would be the best. Running two threads in parallel where one is responsible for copying and one is responsible for identifying as many potential problems as possible early on and ask the user about them, might be the ideal design.
    – kasperd
    Jan 16, 2015 at 17:39
6

I think the Android Gallery "filmstrip view" and its swipe-down-to-delete is a strong counter-example for the idea that "delete and undo" is preferable. It's easy to accidentally delete while trying to browse, and the same type of action (unintentional touching) that deletes can also move you away from the opportunity to undo.

To me, this is a huge UX failure. It doesn't necessarily mean "delete and undo" is a bad interface model, but it suggests to me that whenever you're offering an option to delete without confirmation, it should be extra difficult to navigate away from the opportunity to undo, or alternatively undo/undelete should be available for a reasonable period of time even after you've navigated away.

I also think you need to consider the severity of the delete operation. If for example you have a DNS setup interface where you're adding/removing RRs, delete is not a severe action, and in the worst case the user can just recreate the deleted record. On the other hand, if you're deleting photos/videos, or VPS instances, or something else that would be either difficult or impossible to recreate, then it's atrociously bad UX to make accidental deletion easy. I would argue you should even need to re-enter a password to delete in these cases.

3

The main reason for preferring Undo over Confirmation Boxes is laid out by Alan Cooper in 'About Face 2.0, The Essentials of Interaction Design'

Confirmations illustrate a quirk of human behavior: They only work when they are unexpected. If confirmations are offered in routine places, the user quickly becomes inured to them and routinely dismisses them without a glance.

Basically, whilst as others have pointed out confirmation dialogs are initially annoying and disrupt the user's flow, they are even more dangerous once the user becomes used to them and they become part of the flow. At that point they cease to work at all to do what they are supposed to do which is stop the user making a mistake that cannot be rectified.

So allowing users to undo destructive actions provides two benefits, it allows the user to work without their flow being interrupted and it allows them to make mistakes, and correct them without even having to think.

2
  1. For consumer apps and websites - delete with undo option
  2. For enterprise apps that staff use at work - delete with confirmation notification

This is to prevent from employees deleting important stuff accidentally. Since "undo" function normally disappears after X seconds. That way, there is a real risk of items being deleted permanently by accident. Confirmation window/notification will give that "extra step" where user needs to take action to confirm the deletion.

6
  • Why would the ability to undo "normally" disappear after a certain timeframe? I've rarely if ever experienced that pattern at all, never mind "normally". Jan 15, 2015 at 6:54
  • Well technically it's possible to display permanent "undo" link, I guess I was just referring to gmail as the reference point
    – Ades
    Jan 15, 2015 at 7:53
  • This! (Wich I could upvote you more than once). Besides accidental deletion, there is Responsibility for a change. Deleting something may be a weighty administrative decision that needs to be defended a month later - often you have auditing set up, and the confirmation box is the equivalent to signing it off.
    – peterchen
    Jan 16, 2015 at 13:08
  • 1
    I agree with the concepts in the paragraph, but I don't see why they don't apply to "consumer apps". Treating non-enterprise users as less deserving of safety against accidental deletion seems wrong. Jan 16, 2015 at 15:28
  • 1
    I guess I disagree with your reasoning, especially the last sentence. Enterprise setups are likely to have audit trails, snapshots/backups, etc. that, in a worst case, could be used to recover deleted data. Consumers are unlikely to have this, but could still have data whose loss is of great consequence - academic work, evidence (of ownership, payment, police misconduct, fault in an accident, human rights abuses, ...), content of sentimental value (baby/engagement/wedding/cat/etc. pictures/video, ...), etc. Jan 16, 2015 at 18:00
1

I would say this depends on 2 factors - the expertise of your user and the severity of the action. If the delete function is irreversible or a destructive action, it would be a good idea to get the user to confirm intent. This should rule out accidentally triggering the delete function.

On the other hand, if your delete function is a normal interaction done frequently which is reversible, you could bypass the confirm popup. If you consider your user a power user, again you could bypass the confirmation.

It all depends on the type of user and context. If you aren't sure, I'd recommend playing it safe. Think about what's less of a pain for the user; Having to click 'OK' on a popup or accidentally deleting something which could have knock on effects?

0

Aza Raskin wrote a great article on this subject: Never Use a Warning When you Mean Undo. He explains the psychological reasons why confirmations are inhumane while undo is better for how humans work.

0

What about the case where the user has many items in her cart and wants to remove several of them. If you have an undo for each item, you end up clutter up the interface and turning a simple delete into a more complex problem (representing each deleted item with an undo action). Do you only have an undo on the more recently deleted item? if do, deleting several items in a row leads to items being deleted, without either an undo or a confirmation dialog.

2
  • 1
    This shouldn't be posted as an answer, but a comment
    – Devin
    Aug 15, 2015 at 15:18
  • 3
    agree but don't have enough points to comment on anyone else's answer. Flaw in SO. SO assumes you have nothing useful to add by default.
    – ChatGPT
    Aug 17, 2015 at 7:10
0

On mobile devices, I would use a confirmation dialog with big buttons so that the user doesn't accidentally delete his album of cat pictures instead of his old grocery list.

It's very easy to make a mistake on mobile platforms with touchscreens.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.