Confirm or undo? Which is the better option?

When designing software, you reach a point where you need to design actions that are potentially dangerous. In a couple accidental clicks, a user can embarrass themselves in front of their boss or wipe out hours of work. So how do you design so that doesn’t happen?

When designing software, you reach a point where you need to design actions that are potentially dangerous. In a couple accidental clicks, a user can embarrass themselves in front of their boss or wipe out hours of work. So how do you design so that doesn’t happen?

The most common solution is to add a confirm dialog and call it a day. If it’s important, the user will read the dialog and confirm that’s want they intended to do. Right?

Despite its popularity, using a confirm dialog is wrong in 90% of instances. Here’s why.

Problems with the confirm dialog

But it’s not enough to just say why you shouldn’t use confirm dialogs. So let’s go over why using undo is a better alternative.

The benefits of using undo

Using undo successfully

So if undo is the way to go, how do you implement undo in a way that makes sense? Let’s look at some of ways to use undo successfully.

What if you can’t undo?

Sometimes there’s simply no other option but to use a confirm dialog. In those cases, it’s important to use a confirm dialog that will protect the user from making a mistake.

If you can’t undo, here’s some ways to design confirm dialogs that actually work: