From Joel Spolsky’s post with the same name:
Don’t do this. Users see the disabled menu item that they want to click on, and are left entirely without a clue of what they are supposed to do to get the menu item to work.
I’m going to have to beg to differ with Joel on this. Or at least with his seemingly all-or-nothing stand on it. Of the myriad of problems that exist in all of the user interfaces that are so prevalent in our world, I don’t think this problem is really a problem. I’m not arguing that disabling menu items is right, necessarily, but maybe that it’s not bad. And certainly that it’s not so bad that we should “outlaw” it. A minor distinction, perhaps, but I don’t think it’s simply splitting hairs.
First, I think it’s often quite clear why an item is disabled. In my browser’s File menu, the Cut item is disabled and I don’t think it’s difficult to grasp – even for non-technical users – that the reason it’s disabled is that nothing has been selected. Similarly, a disabled Forward menu item shouldn’t confuse anyone who has even a basic understanding of the purpose of the menu item. These are fairly trivial justifications, but at the very least, I think they illustrate that disabling isn’t always a bad thing as Joel seems to suggest.
Second, I’m not convinced that most users actually care why they can’t click something. The fact that a menu item is disabled is simply a visual cue that the system state, for one reason or another, is such that the operation can’t be performed. In many cases, I’d argue that this is probably sufficient.
Finally, and this is very much related to my second point, I think that the disabled menu item metaphor has become so ubiquitous that it has transitioned into convention. I don’t expect anyone to accept an argument purely on the basis of convention, but I do believe that there’s a place, even an important place, for convention in the world of user experience.
Simply put: sometimes it just doesn’t matter why, it mostly matters if. Other times, the why is easy enough to deduce or intuit once the if becomes known. I’d argue that, generally speaking, users’ sensibilities will match one of these and thus mitigate the “problem” of a disabled menu item.