Design Specifications and Guidelines - User Assistance


Contextual Help

Contextual Help provides immediate assistance to users without their having to leave the context in which they are working. It provides information about a particular object and its context. It answers questions such as "What is this?" and "Why would I use it?" Some of the basic ways to support contextual user assistance in your application include:

Context-Sensitive Help

The What's This? command allows users to obtain contextual Help information about objects on the screen, including controls in property sheets and dialog boxes. As shown in Figure 13.1, you can support user access to this command by including the following in your application:

Different methods of accessing What's This? mode

Figure 13.1 Different methods of accessing What's This? mode

Design your application so that the system is set to a temporary mode when the user chooses the What's This? command from the Help drop-down menu or clicks a What's This? button. Change the pointer's shape to reflect this mode change, as shown in Figure 13.2.

Context-sensitive Help pointer

Figure 13.2 A context-sensitive Help pointer

Display the context-sensitive Help pointer only over the window that provides context-sensitive Help; that is, only over the active window from which the What's This? command was chosen.

In this mode, display a context-sensitive Help window for an object that the user clicks with the primary mouse button. The context-sensitive Help window provides a brief explanation about the object and how to use it, as shown in Figure 13.3. After the context-sensitive Help window is displayed, return the pointer and pointer operation to the usual state.

Pop-up window for context-sensitive Help

Figure 13.3 A pop-up window for context-sensitive Help

If the user presses a shortcut key that applies to a window in contextual Help mode, display a contextual Help pop-up window for the command associated with that shortcut key.

There are some exceptions to this interaction. First, if the user chooses a menu title either in the menu bar or in a cascading menu, maintain the What's This? mode and pointer until the user chooses a menu item; then display the context-sensitive Help window. Second, if the user clicks the item with the secondary mouse button and the object supports a shortcut menu, maintain the mode until the user chooses a menu item or cancels the menu. If the object does not support a shortcut menu, the interaction should be the same as clicking it with the primary mouse button. Finally, if the object or location chosen does not support context-sensitive Help or is otherwise an inappropriate target for context-sensitive Help, cancel the context-sensitive Help mode.

If the user chooses the What's This? command a second time, clicks outside the window, or presses the ESC key, cancel context-sensitive Help mode. Restore the pointer to its usual image and operation in that context.

When the user chooses the What's This? command from a shortcut menu (as shown in Figure 13.4), the interaction is slightly different. Because the user has identified the object by clicking the secondary mouse button, there is no need for entering context-sensitive Help mode. Instead, immediately display the context-sensitive Help pop-up window for that object.

Shortcut menu for a control

Figure 13.4 A shortcut menu for a control

The F1 and SHIFT+F1 keys are the shortcut keys for this form of interaction. The F1 key displays the most context-sensitive Help available based on the current context. In primary windows, pressing F1 typically displays the HTML Help viewer with an appropriate topic. In secondary windows, pressing F1 typically displays the context-sensitive pop-up window for the control that has the input focus. However, if you support context-sensitive Help for elements of your primary window, use SHIFT+F1 to begin context-sensitive Help mode, changing the pointer and enabling the user to click a menu or control in the window to provide the context. In secondary windows, use SHIFT+F1, like F1, to display the context-sensitive Help pop-up window for the control that has the input focus.

Guidelines for Writing Context-Sensitive Help

When writing text for context-sensitive Help, you are answering the questions "What is this?" and "Why would I want to use it?" Indicate the action associated with the item. In English versions, begin the description with a verb; for example, "Adjusts the speed of your mouse," or "Provides a place for you to type a name for your document." For command buttons, you can use an imperative form — for example, "Click this to close the window." When describing a function or object, use words that explain the function or object in common terms instead of technical terminology or jargon. For example, instead of using "Undoes the last action," use "Reverses the last action."

When describing several option buttons in a group, try to compare and contrast the options together in one topic to answer the question "Which option should I choose?" However, if the options are complex, each option may require a separate topic.

Use sentence-style capitalization and ending punctuation. Also use the system-defined Help font, but avoid the use of italic text because it is hard to read on the screen.

In the explanation, you might want to include "why" information. You can also include "how to" information, but if the procedure requires multiple steps, consider using procedural Help to support this information. Keep your information brief but as complete as possible so that the Help window can be read quickly and is easy to understand.

While you can provide context-sensitive Help for any item in your application's windows, always provide it for the following elements:

