Back to skills
extension
Category: Development & EngineeringNo API key required

nielsen-heuristics

10 foundational usability principles for evaluating and designing user interfaces

personAuthor: jakexiaohubgithub

Nielsen Norman Group's 10 Usability Heuristics

Overview

Jakob Nielsen's 10 Usability Heuristics are broad rules of thumb for interaction design, created in 1990 and refined in 1994. They provide a systematic framework for evaluating interface usability without requiring extensive user testing. These heuristics form the foundation for heuristic evaluation - a discount usability method where evaluators examine interfaces against established principles to identify usability problems.

When to Use

  • Conducting rapid usability evaluations without formal user testing
  • Designing new interfaces or redesigning existing ones
  • Prioritizing design decisions when multiple approaches exist
  • Training designers on fundamental usability principles
  • Reviewing designs before user testing to catch obvious issues
  • Communicating usability problems to stakeholders with standardized language

The Process

Step 1: Visibility of System Status

Keep users informed about what's happening through timely, appropriate feedback. Example: Progress bars during file uploads, loading spinners during data fetches, confirmation messages after form submissions.

Step 2: Match Between System and Real World

Use familiar language, concepts, and conventions rather than technical jargon. Follow real-world conventions and present information in natural, logical order. Example: "Trash" instead of "Delete Buffer", calendar metaphors for scheduling, shopping cart for e-commerce.

Step 3: User Control and Freedom

Provide clearly marked emergency exits for mistaken actions. Support undo/redo to let users reverse decisions without penalty. Example: Undo buttons, cancel options on dialogs, back navigation, "Are you sure?" confirmations for destructive actions.

Step 4: Consistency and Standards

Follow platform conventions and maintain internal consistency. Users shouldn't wonder if different words, situations, or actions mean the same thing. Example: Submit buttons always in bottom-right, consistent icon meanings, standard keyboard shortcuts (Cmd+S for save).

Step 5: Error Prevention

Design carefully to prevent problems before they occur. Eliminate error-prone conditions or present confirmation options before commitment. Example: Disable invalid form inputs, constraint-based calendars, confirmation dialogs for destructive actions, input validation as users type.

Step 6: Recognition Rather Than Recall

Make objects, actions, and options visible. Minimize memory load by showing available choices rather than requiring users to remember information. Example: Visible menu options vs. command-line interfaces, autocomplete suggestions, recently used items, visual previews.

Step 7: Flexibility and Efficiency of Use

Accelerate workflows for expert users while remaining accessible to novices. Allow customization for frequent actions. Example: Keyboard shortcuts alongside mouse actions, bulk operations, customizable toolbars, macros for power users.

Step 8: Aesthetic and Minimalist Design

Eliminate irrelevant or rarely needed information. Every extra unit of information competes with relevant units and diminishes their visibility. Example: Progressive disclosure, hidden advanced settings, clean interfaces with clear visual hierarchy, contextual tools that appear when needed.

Step 9: Help Users Recognize, Diagnose, and Recover from Errors

Express error messages in plain language, precisely indicate the problem, and constructively suggest solutions. Example: "Password must contain at least 8 characters including one number" instead of "Invalid input", specific field highlighting on form errors.

Step 10: Help and Documentation

Provide searchable, task-focused documentation when needed. List concrete steps and avoid being overly large. Example: Contextual tooltips, searchable help centers, step-by-step tutorials, inline documentation, chatbots for common questions.

Example Application

Situation: Designing a new banking app for money transfers.

Application:

  • Heuristic 1: Show real-time transfer status ("Processing...", "Completed")
  • Heuristic 3: Allow users to cancel pending transfers
  • Heuristic 5: Prevent transfers to invalid account numbers with inline validation
  • Heuristic 6: Show dropdown of recent recipients rather than requiring memorization
  • Heuristic 9: If transfer fails, explain why ("Insufficient funds") and suggest action ("Add money to account")

Outcome: Reduced customer support calls by 40% and increased successful transfer completion rate by 25%.

Anti-Patterns

  • Designing without feedback mechanisms (silent failures, unclear loading states)
  • Using technical jargon that users don't understand ("Exception 0x8000")
  • Forcing users to memorize information across screens
  • Inconsistent UI patterns that confuse users (submit button in different locations)
  • Generic error messages that don't help users fix problems ("Error occurred")
  • Hiding critical actions behind obscure gestures or undiscoverable features
  • Cluttered interfaces with every possible option visible at once
  • No way to undo or cancel destructive actions

Related

  • Don Norman's Design Principles (affordances, signifiers, feedback)
  • WCAG Accessibility Guidelines (overlapping usability and accessibility)
  • Design Systems (codifying heuristics into reusable patterns)
  • Heuristic Evaluation Methodology (systematic application of these principles)
  • Cognitive Load Theory (theoretical foundation for heuristics 6, 8)
  • Progressive Disclosure Pattern (implements heuristics 6, 8)