Fog Creek Software
Discussion Board




Messageboxes are evil!

First of all, I'm sorry about the melodramatic title of the message, but they ARE evil -- to the users.

Case in point:
I made a Sokoban game recently as a small experience into the wonderful world of GDI and games programming. Now, for those of you not familiar with the concept, it's a game where you, as a player, push -- not pull - crates around on a 2d top-down map into predefined "positions". Upon doing so with all your crates, you complete the level. Now, of course, the only"good" way would be to let users know that they have completed the level, so I decided a simple Messagebox would suit just fine(lazyness kicks in) for the simple purpose of displaying this simple piece of information.
I naturally picked the MB_ICONINFORMATION constant so the "Info" icon would appear, but what I hadn't taken into account was the mandatory "bleep" sound windows makes whenever a Messagebox is shown on the screen. Result? When my not-so-tech savvy family members had completed a level, they heard the sound and INSTANTLY associated it with something bad; like an error had occured. Now, this got me thinking: Messageboxes should only be used to represent errors, not factual informations; users seem to associate messageboxes with errors and such, and not necessarily good things.

(Sorry about the long-ish post)

Any thoughts?

Mickey Petersen
Wednesday, July 30, 2003

I think that stems from this observation of mine: message boxes are for things the user very likely will want to have input in.

For example: unsaved changes, or an error occured. Niether of those are positive things (the unsaved changes dialog may not be negative, but it is NOT positive).

Since these non-positive things is what most people see, that's where the association comes from.

Thoughts?

Mike Swieton
Wednesday, July 30, 2003

Yeah, I agree. Problem is, our opinions are counter-intuitive to that of the Messagebox' purpose: To display brief messages, good or bad, to the user. The problem, really, here is that users respond to the audible message before they read it.
There's a good reason why the Error- or Warning signs are red and yellow respectively: it's colors of warning, and the users *do* know that, but they *still* 'respond' with, in my family's case, a jaunt followed by a "uh?!" and a brief moment of confusion.
I suggest a simple change to the Messagebox routine: Have two different audible 'alerts'; one for the errors and warnings, and another for the information boxes.

Mickey Petersen
Wednesday, July 30, 2003

What would be better than messageboxes? People's responses to message boxes is almost Pavlovian. Scratch that, it *is* Pavlovian.

Status bars are good for non-critical warnings, but only non-critical ones, because many users don't even know they exist.

Programs with more technical users often have log consoles, which can be color-coded to indicate severity. Of course, this class of user usually would accept the message box just fine ;)

I like the audio alerts idea: a 'happy' sound for success might encourage another.

Another idea is to force the window to be open for maybe, 50 milliseconds. That should be enough to stop the people that habitually  close messageboxes. Of course, that's also invasive and annoying, and I'd hate to use it. But if the objective is to get them to see the message, that might do it.

Your note about confusion is dead on: many people will be confused by a message box, even though they are perfectly capable of understanding it. And I don't mean an "I can understand it so you should, too" type of understanding, I mean a "I speak english and so I can understand plain english messages" understanding. I think the flashing of the CRT makes people dumber ;)

Mike Swieton
Wednesday, July 30, 2003

My personal pet peeve against message boxes is when I'm typing... I might approve something I don't want to approve, or dismiss something I don't want to dismiss.

I've also turned off all windows sounds so I don't have those audio associations, but I remember them.

www.marktaw.com
Wednesday, July 30, 2003

In the case described, a good alternative would be a to draken the playiong area by 50% and write "Level Completed" across it in white.

In the general case, one of the things that annoys be about Windows message boxes is that you can't change the text on the buttons.  A "Do you want to delte this file?" message box should have buttons "Cancel" and "Delete", not "Yes" and "No".

Tim Evans
Thursday, July 31, 2003

Tim,

Wise thought: that would make the message's meaning more clear immediately. However, for those that habitually dismiss dialogs, that does nothing.