Avoid creating context-sensitive Help for parts of the interface that do not do anything, such as group box labels or static descriptive text fields. You can create a common Help topic for group labels such as the following: "Help is available for each item in this group. Click ? at the top of the dialog box, and then click the specific item you want information about."

ToolTips

ToolTips are another form of contextual user assistance. ToolTips are small pop-up windows that display the name of a control when the control has no text label. The most common use of ToolTips is for toolbar buttons that have graphic labels, as shown in Figure 13.5, but they can be used for any control.

Cross referenceMore Information

For more information about ToolTips, see Chapter 8, "Menus, Controls, and Toolbars."

ToolTip for a toolbar button

Figure 13.5 A ToolTip for a toolbar button (click to enlarge image)

Display a ToolTip after the pointer (or pointing device) remains over the button for a short period of time. The ToolTip is displayed until the user presses the button or moves the pointer off the control, or after another time-out. If the user moves the pointer to another control that supports a ToolTip, ignore the time-out and display the new ToolTip immediately, replacing the former ToolTip. If you use the standard toolbar control, the system automatically provides support for ToolTips. It also includes a ToolTip control that can be used in other contexts. If you create your own ToolTip controls, make them consistent with the system-supplied controls.

In addition to providing ToolTips for elements in your application window, you should also provide support for ToolTips for your application file and its file types. This form of ToolTip is also known as an InfoTip. For information about supporting InfoTips, see Chapter 11, "Integrating with the System."

Status Bar Messages

You can use the status bar to provide contextual Help. However, because the user should be able to hide the status bar, avoid using the status bar to display information or access to functions that are essential to basic operation and are not provided elsewhere in the application's interface. In addition, because the status bar might not be located near the user's area of activity, the user might not notice it. It is best to consider status bar messages as a secondary or supplemental form of Help.

In addition to displaying information about the state of a window, you can display descriptive messages about menu and toolbar buttons, as shown in Figure 13.6. As with ToolTips, the window typically should be active to display these messages. When the user moves the pointer over a toolbar button or menu item, presses or clicks the primary mouse button when the pointer is over a menu or button, or uses the keyboard to move the input focus over a menu or toolbar button, display a short message describing the use of the associated command.

Status bar message

Figure 13.6 A status bar message for a selected menu command

A user can invoke a status bar message for a progress indicator control or other forms of feedback about an ongoing process, such as printing or saving a file. You can display progress information in a message box, but you may want to use the status bar for background processes so that the window's interface is not obscured by the message box.

If your application enables the user to control whether the status bar is displayed, or you want to provide information about other parts of your interface that may not have a status bar, consider using balloon tips.

Guidelines for Writing Status Bar Messages

To write status bar messages, use familiar terms but avoid jargon. Start with a verb in the present tense. For example, use "Cuts the selection and places it on the Clipboard." Try to be as brief as possible so the text can be read easily, but avoid making the text so short that it is cryptic.

Be constructive, not just descriptive, and inform the user about the purpose of the command. To describe a command with a specific function, use words specific to the command. If the command has multiple functions, try to summarize them — for example, "Contains commands for editing and formatting your document."

When you define messages for your menu and toolbar buttons, don't forget their unavailable, or disabled, state. Provide an appropriate message to explain why the item is not currently available. For example, when the user selects a disabled Cut command, you could display the message "This command is not available because no text is selected."

The Help Command Button

You can also provide contextual Help for a property sheet, dialog box, or message box by including a Help command button in that window, as shown in Figure 13.7.

Help command button

Figure 13.7 A Help command button in a secondary window

When the user clicks the Help command button, display an overview, summary, or explanatory topic for a page or for the entire window. For example, for a message box, the Help message can provide more information about causes and remedies for the reason the message was displayed.

Placement of a Help command button is important. If you include the Help command button with the OK and Cancel buttons, it implies that Help applies to the entire window. If you use the Help command button to display Help for a specific page within the window, place the button on that page.

The user assistance provided by a Help command button differs from the What's This? form of Help. In this form of Help, you should provide more general assistance rather than information specific to the control that has the current input focus. In addition, display the information in the HTML Help viewer, described later in this chapter, rather than in the context-sensitive Help pop-up window.

Consider the Help command button an optional, secondary form of contextual user assistance. Do not use it as a substitute for context-sensitive What's This? Help. Also avoid relying on it as a substitute for clear, understandable designs for your secondary windows.