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)