It began years ago, though I’m uncertain as to exactly when—perhaps it was System 6, or maybe System 7. It started innocently enough, of course, with a simple observation: “Hey, hold down the Option key, and some of the menu items do different things!” At the time, not many people took notice; some even thought it was “cool” or “rad,” to use the lingo of the day. But in reality, it was neither of those things.
Instead, it was the beginning of the end of one of the Mac’s longest-lived rules for the GUI: thou shalt not hide menu items from the user. This is a very important convention, for it means that users always know where to look to make a program do something: in the menu bar. If you can’t see the command you want in the menu bar, then it simply doesn’t exist. Sadly, OS X 10.5 is the worst-yet violator of this rule, as you’ll soon see. But first, a bit more on how Mac programs are supposed to be designed.
Publicly, at least, Apple still believes in the “show everything” rule, as the company states it in its Human Interface Guidelines (HIGs). This document contains all the rules that help make it so easy to jump from one Mac program to another—by following the rules, all programs operate in a similar manner. The HIGs have long served as the gold standard of Mac application design: if you develop a program for the Mac, you’re expected to follow the HIGs.
That is, unless you’re Apple, in which case, you can make your own rules.
First, consider that near-ubiquitous OS X menu, the contextual menu. That’s the one that appears when you Control-Click on something in the Finder or an application. Here’s what the HIGs have to say about contextual menus:
Always ensure that contextual menu items are also available as menu commands. A contextual menu is hidden by default and a user might not know it exists, so it should never be the only way to access a command.
Sounds like good advice, right? In line with keeping everything visible to the user? Well, consider these examples…
- iTunes music: Want to reset the play count for a song? You’ll find that option only in the song’s contextual menu. Same thing if you want to reset the skip count, play the song next in party shuffle, add it to party shuffle, add it to or view it in a playlist, or apply a sort field. These commands are only found in the contextual menu as seen at right. They do not exist anywhere else within iTunes.
- iTunes TV shows: Want the description for a TV program? Or to mark a show as new or not new? You got it—you’ll find those commands only in the contextual menus.
- Safari: If you’re viewing a page with frames, such as apple-history.com, you’ll find a few frame-related options for opening and printing frames that don’t exist anywhere else.
You might think hiding options in a contextual menu is a good way to handle advanced features for “power users,” but here’s what Apple has to say on that subject:
In particular, you should not use a contextual menu as the only way to access an advanced or power-user feature.
Again, this sounds like good advice, and yet Apple chooses to completely ignore it in OS X 10.5. If you go to your Accounts System Preferences panel and Control-Click on your user name, what do you see? Nothing but this little Advanced Settings contextual menu—it’s almost like Apple’s publicly flaunting that rule, going so far as to actually inlcude “advanced” in the very name of the menu!
Not enough? Jump over to the Print & Fax System Preferences panel, and Control-Click on any printer. One of the two options you’ll see is Reset Printing System—and again, this is the only spot you’ll find this command.
Hiding menu commands like this is frustrating for users of all levels. There are two major problems as I see them. The first is that the user has no indication as to which objects may or may not have a contextual menu associated with them, so they’re forced to Control-Click all over the place to find hidden commands. The second problem, as evidenced by my iTunes issue, is that the user is then forced to remember a unique location for the command they used. Instead of remembering that Reset Play Count is in the (for instance) Song menu, you have to remember both that it’s a contextual menu, and which item must be control-clicked (i.e. the song) in order for that menu to appear.
Dock menus are, in a way, like contextual menus. They appear when you click and hold (or Control-Click) on an item in the dock. As with contextual menus, Apple again recommends against hiding commands in Dock menus:
Any command you add to the Dock menu should also be available in your application’s pull-down menus. Application-specific items appear above the standard Dock menu items.
So what do we get in OS X 10.5? Time Machine, whose dock icon contains the Browse Other Time Machine Disks command. This command cannot be found anywhere else—not in Time Machine’s preferences, nor within the actual application. So I’m forced to keep the Time Machine icon in my dock, just for those times when I want to browse a backup from another machine.
The Action icon
One recent trend in OS X that I find particularly troubling from a GUI perspective is the emergence of the Action button—that’s the one that looks like a gear. It’s found in many spots in OS X, and with a seemingly different purpose in every spot.
Consider the Finder, where the Action button usually replicates the contents of the contextual menu—for many people, it’s simply easier to click the button than it is to Control-Click and use the contextual menu. I don’t really have a problem with that. Where the problems start is when the Action button takes on commands that aren’t available elsewhere.
In OS X 10.5, you’ll find such issues in two spots. First, if you run a saved search and want to edit the criteria used, it’s seemingly not possible—the criteria don’t show, and there aren’t any menu items (nor any contextual menus) that would seem to allow editing of the saved search. As you’ve guessed by now, you have to click the Action button, as that’s the only spot you’ll find the Show Search Criteria command.
The second trouble spot in OS X 10.5 is within Time Machine. If you want to delete a backup—or all versions of a backup—the Action button is again the only spot you’ll find those commands.
More generally, the other issue I have with the Action button is that it means so many different things in different programs. In iTunes and iPhoto, it creates a new smart list. In Mail, it can do that (smart mailboxes), but it also replicates some contextual and regular menu commands. It’s also the only home for the Show Account Info command. This command opens a useful summary window, showing all sorts of stats about the selected e-mail account. It’s quite useful, but if you’ve never used the Action button in Mail, you may never have seen it.
I say “may,” because Mail has a second GUI oddity with this command: it has a keyboard shortcut, even though that shortcut doesn’t appear in any menu anywhere within the program. Just press Command-I any time you want to see the Account Info window—just don’t go looking for this command in any menus.
Although I’m generally thrilled to be using OS X, and happy with the OS X 10.5 release, changes such as these indicate that the rules are changing, even if Apple hasn’t yet seen fit to change the printed version of the rules. With those changes, I’m afraid we’ll see more confusing user interfaces, with features that are even harder for the everyday user to find and use.
Consider in Leopard that I’m now forced to keep the Action icon on the toolbar—even though I never use it, except to open the search criteria for a saved search. Similarly, I have to keep Time Machine in the dock to get to its one command that I might want to use on occasion. And I need to memorize the various spots where hidden contextual menus exist—Accounts and Print & Fax in System Preferences—that provide features I may need to get to.
To some extent, of course, software is getting more complex and it just may not be possible to get every command into a menu, without making those menus unusably long. As long as there are rules about how to extend your commands to a non-menu environment, this could still work. For instance, if I knew that the Action button would always contain commands that didn’t exist on a menu, then I’d know to check it. But as things stand today, the “missing” commands can be hidden nearly anywhere, making for a very frustrating user experience.
Simply put, if Apple would do a better job at following its own rules, all users would benefit.