Nielsen’s heuristics (1994)

Jakob Nielsen’s ten heuristics were published in 1994 in the book “Usability Inspection Methods” by Jakob Nielsen and Robert L. Mack. The home page of Nielsen’s heuristics is https://www.nngroup.com/articles/ten-usability-heuristics/ where you can find links to examples and talking-head videos that explain the heuristics in more detail.

Nielsen’s 10 heuristics are:
#1: Visibility of system status
#2: Match between system and the real world
#3: User control and freedom
#4: Consistency and standards
#5: Error prevention
#6: Recognition rather than recall
#7: Flexibility and efficiency of use
#8: Aesthetic and minimalist design
#9: Help users recognize, diagnose, and recover from errors
#10: Help and documentation


#1: Visibility of system status

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

Examples:

  • Feedback: While downloading a movie, an app updates the message “87% of movie downloaded. Estimated completion time 09:28” every 10 seconds
  • Status: On this website, a breadcrumb trail constantly informs users where they are on the website, for example
    Home > Molich says > Heuristic evaluation > Nielsen’s heuristics (1994)
  • Confirmation: After a password is changed, an app confirms: “Password successfully changed”


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

Examples:

  • Speak the users’s language: The return policy of the clothing retailer Landsend.com is the short, plain language statement “If you’re not satisfied with any item‚ simply return it to us at any time. … Refunds will be issued for the original purchase price when accompanied by proof of purchase from Lands’ End.”
  • Follow real world conventions: An online form presents questions in the same order as the paper form.
  • Match the real world: A compass app on a smartphone functions much like an actual compass does in real life


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

Examples:

  • Emergency exit: A user accidentally hits the Exit button. Before exiting, the app offers the choices “Save and exit”, “Exit without saving”, and “Cancel”. The “Cancel” button is an emergency exit.
  • Interruption by the user: An antivirus program that is scanning a hard disk drive for viruses can be stopped at any point of time by the user pressing a prominent stop-button.
  • Undo: A word processing system allows users to undo all their actions since they first started working on a document one by one, even if considerable time has passed
  • Redo: Following an undo, a word processing system allows users to revert to the state before the undo – that is, “undo the undo”.


#4: Consistency and standards

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

Examples:

  • Consistency: In an organisation, all systems consistently use the same phrases for login, for example “user name” (not user-id), and “password” (not access key). Even better is using the same login screen for all systems
  • Standards: All cars, irrespective of brand, have the same ordering of the gas, brake and clutch pedal
  • Platform conventions: A blood analyzer that runs on a PC under Windows follows the appropriate Windows platform conventions


#5: Error prevention

Even better than good error messages is a careful design that 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.

Examples:

  • Prevent well-known problems: A car rental website does not allow the user to enter a pick-up time where the rental office is closed; it provides an appropriate explanation why the pick-up time is not available. The website provides a warning if the user selects a return time when the rental office is closed, provided that the rental office allows after-hours return of rented cars.
  • Eliminate error-prone conditions: On a flight booking website, users enter dates by clicking on a graphic calendar rather than entering the date using the keyboard
  • Present confirmation option: A file management system asks the user for confirmation before it irreversibly deletes a file
  • Safe default values: In a message asking the user to confirm the deletion of a file, the default option is “Do not delete the file”.


#6: 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 from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.

Examples:

  • Recognition: In an address form, a drop-down list displays the names and codes of all 50 US states, so the user does not have to remember the codes and the correct spelling
  • Recognition: A search engine helps users retrace their searches by displaying past searches
  • Transfer information: A user applies online for a driver’s license. The application is successful. The user receives a confirmation number and is requested to pay a fee before the driver’s license can be issued. When the user enters the payment module, the confirmation number is transferred automatically from the application module.
  • Instructions for use: On a securities trading platform, a Help-button is prominently displayed in the upper right corner of all windows.


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

Personal comment: Some interactive systems offer flexibility by letting users accomplish the same function in different more or less efficient ways for experienced and less experienced users.

Examples:

  • Accelerators: Inexperienced users can select functions by clicking on menus while experienced users can enter Alt-sequences, for example Alt+H+K+C to quickly accomplish a function that would require 3 menu selections.
  • Tailor frequent actions, individualization: On a hotel booking website, the user can set the language and currency used by the website. The website remembers the choices for future visits by the user.


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

Examples:

  • Aesthetic design: An e-commerce website that sells boots applies gestalt principles to make product overview pages with 50 or more boots easy to scan for the right product or alternative selections.
  • Minimalist design: A bank offers two verions of its online banking service: The full version, and a more limited, less complex version for people who prefer minimalist design – that is, simplicity.
  • Simplicity: The home page of a presidential candidate only shows a large picture of the candidate, the candidate‘s name, a “Donate”-button, a “Sign-up”-button and a “Learn More”-link.


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

Personal comment: Read more about this on the page Error messages.

Examples:

  • Plain language: The message “This page does not exist. We apologize for our error. We would be grateful if you would report the problem to webmaster@website.com”
    is easier to understand than “Error 404”
  • Precise: The error message “The pick-up date (16-Dec-2020) must not be later than the return date (13-Dec-2020)” is more precise than “Something went wrong”
  • Constructive: The error message “File names must start with a letter” is more constructive than “Error in file name”


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

Examples:

  • Inline help: On a hotel booking website, controls that may be difficult to understand, for example “Security code” are followed by a “?”. Terms that may be difficult to understand are underlined. Clicking a “?” or an underlined term produces an explanation in plain language.
  • Documentation: A remote control for hearing aids comes with an attractive 2-page getting started guide, which has been extensively usability tested.