Table of Contents

The Table of Contents is also available as a PDF.

Acknowledgments
Introduction
Chapter 1 First Principles
Introduction
Basic Principle 1: Focus on the users and their tasks, not on the technology
Basic Principle 2: Consider function first, presentation later
Basic Principle 3: Conform to the users’ view of the task
Basic Principle 4: Design for the common case
Basic Principle 5: Don’t distract users from their goals
Basic Principle 6: Facilitate learning
Basic Principle 7: Deliver information, not just data
Basic Principle 8: Design for responsiveness
Basic Principle 9: Try it out on users, then fix it!
Chapter 2 GUI Control Bloopers
Introduction
Using the wrong control
Blooper 1: Confusing checkboxes and radio buttons
Blooper 2: Using a checkbox for a non-ON/OFF setting
Blooper 3: Using command buttons as toggles
Blooper 4: Using tabs as radio buttons
Blooper 5: Too many tabs
Blooper 6: Using input controls for display-only data
Blooper 7: Overusing text fields for constrained input
Using controls wrongly
Blooper 8: Dynamic menus
Blooper 9: Intolerant data fields
Blooper 10: Input fields and controls with no default
Blooper 11: Poor defaults
Blooper 12: Negative checkboxes
Chapter 3 Navigation Bloopers
Introduction
Not showing users where they are
Blooper 13: Window or page not identified
Blooper 14: Same title on different windows
Blooper 15: Window title doesn’t match command or link
Leading users astray and not showing the way
Blooper 16: Distracting off-path buttons and links
Blooper 17: Self-links
Blooper 18: Too many levels of dialog boxes
Poor search navigation
Blooper 19: Competing search boxes
Blooper 20: Poor search results browsing
Blooper 21: Noisy search results
Chapter 4 Textual Bloopers
Download the Chapter 4 PDF
Introduction
Uncommunicative text
Blooper 22: Inconsistent terminology
Blooper 23: Unclear terminology
Blooper 24: Bad writing
Blooper 25: Too much text
Developer-centric text
Blooper 26: Speaking Geek
Blooper 27: Calling users "user" to their face
Blooper 28: Vague error messages
Misleading text
Blooper 29: Erroneous messages
Blooper 30: Text makes sense in isolation but is misleading in the GUI
Blooper 31: Misuse (or nonuse) of "..." on command labels
Chapter 5 Graphic Design and Layout Bloopers
Introduction
Bad layout and window placement
Blooper 32: Easily missed information
Blooper 33: Mixing dialog box control buttons with content control buttons
Blooper 34: Misusing group boxes
Blooper 35: Radio buttons too far apart
Blooper 36: Labels too far from data fields
Blooper 37: Inconsistent label alignment
Blooper 38: Bad initial window location
Troublesome typography
Blooper 39: Tiny fonts
Chapter 6 Interaction Bloopers
Introduction
Deviating from task focus
Blooper 40: Exposing the implementation to users
Blooper 41: Needless restrictions
Blooper 42: Confusable concepts
Requiring unnecessary steps
Blooper 43: Asking users for unneeded data
Blooper 44: Asking users for random seeds
Blooper 45: Pointless choice
Burdening users’ memory
Blooper 46: Hard to remember ID
Blooper 47: Long instructions that go away too soon
Blooper 48: Unnecessary or poorly marked modes
Taking control away from users
Blooper 49: Automatic rearrangement of display
Blooper 50: Dialog boxes that trap users
Blooper 51: "Cancel" doesn’t cancel
Chapter 7 Responsiveness Bloopers
Introduction
Common responsiveness bloopers
Blooper 52: Cursor doesn’t keep up
Blooper 53: On-screen buttons acknowledge clicks too late
Blooper 54: Menus, sliders, and scrollbars lag behind
Blooper 55: Moving and sizing operations don’t keep up
Blooper 56: Application doesn’t indicate that it is busy
Blooper 57: Application is unresponsive during internal housekeeping
Blooper 58: Long operations don’t display progress
Blooper 59: Long operations provide no way to cancel
Blooper 60: Application wastes idle time
Blooper 61: Application gives no feedback when it hangs
Blooper 62: Web site has huge images and animations
Blooper 63: Web site always reloads whole pages in response to small edits
Reasons for poor responsiveness
Reason 1: The facts about responsiveness are not widely known
Reason 2: UI designers rarely consider responsiveness during design
Reason 3: Programmers equate responsiveness with performance
Reason 4: Programmers treat user input like machine input
Reason 5: Developers use simple implementations
Reason 6: GUI software tools, components, and platforms are inadequate
Reason 7: Managers hire GUI programmers who lack the required skill
Avoiding responsiveness bloopers: Design principles
Responsiveness Principle 1: Responsiveness is not the same as performance
Responsiveness Principle 2: Processing resources are always limited
Responsiveness Principle 3: The user interface is a real-time interface
Responsiveness Principle 4: All delays are not equal: software need not do everything immediately
Responsiveness Principle 5: Software need not do tasks in the order in which they were requested
Responsiveness Principle 6: Software need not do everything it was asked to do
Responsiveness Principle 7: Human users are not computer programs
Avoiding responsiveness bloopers: Techniques
Timely feedback
Parallel problem solution
Queue optimization
Dynamic time management
Summary of responsiveness techniques
Chapter 8 Management Bloopers
Introduction
Counterproductive attitude
Blooper 64: Treating UI as low priority
Blooper 65: Misunderstanding what user interface professionals do
Blooper 66: Discounting the value of testing and iterative design
Counterproductive process
Blooper 67: Anarchic development
Blooper 68: No task expertise on the team
Blooper 69: Using poor tools and building blocks
Blooper 70: Giving programmers the fastest computers
Appendices
Appendix A: Glossary
Appendix B: How this book was usability tested
Appendix C: Task analysis of creating slide presentations—questions
Appendix D: Illustrating simplicity—the object/action matrix
Appendix E: Usability tests for every time and purpose
Bibliography
Index
About the Author
Web Appendix: Color Bloopers
Download the Web Appendix pdf
Blooper 71: Text hard to read on background
Blooper 72: Relying on subtle color differences