Gek Siong Low
Context
The goals of INTERACTION DESIGN are to create an interface that is intuitive, clear and easy to use. FEEDBACK plays an important role in communicating, via appropriate CHANNELS, the CONCEPTUAL MODEL to the user, letting the user know what the system can do, what it will do, and what it is doing.
Problem
When using a computer interface, the user should know at all times where he is, what he can do, when he can do it, how he can do it, what the system will do, and what the system is doing. FEEDBACK is the process by which all these information is communicated back to the user through a CHANNEL.
Examples
There are many ways feedback can be used to help the user use the system. The following is just a few examples of feedback:
The tool tip provides information on what that icon does.
The blinking cursor tells you where the next character is going to be inserted.
The progress bar indicates how much of the file has been copied.
The alert box informs the user that the spelling and grammar check is complete.
Solution
Always provide feedback channels in a computer interface to aid the user in using the system. Feedback is not limited to what takes place on the screen. Visual, audio and haptic channels can all be used for feedback. Appropriate use of feedback reduces confusion and stress, and makes the user more confident in using the interface. A user who knows what is going on is a happy user.
Note that the use of feedback must be appropriate. Overuse of feedback results in channel clutter, be it visual or audio or haptic, and confuses and overwhelms the user, thereby reducing usability and dampening the user experience. Too much feedback can also slow down and irritates the user, hindering the user in performing his tasks.
Related patterns
FEEDBACK is a very general concept. There are many kinds of FEEDBACK with different objectives. You might want to take a look at the following more specific FEEDBACK patterns:
"Where am I?" feedback
Problem: When navigating an interface or in the process of performing a task, the user should know at all times his current location.
Solution: The current location of the user should be indicated at all times, or at appropriate points during the interaction.
Examples: Text cursor, mouse pointer, web site navigation, command-line prompt showing current host and directory
"What can I do?" feedback
Problem: Static affordances might not be sufficient to indicate to the user what the possible interactions are at that time.
Solution: Draw attention to interactive elements as the user explores the interface, thus revealing their interactive properties.
Examples: Mouse rollovers, cursor changes, haptic feedback as cursor moves over screen objects, Win95 menu and toolbars
"What does this do?" feedback
Problem: The user does not know what it is exactly that he wants to achieve, or he does not know what the effects of a particular action are.
Solution: To facilitate exploration and experimentation, use the DIRECT MANIPULATION ideal of displaying the results in "real-time" for appropriate operations. Not recommended for time-consuming operations. In such cases provide a PROXY INTERACTIVE OBJECT instead.
Examples: Page ups/downs, "real-time" previews in graphics software
"Please wait" feedback
Problem: An operation takes some time to complete, and the user should know that the system is currently performing the operation.
Solution: Tell the user that the system is currently performing the operation. If appropriate, indicate how long the operation will take to complete.
Examples: Animated hourglass cursor, progress bar
"Something just happened" feedback
Problem: An operation has been completed, or there was an error, or an event has occurred that the user should know about right away.
Solution: Tell the user that something important has occurred, so that the user can deal with the event, or continue with his tasks. The feedback may require explicit user intervention to proceed, depending on the situation.
Examples: Alerts, alarms, "transaction complete" web page