Eight Golden Rules of Interface Design

From: Designing the User Interface by Ben Shneiderman

Comments are mine.

1. Strive for consistency

Different parts of the user interface should re-use commands, key bindings, visual layouts, etc.

Consistency across applications is important. If it were up to me, whoever thought up the idea of skinned user interfaces (the creators of Winamp) would be prosecuted for crimes against user interface consistency. Web applications are also frequent perpetrators.

2. Enable frequent users to use shortcuts

For example, control-C rather than Edit->Copy. Allow expert users to construct their own command sequences and assign them to keys or toolbar buttons (i.e., macros).

Also good: toolbars. (However, too many toolbar with too many options can easily become confusing: see rule #8.)

A good user interface offers lots of guidance for less-experienced users but makes it easy for experienced users to do exactly what they want.

3. Offer informative feedback.

Any action taken by the user should lead to feedback from the user interface. For long-running operations, a progress indicator should be used. The user should not be in the dark about the internal state of the system.

4. Design dialog to yield closure.

Sequences of interaction should lead to a definite conclusion.

E.g.: wizard dialogs.

5. Offer simple error handling.

Best case: user interface is designed in a way that makes it difficult or impossible for the user to enter erroneous input. For example, a numeric spinner might be a more appropriate mechanism for entering an integer than a free-form text field.

When the UI cannot exclude the possibility of erroneous input, the UI should offer immediate and helpful feedback explaining the error and how to correct it.

6. Permit easy reversal of actions.

For example, support an undo command.

Users will feel much more confident using the system, and experimenting to increase their knowledge of the system, if they know that the consequences of an unintended action are minimal.

7. Support internal locus of control.

The user should drive the user interface, rather than passively respond. Experienced users should be able to quickly get to the precise task they want to accomplish.

For example: let's say a task must be done repeatedly. Requiring the user to start navigating at the beginning of the menu hierarchy each time the task is repeated would violate this rule.

Another example: say that the user needs to perform task A, then B, then A, then B, etc. It should be easy to jump straight from task A to B and B to A without intermediate navigation.

8. Reduce short-term memory load.

People can typically hold 7 +/- 2 things in their short term memories. For this reason, extraneous information should be eliminated, allowing the user to focus on the task at hand.

Visual Design for User Interfaces

  • Group related information
  • Use whitespace to separate groups
  • Use rows and columns to organize data (e.g.: a directory)
  • Color may be helpful to help classify data (but beware the angry fruit salad effect)
  • Fonts can also be helpful to visually classify data (again, use sparingly)