Usability Heuristics

Usability heuristics are a set of industry-defined principles that govern good design. Since common usability heuristics evolved over time they are generally considered to be a standard in best practices for high-level usability evaluation.

Besides the ten usability heuristics listed below, Bruce Tognazzini offers valuable guidelines in his First Principles of Interaction Design.

Ten Usability Heuristics

By Jakob Nielsen

1. Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.

This applies both to features like confirmation dialogs as well as effective navigation menus.

2. Match between system and the real world
The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.

This corresponds to issues dealing with correct labels and titles as well as relevant metaphors (i.e. inbox).

3. User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.

The browser back button goes a long way in helping facilitate user control and freedom. Other navigational aids such as crumb-trails, back links, home links, etc... can also be very useful.

4. Consistency and standards
Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.

This one is pretty straight forward, but I added this comments anyway for the sake of consistency.

5. Error prevention
Even better than good error messages is a careful design that prevents a problem from occurring in the first place.

This drives to the heart of an "intuitive" user experience.

6. Recognition rather than recall
Make objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.

Color-coding is a good example of recognition rather than recall. Color-coding can be applied to objects (hyper text links) as well as actions (visited hyper text links).

7. Flexibility and efficiency of use
Accelerators – unseen by the novice user – may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.

Bookmarks, sitemaps, and personalization all fall under this heuristic.

8. Aesthetic and minimalist design
Dialogues should not contain information that is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.

Are there too many icons? Do we need all those divider lines? Less is more is the theme here.

9. Help users recognize, diagnose, and recover from errors
Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.

A good example of this can be found in most e-commerce interfaces. If a user forgets to enter data in a required field, the system presents an error message and pinpoints which fields are missing data.

10. Help and documentation
Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.

This heuristic deals with the end-user's access to help and documentation. How useful is our help tab? Who actually gets our training materials? Who is allowed to contact our help desk?