Usability Heuristics are 10 principles for evaluating the usability of website interfaces and interaction design, created by computer scientist Jakob Nielsen in 1990.
10 Usability Heuristics for User Interface Design
The system should always keep users informed about what is going on through appropriate feedback within reasonable time
#1 Visibility of system status
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.
#2 Match between system & the real world
Users often perform actions by mistake. They need a clearly marked "emergency exit" to leave the unwanted action without having to go through an extended process.
#3 User control and freedom
Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform and industry conventions.
#4 Consistency and standards
Good error messages are important, but the best designs carefully prevent problems 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.
Minimize the user's memory load by making elements, actions, and options visible. The user should not have to remember information from one part of the interface to another. Information required to use the design (e.g. field labels or menu items) should be visible or easily retrievable when needed.
#6: Recognition rather than recall
Shortcuts — hidden from novice users — may speed up the interaction for the expert user such that the design can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.
#7: Flexibility and efficiency of use
Interfaces should not contain information which is irrelevant or rarely needed. Every extra unit of information in an interface competes with the relevant units of information and diminishes their relative visibility.
#8: Aesthetic and minimalist design
Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.
#9: Help users recognize, diagnose, and recover from errors
It’s best if the system doesn’t need any additional explanation. However, it may be necessary to provide documentation to help users understand how to complete their tasks.
#10: Help and documentation