Notes/Usability Heuristics: Nielsen's 10 Rules for Interface Design
Back to Notes

Usability Heuristics: Nielsen's 10 Rules for Interface Design

A deep dive into Nielsen's 10 usability heuristics, heuristic evaluation methodology, severity ratings, and common violations in real products.

2025-07-16AI-Synthesized from Personal NotesSource1700+ words of raw notesEnrichmentsCode blocks, GraphicsPipelineMulti-pass AI review · Score: 96/100
Share
Design UxUsability HeuristicsNielsenInteraction Design

Term Definition
Heuristic Evaluation A usability inspection method where evaluators judge an interface against a set of recognized usability principles (heuristics)
Severity Rating A score from 0 (not a problem) to 4 (usability catastrophe) assigned to each heuristic violation to prioritize fixes
System Status Visibility The principle that the system should always keep users informed about what is going on through timely feedback
Error Prevention Designing interfaces that prevent errors from occurring in the first place, rather than relying on error messages after the fact
Recognition over Recall Making objects, actions, and options visible so users do not have to remember information from one part of the interface to another
Consistency Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions
Flexibility and Efficiency Accelerators (keyboard shortcuts, macros) that speed up interaction for expert users without hindering novices
Discount Usability Nielsen's approach of using 3-5 evaluators for heuristic evaluation, which finds ~75% of usability problems at low cost
Aesthetic and Minimalist Design Every extra unit of information in a dialogue competes with relevant information and diminishes its relative visibility

What & Why

In 1994, Jakob Nielsen distilled decades of usability research into 10 general principles for interaction design. These are not rigid rules. They are heuristics: broad guidelines that apply across virtually every interface, from command-line tools to mobile apps to VR environments.

Why do these matter? Because usability testing is expensive and slow. Heuristic evaluation gives you a fast, cheap way to find usability problems before users ever touch the product. Nielsen showed that 3-5 evaluators using these heuristics can identify roughly 75% of usability issues in a single afternoon. That is an extraordinary return on investment.

The 10 heuristics also serve as a shared vocabulary. When a designer says "this violates H4" (consistency), everyone on the team knows exactly what class of problem is being discussed. They turn subjective opinions ("I don't like this menu") into structured, actionable findings.

How It Works

The 10 Heuristics

Nielsen's 10 Usability Heuristics H1: Visibility of System Status H2: Match Real World H3: User Control & Freedom H4: Consistency & Standards H5: Error Prevention H6: Recognition over Recall H7: Flexibility & Efficiency H8: Aesthetic, Minimal Design H9: Help Users with Errors H10: Help & Documentation

H1: Visibility of System Status. The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. Progress bars, loading spinners, and "saving..." indicators all serve this heuristic. A file upload with no progress indicator violates it.

H2: Match Between System and the Real World. The system should speak the user's language, with words, phrases, and concepts familiar to the user, rather than system-oriented terms. A shopping cart icon matches the real-world metaphor. An error message saying "ERRNO 0x4F2A" does not.

H3: User Control and Freedom. Users often choose system functions by mistake and need a clearly marked "emergency exit" to leave the unwanted state. Undo, redo, cancel, and back buttons all serve this heuristic.

H4: Consistency and Standards. Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions. If every other app uses a floppy disk icon for "save," do not use a cloud icon.

H5: Error Prevention. Even better than good error messages is a careful design that prevents a problem from occurring in the first place. Confirmation dialogs before destructive actions, disabled submit buttons until required fields are filled, and date pickers that prevent invalid dates all serve this heuristic.

H6: 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. Dropdown menus, autocomplete, and recently-used lists all reduce recall burden.

H7: Flexibility and Efficiency of Use. Accelerators, unseen by the novice user, may speed up the interaction for the expert user. Keyboard shortcuts, command palettes, and customizable toolbars serve both audiences.

H8: Aesthetic and Minimalist Design. Dialogues should not contain information that is irrelevant or rarely needed. Every extra unit of information competes with the relevant units and diminishes their relative visibility.

H9: 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. "File not found" is better than "Error 404." "The file 'report.pdf' was moved or deleted. Check your Downloads folder." is better still.

H10: Help and Documentation. Even though it is better if the system can be used without documentation, it may be necessary to provide help. Any such information should be easy to search, focused on the user's task, list concrete steps, and not be too large.

Heuristic Evaluation Process

Heuristic Evaluation Workflow 1. Brief Evaluators 2. Solo Inspection 3. Aggregate Findings 4. Rate Severity 3-5 evaluators 1-2 hours each Merge + dedup 0-4 scale

Severity Rating Scale

Each violation is rated on a 0-4 scale:

Rating Label Description
0 Not a problem Evaluator disagrees this is a usability issue
1 Cosmetic Fix only if extra time is available
2 Minor Low priority fix
3 Major High priority fix, important to resolve
4 Catastrophe Must fix before product can be released

Evaluator Coverage

Nielsen's research showed that the number of usability problems found follows a curve based on the number of evaluators $e$:

$\text{Problems Found}(\%) \approx 100 \times (1 - (1 - L)^e)$

Where $L$ is the average proportion of problems found by a single evaluator (typically $L \approx 0.31$ for heuristic evaluation). With 5 evaluators:

$1 - (1 - 0.31)^5 = 1 - 0.69^5 \approx 1 - 0.156 = 0.844$

So 5 evaluators find roughly 84% of problems. The cost-benefit curve flattens after 5, making additional evaluators less worthwhile.

