As the modern GUI evolved, two idioms developed that fundamentally changed the role of the menu in the user interface. These two idioms are direct manipulation and toolbars. The development of direct-manipulation idioms has been a slow and steady progression from the first days of graphical user interfaces. Conversely, the toolbar was an innovation that swept the industry around 1989. Within a couple of years, virtually every Windows program sold had a toolbar filled with butcons. Only a few years before, nobody had seen a toolbar.
In the same way that a stranger to town may take a roundabout route to her destination while a native will always proceed on the most economical path, experienced users of a program will commonly invoke a function with the most immediate command rather than one that requires intermediate steps. Naturally, the most frequently used commands in a program are those that migrate onto butcons on the toolbar. These functions are still supported by items on the menu, where their use becomes increasingly the purview of beginners, while experienced users gravitate toward the immediate vectors of butcons and direct manipulation.
This bifurcation of usage along lines of experience is an important characteristic of software usage, and it affects how menus and dialog boxes are used. They are needed less and less for daily use, and instead become a teaching tool for first time and infrequent users.
The butcons and other controls on the toolbar are usually redundant with respect to commands on the menu. Butcons are immediate, whereas menu commands remain relatively slow and clunky. Menu commands have a great advantage, however, in their English descriptions of the functions, and the detailed controls and data that appear on corresponding dialog boxes. This detailed data makes menus and dialogs the most useful interaction techniques for the purpose of teaching users about the capabilities of the product: pedagogic vectors (for more about other types of command vectors, see Chapter 18).
One required element of effective pedagogy is the ability to examine and experiment without fear of commitment. The Cancel button on each dialog box supports this function well. Contrary to the user interface paradigms of 10 years ago, menus and dialog boxes have ceased to be the main method by which normal users perform everyday functions. Many programmers and designers haven't yet realized this fact, and they continue to confuse the purpose of the menu command vector. Its role is to teach new users, to remind those who have forgotten, and to provide a way to discover (and rediscover) infrequently-used functions.
AXIOM | Provide a pedagogic vector with menus and dialogs. |
When a user looks at a program for the first time, it is often difficult to size up what that program can do. An excellent way to get an impression of the power and purpose of an application is to glance at the set of available functions by way of its menus and dialogs. We do this in the same way we look at a restaurant's menu posted at its entrance to get an idea of the type of food, the presentation, the setting, and the price.
Understanding the scope of what a program can and can't do is one of the fundamental aspects of creating an atmosphere conducive to learning. Many otherwise easy-to-use programs put the user off because there is no simple, unthreatening way for him to find out just what the program is capable of doing.
The toolbar and direct-manipulation idioms can be too inscrutable for the first time user to understand, but the textual nature of the menus serves to explain the functions. Reading Format Gallery (see Figure 27-2) is more enlightening to the new user than trying to interpret a butcon that looks like this (although ToolTips obviously help):
Figure 27-2: A menu item reading Format Gallery is likely to be more enlightening to new users than a butcon like this one. But after they become intermediates, it's a different story altogether.
For infrequent users who are somewhat familiar with the program, the drop-down menu/dialog vector's main task is as an index to tools: a place to look when he knows there is a function but can't remember where it is or what it's called. This works the same way as its namesake, the restaurant menu, which permits him to rediscover that delightful fish curry thing he ordered a year ago, without having to remember its precise name. The drop-down menu lets him rediscover functions whose names he's forgotten. He doesn't have to keep such trivia in his head, but can depend on the menu to keep it for him, available when he needs it.
If the main purpose of menus were to execute commands, terseness would be a virtue. But because the main justification of their existence is to teach us about what is available, how to get it, and what shortcuts are available, terseness is really the exact opposite of what we need. Our menus have to explain what a given function does, not just where to invoke it. Because of this it behooves us to be more verbose in our menu item text. We shouldn't say "Open…," but rather "Open the Report…." We shouldn't say "Auto-arrange" but rather "Auto-arrange icons." We should stay far away from jargon, as our menu's users won't yet be acquainted with it.
Many programs also use the status bar that goes across the bottom of their main window to display an even longer line of explanatory text associated with the currently selected menu item. This idiom can enhance the teaching value of the command vector—if the user knows to look for it. The location ensures that such information will often go unnoticed.
The pedagogic vector also means that menus must be complete, offering a full selection of the actions and facilities available in the program. Every dialog box in the program should be accessible from a menu item. A scan of the menus should make clear the scope of the program and the depth and breadth of its various facilities.
Another teaching purpose is served by providing hints pointing to other command vectors in the menu itself. Putting hints in that describe keyboard equivalents teaches users about quicker command methods that are available (Figure 28-1 in the next chapter demonstrates good use of hints for keyboard equivalents). By putting this information right in the menu, the user registers it subconsciously. It won't intrude upon his conscious thoughts until he is ready to learn it, and then he will find it readily available and already familiar.
|
|