One of the recurring themes in user interface design is confirming actions which might be destructive. You tell the computer to do something, and it says “are you sure?”
Well, here’s the thing. For that question to be answerable, it really needs to indicate what it’s asking about. And it often doesn’t. Older Windows was particularly bad about this – it would ask whether you wanted to replace one file with another, and give you some information about one of them, but not the other. Textpattern, which is mostly pretty friendly, just has little dialog boxes that ask “are you sure?” It doesn’t distinguish between “approve comment”, “delete comment”, “mark comment as spam”, or “ban commenter”. Moneydance will ask “Are you sure you want to delete all of the selected entries?” even when only one entry is selected. Rift’s “report spam” feature confirms that you want to report spam, but doesn’t show the name of the person it thinks you wanted to report – a problem in an interface where the click targets can move faster than you can click (because it’s a scrolling chat window).
For some reason, things which do this tend to favor modal dialogs, so not only are they asking an unanswerable question, they’re preventing you from doing the research you’d need to be sure. Cancelling and trying again doesn’t necessarily help, because you might misclick the second time, too.
Suggestion: Figure out what users need to know to answer the question. Make that information available in some way, even if you have to hide it behind one of those little triangles for expanding hidden data.
From: Dave Leppik
Date: 2012-07-18 15:23:40 -0500
Most UI gurus I know of recommend making the action undoable rather than asking for confirmation. The reason is that, in order to realize that something was a mistake, one must unfocus one’s mind from that task. When you’re in the middle of doing something, your mind is engaged in that activity and actively excluding distractions— such as re-evaluating why you are doing what you are doing. After you have, for example, sent a fiery message to your boss, your mind shifts back to unfocused analysis of your environment, including imagining how your boss might react to your clever vitriol.
Of course, you can’t undo email after it’s been sent (although Exchange has a redaction feature that other servers don’t recognize.) But in cases where an action is undoable, the right UI is to display the changes (e.g. a deleted file goes “poof”) and let the user hit undo if panic sets in. In other cases, e.g. sending email, it may be reasonable for a program to delay sending for several seconds to allow the user to undo it.