Saturday, July 05, 2008

Don’t hide or disable menu items?

Joel Spolsky, a well-respected software development industry blogger, recently posted the article Don’t hide or disable menu items. Basically, he says that doing these things confuse users.

It’s hard to disagree about the hidden menu issue; I’ve used products that would remove certain menu items based on context, especially when working on a very different type of data (e.g., spreadsheet vs. word processing document), and it can be annoying to try to find the menu item you thought was there but has moved.

When it comes to different levels of functionality supported by an application, such as QuickTime’s player application sporting the pro-based functionality in disabled menu items with a PRO icon beside them, I can see that as good (built-in marketing), but I can also see the logic in only showing those menu items that a particular user has permission to use, such as what happens in Mac OS X depending on what level of user is logged in (for-your-eyes-only).

There’s also some logic in only showing applicable menu items when invoking a contextual menu; after all, the user assumes it only holds those items applicable to the particular context, and to have to run over dozens of menu items applicable to files when you clearly are in a text field makes no sense.

However, when it comes to enabling all menu items, even if they cannot be used at the particular moment makes absolutely no sense at all. I like knowing that the content of the web page I’m looking at has finished loading, and if the Stop menu item were enabled, it would make me wonder what’ the problem with my browser, network connection, or the web server. If there is a valid reason for telling the user why a menu item is disabled (if an application is correctly designed, most cases should be fairly obvious), one popular way to do this is by using a help tag/tooltip as the user navigates over such an item; another popular way is to display text in a status bar strategically placed based on the particular application.

No comments: