User Interface Design Criteria

(adapted from J. Nielson, Usability Engineering, 1993)

  1. Visibility of system status. Users should always know where they are and what's going on.

  2. Real world - system match. The system should mirror the real world of the user as much as possible. Use language, concepts, etc. that are familiar to the user. Order the processes/screens in a way that is meaningful and logical to the user.

  3. Control and freedom. Don't "trap" the user. Support clearly marked exit, undo, and redo functions. Don't force them into a long linear sequence of operations with no escape.

  4. Consistency and standards. Use objects and phrases consistently. Follow platform conventions. Here is a checklist of specific items to watch for.

  5. Recognition not recall. Provide visual objects, actions, and options (e.g. cue cards) to assist the user for navigation and input activities. Don't expect they will memorize commands.

  6. Flexibility and efficiency of use. Accelerators (unseen by novice users) can speed up interaction for expert users. Allow users to customize frequent actions whenever possible.

  7. Aesthetic and minimalist design. Visibility of rarely needed information should be avoided. The more information that appears on the screen, the less visible each unit of information becomes.

  8. Online help and additional documentation. Though a well designed system can be used without documentation and help, supplemental information may still be necessary. Keep this information tied to user tasks, support easy to use search functions, and don't make this section too large.

  9. Effective error handling. Assist users to recognize, diagnose, and recover from errors. Don't just tell them there's an error, suggest corrective action whenever possible.

  10. Error prevention. A design that prevents errors from occurring is better than a good error message.