Anyone have any suggestion for fixing that issue? I think that's the biggest problem with dialog boxes.

Mike Swieton
Thursday, July 31, 2003

Tim,

The question is a Yes/No question, so you should have yes/no buttons, not cancel/delete.
If you want cancel and delete, you have to rephrase the message.
Otherwise you cause confusion, because people are going to be unsure about the meaning of the buttons in relation to the dialog.
Also, make sure that cancel, or no, whatever your question is, is the safe answer.
But please make sure there is a direct and straightforward relation between your question and the possible answers.
Did I mention already that a yes/no question requires a yes/no answer :-)

Practical Geezer
Thursday, July 31, 2003

i thought 'delete/cancel' was weird at first (well, don't save/save), but its obvious what you mean and really does help users.

as for beeps, MB_whatever controls both the icon and the sound. but you're right, people use them for 'bad things' so often that no matter what you do it will look bad. make it modal to your game if it's part of the game flow.

mb
Thursday, July 31, 2003

How are delete/cancel helpful by themselves?
You still have to read the message to determine what to delete or cancel, right?

That does not mean you should not use a delete or cancel button, only that you have to be more clear.

Instead of asking "Do you want to delete this file?", to which the only right answer is "yes" or "no", say something to the effect of:
"This file is no longer needed, do you want to:" and the buttons would read "Delete it" or "keep it".

If your first instinct is to look at buttons, you know immediately what you're being asked, as opposed to the buttons reading "Yes" or "No", so you get your extra clarity.
And the entire dialog still makes sense to humans who speak natural English, instead of those of use who have come to accept "cancel" as a reasonable answer to a simple yes/no question :-)

If you care, you may even make the buttons more explicit, by including the filename.

Practical Geezer
Thursday, July 31, 2003

I think my favourite is when a program crashes and Windows notifies you, with those dreaded "OK" and "Cancel" buttons. Obviously it is not "ok" that the program has crashed, and yes I would like to cancel that, please. Except that's not what they mean.


Thursday, July 31, 2003

Message boxes are probably unavoidable because users have been conditioned to expect them to be present in your software.

Status bar messages, graphical indicators, and audible feedback are good alternatives but they also come with their own set of problems.

One Programmer's Opinion
Thursday, July 31, 2003

Users rarely read what's in the messagebox. If it's more than one short sentence they are going to skim. If it's technical they are going to ignore it. I've seen message boxes like this (exaggerated but not too much):

"This procedure will cause the widgets to be re-aligned which will enable meta-parsing. If you have not also changed the gadget selector option to "normalize" this will destroy all your data irrevocably.

Is this what you want to do?

YES    NO"

The user sees: "blah blah blah, is this what you want to do?" and thinks "of course it's what I want to do, that's why I told the computer to do it just before this silly messagebox interrupted me."

That's why using very brief text in message boxes, with action verbs for the buttons, can be useful. The Save As dialog box which says Yes/No/Cancel could say "Save", "Don't Save" and "Cancel". Apple's Human Interface Guidelines -- http://developer.apple.com/ue/ -- recommend this. But it's kind of strange to see it on Windows; a user might consider it non-Windows-like.

Nate Silva
Thursday, July 31, 2003

Well, Joel already said that user's don't read messageboxes, and my point was really on the audible alert it gives regardless of the type -- whether as an Error, Warning or Information.

Mickey Petersen
Thursday, July 31, 2003

I agree about Yes/No being overused.  I would much prefer things like "Delete/Cancel" or the other suggestions mentioned.  This is mainly because sometimes the wording is unclear, but even if it is perfectly clear it is easy to misread things (for example, to miss a "not").  When a Yes/No comes up for a particularly dangerous thing, I always have to read the message several times to make sure I didn't misread it.  This is especially a problem if the message is worded such that "yes" cancels the action.  If you simply had "Delete It/Cancel" that is pretty straightforward and would lead to less misunderstanding, I think

Mike McNertney
Thursday, July 31, 2003

"Message boxes are probably unavoidable because users have been conditioned to expect them to be present in your software."

Hmmm.  I don't think they are unavoidable because of user conditioning or expectations.  They are "unavoidable" because a suitable replacement hasn't been "invented" or isn't in widespread use.

We, as programmers/designers, continue to use these bad interfaces and propogate "user expectation".  Why?  I can only speak for myself.  MessageBoxes are simple, well-known and easily programmed.  It's expeditious to use them - especially when I'm feeling lazy.

bpd
Thursday, July 31, 2003

Qualcomm Eudora has a cute solution to the problem of users not reading messages.  Occasionally the index of a mailbox must be rebuilt (I had this happen a number of times because an incoming mail wasn't properly deleted from the buffer).  So they show a standard Yes/No message box asking you to rebuild the index.

But wait, this is an IMPORTANT issue!  So when you decline the first message box, another message box comes up insisting that it's important to rebuild the index.  And when you reflexively decline that too, you get a THIRD message saying "We're not making this up! This is dangerous!"

Worked for me, I was scared into allowing Eudora to rebuild the mailbox index. :-)  The obvious downside is, you can't really use this strategy for all of your message boxes...

Chris Nahr
Thursday, July 31, 2003

Wouldn't it be better for Eudora to just rebuild the index without bothering the user at all?

Chris Tavares
Thursday, July 31, 2003

Well yeah, I guess so.  Now that you mention it I don't know why they even bothered to ask the user...

Chris Nahr
Thursday, July 31, 2003

Returning to the MB in the game subject, while you do not implement something better, keep the message boxes BUT, when *starting game* use a first MB just for say "here we go!" or something SO THE USER will be warned from the first moment about the fact the game is using informational MB's.

So, user will not be so amazed/disgusted when the final level 1 MB will appear...

Ross
Thursday, July 31, 2003

"Returning to the MB in the game subject, while you do not implement something better, keep the message boxes BUT, when *starting game* use a first MB just for say "here we go!" or something SO THE USER will be warned from the first moment about the fact the game is using informational MB's. "

I don't think that'll work out great. Again, their knee-jerk reaction will kick in. Remember, this MB only has one button-- an OK button.

Instead, I might just let them trip over themselves until they actually read the message or hit the OK button in panic and move on to the next level.
It's not because of foolish pride, though, as it's really not a needed messagebox; but my game "locks" your player into his position when the game is finished, so if I *didn't* have a MB the user would think the game locked up. Likewise, if I just had it skip to the next level another kneejerk reaction would kick in: "What the hell--?".

So it's a tradeoff - in my case anyway - between "Bad" and "Worse".

Mickey Petersen
Thursday, July 31, 2003

Message boxes are indeed evil, because modal dialogs in general are evil.

Every morning I come to work and find MSN instant messenger telling me "You were signed out here because you signed in somewhere else" in a modal dialog box. 

Why a message box, when there is a perfectly good window sitting right there that also says "status: signed out"?

How hard would it be to say "status: signed out automatically due to sign in somewhere else" ? 

Is modality required in this situation?  I think not.

Modal dialog boxes say "listen to me!  Me me me me me me!  You have to click on me before you can get any work done!  Even though I'm telling you stuff you care nothing about!  Click me!" 

Modal dialog boxes irritate the heck out of users, they take users "out of the zone" by distracting them from what they were working on to deal with something else. 

Eric

Eric Lippert
Thursday, July 31, 2003

Alan Cooper has many axioms to describe this behavior. Here are a couple:

"Don't stop the proceedings with idiocy."

and

"A dialog box is another room. Have a good reason to go there."

Heed them well...

http://www.ercb.com/feature/feature.0005.html

UI Designer
Thursday, July 31, 2003

*  Recent Topics

*  Fog Creek Home