Death to the Dialog Box

One of the unnecessary evils of GUI programming is the "Process Dialog Box", what we think of as MessageBox.Show. You know, like this:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2004/06/death-to-the-dialog-box.html

I know this post is two years old, but it was linked to in one of your posts just a few days ago.

I have to say, I am not a fan of this solution. Why? Because 90% of the time, I don’t even notice that little notification strip. I have been trained so thoroughly by blinking banners and animated flash ads to ignore non-content crap that flashes onto my screen, that a subtle pastel-colored strip with text at the edge of the “content area” is virtually invisible to me. Especially since I use mouse gestures and don’t have to leave the content area in order navigate.

Probably it would work better in other apps, at least at first. But I have a hard time believing users, myself included, would not just train ourselves quickly to ignore this there just as we have with dialogs. Especially if they continue to be used as frivolously as dialogs are currently.

I completely agree with everything this article says. I really think that M$ should make an app for power users like us that will let us access these settings easily. Also, for the n00bs, there could be presets like “Check this box to disable all the fricking nag windows.” this would make me want to support M$. Currently, I am a die-hard Freespire fan. Go to the light side! Linux is the answer!

I’m not a fan of how it shifts the text of the webpage down. Often this box comes in about 1 or 2 seconds after enough of the page has loaded for me to begin reading, and often when it pops up and the text shifts down, my eye ends up reading the same line twice.

The “notifications in a queue with color coding for severity” thing seems very similar to what is done to present warning messages in aircraft computer systems.

What I really hate about modal dialog boxes is that an application instance that has a modal dialog box open may be a candidate for opening a document that you double click in an explorer window. When that happens, you have to cancel or complete the dialog box before working with the document. It’s even worse when the reason that you opened the document was to copy some information from it and paste it into the aforementioned dialog box, and the dialog box doesn’t save its state when you cancel it in order to copy the information.

I was very, very pleased to see that Firefox 3.0 Beta 2 places the “Do you want to save this password?” dialog in a bar at the top of the browser, exactly as pictured. We’re making progress!

Error and warning messages should be written to stderr and appear in a console window at the bottom of the screen. When stuff happens, a line of text appears in the console, but the user isn’t interrupted.

This was standard practice under Unix for ages. It should be adapted to modern windowing environments.

This is a pervasive problem, and it still hasn’t been solved. Internet Explorer’s pop-down bar is still too intrusive and, like philihp said, stupid for pushing the whole webpage down in a clunky, animated fashion.

There needs to be a standard GUI concept/convention/widget for issuing notifications that can be ignored. It’s 2008 and everybody still does it differently, usually popping up some kind of 200 px rectangle in the lower-right corner. But it’s very annoying that every app does it with their own colors and image styles. It should be handled through the OS.

Oh btw, what TW said!

The problem with the highlighting of input fields is usability. Colorblind people may not be able to notice anything highlighted in a particular color.

But I love the idea, glad to see firefox has been using it.

The way Firefox 3 uses the Notification / Information Bar is quite nice.
A lot nicer then the dialog box that used to pop up, when remember passwords and such, breaking focus from the web page.

I’ve got a IE6 style implementation of the Notification Bar in C#, works on .NET and Mono.

http://www.coryborrow.com/2008/07/05/notificationbar-free-net-control/

The really great thing about the Firefox 3 password dialog is that you can wait to see if your password worked before you save it. With the old way I was always wondering what if I mistyped the password because there’s no way to know it worked until after you’ve saved it.

I cannot agree with everything said in this post.
There are times when Dialog Box is more than necessary.

For a mission critical situation, say for prompting user if s/he would like to launch a nuclear missile, i rather see an annoying Dialog Box then some non-dialog based notifications.

“I cannot agree with everything said in this post.
There are times when “Dialog Box” is more than necessary.”

Usually the problem is just when the dialog box is used unnecessarily. It should be perfectly fine to interrupt a user in a critical situation.

Hard to tell if I submitted that, since my post isn’t there, and the page just reloaded with no verification notification

Indeed the IE6 notification bar is hard to notice for most users. Otherwise check all the important sites where they had to make entire GUIDES with screenshots on how to deal with the info bar that blocks downloads.

If I’m downloading a file, it’s because I NEED TO DOWNLOAD IT NOW – But IE6 instead STOPS it and when I agree (again) to the download, the page is entirely reloaded, making me waste lots of time to reload tons of flash banners ads from the source site. I think the info bar is the most useless and annoying creation in browser history.

What I really think i a good thing is kind of what is used right now by growl on Mac OS X and has been used by Microsoft in Outlook since 2000. Instead of putting up a dialog box perhaps just something that will show the user what is going one without completely stopping the user from continuing in what he or she has been doing. When, for example a new song starts to play in itunes, growl will simply put a little box, (whose characteristics you can edit) at the top of your screen informing you which song is playing.

This is good because it allows the GUI to communicate more trivial things, e-mail, downloads, changed songs new users signing on in AIM without complete annoying the user. I like it.