Regarding disabled menu items
July 1, 2008
I'm a big fan of Daring Fireball. Love the line-by-line takedowns of illogical articles about the Mac and the iPhone. When he veers into OS warfare he's usually in the right, but not today.

Joel Spolsky was making a point about disabled menu items in applications. Start up Microsoft Word with a blank document and open the Edit menu. Some of the choices (undo, redo, links, etc) are grayed out. You can click them, but nothing happens.
Spolsky believes the menus should look active all the time, but when you click them they should tell you why they won't do anything. Gruber correctly disagrees, saying this would drive users batty. What should happen is that the menu should look grayed out, but with an icon to indicate this menu item is different from every other grayed out menu item. Clicking or hovering over the icon would give the user a brief explanation of what the option does and under what circumstances it would become active.
What bothers me is not that Gruber missed this compromise solution, but that he threw the unhelpful "Windows users are stupid" flag into play. He believes that Spolsky's recommendation is based on the idea that users are stupid. Specifically Windows users, since Spolsky is a Windows developer. Better, says Gruber, to assume users are clever and will experiment with the program to figure out why the menu item was disabled.
Gruber is confusing the user's intelligence with the user's patience. Productivity applications are not games. They are meant to be used to accomplish a task, not explored for enjoyment. When I play Metroid Prime 3 on the Wii and I can't reach a certain ledge, I'll explore the area and experiment with my powers to find a way up. Because I'm doing this for fun, I can press every button on my controller without worrying about what will happen. The game is allowed to be tight-lipped.

Power users and young people like me don't mind mysterious disabled menus. We'll play around and discover because we enjoy it and usually have nothing better to do. But when Dr. Joe Smith, a highly intelligent "curious and clever" senior physicist at Genius Research Center is typing a letter in Microsoft Word, he isn't interested in messing around. He wants to accomplish his task and go home to play with his kids, not the application's preferences window.
Imagine walking down the isle of a supermarket. You spot the box of Fruit Loops you want inside a clear plastic safe with a combination lock. What's the combination? None of the store clerks will tell you. If you're an amateur safecracker this probably sounds like a lot of fun. If you're a mother with two kids jumping up and down next to you, this is a nightmare.
The disabled menu item is the cereal in the safe: you can see what you want, but you have to guess wildly at which number combination will let you get it. The difference in the computer world is that the software developer knows why the menu item can't be selected. He had to write a dozen lines of computer code to tell the menu to gray out that option. Why can't he write a sentence or two to tell the user, in plain language, what conditions would cause that menu item to be available?
The reason is fairly simple: because nobody else does. I'm not aware of a single program that explains why you can't click a disabled menu item. Could there really be nothing in the Mac or Windows APIs that provides for the "disabled with an explanation" menu item?
I doubt there's anyone at Fog Creek Software, much less Joel Spolsky himself, who believes the user is stupid. He likely believes, like all good programmers, that if a program won't let the user perform an action, the program should tell the user why.

