Feedback

Feedback indicates to the user that a task is being done and that it is being done either correctly or incorrectly. Your program needs to inform the user what it is doing. Without feedback, the user is giving commands without any knowledge of their results. Feedback completes the loop by letting the user know that the commands worked. Since the user needs to know when an action cannot be done or is being done incorrectly, error messages are an important form of feedback.

Good feedback is both immediate and obvious. Feedback delivered after the user needs it or that the user doesn't understand is worthless. For example, some programs are slow to display a wait cursor or progress indicator when they start a time-consuming operation, causing the user to think that nothing is happening. Feedback can be made obvious by placing the feedback mechanism in close physical proximity to the causal action. While a taskbar can be used effectively for status-related feedback, taskbars are too far away from the causal action to be effective in general. Feedback to a time-consuming operation can be made obvious by indicating how much work has been done and the total amount of work to do.

Feedback Interfaces

The following interfaces are commonly used to provide feedback. Interestingly, all but the first four of these forms of feedback have something in common: they are annoying when misused. You should choose the least obtrusive interface that does the job, so I have ordered the interfaces by their obtrusiveness, the least obtrusive first.

TIP
Choose the least obtrusive feedback interface that does the job.

Show the results

Often the best feedback technique is to simply show the results. You can show that an operation is complete by showing the results of the operation. For example, you can show that an object has been manipulated by showing the resulting selection, deletion, moving, copying, sizing, and so on. Such results are indicated by either changing the physical properties of the object or how the object is drawn. For example, selection is shown by changing an object's background color.

Show a preview of the results

Previews are an effective way to give the user feedback on the results of a selection without the user having to make the particular selection. They make features self-explanatory and easy to understand, reducing the need for documentation. They also make the user more productive by reducing the chance of making bad choices.

Use tooltips

Tooltips are a simple and effective way to give dynamic feedback in a way that requires almost no effort from the user. They truly implement the "information at your fingertips" concept.

Cursor hinting

Changing the cursor is a simple way to give feedback. The wait cursor is a good choice to show that an operation is going to take a few seconds. Other cursor shapes are good for indicating direct manipulation, such as when resizing, moving, or using a specialized tool (as found in a paint program).

Control enabling

You can give effective, unobtrusive feedback simply by enabling or disabling controls to show that an operation is running or to show an object's status. For example, the Microsoft Visual C++ Compile, Build, and Rebuild All toolbar buttons are disabled while code is compiled and are enabled when the operation has finished.

Color

Color can be used for feedback, but it has several problems. The first is that color is difficult to interpret by itself. You can use red to indicate danger and yellow to indicate caution, but even these color interpretations are culturally dependent. Another problem is that many users either are color-blind or use monochrome displays. Consequently, color is best used to reinforce another form of feedback.

Status bars

Status bars work well for status information and for feedback about background tasks such as printing or formatting. As noted earlier, status bars suffer from not being obvious, so they are a poor choice for critical information. However, they work well with progress indicators since progress indicators use both motion and color, making them easy to notice on a status bar.

Progress indicators

Progress indicators are useful for operations that take more than about five seconds to perform. They provide more information than a wait cursor by indicating how long the operation will take, how much work has already been done, and that progress is being made. If you display a progress indicator in a modal dialog box, you can also give the user the ability to stop the operation.

Taskbar

Flashing a program's taskbar window button is a good way to notify the user of a pending message.

Taskbar System Tray

The taskbar System Tray is a good way to provide feedback for a system task or a utility. The problem is that the System Tray is overused; many programs display System Tray icons that do little more than take up space. The best way to use a System Tray icon is to display it only when you need to provide feedback to the user. The sudden appearance of an icon in the user's peripheral vision draws far more attention than changing a permanent icon's appearance.

Animation

You can use an animation control as an alternative to a progress indicator to show that an operation is in process. You can also use animation to show that an object has been manipulated, such as when a button is pushed. Lastly, you can use animation to show the relationship between cause and effect, such as with the zoom rectangles shown whenever you display the Find dialog box in Microsoft Word. The best animations are kept small and simple to avoid distracting the user.

Sound

Sound can also create effective feedback, but it too has several problems. The first is that it can be just plain annoying, especially in an office environment. While people can close their eyes, they can't close their ears. Sound is a poor feedback mechanism for those who have hearing disabilities, those who are in a noisy environment, or those who don't have their sound turned on (which is true in my case). If you decide to use sound for feedback, make it optional and redundant.

Message boxes

Message boxes with a brief, clear, consistent, and specific message are an effective way to give feedback. The message box text must provide enough information so that the user can understand the issue and know what to do about it. The problem with message boxes is that they force the user to stop working to respond to them. Consequently, message boxes should be used for feedback only when necessary. A message box confirmation is appropriate to give feedback that the user is about to perform a dangerous or destructive operation. By contrast, you should never use a message box to report that a command has completed successfully. Such good news can be taken for granted.



Developing User Interfaces for Microsoft Windows
Developing User Interfaces for Microsoft Windows
ISBN: 0735605866
EAN: 2147483647
Year: 2005
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net