Home / Learn / Product Design Foundations / Lesson 3
Lesson 3 of 3 · 12 min

Nielsen's 10 usability heuristics, with real violations

Key takeaways

Ten principles, distilled from analysis of hundreds of real usability problems, that still describe most interface failures you will meet this week.

  1. Visibility of system status. The system keeps users informed with timely feedback. Violation: a file upload with no progress indicator.
  2. Match between system and the real world. Speak the user’s language, follow real-world conventions. Violation: “Error 402: transaction context invalid.”
  3. User control and freedom. Clearly marked exits, undo, redo. Violation: a wizard you cannot leave without losing everything.
  4. Consistency and standards. Follow platform and internal conventions (see Jakob’s law). Violation: three different words for “delete” in one product.
  5. Error prevention. Better than good error messages. Confirmations for destructive actions, constraints that make errors impossible.
  6. Recognition rather than recall. Show options; don’t make users remember codes, paths or syntax.
  7. Flexibility and efficiency of use. Accelerators for experts (shortcuts, recents, defaults) that novices never see.
  8. Aesthetic and minimalist design. Every extra element competes with the relevant ones. Minimalist ≠ empty; it means no irrelevant information.
  9. Help users recognize, diagnose, and recover from errors. Plain language: what happened, why, what to do.
  10. Help and documentation. Ideally unnecessary; when needed — searchable, contextual, concrete.

Using them

Run a heuristic evaluation: 3–5 evaluators independently walk key flows, log violations against the ten, then merge and rate severity. It is the cheapest structured way to find problems — and a good exercise: pick any app you use daily and find one violation of each heuristic. There will be at least seven.

Primary sources
Related terms

Heuristic evaluationRecognition over recallVisibility of system status
← Usability: Nielsen's five quality components Test yourself →