Golden Rule #2: Reduce Users’ Memory Load
The capabilities and limitations of the human memory system were discussed in Chapter 4. Based on what we know about how people store and remember information, the power of the computer interface should help users from having to remember information while using the computer. We aren’t good at remembering things, so programs should be designed with this in mind. Figure 5-4 lists the design principles in this area.
1. Relieve short-term memory (remember)
2. Rely on recognition, not recall (recognition)
3. Provide visual cues (inform)
4. Provide defaults, undo, and redo (forgiving)
5. Provide interface shortcuts (frequency)
6. Promote an object-action syntax (intuitive)
7. Use real-world metaphors (transfer)
8. User progressive disclosure (context)
9. Promote visual clarity (organize)
Relieve Short-Term Memory
If you remember (since it was discussed in Chapter 4, hopefully it’s in your long-term memory by now!), short-term memory helps keep information available so you can retrieve it in a very short period of time. Users usually do many things at once, so computer interfaces shouldn’t force them to try to keep information in their own short-term memory while they are switching tasks. This is a design principle that is often violated, causing users to use external memory aids, such as sticky pads, calculators, and sheets of paper, to jot things down they know they will need later in a customer transaction. It is such a simple interface principle, but one that is often neglected.
Program elements such as undo and redo, and clipboard actions like cut, copy, and paste, allow users to manipulate pieces of information needed in multiple places and within a particular task. Even better, programs should automatically save and transfer data when needed at different times and in different places during user tasks.
Key Idea! Don’t force users to have to remember and repeat what the computer could (and should) be doing for them. For example, when filling in online forms, customer names, addresses, and telephone numbers should be remembered by the system once a user has entered them, or once a customer record has been opened. I’ve talked with countless airline, hotel, and car rental phone agents who know they need the same information a few screens later. They have to try to remember the information until they get to the later screen, or they have to write down the information while talking to the customer so they have it when they get to the other screen. The system should be able to retrieve the previous information so users don’t have to remember and retype the information again.
Rely on Recognition, Not Recall
User interfaces support long-term memory retrieval by providing users with items for them to recognize rather than having to recall information. It is easier to browse a list to select an item rather than trying to remember the correct item to type into a blank entry field.
Take a look at common tasks performed in a popular program such as Quicken©. When entering information for a check written from a checking account, a calendar helps users select the appropriate date, a “next check number” selection enters the correct check number, and a list of memorized transactions can fill in the payee and the amount to be paid. Users can complete the task without even typing a word!
Online aids such as messages, tooltips, and context-sensitive help are interface elements that support users in recognizing information, rather than trying to remember information they may or may not know or have learned.
Key Idea! Provide lists and menus containing selectable items instead of fields where users must type in information without support from the system. Why should users have to remember the two-character abbreviations for each state of the United States when they are filling out an online form? Don’t force them to memorize codes for future use. Provide lists of frequently chosen items for selection rather than just giving them a blank entry field.
Provide Visual Cues
A necessary aspect of any graphical user interface (and of course, an object-oriented user interface) is that users must know where they are, what they are doing, and what they can do next.
Visual cues serve as reminders for users. Figure 5-5 shows what my computer screen looks like as I wrote this chapter. The many visual indicators that tell me what I’m doing. First, the window title bar tells me that I am using Microsoft Word and that the name of the current file is Chap5.doc. This is a textual cue. The blinking text cursor tells me where I am in the document when I start typing. The style (Body Text), font (Times New Roman), size (12), emphasis (none), and orientation (flush left) items on the toolbar show us the characteristics of the text that is currently selected. The location of the scroll bar in the scroll bar shows that I am about halfway into the document. The bottom left panel of the window tells me I am on page 15. The bottom middle panel tells me that I am in insert mode or overwrite mode with the OVR indicator (OVR is grayed out in insert mode and is black text in overwrite mode). The page format and the horizontal and vertical rulers tell me exactly where I am on the page. Microsoft Word 7.0 even tells you when you have misspelled (check the figure) a word, or even duplicated a word (check the figure) by showing a subtle red line under the word. The program will even give you a pop-up menu with alternative spellings and choices for the text. There are even more visual cues in the figure that I haven’t described. See if you can find other cues to the characteristics of the program and the current document.
Key Idea! Whenever users are in a mode, or are performing actions with the mouse, there should be some visual indication somewhere on the screen that they are in that mode. The mouse pointer may change to show the mode or the current action, or an indicator might toggle on or off. Test a product’s visual cues—walk away from the computer in the middle of a task and come back sometime later. Look for cues in the interface that tell you what you are working with, where you are, and what you are doing.
Provide Defaults, Undo, and Redo
Following the design principles for placing users in control, interfaces allow a wide variety of customizing features. With the power to change the interface, you must also give users the ability to reset choices and preferences to system or program defaults. Otherwise, users will be able to change their system colors, fonts, and settings so much that they may have no idea what the original settings were and how they can get them back.
While editing and manipulating data, such as writing text or creating graphics, undo and redo are very important to users. Undo lets users make changes and go back step by step through the changes that were made. Redo lets users undo the undo, which means that once they go back a few steps, they should be able to move forward through their changes again, step by step. Most programs allow users to undo and redo their last action, or maybe even the last few actions. A few programs can offer what is called “infinite undo.” Many word processors actually save every keystroke and action during an entire working session. Users can move forward and backward, step by step or in larger increments, to restore a document to any state it was in during the session. Users can access material from hours before, copy some text that had been deleted, and then return their current work to paste the text.
Key Idea! Utilize the computer’s ability to store and retrieve multiple versions of users’ choices and system settings. Allow users to store current settings and possibly to save and name different settings. Provide multiple levels of undo and redo to encourage users to explore programs without fear.
Provide Interface Shortcuts
In addition to defining both keyboard and mouse techniques for interface actions, determine ways to shorten the number of keystrokes or mouse actions users need to perform common actions. Shortcut key sequences reduce users’ memory load and quickly become automatic.
There are two basic ways to provide keyboard shortcuts—mnemonics and accelerator keys. A mnemonic (also called an access key) is a single, easy-to-remember alphanumeric character that moves the cursor to a choice and selects the choice. Mnemonics are used in menus (menu bars, pull-down menus, pop-up menus) and in lists to navigate and select an item in the list. Mnemonics must be unique to the current menu or list. A typical window menu bar configuration shows standard mnemonics—F for File, E for Edit, V for View, and H for Help. The next level of menus, pull-downs, each has their own set of mnemonics for items in the menu. For example, the File pull-down has N for New, O for Open, C for Close, and S for Save. Mnemonics speed up navigation and selection using menus and lists. To close the current window, users can key Alt (an accelerator key to navigate to the menu bar), then F (File pull-down), and C (Close action).
An accelerator (also called a shortcut key) is a key or combination of keys that users can press to perform an action. In the above example, Alt is a keyboard accelerator to move from within a window to the menu bar. Other common actions have standard accelerators, for example Ctrl+P for Print.
Key Idea! Once users are familiar with a product, they will look for shortcuts to speed up commonly used actions. Don’t overlook the benefit you can provide by defining shortcuts and by following industry standards where they apply.
Promote an Object-Action Syntax
You don’t need to build a fully object-oriented interface to benefit from using the object-oriented interaction syntax. Even an application-oriented program like a word processor follows this syntax. Select a word or some text (an object), then browse the menu bar pull-downs or click on the right