Messing with modal popups
February 9th, 2008
The dialogs popped up via the common Windows APIs through either MFC or the .NET framework always put the buttons in the same place, whether it’s an OK, Yes/No, OK/Cancel, whatever. Having controls in same place is a good thing. It make use of the user’s spatial memory. The user remembers and automatically knows where the controls, or in this case buttons, reside.
The problem is that typically modal popup dialogs are modal and popup precisely because they require the user’s attention. They need to ask the user something, confirm something, or simply alert the user to something. And since popup modals are all the rage, users get very used to simply dismissing them since either the user already knows what they say or the user simply doesn’t care. A form of popup dialog dismissal habituation has set in and combined with spatial memory automatically being invoked… BAM! no one reads your popups anymore.
So how do we fix this?
Well, some applications randomly rearrange the buttons (and don’t set a default button), so that the user has to read the text. Well, they have to read the button text, but they still don’t have to read the text in the body of the popup itself. And I don’t know about you, but those popups just piss me off. “Ok, where’s the darn button now???”
So what options do we have left? I’ve seen some people spouting that modal popups should be banned completely. Great! …now what do we put in their place? I agree that getting rid of modal popups would be a big win, but doing that requires doing all the confirmation and alerting in the form itself which requires much more code than just MessageBox.Show(). For example, how do you make sure that the user saw your alert? How do you make the user confirm something if they can continue using the form?
I don’t know about you, but I don’t see getting away from modal popups any time soon… but maybe that’s just me. Has anyone else had success in this?





The real truth is that in order to avoid confirmation dialogs, you should make every operation recoverable, so that if the user is unsatisfied, he can simply undo.
February 9, 2008 @ 2:24 am
You should definitely read About Face, this is a big topic in it. He strongly recommends getting rid of modal popups. All they do is frustrate users and insult them by asking “are you sure?” The UI should be designed so problems are indicated unobtrusively and you need to allow Undo and Cancel.
February 9, 2008 @ 9:50 am
Tomer,
Making an operation easily undoable definitely would help, but that only fixes the “Are you sure” Yes/No type of modal popups. And there are still times where you either can’t undo an action or it’s extremely difficult to.
February 9, 2008 @ 1:56 pm
Hey Anonymous (or should I say Scott?),
I was mostly referring to About Face when I was talking about this above. But there’s still problems to simply removing modal popups. Simply saying “just put them in the form” is easy to say, but not easy to do. And sometimes you absolutely need the user to see your message, so trying to alert them unobtrusively won’t work. Anyway, I haven’t read the whole book yet, so maybe my opinion will change afterwards.
February 9, 2008 @ 1:59 pm