Jakob's 10 Usability Heuristics
1. Visibility of System Status
- Let users find out what's going on easily.
The design should always keep users informed about what is going on, through appropriate feedback within a reasonable amount of time.
- Communicate clearly to users what the system's status is.
- No consequences to users should be taken without informing them.
- Trust can be built through open and continuous communication.
ex> Visual changes of interactive design elements (Hover, Mouse-down/up, Tap state changes)
"You are here" nudges (Breadcrumb, Steppers, Progress indicator)
2. Match between System and the Real World
- Use elements that are familiar to users.
The design should speak users' language. Use words, phrases, and concepts familiar to the user, rather than internal jargon. Follow real-world conventions, making information appear in a natural and logical order.
- The language (Text, Voice, Iconography, Visual) used in a product should be familiar to its users.
- Never assume your understanding of words or concepts will match those of the users.
- User research help understanding users' familiar technology, mental models around the important product concepts.
ex> Theater in the US, Theatre in the UK. Car is more familar to the users than Automobile.
3. User Control and Freedom
- Let users feel they are in control.
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.
- Undo or Redo actions foster a sense of freedom and confidence.
- Able to exit anytime allow users to remain in control of the system and avoid getting stuck and feeling frustrated.
- Make sure "emergency exit" is clearly informed and discoverable.
ex> Cancel button in transactions, Exit signs at a theater
4. Consistency and Standards
- Don't make users learn again and more.
Users should not have to wonder wheter different words, situations, or actions mean the same thing. Follow platform and industry conventions.
- Keep the users' cognitive load low with consistent languages, and actions.
- Improve learnability by maintaining both External Consistency and Internal Consistency.
- External consistency: Established industry standard.
- Internal consistency: Within a brand or a product.
ex> Check-in counter at hotel lobby, Design System, Phone notification through its OS.
5. Error Prevention
- Make safeguard for users.
The best designs carefully prevent problems from occuring 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, when the outcome affect its users significantly.
- Designers should focus on solving high-cost errors, then frustration errors.
- Slip errors: Unconscious errors caused by lack of attention. Avoiding them by providing helpful constraints and default options.
ex> Disabled selections when it's unavailable. Pre-entered options for users.
- Mistakes: Conscious errors based on a mismatch between the user's mental model and the design. Prevent them by removing memory burdens, supporting undo, and warning users.
ex> Review section before finalizing transactions.
6. Recognition rather than Recall
- Don't rely on user memory.
Minimize user's memory burden 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 should be visible or easily retrievable when needed.
- Reduce the information that users have to remember. (Reduce back & forth actions)
- Let users recognize information in the interface, rather than making them remember it.
- Provide users in-context information, instead of giving them long documentation that needs memorizing.
ex>"Is Seoul capital of Korea?" rather than "What's the capital of Korea?".
7. Flexibility and Efficiency of Use
- Let seasoned users interact with the system faster.
Short cuts may speed up the interaction for the expert user. The interface with it can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.
- Flexible processes can be carried out in different ways, so that the users can pick whichever method works for them.
ex> Keyboard shortcuts, Cusotmization, Personalization(Not automated)
8. Aesthetic and Minimalist Design
- Don't over decorate. Focus on the essentials.
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.
- Keep the content and visual design of UI focus on the essentials.
- Unnecessary elements distract users from the information they need.
- Prioritize the content and features to support primary goals.
Messy UI increases the interaction cost for users to find their desired content. Organized UI lowers the cost.
9. Help Users Recognize, Diagnose, and Recover from Errors.
- Let users understand errors and potentially fix it themselves.
Error messages should be expressed in plain language, explaining the problem, and suggest a solution.
- Explain the error in the users' language. Avoid technical jargon.
- Offer users a solution, provide self-service information.
ex> "There is server error" than "500 error".
10. 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 understand how to complete their tasks.
- Documentations should be easy to search within
- It should carry concise information with concrete steps that users can easily follow.
ex> Information center at busy places, Information icon with popover or link, Frequently asekd questions.
https://www.nngroup.com/articles/ten-usability-heuristics/