Subscribe to
NSLog(); Header Image

QotD: Disabled Menu Items

Question: I read today a case for allowing users to choose disabled menu items. Instead of the action occurring (say, "Paste" or "Screw Up Document"), a dialog would explain to you why the menu item was disabled in case you were really trying to get to it. For example, if you try to rotate a locked item in OmniGraffle, the rotate commands would be dimmed, but upon choosing one, you'd be told why ("it's locked, stupid") you can't rotate the item(s). Would you like to see this implemented?

My Answer: Only if I could turn it off. If there was a "learning" mode, great. Otherwise, I'd have dialogs popping every time I mis-typed a keyboard shortcut. Plus, I like that disabled menu items don't "select" (show the selection color).

I think it's a fringe case - I can see the use in it, but I think it may do more harm than good as far as the user interface goes. People know that dimmed = not available. Start making them available, even with a dialog box, and you weaken that lesson.

You are encouraged to answer the Question of the Day for yourself in the comments or on your blog.

11 Responses to "QotD: Disabled Menu Items"

  1. Reminds me of Ballon Help back in the days of System 7.

  2. GS/OS did this. I think it would be a very good feature, if it could be disabled.

  3. It sounds OK but I suspect in reality it would suck. It would be hassle for the developers to say exactly why a menu item is not available under various different circumstances and as a result, the help messages would be generic and not as helpful as intended.

  4. this would be terribly annoying.

    imagine if no buttons were ever greyed out, but every time you clicked a button that was supposed to be disabled, a dialog popped up.

    using tool tips/help tags would be a much better solution. (like balloon help 🙂

  5. Paul, two things. One, the menu items would still be dimmed. This isn't so much about buttons as menu items. Two, because we're talking about menu items, tool tips wouldn't work at all.

  6. if the menu items were still dimmed, and did not get highlighted, this might be nice...

    i'd almost rather have to right-click to ask why, then it'd always be a case of me specifically wondering "why" ...and there would never be any other reason to right-click a menu item. as it stands on my system, right now, right-clicking a menu item selects it, which seems redundant and pointless to me. (are there any reasons not to simply LEFT click a menu item? any weird drag-and-drop scenarios or anything? i've never run into one.)

  7. ...oh, also: turning it off would be a necessary option.

  8. As Adam indicated Apple IIgs Menu Manager had this feature. It was programmer controlled though, not user controlled. I think I only ever saw one or two programs use the feature. I'm pretty sure that none of Apple's software used the feature.

    IIRC, disabled menu items didn't get the normal highlight but instead had a dotted box drawn around them when they were selected.

  9. Now that I think of it.. Apple does use this in the current version of QuickTime Player, when you don't have a QuickTime Pro license. (They do this by not actually disabling the menu items... they're just setting the attributed title of a menu item to an NSAttributedString which happens to have the text color set to grey.) They only do this with the "Pro" items .. menu items which are disabled for normal reasons ("Close" when no window is open, for example) don't get this treatment. The "Pro" items are also badged with an icon to indicate why they are disabled.

    It works for that case .. but it seems like it would be annoying for the normal case of disabled menu items.

    The old balloon help was a pretty good mechanism for explaining why menu items were disabled. (90% of balloon help's usefulness came from its use in menus .. it was rarely used well on other user interface elements.) Tooltips would be the way to do that in Mac OS X, but last I checked neither Carbon nor Cocoa provided support for tooltips in menus. (Although some Apple software manages to do it.. check out the tooltips in the print dialog's popup menu for choosing a printer.. it displays "Location" and "Host" information for each network printer.) My guess is that they use a custom HIView for the menu.

  10. Cocoa does have support for tooltips in menu items, I think they added it in Panther. If you want to give a reason for it being disabled, you'd probably need to set the tooltip of the item in validateMenuItem: which could get to be a bit of a pain.

  11. I wonder though... are we the right crowd to answer this question?