In honor of Jef Raskin, kudos to the Gmail team.
There's a school of thought in UI design (perhaps led by the late Jef Raskin) that confirmation dialogs are a bad idea.
The argument goes roughly as follows: soon, clicking "OK" after an operation that requires confirmation becomes a habit to the point where you don't read the dialog at all, and your fingers/mouse click OK without engaging your brain. So the one time when you should have had second thoughts, the confirmation dialog has already been clicked by the time you get regret.
There are a number of arguments against this POV (especially when applied in the extreme, like Jef was apt to), but we've all encountered annoying confirmation dialogs that serve no purpose except to slow down our train of thought.
Anyway, I just noticed that Gmail is using, in at least one place, an alternative that's clearly better: when you start replying to a message and decide to discard it, you can click a Discard button. Now, the Discard button is right next to the Save button, and a lesser UI designer might have used a popup dialog here to ask if you really wanted to discard the reply. But Gmail's solution is infinitely better: it removes the message editor, displaying in its place a message "Your message has been discarded. _Undo discard_" where the last part is a hyperlink that brings back the reply editor you discarded. So normally you can immediately go on with your work; but if you have regrets or are startled because you didn't mean to discard the message, you can get it back.
What I find most harmful about confirmation dialogs is that efforts to make them all similar (common button sets like ok/cancel, yes/no, etc) in style makes them more error prone in practice.
I've found in the few applications where the dialogs place text on the buttons that indicates something about the answer (discard, save, confirm delete) it's far easier to quickly assess and make the correct decision.
Between poor phrasing and the occasional app which reverses the typical form of common questions, there's even more sources for errors with these kinds of dialogs than just reflexive ok clicking.
That said, providing obvious and consistent undo is definitely a far superior solution. Confirmation dialogs always feel either over or under used to me (depending on whether they're slowing me down or I wish there'd been one).
Yup, absolutely. Undo is a better alternative to asking for confirmation, and when undo is available, confirmation is unnecessary.
Understanding the user's focus of attention is also important. When the user presses a button in a dialog, the user isn't reading the text in the dialog; the user is looking at the button. That's why all dialog buttons should be labelled with verbs that say what they're going to do (like "Discard" or "Save"), not meaningless generic words (like "Okay" or "Cancel").
I was very saddened to hear of Jef's death. I was looking forward to having many more UI design discussions with him.
> Undo is a better alternative to > asking for confirmation, and when undo is available, > confirmation is unnecessary.
I think even Microsoft understands that. But they put in lavish confirmation dialogs whenever something is not undoable.
The innovation (if you want to call it that) of Gmail is that they found a way to implement a point solution to allow undoing a particular operation where undo is not normally thought of. Note that Gmail doesn't have a general Undo command; it's just that most operations (except for Send :-) are easily reverted -- for example, messages are rarely really deleted, they are moved to the Trash.
An operation for which I would like to see an Undo point solution is Archive. About once a day I seem to be archiving something reflexively that I want to reply to a second later. It's of course easily retrieved using the Search form or the All mail view, but if the message telling me that N conversations were archived showed an Undo link, that would save me probably a minute each day. (Is anyone from Gmail listening?)
> they found a way to implement a point solution > to allow undoing a particular operation where undo is not > normally thought of
Yeah, that is clever.
I think part of the cleverness here is that undo is all but unheard of in Web applications. The interaction model is so different in a typical Web application (fill out form, submit, wait for next page) that it takes some innovation to figure out how to incorporate undo in an understandable way.
The interaction model is different on the web, yes. But compared to local programs where you look at a document and make edits to it in place (hopefully), common web app UIs might actually make it easier to incorporate undo in some cases. The web user is accustomed to asking for an action and then looking somewhere else (often on a new page) to see if the action even happened. That could be the place to put the undo command.
Supporting the undo algorithm and deciding the right times to offer it-- those are still difficult, of course.
Undo is definitely the better solution however (as Guido pointed out) not always possible. There are certain things that cannot be undone as they result in some sort of physical action (undo the print command, undo the credit card payment).
Some other actions that can be undone still can result in disaster: Changing the time on your web server might have resulted in hundreds of wrong log file entries and database timestamps. The undo command in the application that just has issued that command however would have a hard time to track all the damage it dit.
The conclusion is certainly some confirmation dialogs have a right to exist. But I think we agree that the undo function of programs should be enhanced. I would be interested what patterns people use to implement undo (in desktop and web applications).
Reminds me of a time when I was working with several machines, building OS images; typing in low-level format command and immediately answering the "are you sure?" query reflexively ("of course, you stupid computer, I woudn't type in the command if I didn't want to do it!") on the wrong machine ("oops, wait a minute, this is my development machine!") resulted in some very colorful language (and I don't mean Python!).
Isn't the Command pattern most commonly associated with Undo?
Of course, the reason we see confirmations a lot more than undo-type behavior is that it is so much easier for the programmer (takes less creative thought and is much easier to implement). Clearly one gmail's (and Google's generally) goals is to have very clean, simple and usable interfaces.
However, you can't just say that anyone who uses the confirmation instead is just lazy or incompetent. See Bill's recent blogs about code quality and ROI; this may be a case where you devide that the time and effort for usability doesn't pay off (and you might be right or wrong or just copping out).
That's sad news about Jef Raskin. He was certainly an extraordinary person.
Well to play devils advocate, for one I've never noticed that link to undo discard changes so I guess its not as effective as it seems. Secondly, if you click away while composing an email you still get a dialog confirmation asking if you would like to discard changes. So the question is didn't they just decide to discard the changes and on the subsequent page display the same confirmation message - something along the lines of 'return to discarded email'?
Having more than one option besides OK engages the user to decide something. You have made a very interesting observation about the way a user thinks or doesn't think. A single OK option is "mind numbing".
Electronic surveys that have he same set of selection options for dozens of questions are just as mind numbing. You end clicking the same selection all the way through without reading the question carefully, just to get done.
Sorry for jumping in late and talking something that is not directly related to google undo. But I want to note that one of the most important Tip for better productivity is to get rid of the file delete confirmation dialog box. If I want the file back, I can look into the recycle bin and recover the file. But since I download and delete hundreds of files every month, I save literally hundreds of clicks! Right click on Recycle bin. Properties, Deselect Display delete confirmation box
Additional Tip: The standard key board shortcut Ctrl + Z will help you in some cases.