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 rather than with system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order |
3 |
User control and freedom |
Users often need a clearly marked “emergency exit” when making mistakes. Support undo and redo |
4 |
Consistency and standards |
Users should not be forced to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions. |
5 |
Help users recognize, diagnose, and recover from errors |
Error messages should be expressed in a simple language, and should precisely indicate the problem, and constructively suggest a solution |
6 |
Error prevention |
The design of the system should either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action |
7 |
Recognition rather than recall |
Minimize the user’s memory load by making objects, actions, and options visible. The user should not have to remember information. Instructions should be visible or easily retrievable. |
8 |
Flexibility and efficiency of use |
Accelerators— unseen by the novice user—may often speed up the interaction for the expert user. Allow users to tailor frequent actions. |
9 |
Aesthetic and minimalist design |
Dialogues should not contain information which is irrelevant or rarely needed. Extra information diminishes the relative visibility of relevant information. |
10 |
Help and documentation |
It may be necessary that the system 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 |