10 Usability Heuristics for User Interface Design

Author: Michelle McCausland

## 1. Visibility of System Status

- The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time.

## 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.

## 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.

## 4. Consistency and standards

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

## 5. Error prevention

- Even better than good error messages is a careful design which prevents a problem from occurring in the first place. - Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.

## 6. Recognition rather than recall

- Minimize the user's memory load by aking 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.

## 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.

## 8. Aesthetic and minimalist design

- Dialogues should not contain information which 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.

## 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.

## 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.