Problems Found vs. Number of Evaluators Evaluators % Found 1 3 5 7 10 31% 67% 84% 93% Sweet spot

Complexity Analysis

Heuristic evaluation has well-defined cost characteristics compared to other usability methods:

Method Time Cost People Needed Coverage
Heuristic Evaluation $O(e \cdot h)$ where $e$=evaluators, $h$=hours each 3-5 experts ~75-85% of problems
User Testing $O(u \cdot t)$ where $u$=users, $t$=session time 5-8 users + facilitator ~80% of critical issues
Cognitive Walkthrough $O(s \cdot a)$ where $s$=screens, $a$=actions 1-3 experts Task-specific only
A/B Testing $O(n)$ where $n$=sample size for significance Hundreds to thousands Single metric comparison

The severity-weighted problem count for an evaluation with $p$ problems is:

$\text{Weighted Score} = \sum_{i=1}^{p} s_i \quad \text{where } s_i \in \{0, 1, 2, 3, 4\}$

A higher weighted score indicates more severe overall usability debt. Teams typically prioritize fixing all severity 4 and 3 issues before addressing lower-rated problems.

Implementation

ALGORITHM HeuristicEvaluation(interface, heuristics, evaluators)
  INPUT: interface (set of screens/flows to evaluate),
         heuristics (list of 10 Nielsen heuristics),
         evaluators (list of 3-5 UX evaluators)
  OUTPUT: prioritized list of usability findings

  allFindings ← empty list

  FOR EACH evaluator IN evaluators DO
    findings ← empty list
    FOR EACH screen IN interface DO
      FOR EACH heuristic IN heuristics DO
        violations ← evaluator.inspect(screen, heuristic)
        FOR EACH violation IN violations DO
          findings.append({
            screen: screen,
            heuristic: heuristic.id,
            description: violation.description,
            location: violation.element,
            evaluator: evaluator.id
          })
        END FOR
      END FOR
    END FOR
    allFindings.append(findings)
  END FOR

  merged ← DeduplicateFindings(allFindings)

  FOR EACH finding IN merged DO
    severityVotes ← empty list
    FOR EACH evaluator IN evaluators DO
      severityVotes.append(evaluator.rateSeverity(finding))
    END FOR
    finding.severity ← mean(severityVotes)
  END FOR

  SORT merged BY severity DESCENDING
  RETURN merged
END ALGORITHM

ALGORITHM DeduplicateFindings(allFindings)
  INPUT: allFindings (list of lists, one per evaluator)
  OUTPUT: merged list with duplicates combined

  unique ← empty map keyed by (screen, heuristic, location)

  FOR EACH evaluatorFindings IN allFindings DO
    FOR EACH finding IN evaluatorFindings DO
      key ← (finding.screen, finding.heuristic, finding.location)
      IF key NOT IN unique THEN
        unique[key] ← finding
        unique[key].foundByCount ← 1
      ELSE
        unique[key].foundByCount ← unique[key].foundByCount + 1
      END IF
    END FOR
  END FOR

  RETURN values(unique)
END ALGORITHM

ALGORITHM ProblemsCoverage(numEvaluators, L)
  INPUT: numEvaluators (integer >= 1), L (proportion, default 0.31)
  OUTPUT: estimated percentage of problems found

  coverage ← 1 - (1 - L) ^ numEvaluators
  RETURN coverage * 100
END ALGORITHM

Real-World Applications

  • Google's Material Design: Codifies H4 (consistency) across all Google products with shared components, spacing, and interaction patterns
  • GitHub's error pages: The 404 page uses plain language and a search bar (H9: help users recover from errors) instead of just showing a code
  • Slack's keyboard shortcuts: Cmd+K command palette serves H7 (flexibility and efficiency) by letting power users navigate without touching the mouse
  • Amazon's 1-Click ordering: Eliminates unnecessary steps (H8: minimalist design) and prevents the error of accidentally ordering twice (H5: error prevention) with a brief undo window
  • iOS confirmation dialogs: "Delete this photo?" with a red "Delete" button serves H3 (user control) and H5 (error prevention) simultaneously
  • VS Code's command palette: Surfaces all available actions with fuzzy search (H6: recognition over recall, H7: flexibility)
  • Stripe's API error messages: Include the error type, a human-readable message, and a link to documentation (H9 and H10 combined)
  • Figma's multiplayer cursors: Real-time visibility of other users' cursors and selections serves H1 (system status) in a collaborative context, showing who is editing what
  • Notion's slash commands: Typing "/" reveals a contextual menu of block types, serving H7 (flexibility) for power users while keeping the default interface minimal (H8)
  • Google Maps' "Did you mean?": When a search returns unexpected results, Maps suggests alternatives, combining H5 (error prevention) with H9 (error recovery)

Key Takeaways

  • Nielsen's 10 heuristics are not a checklist to pass or fail. They are lenses for identifying usability problems across any interface
  • Heuristic evaluation with 3-5 evaluators finds roughly 75-85% of usability problems at a fraction of the cost of full user testing
  • Severity ratings (0-4) turn subjective opinions into prioritized, actionable backlogs
  • The most commonly violated heuristics in practice are H1 (visibility of system status), H4 (consistency), and H9 (error recovery)
  • Heuristic evaluation complements but does not replace user testing. Evaluators find different problems than real users do
  • The heuristics work best as a shared vocabulary: when everyone on the team knows "H3," discussions about undo/cancel become precise and productive