<p>One of the things that has been talked about a few times on the podcast is whether menu items should always be enabled to prevent "WHY ISN'T THIS AVAILABLE!" frustration for the end user.</p>

<p>This strikes me as a good idea, but then there's the issue of communicating the lack of availability (and the reason why) to the user. Is there anything better than just popping up a message box with a blurb of text?</p>

<p>As I'm about to start on a fairly sizeable cross-platform Windows / Mac app I thought I'd throw this out to hear the wisdom of the SO crowd.</p>

[{'answer_id': 19116, 'author': 'Ryan Farley', 'author_id': 1627, 'author_profile': 'https://Stackoverflow.com/users/1627', 'pm_score': 0, 'selected': False, 'text': '<p>Joel has a post on that <a href="http://www.joelonsoftware.com/items/2008/07/01.html" rel="nofollow noreferrer">http://www.joelonsoftware.com/items/2008/07/01.html</a> which might be a good place to start thinking about this.</p>\n'}, {'answer_id': 19128, 'author': 'Mark Cidade', 'author_id': 1659, 'author_profile': 'https://Stackoverflow.com/users/1659', 'pm_score': 3, 'selected': True, 'text': '<p>One thing I\'ve seen a printer manufacturer do with their printer properties dialog is to have a little help baloon icon beside disabled items that display a tooltip when hovered over.</p>\n\n<p>Another thing you can do with disabled items is to add in parenthesis why it\'s disabled or what the user would have to do to enable it. E.g., "Save (already saved)" or "Copy (select something to copy)".</p>\n\n<p>I don\'t like keeping it enabled because then it will instill hesitation in users to select <em>any</em> menu item in fear that they\'ll just get an error message making them feel stupid for not realizing that they couldn\'t <em>possibly</em> perform that operation at the time. </p>\n\n<p>Menu items that spring dialogs have elipsis (...) after them to let users know it\'s not just click and carry on. Required form fields have an asterisk or bold label to spare the user from being scolded with a validation error message.</p>\n'}, {'answer_id': 19130, 'author': 'Bill the Lizard', 'author_id': 1288, 'author_profile': 'https://Stackoverflow.com/users/1288', 'pm_score': 2, 'selected': False, 'text': "<p>You have to consider the alternatives.</p>\n\n<ol>\n<li>Hide the menu item.  This is bad.  Now you have menu items disappearing and reappearing all the time?</li>\n<li>Disable the menu item.  Now the user can <em>find</em> what they're looking for, it just isn't obvious how to enable it.  This is better, but still leaves the user slightly puzzled.</li>\n<li>Keep the menu item enabled, but make it display a dialog that explains what needs to be done when the program is in a state where the menu item can't be properly used.</li>\n</ol>\n\n<p>I agree with Joel on this one, #3 seems like the best choice.</p>\n"}, {'answer_id': 19148, 'author': 'Matthew Schinckel', 'author_id': 188, 'author_profile': 'https://Stackoverflow.com/users/188', 'pm_score': 0, 'selected': False, 'text': "<p>@Bill the Lizard: I'd combine #2 and #3 - disable the item, but have a tooltip that indicates why it is disabled.</p>\n"}]
['https://Stackoverflow.com/questions/19113', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1043/']