-
Visibility of System Status: Designs should keep users informed about what is going on, through appropriate, timely feedback.
-
Match between System and the Real World: Use words, phrases, and concepts familiar to the user, rather than internal jargon.
-
User Control and Freedom: Users often perform actions by mistake. They need a clearly marked "emergency exit" to leave the unwanted action.
-
Consistency and Standards: Users should not have to wonder whether different words, situations, or actions mean the same thing.
-
Error Prevention: Good error messages are important, and good designs carefully prevent problems from occurring in the first place.
-
Recognition Rather Than Recall: Minimize the user's memory load by making elements, actions, and options visible. Avoid making users remember information.
-
Flexibility and Efficiency of Use: Shortcuts — hidden from novice users — may speed up the interaction for the expert user.
-
Aesthetic and Minimalist Design: Interfaces should not contain information which is irrelevant. Every extra unit of information in an interface competes with the relevant units of information.
-
Recognize, Diagnose, and Recover from Errors: Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.
-
Help and Documentation: It’s best if the design doesn’t need any additional explanation. However, it may be necessary to provide documentation to help users complete their tasks.