Death by Dialog Boxes
After a brief holiday this last weekend in Cape Town I have to agree with Jeff Atwood and add that dialog boxes are a curse on the computer user.
While dialogs have a good intention to inform and empower the user their efforts are dashed because users don’t read dialogs. Eric Lippert’s comment on an unrelated post sums up neatly how users react to dialogs.
It’s not that users are morons or that they “forget” to think. Its that users are trained to not think. Users very quickly learn from experience that:
- dialog boxes are modal. But users do not think of them as “modal”, they think of them as “preventing me from getting any work done until I get rid of them.”
- dialog boxes almost always go away when you click the leftmost or rightmost button
- dialog boxes usually say “If you want to tech the tech, you need to tech the tech with the teching tech tech. Tech the tech? Yes / No”
- If you press one of those buttons, something happens. If you press the other one, nothing happens. Very few users want nothing to happen — in the majority of cases, whatever happens is what the user wanted to happen. Only in rare cases does something bad happen.
In short, from a user perspective, dialog boxes are impediments to productivity which provide no information. It’s like giving shocks or food pellets to monkeys when they press buttons — primates very quickly learn what gives them the good stuff and avoids the bad.
Modal dialog boxes are in general, badness — and you’ll see that more and more products rely less and less upon them. But they are particularly heinous when security is on the line. Security questions cannot be asked on a “retail” basis. The way users make security decisions is to set their policies appropriately and then let the security system enforce their wishes “wholesale”.
Coding Horror also has some fun quotes from dealing with dialogs
Like any person who’s “in computers†seeing a member of the family who is not computer literate I was drag (not unwillingly) to help fix their various problems from setting up email accounts and explaining away issues. But on starting the troubled PC I encountered an emblematic example.

Rather than dialogs, developers should take examples from validation controls which highlight textboxes and other inputs with colours and/or flashing symbols to let the user know that something is happening. Might I also suggest you use something like the Information Bar from IE6 and Firefox which can unobtrusively give the user the information without affecting their work.

A question that springs to mind when looking at dialogs is “Can the user do something about this†and if the user can’t then remove the dialog. Secondly, if one of the dialog options is to do nothing then rather do the work and let the user undo their actions
Example 1
Do you wish you save this record?Just save the record and let the users go and delete it if they don’t want it.
Example 2
Are you sure you want to delete this record?Delete the record and provide an undo option like those found in Word or Visual Studio.
I feel the same applies to updates, why wouldn’t I want the latest security pack for Windows, especially considering I can uninstall it if it’s proving problematic.
What dialogs have you cursed your future users with recently?


