| Introduction
|
|
| How to Use This Book
| xvii
|
| How to Apply These Guidelines
| xviii
|
| Conventions Used in This Book
| xix
|
| PART 1 FUNDAMENTALS OF DESIGNING USER INTERACTION |
|
| CHAPTER 1 Getting Started |
3
|
| What.
s New | 3 |
| The
Importance of a Well-Designed Interface | 4 |
| The
Need for Improved Simplicity | 5 |
| Key Areas for Improvement | 5 |
| Confusing or Awkward Setup and Uninstall Design | 5 |
| Improper Use of the File System | 8 |
| GUI Overload | 11 |
| Missed Opportunities | 17 |
| Checklist for a Good
Interface | 22 |
| CHAPTER 2 Design Principles and Methodology |
25
|
| User-Centered Design
Principles | 25 |
| User in Control | 25 |
| Directness | 26 |
| Consistency | 27 |
| Forgiveness | 28 |
| Feedback | 29 |
| Aesthetics | 29 |
| Simplicity | 30 |
| Design
Methodology | 31 |
| A Balanced Design Team | 31 |
| The Design Cycle | 31 |
| Usability Assessment in the Design Process | 34 |
| Understanding
Users | 37 |
| Design
Tradeoffs | 38 |
| CHAPTER 3 Basic Concepts |
41
|
| Data-Centered
Design | 41 |
| Objects as
Metaphor | 42 |
| Object Characteristics | 42 |
| Relationships | 43 |
| Composition | 43 |
| Persistence | 44 |
| Putting Theory into
Practice | 44 |
| CHAPTER 4 The Windows Environment |
47
|
| The
Desktop | 47 |
| The
Taskbar | 48 |
| The Start Button | 49 |
| The Quick Launch Bar | 49 |
| Window Buttons | 50 |
| The Status Notification Area | 50 |
| Icons | 51 |
| Windows | 52 |
| CHAPTER 5 Input Basics |
55
|
| Mouse
Input | 55 |
| Mouse Pointers | 55 |
| Mouse Actions | 57 |
| Keyboard
Input | 59 |
| Text Keys | 59 |
| Access Keys | 60 |
| Mode Keys | 61 |
| Shortcut Keys | 62 |
| CHAPTER 6 General Interaction Techniques |
65
|
| Navigation | 65 |
| Mouse Navigation | 66 |
| Keyboard Navigation | 66 |
| Selection | 67 |
| Selection Feedback | 68 |
| Scope of Selection | 69 |
| Hierarchical Selection | 69 |
| Mouse Selection | 70 |
| Auto-Selection | 78 |
| Keyboard Selection | 78 |
| Selection Shortcuts | 80 |
| Common
Conventions for Supporting Operations | 80 |
| Operations for a Multiple Selection | 81 |
| Default Operations and Shortcut Techniques | 81 |
| Viewing Operations | 82 |
| Editing
Operations | 90 |
| Editing Text | 91 |
| Transactions | 93 |
| Properties | 94 |
| Transfer
Operations | 95 |
| Command Method | 97 |
| Direct Manipulation Method | 100 |
| Transfer Feedback | 106 |
| Specialized Transfer Commands | 109 |
| Shortcut Keys for Transfer Operations | 110 |
| Creation
Operations | 110 |
| Copy Command | 110 |
| New Command | 111 |
| Insert Command | 111 |
| Using Controls | 111 |
| Using Templates | 111 |
| Operations on Linked Objects | 112 |
| Record Processing | 114 |
| PART 2 WINDOWS INTERFACE COMPONENTS |
|
| CHAPTER 7 Windows |
117
|
| Common
Types of Windows | 117 |
| Primary Window
Components | 117 |
| Window Frames | 118 |
| Title Bars | 118 |
| Title Bar Icons | 119 |
| Title Text | 120 |
| Title Bar Buttons | 122 |
| Basic
Window Operations | 123 |
| Activating and Deactivating Windows | 123 |
| Opening and Closing Windows | 124 |
| Moving Windows | 126 |
| Resizing Windows | 126 |
| Scrolling Windows | 129 |
| Splitting Windows | 135 |
| CHAPTER 8 Menus, Controls, and Toolbars |
139
|
| Menus | 139 |
| The Menu Bar and Drop-Down Menus | 139 |
| Common Drop-Down Menus | 142 |
| Shortcut Menus | 144 |
| Shortcut Menu Interaction | 146 |
| Common Shortcut Menus | 147 |
| Cascading Menus | 151 |
| Menu Titles | 152 |
| Menu Items | 152 |
| Menu Text | 156 |
| Controls | 158 |
| Buttons | 160 |
| List Boxes | 170 |
| Text Fields | 180 |
| Other General Controls | 187 |
| Toolbars and Status
Bars | 199 |
| Interaction with Controls in Toolbars and Status Bars | 200 |
| Support for User Options | 201 |
| Toolbar Control | 202 |
| Toolbar Frame Control | 202 |
| Toolbar Buttons | 204 |
| Status Bar Control | 205 |
| CHAPTER 9 Secondary Windows |
207
|
| Characteristics of
Secondary Windows | 207 |
| Appearance and Behavior | 207 |
| Window Placement | 213 |
| Default Buttons | 213 |
| Navigation in Secondary Windows | 214 |
| Hyperlinks in Secondary Windows | 216 |
| Validation of Input | 216 |
| Property Sheets and
Inspectors | 217 |
| Property Sheet Interface | 217 |
| Property Inspectors | 222 |
| Other Alternatives | 223 |
| Properties of a Multiple Selection | 224 |
| Properties of a Heterogeneous Selection | 224 |
| Properties of Grouped Items | 224 |
| Dialog
Boxes | 225 |
| Title Bar Text | 225 |
| Dialog Box Commands | 225 |
| Layout | 226 |
| Common Dialog Box Interfaces | 226 |
| Palette
Windows | 240 |
| Title Bar Text | 241 |
| Window Design | 241 |
| Message
Boxes | 242 |
| Title Bar Text | 242 |
| Message Box Types | 243 |
| Command Buttons in Message Boxes | 245 |
| Message Box Text | 246 |
| Pop-up Windows | 250 |
| PART 3 DESIGN SPECIFICATIONS AND GUIDELINES |
|
| CHAPTER 10 Window Management |
253
|
| Selecting a Window
Management Model | 253 |
| Presentation of Object or Task | 253 |
| Display Layout | 254 |
| Single-Document
Window Interface | 255 |
| Workbooks | 256 |
| Workbook Design | 257 |
| Design Trade-offs | 257 |
| Web-Application
Interface | 258 |
| Web-Style Design | 258 |
| Design Trade-offs | 261 |
| Projects | 262 |
| Project Design | 262 |
| Design Trade-offs | 263 |
| Multiple-Document
Interface | 264 |
| MDI Design | 264 |
| Design Trade-offs | 269 |
| CHAPTER 11 Integrating with the System |
271
|
| Using
the File System | 271 |
| Location of Files | 272 |
| File Naming Conventions | 274 |
| Shared User Data Files | 276 |
| Disk Cleaners | 276 |
| Using
the Registry | 277 |
| Registering New File Types | 277 |
| Registering Icons | 281 |
| Registering Commands | 281 |
| Supporting the New Command | 283 |
| Enabling Printing | 285 |
| Supporting InfoTips | 285 |
| Setting Other File Type Values | 286 |
| Taking Over a File Type | 286 |
| Registering NoOpenWith | 286 |
| Registering Application State Information | 287 |
| Registering Application Path Information | 289 |
| Adding Features to File Types | 290 |
| Installation | 291 |
| Copying Files | 292 |
| Providing Access to Your Application | 294 |
| Designing Your Installation Program | 295 |
| Installing Fonts | 297 |
| Installing Your Application on a Network | 297 |
| Uninstalling Your Application | 298 |
| Supporting AutoPlay | 299 |
| Using
System Settings and Notifications | 300 |
| Integrating with the
Shell | 300 |
| Taskbar Integration | 300 |
| Control Panel Integration | 303 |
| Recycle Bin Integration | 305 |
| Creating Active Desktop Items | 305 |
| Creating Folder Web Views | 306 |
| Creating Themes | 307 |
| Creating System Sounds | 309 |
| Registering Sound Events | 312 |
| Creating Application Desktop Toolbars | 313 |
| Supporting Full-Screen Display | 314 |
| Using the Folder Metaphor | 315 |
| Supporting Network
Computing | 315 |
| Supporting Hardware
Devices | 316 |
| Supporting
Multiple-Monitor Configuration Devices | 317 |
| Supporting Plug and
Play | 317 |
| CHAPTER 12 Working with OLE Embedded and Linked Objects |
319
|
| The
Interaction Model | 319 |
| Creating Embedded and
Linked Objects | 321 |
| Transferring Objects | 321 |
| Inserting New Objects | 328 |
| Displaying
Objects | 332 |
| Selecting
Objects | 334 |
| Accessing Commands for Selected Objects | 336 |
| Activating
Objects | 338 |
| Outside-in Activation | 338 |
| Inside-out Activation | 339 |
| Container Control of Activation | 339 |
| Visual
Editing of Embedded Objects | 340 |
| The Active Hatched Border | 344 |
| Menu Integration | 345 |
| Keyboard Interface Integration | 347 |
| Toolbars, Frame Adornments, and Palette Windows | 349 |
| Opening Embedded Objects | 352 |
| Editing a Linked
Object | 355 |
| Automatic and Manual Updating | 357 |
| Operations and Links | 357 |
| Types and Links | 358 |
| Accessing Properties
of Objects | 359 |
| The Properties Command | 359 |
| The Links Command | 362 |
| Converting
Types | 364 |
| Using
Handles | 366 |
| Displaying
Messages | 367 |
| Object Application Messages | 367 |
| Status-Line Messages | 368 |
| CHAPTER 13 User Assistance |
371
|
| User
Assistance Road Map | 371 |
| Contextual
Help | 373 |
| Context-Sensitive Help | 373 |
| ToolTips | 378 |
| Status Bar Messages | 378 |
| The Help Command Button | 380 |
| Procedural
Help | 381 |
| Reference
Help | 382 |
| Conceptual
Help | 383 |
| HTML
Help | 384 |
| The HTML Help Viewer | 385 |
| The Toolbar | 386 |
| The Navigation Pane | 387 |
| The Topics Pane | 395 |
| Help Topic Features | 395 |
| Wizards | 399 |
| Guidelines for Designing Wizards | 399 |
| Guidelines for Writing Text for Wizard Pages | 408 |
| CHAPTER 14 Visual Design |
409
|
| Visual
Communication | 409 |
| Color | 413 |
| Fonts | 415 |
| Dimensionality | 416 |
| Design
of Visual Elements | 417 |
| Basic Border Styles | 417 |
| Window Border Style | 419 |
| Button Border Style | 419 |
| Field Border Style | 421 |
| Status Field Border Style | 422 |
| Grouping Border Style | 422 |
| Visual States for Controls | 423 |
| User
Interface Text | 430 |
| Font and Size | 430 |
| The Basics of Writing Interface Text | 432 |
| Title Bars | 446 |
| Layout | 448 |
| Size | 448 |
| Spacing and Positioning | 451 |
| Grouping | 454 |
| Alignment | 455 |
| Required and Optional Input | 456 |
| Preview and Sample Boxes | 457 |
| Design
of Graphic Images | 458 |
| Icon Design | 459 |
| Toolbar Button Image Design | 463 |
| Common Toolbar Buttons | 465 |
| Pointer Design | 468 |
| Selection
Appearance | 469 |
| Highlighting | 470 |
| Handles | 471 |
| Transfer
Appearance | 472 |
| Open
Appearance | 473 |
| Link
Appearance | 474 |
| Animation | 475 |
| CHAPTER 15 Special Design Considerations |
477
|
| Sound | 477 |
| Accessibility | 479 |
| Types of Disabilities | 480 |
| Types of Accessibility Aids | 482 |
| Compatibility with Screen-Review Utilities | 484 |
| The
User. s Point of Focus | 487 |
| Timing and Navigational Interfaces | 488 |
| Color | 489 |
| Scalability | 489 |
| Keyboard and Mouse Interface | 490 |
| Accessible HTML Pages | 491 |
| Documentation, Packaging, and Support | 492 |
| Usability Testing | 493 |
| Localization | 494 |
| Text | 495 |
| Layout | 498 |
| Graphics | 505 |
| Keyboards | 506 |
| Character Sets | 507 |
| Formats | 507 |
| Access Key Definition | 508 |
| References to Unsupported Features | 508 |
| Other Issues | 509 |
| PART 4 APPENDIXES AND REFERENCES |
|
| APPENDIX A Mouse Interface Summary |
513
|
| Interaction
Guidelines for Common Unmodified Mouse Actions | 513 |
| Interaction
Guidelines for Using the shift Key to Modify Mouse Actions | 515 |
| Interaction
Guidelines for Using the ctrl Key to Modify Mouse Actions | 518 |
| APPENDIX B Keyboard Interface Summary |
521
|
| Common
Navigation Keys | 521 |
| Common
Shortcut Keys | 522 |
| Windows
Keys | 523 |
| Accessibility
Keys | 524 |
| Access
Key Assignments | 525 |
| Glossary | 527 |
| Bibliography | 539 |
| Index | 543 |