`
`EICROSOET
`/INDowS
`
`1
`
`CYPRESS 1031
`
`
`
`2
`
`
`
`3
`
`
`
`PUBLISHED
`
`BY
`
`Microsoft
`
`Press
`
`of Microsoft
`
`Division
`One Microsoft
`Way
`Redmond Washington 98052
`
`Corporation
`
`6399
`
`Copyright
`
`1995 by Microsoft
`
`Corporation
`
`All rights reserved No part of the contents
`of this book may be reprodoced or transmitted
`in any form or by any means withoot
`of the publisher
`the written permission
`
`Publication
`
`Data
`
`Library of Congress Cataloging-in
`The Windows
`interface guidelines
`cm
`index
`Includes
`ISBN 1-55615 679-0
`Microsoft Windows Computer file
`systems
`Computer
`software--Development
`Corporation
`QA76 76.W56W553
`dc2O
`005.265-
`
`for software
`
`design
`
`User interfaces Computer
`Microsoft
`
`95 330
`CIP
`
`t995
`
`Printed
`
`and bound
`
`in the United States of America
`
`QEQE
`
`Distributed
`
`to the book
`
`trade in Canada by Macmillan
`
`of Canada
`
`division of Canada Publishing
`
`Corporation
`
`CIP catalogue
`
`record
`
`for this book
`
`is available
`
`from the British Library
`
`Microsoft
`
`Press books
`
`are available
`
`through
`
`booksellers
`
`and distributors worldwide
`
`Por further
`
`information
`
`about
`
`international
`
`editions
`
`contact Microsoft
`
`Press International
`
`contact yoor local Microsoft
`fax 206 936 7329
`
`directly at
`
`Corporation
`
`office Or
`
`Information
`
`in this document
`
`is subject
`
`notice
`
`and does
`
`not
`
`commitment
`
`on the
`
`to change without
`represent
`names and data used
`in examples herein
`Corporation Companies
`part of Microsoft
`are fictitious
`unless
`noted No part of
`this document may be reproduced or transmitted
`in any form or by any means
`or mechanical
`for any purpose without
`the express written permission
`of Microsoft
`Corporation
`
`otherwise
`
`electronic
`
`Microsoft
`
`property
`
`any license
`
`copyrights
`
`may have patents or pending patent applications
`in this document
`subject matter
`rights covering
`trademarks
`to these patents
`
`trademarks
`or other
`copyrights
`The furnishing of this document
`intellectual
`or other
`
`intellectual
`
`does
`
`not give you
`
`property
`
`rights
`
`Adobe Postscript
`of Adobe Systems Inc Apple and TrueType
`and 11FF are trademarks
`are registered
`Inc Borland and Quattro
`of Borland International
`trademarks
`of Apple Compoter
`trademarks
`are registered
`trademark of Eltra Corporation HP and LaserJet
`Inc Frutiger
`trademarks
`are registered
`registered
`by Colorado Memory Systems Inc
`Hewlett Packard Company
`was developed for Microsoft
`Backup
`division of Hewlett Packard Company Hyperlerminal
`trademark of Hilgraeve Inc
`and Lotus
`of Lotus Development
`Corporation Microsoft Microsoft
`Press Microsoft
`trademarks
`Press logo
`registered
`MS MS DOS PowerPoint
`logo and XENIX are registered
`Visual Basic Windows Windows
`trademarks
`and Windows NT is
`Corporation Anal Bodoni Swing and Times New Roman are
`trademark of Microsoft
`PLC Paintbrush
`trademark of Wordstar Atlanta
`Corporation
`
`is
`
`trademarks
`registered
`Technology Center
`
`of The Monotype
`
`of
`
`are
`
`is
`
`is
`
`4
`
`
`
`Contents
`
`Introduction
`
`Whats New
`How to Use This Guide
`How to Apply the Guidelines
`Conventions Used in This Guide
`
`PART
`
`FUNDAMENTALS
`
`OF DESIGNING
`
`USER INTERACTION
`
`at
`
`flesigft erirtqiplos
`
`and Metiwliptoqy
`
`Design Principles
`User-Centered
`User in Control
`
`Directness
`
`Consistency
`
`Forgiveness
`Feedback
`
`Aesthetics
`
`Simplicity
`
`Design Methodology
`Balanced Design Team
`The Design Cycle
`Usability Assessment
`
`in the Design Process
`
`Understanding
`
`Users
`
`Design Tradeoffs
`
`xv
`
`xvi
`
`xvii
`
`xviii
`
`12
`
`15
`
`16
`
`5
`
`
`
`Contents
`
`Chapter
`
`Baslu Concepts
`
`IF
`
`Data-Centered
`
`Design
`
`Objects
`
`as Metaphor
`Object Characteristics
`
`Relationships
`Composition
`Persistence
`
`Putting Theory into Practice
`
`The Desktop
`
`The Taskbar
`The Start Button
`Window Buttons
`The Status Area
`
`Icons
`
`Windows
`
`Mouse Input
`Mouse Pointers
`Mouse Actions
`
`Keyboard Input
`Text Keys
`Access Keys
`Mode Keys
`Shortcut Keys
`
`Pen Input
`Pen Pointers
`
`Pen Gestures
`
`Pen Recognition
`Ink Input
`
`Targeting
`
`iv
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`6
`
`17
`
`18
`
`18
`
`19
`
`19
`20
`
`20
`
`23
`
`24
`
`25
`26
`
`26
`
`26
`
`28
`
`29
`29
`
`31
`
`32
`
`33
`
`33
`
`34
`
`35
`
`37
`39
`
`40
`
`41
`
`41
`42
`
`
`
`Navigation
`Mouse and Pen Navigation
`Keyboard Navigation
`
`Selection
`Selection Feedback
`
`Scope of Selection
`Hierarchical Selection
`Mouse Selection
`Pen Selection
`
`Keyboard Selection
`Selection Shortcuts
`
`Common Conventions
`
`for Supporting
`
`Operations
`
`Operations
`
`Default Operations
`View Operations
`
`for Multiple Selection
`and Shortcut Techniques
`
`Editing Operations
`
`Editing Text
`Handles
`
`Transactions
`
`Properties
`
`Pen-Specific Editing Techniques
`
`Transfer Operations
`Command Method
`Direct Manipulation Method
`Transfer Feedback
`Specialized Transfer Commands
`Shortcut Keys for Transfer Operations
`
`Creation Operations
`Copy Command
`New Command
`Insert Command
`
`Using Controls
`
`Using Templates
`
`Operations
`
`on Linked Objects
`
`Contents
`
`43
`44
`
`44
`
`45
`46
`
`47
`47
`
`48
`
`55
`
`56
`
`57
`
`58
`
`58
`
`59
`59
`
`62
`62
`
`63
`
`64
`
`65
`66
`
`72
`74
`77
`
`83
`
`86
`
`87
`
`87
`
`87
`
`88
`
`88
`
`88
`
`88
`
`89
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`7
`
`
`
`Contents
`
`PART II WINDOWS INTERFACE
`
`COMPONENTS
`
`Common Types of Windows
`Primary Window Components
`Window Frames
`Title Bars
`
`Title Bar Icons
`
`Title Text
`
`Title Bar Buttons
`
`Basic Window Operations
`and Deactivating Windows
`Activating
`Opening and Closing Windows
`Moving Windows
`Resizing Windows
`Scrolling Windows
`Splitting Windows
`
`Menus Controls
`
`and Toolbars
`
`Menus
`The Menu Bar and Drop-down Menus
`Cnmmon Drop-dnwn Menus
`Pop up Menus
`Pop up Menu Interaction
`Common Pop-up Menus
`Cascading Menus
`Menu Titles
`Menu Items
`
`Controls
`
`Buttons
`
`List Boxes
`
`Text Fields
`
`Other General Controls
`
`Pen-Specific Controls
`
`Toolbars
`
`and Status Bars
`
`Support
`
`Interaction with Controls in Toolbars
`for User Options
`and Status Bar Controls
`Toolbar
`Common Toolbar Buttons
`
`and Status Bars
`
`vi
`
`The Windows
`
`Interface
`
`Guidelines
`
`fnr Software
`
`Design
`
`8
`
`95
`
`95
`96
`
`96
`97
`
`98
`
`101
`
`103
`
`103
`
`104
`
`106
`
`106
`
`109
`
`116
`
`121
`
`121
`
`124
`
`126
`
`128
`
`129
`
`133
`
`134
`
`135
`
`140
`
`141
`
`149
`
`157
`
`163
`
`169
`
`172
`
`173
`
`174
`
`175
`
`176
`
`
`
`Chapter
`
`Secondary Windows
`
`of Secondary Windows
`Characteristics
`Appearance and Behavior
`Window Placement
`Modeless vs Modal
`
`Navigation
`
`Default Buttons
`in Secondary Windows
`of Input
`
`Validation
`
`Property Sheets and Inspectors
`Interface
`Property Sheet
`Property Sheet Commands
`Property Sheet
`
`Closing
`
`Property Inspectors
`Properties of Multiple Selection
`Properties of Heterogeneous Selection
`Properties of Grouped Items
`
`Dialog Boxes
`Dialog Box Commands
`Layout
`Common Dialog Box Interfaces
`
`Palette Windows
`
`Message Boxes
`Title Bar Text
`Message Box Types
`Command Buttons
`Message Box Text
`Popup Windows
`
`in Message Boxes
`
`Contents
`
`179
`
`179
`
`183
`
`183
`184
`
`185
`
`187
`
`187
`
`188
`
`190
`
`191
`
`191
`
`192
`
`193
`
`193
`
`193
`
`194
`194
`
`195
`
`207
`
`209
`
`209
`209
`212
`
`213
`
`215
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`vii
`
`9
`
`
`
`Contents
`
`PART Ill DESIGN SPECIFICATIONS
`
`AND GUIDELINES
`
`Single Document Window Interface
`
`Multiple Document
`Interface
`Opening and Closing MDI Windows
`and Sizing \4D1 Windows
`Moving
`Between MDI Child Windows
`Switching
`MDI Alternatives
`Workspaces
`Workbooks
`
`Projects
`Selecting Window Model
`or Task
`Presentation of Object
`
`Display Layout
`Data-Centered
`Design
`Combination of Alternatives
`
`The Registry
`
`Registering Application
`
`State Information
`
`Registering Application
`
`Path Information
`
`Registering File Extensions
`
`Creation
`
`Supporting
`Registering Icons
`Registering Commands
`
`Enabling
`Printing
`Registering OLE
`Registering Shell Extensions
`the Quick View Command
`Sound Events
`
`Supporting
`
`Registering
`
`Installation
`
`Copying Files
`Providing Access to Your Application
`Designing Your Installation
`Program
`
`viii
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`10
`
`219
`
`220
`222
`
`223
`225
`
`225
`227
`
`229
`
`231
`
`233
`233
`
`234
`235
`
`235
`
`237
`238
`
`241
`
`242
`249
`250
`
`251
`253
`
`253
`
`254
`256
`
`257
`
`257
`257
`
`260
`
`260
`
`
`
`Installing
`
`Installing
`
`Uninstalling
`
`Supporting
`
`Fonts
`on Network
`Your Application
`Your Application
`AutoPlay
`
`System Naming Conventions
`
`Taskbar
`Integration
`Taskbar Window Buttons
`
`Status Notification
`
`Message Notification
`
`Application Desktop Toolbars
`
`Full-Screen Display
`
`Recycle Bin Integration
`
`Control Panel
`
`Integration
`Adding Control Panel Objects
`Adding to the Passwords Object
`
`Plug
`
`and Play Support
`
`System Settings and Notification
`
`Modeless Interaction
`
`The Interaction Model
`Creating OLE Embedded and OLE Linked Objects
`Transferring Objects
`Inserting New Objects
`
`Displaying Objects
`
`Selecting Objects
`Accessing Commands for Selected Objects
`
`Activating Objects
`
`Outside-in Activation
`
`Inside-out Activation
`
`Container Control of Activation
`
`OLE Visual Editing of OLE Embedded Objects
`The Active Hatched Border
`
`Contents
`
`262
`262
`263
`
`264
`
`266
`
`268
`268
`
`269
`270
`
`271
`
`272
`
`273
`
`273
`
`273
`273
`
`275
`
`275
`
`276
`
`277
`
`279
`279
`
`285
`
`290
`
`293
`295
`
`297
`
`297
`
`297
`298
`
`300
`304
`
`The Windows Interface
`
`Goidelines
`
`for Software Design
`
`ix
`
`11
`
`
`
`Contents
`
`Menu Integration
`Keyboard Interface Integration
`and Palette Windows
`Toolbars Frame Adornments
`Opening OLE Embedded Objects
`Editing an OLE Linked Object
`Automatic and Manual Updating
`and Links
`
`Operations
`Types and Links
`Link Management
`Accessing Properties of OLE Objects
`The Properties Command
`The Links Command
`
`Converting
`
`Types
`
`Using Handles
`Undo Operations
`
`for Active and Open Objects
`
`Displaying Messages
`
`Messages
`ObjectApplication
`OLE Linked Object Messages
`Status Line Messages
`
`Contextual User Assistance
`
`Context
`
`Sensitive Help
`Guidelines
`for Writing Context-Sensitive
`
`Help
`
`Tooltips
`Status Bar Messages
`for Writing Status Bar Messages
`Guidelines
`The Help Command Button
`
`Help
`Task-Oriented
`Task Topic Windows
`for Writing Task Help Topics
`Guidelines
`
`Shortcut Buttons
`
`305
`308
`
`310
`313
`
`316
`
`318
`319
`
`320
`320
`
`321
`
`321
`324
`
`326
`
`329
`
`330
`
`332
`
`332
`334
`
`336
`
`339
`
`339
`342
`
`343
`344
`345
`
`346
`
`347
`347
`
`348
`
`349
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`12
`
`
`
`Reference Help
`The Reference
`
`Guidelines
`
`Help Window
`for Writing Reference Help
`
`The Help Topics Browser
`The Help Topics
`Tabs
`
`Wizards
`
`Guidelines
`
`Guidelines
`
`for Designing Wizards
`for Wizard Pages
`for Writing Text
`
`Visual Communication
`Composition and Organization
`Color
`
`Fonts
`
`Dimensionality
`
`Design of Visual Elements
`Basic Border Styles
`Window Border Style
`Button Border Styles
`Field Border Style
`Status Field Border Style
`Grouping Border Style
`Visual States tor Controls
`
`Layout
`Font and Size
`
`Capitalization
`Grouping and Spacing
`Alignment
`Placement
`
`Design of Graphic
`Icon Design
`Pointer Design
`
`Images
`
`Selection Appearance
`
`Highlighting
`Handles
`
`TransferAppearance
`
`Open Appearance
`
`Animation
`
`Contents
`
`350
`
`351
`
`352
`
`354
`354
`
`358
`359
`
`363
`
`365
`366
`
`362
`
`370
`
`371
`
`372
`
`372
`373
`
`374
`375
`376
`
`376
`
`377
`
`384
`384
`387
`
`388
`389
`389
`
`390
`
`391
`
`394
`
`395
`
`396
`397
`
`398
`
`399
`
`400
`
`The Windows Interface Guidehnes for Software
`
`Design
`
`xi
`
`13
`
`
`
`401
`
`403
`
`404
`406
`
`408
`411
`
`411
`412
`
`413
`414
`
`414
`
`415
`416
`
`417
`418
`
`419
`419
`
`420
`420
`
`421
`421
`
`421
`422
`
`422
`
`423
`
`424
`
`424
`424
`
`425
`
`425
`
`Contents
`
`Sound
`
`Accessibility
`Types of Disabilities
`Types of Accessibility Aids
`with Screen Review Utilities
`
`Compatibility
`The Users Point of Focus
`Timing and Navigational
`
`Interfaces
`
`Color
`Keyboard and Mouse Interface
`and Support
`Documentation
`Packaging
`
`Usability Testing
`
`Internationalization
`
`Text
`
`Graphics
`
`Keyboards
`Character
`
`Sets
`
`Formats
`
`Layout
`References
`
`to Unsupported Features
`
`Network Computing
`Leverage System Support
`Client-Server Applications
`Shared Data Files
`
`Record Processing
`
`Telephony
`
`Microsoft Exchange
`Coexisting with Other
`Information
`Adding Menu Items and Toolbar
`Connections
`
`Supporting
`
`Installing
`
`Information
`
`Services
`
`Services
`
`Buttons
`
`xli
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`14
`
`
`
`Contents
`
`PART IV APPENDIXES
`
`Appendix
`
`Mouse
`
`Interface Summary
`
`for Common
`Interaction Guidelines
`Unmodified Mouse Actions
`for Using the SHIFT Key
`Interaction Guidelines
`to Modify Mouse Actions
`for Using the CTRL Key
`Interaction Guidelines
`to Modify Mouse Actions
`
`Appendix
`
`Keyboard Interface Summary
`
`Common Navigation
`Keys
`Common Shortcut Keys
`Windows Keys
`Accessibility Keys
`Access Key Assignments
`
`Appendix
`
`Guidelines Summary
`
`General Design
`Design Process
`Input and Interaction
`Windows
`Control Usage
`
`Integration
`User Assistance
`
`Visual Design
`Sound
`
`Accessibility
`
`International Users
`Network Users
`
`429
`
`431
`
`435
`
`437
`438
`
`439
`440
`
`441
`
`443
`
`444
`444
`
`445
`446
`
`447
`448
`448
`
`449
`449
`
`450
`450
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`xiii
`
`15
`
`
`
`Contents
`
`Microsoft Windows
`Microsoft Windows NT 3.51
`
`3.1
`
`International Word Lists
`
`Glossary
`
`Bibliography
`
`Index
`
`451
`
`453
`
`455
`
`511
`
`523
`
`527
`
`xiv
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`16
`
`
`
`1717
`
`
`
`18
`
`
`
`Introduction
`
`Welcome to The Windows
`Interface Guidelines for Software Design
`runs with the
`to designing software that
`an indispensable guide
`Microsoft Windows0 operating system The design of your
`interface more than anything else affects how
`softwares
`your product This guide promotes good interface
`design
`experiences
`within and across Windows-
`and visual and functional
`consistency
`
`user
`
`based applications
`
`Whats New
`the direction set by Microsoft OLE the enhancements in
`Continuing
`the Windows user interface provide
`from the
`design evolution
`basic and graphical
`is from an
`to the more object oriented
`that
`to more data centered
`one
`In re
`application-centered
`interface
`and designers may need to rethink the interface
`of
`sponse developers
`the basic components and the respective operations
`their software
`and properties that apply to them This is important because from
`users perspective
`applications have become
`focus
`less the primary
`and more the engines
`behind
`the objects in the interface
`now interact with data without having
`to think about applications
`on their
`allowing them to better
`concentrate
`
`Users can
`
`tasks
`
`When adapting
`you consider
`
`your existing Windows
`the following
`important
`
`based
`
`software make certain
`
`design
`
`aspects
`
`Title bar text and icons
`
`Property sheets
`
`Transfer model
`
`including
`
`drag and drop
`
`19
`
`
`
`Introduction
`
`Pop-up menus
`
`New controls
`
`Integration with the system
`
`Help interface
`OLE embedding and OLE linking
`
`Visual design of windows controls
`
`and icons
`
`Window management
`
`Presentation of minimized windows
`
`These elements
`
`are covered
`
`in depth throughout
`
`this guide
`
`How to Use This Guide
`
`for those who are designing and developing
`This guide is intended
`Windows
`software It may also be appropriate for
`based
`those inter
`better undertanding of the Windows environment and the
`interface principles it supports The content
`of the
`human-computer
`the following
`covers
`areas
`
`ested in
`
`guide
`
`Basic
`
`fundamental
`design principles and process
`design phi
`about human behavior design methodol
`losophy assumptions
`embodied in the interface
`ogy and concepts
`
`Interface elements
`
`descriptive information
`the various
`about
`as when and how to use them
`components in the interface as well
`
`Design details
`information
`about
`and style when using the elements
`
`tive design
`
`specific
`
`the details of effec
`
`of the interface
`
`Additional
`
`information
`
`tion
`
`bibliography
`
`guages
`
`to assist
`
`in product
`
`summary and quick
`comprehensive word list
`localization and
`
`reference informa
`in numerous lan
`
`glossary
`
`xviii
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`20
`
`
`
`Introduction
`
`of an applications
`
`reference is
`
`ou the design and elements
`This guide focuses
`user interface Although an occasional
`technical
`included
`does not generally cover detailed information
`this guide
`about
`technical
`or application programming
`implementation
`faces APIs because
`there are many different
`types of develupment
`software for Windows
`The docu
`tools that you can use to develop
`included with the Microsoft Win32 Software Develop
`mentation
`ment Kit SDK is one source of information
`specific APIs
`about
`
`inter
`
`How to Apply the Guidelines
`
`within and
`This guide promotes visual and functional
`consistency
`across the Windows operating system Although following
`guidelines is encouraged you are free to adopt
`the guidelines that
`best suit your software However by following
`these guidelines
`you
`from one task to
`their skills and experience
`enable users to transfer
`the next and to learn new tasks easily In addition
`evolution toward
`breaks down the lines between traditional
`data-centered
`appli
`design
`in the interface more obvi
`cation domains making inconsistencies
`ous and distracting
`
`to users
`
`these
`
`to the design guidelines does not guarantee
`Conversely adhering
`usability The guidelines are valuable tools but they must be com
`software design pro
`as part of an effecti\
`bined with other factors
`as application of design principles task analysis
`and usability
`
`cess such
`
`prototyping
`
`evaluation
`
`that you do so in the
`You may extend
`these guidelines
`provided
`spirit of the principles on which they are based and maintain
`rca
`with the visual and behavioral
`sonable level of consistency
`aspects of
`the Windows interface
`new elements
`In general avoid
`or
`adding
`them More
`behaviors
`unless the interface does not otherwise support
`for common ele
`avoid
`an existing behavior
`changing
`importantly
`ments
`user builds up expectations
`about
`the workings of an inter
`they also add
`Inconsistencies
`not only confuse
`the user
`
`face
`
`unnecessary
`
`complexity
`
`The Windows Interface
`
`Guidelines
`
`tor Software Design
`
`xix
`
`21
`
`
`
`Introduction
`
`those issued for Windows
`These guidelines supersede
`to the development
`all previous releases arid are specific
`of applica
`for Microsoft Windows Microsoft Windows NTTM
`tions designed
`Workstation and Mic cosoft Windows NT Server
`There is no direct
`relationship between these guidelines and those provided
`for other
`
`version 3.1 and
`
`operating systems
`
`For more information
`
`about special considerations
`concerning
`for both Windows 95 and Windows NT
`developing
`applications
`operating system see Appendix
`Supporting Specific Versions
`of Windows
`
`Conventions Used in This Guide
`
`The following
`
`conventions
`
`are used
`
`throughout
`
`this guide
`
`Convention
`
`Indicates
`
`reference
`
`in this guide
`tn related tnpics
`or other books
`that provide more
`information about
`
`the topic
`
`rI
`LJ
`
`SMALL
`
`CAPITAL
`
`LETTERS
`
`KEYKEY
`
`Italic text
`
`Bold text
`
`Additional
`
`or special
`
`information about
`
`the topic
`
`Names of keys on the keybnard
`example SHIFT CTRL or ALT
`
`fnr
`
`for which the user
`Key combinations
`must press and hold down one key and
`for example
`another
`then press
`CTRLP or ALTF4
`
`New terms and variable
`such as parameters
`
`Win32 API keywords
`entries
`
`expressions
`
`and registry
`
`key
`
`Registry text
`
`Examples of registry entries
`
`Optional
`
`information
`
`xx
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`22
`
`
`
`
`
`23
`
`
`
`24
`
`
`
`CHAPTER
`
`Design Principles and
`Methodology
`
`user interface is built on principles and
`develop
`well-designed
`tasks This chapter sum
`that centers on users and their
`ment process
`marizes the basic principles of the interface design
`for Microsoft
`Windows
`and methodologies
`includes techniques
`It also
`in an effective human computer
`interface design process
`
`employed
`
`User-Centered Design Principles
`
`Thc information
`in this section describcs the dcsign prineiplcs on
`which Windows
`are based You will
`and the guidelines in this book
`find these principles valuable when designing software for Windows
`
`User in Control
`
`An important principle of user interface design
`the user should
`is that
`in control of the software rather than feeling controlled
`always
`number of implications
`by the software This principle has
`
`feel
`
`The first implication
`is the operational
`assumption
`the user plays an
`tiates actions not
`the computer or software
`role You can use techniques
`active rather than reactive
`to automate
`tasks but implement them in way that allows the user to chose
`the automation
`control
`
`that
`
`the user mi
`
`or
`
`25
`
`
`
`Chapter
`
`Design Principles
`
`and Methodology
`
`The second implication
`of their widely varying
`is that users because
`must be able to personalize aspects of the
`skills and preferences
`The system software provides user access to many of these
`interface
`aspects Your software should
`for different
`sys
`user settings
`reflect
`tem properties
`such
`as color
`
`fonts or other options
`
`is
`
`The final
`be as interactive
`is that your software should
`implication
`mode
`as possible Avoid modes whenever possible
`and responsive
`interaction
`or otherwise limits the
`that excludes
`general
`state
`user to specific interactions When
`mode is the only or the best
`for example for selecting
`particular tool
`design
`in
`make certain the mode is obvious visible the
`drawing program
`result of an explicit user choice and easy to cancel
`
`alternative
`
`For information
`
`about applying the design principle of user in con
`Input Basics and Chapter
`General
`Interac
`trol see Chapter
`These chapters
`tion Techniques
`cover
`the basic forms of interaction
`your software should
`
`support
`
`Directness
`
`Design your software so that users can directly manipulate
`representations of information Whether dragging
`an object
`document
`location in
`users should
`cate it or navigating to
`see
`how the aetiosss
`they take affect
`the objects oil the sereess Visibility
`and choices
`the users mental workload
`of information
`also reduce
`command easier than they can recall
`
`Users
`
`can recognize
`
`its syntax
`
`software
`to relo
`
`and intuitive interface to user
`Familiar metaphors provide
`tasks By allowing
`their knowledge and experience
`users to transfer
`metaphors make it easier to predict and leam the behaviors
`of
`software-based
`
`direct
`
`representations
`
`When using metaphors
`you need not limit
`computer-based
`to its real orld counterpart For example
`mentation
`folder on the Windows
`counterpart
`paper-based
`variety of objects such
`used
`as printers calculators
`to organize
`other folders Similarly Windows
`re
`be more easily
`folder can
`sorted The purpose of using metaphor
`in the interface is to provide
`is not an end in itself
`cognitive bridge the metaphor
`
`imple
`
`unlike its
`can be
`
`desktop
`
`and
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`26
`
`
`
`Design Principles and Methodology
`
`Chapter
`
`Metaphors
`support user recognition rather than recollection
`Users
`familiar object more easily
`remember
`meaning associated with
`particular command
`the name of
`than they remember
`
`For information
`
`about applying the principle of directness and meta
`General
`and Chapter
`Interaction Techniques
`phor see Chapter
`13 Visual Design These chapters
`cover
`the use of
`respectively
`drag and drop and the use of
`directness in the interface inclnding
`metaphors when designing icons or other graphical elements
`
`Consistency
`
`allows users to transfer existing knowledge to new
`Consistency
`and focus more on tasks be
`tasks learn new things more quickly
`they need not spend time trying to remember
`the differences in
`cause
`interaction By providing
`sense of stability
`interface familiar and predictable
`
`makes
`
`the
`
`consistency
`
`all aspects of the interface
`through
`is important
`Consistency
`ing names of commands
`and
`visual presentation of information
`operational behavior To design consistency
`into software you must
`consider several aspects
`
`includ
`
`consistent
`
`Consistency
`
`product Present common fnnctions nsing
`within
`set of commands and interfaces For example avoid
`Copy command that
`implementing
`carries out an
`immediately
`dialog box that
`operation in one situation
`but
`in another presents
`corollary to this ex
`destination As
`user to type in
`requires
`ample use the same command to carry out functions that seem
`similar to the user
`
`Consistency
`
`within the operating environment By maintaining
`between the interaction
`and interface
`high level of consistency
`by Windows
`your software benefits from
`provided
`skills they have already learned
`users ability to apply interaction
`
`conventions
`
`Consistency
`
`If
`
`particular
`
`behavior
`
`is more
`
`with metaphors
`of
`than its metaphor
`characteristic
`different
`user may have difficulty
`learning to associate that behavior
`communicates
`with an object For example an incinerator
`ferent model
`than
`wastebasket
`for the recoverability of objects
`
`object
`
`implies the
`
`dif
`
`placed
`
`it
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`27
`
`
`
`Chapter
`
`Design Principles and Methodology
`
`is the primary goal
`Although applying the principle of consistency
`common
`focus on the elements
`of this guide the follcwing
`chapters
`Chapter Windows Chapter
`to all Windows-based
`software
`Secondary Win
`Menus Controls
`and Toolbars
`and Chapter
`dows For informatinn
`about closely integrating
`your software with
`the Windows environment see Chapter
`10 Integrating
`with the
`11 Working with OLE Embedded and OLE
`System and Chapter
`Linked Objects
`
`Forgiveness
`
`Users like to explore an interface and often learn by trial and erron
`An effective interface allows for
`interactive discovery
`It provides
`and warns users about potential
`only appropriate sets of choices
`situations where they may damage
`the system or data or better
`makes actions reversible or recoverable
`
`interface
`
`users can make mistakes
`Even within the best designed
`These mistakes
`to the
`can
`be both physical accidentally
`pointing
`wrong command or data and mental making
`wrong decision
`about which command or data to select An effective design
`avoids
`in errors It also accommodates
`that are likely to result
`situations
`potential user errors and makes
`
`it easy for the user to recover
`
`For information
`about applying the principle of forgiveness
`12 User Ass utance which provides information
`about
`Chapter
`the use of contex
`supporting discoverability in the interface through
`reference forms of user assistance For infor
`and
`tual
`task-oriented
`14
`mation about designing for the widest
`range of users see Chapter
`Special Design Considerations
`
`see
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`28
`
`
`
`Feedback
`
`Design Principles and Methndnlngy
`
`Chapter
`
`users actions Visual and sometimes
`Always provide feedback
`be presented with every user interaction to con
`audio cues
`should
`to the users input and to com
`the software is responding
`firm that
`that distinguish the nature of the action
`details
`
`municate
`
`for
`
`is pro
`
`regarding
`
`Effective feedback
`the users interaction
`
`unresponsive
`
`to input
`
`tolerate
`
`is timely and is presented
`as close to the point of
`as possible Even when the computer
`particular task provide the user with information
`cessing
`and how to cancel
`the state of the process
`option Nothing is more disconcerting
`than
`typical user will
`
`is an
`that process
`dead screen that
`few seconds
`only
`
`if that
`
`is
`
`of an unresponsive
`
`interface
`
`It
`
`that
`
`you use be appro
`the type of feedback
`is equally important
`can com
`bar message
`to the task Pointer
`or
`changes
`status
`priate
`municate simple information
`feedback may require
`more complex
`the display of message box
`
`For information
`
`about applying the principle of visual and audio
`14 Special
`13 Visual Design and Chapter
`feedback
`see Chapter
`Design Considerations
`
`Aesthetics
`
`The visual design
`Visual attributes
`
`is an important part of
`softwares
`interface
`and communicate
`provide valuable impressions
`of particular objects At
`cues
`to the interaction behavior
`important
`to remember
`the same time it is important
`that every visual element
`that appears on the screen potentially competes for the users atten
`pleasant environment that clearly
`tion Provide
`contributes to the
`users understanding
`of the information
`graphics or
`presented
`visual designer may be invaluable with this aspect of the design
`
`For information
`
`and guidelines related to the aesthetics
`of your
`13 Visual Design This chapter
`face see Chapter
`covers every
`to font use and window layout
`thing from individual element
`design
`
`inter
`
`The Windnws Interface
`
`Guidelines
`
`fur Snttware Design
`
`29
`
`
`
`Chapter
`
`Design Principles and
`
`ethodology
`
`Simplicity
`
`An interface should
`be simple not simplistic
`easy to use It must also provide access to all
`functionality provided
`by an application Maximizing functionality and maintaining
`sim
`other in the interface An effective design
`plicity work against each
`balances
`these objectives
`
`easy to learn and
`
`phrases
`
`clutter
`
`One way to support simplicity is to reduce
`the presentation of infor
`mation to the minimum required to communicate
`For
`adequately
`for command names or messages
`avoid wordy descriptions
`example
`your design making it difficult
`Irrelevant or verbose
`Another way to
`information
`for users to easily extract essential
`interface is to use natural mappings and
`and presentation of elements
`
`simple but useful
`design
`semantics The arrangement
`their meaning and association
`
`affects
`
`complexity
`
`You can also help users manage
`by using progressive
`of
`disclosure Progressive disclosure involves
`careful organization
`it is shown only at the appropriate time By hid
`information
`so that
`ing information
`the amount of
`to the user you reduce
`presented
`menu displays its
`to process For example
`information
`clicking
`the number of menu
`choices the use of dialog boxes can reduce
`
`options
`
`not imply using unconventional
`Progressive disclosure does
`such
`as requiring modifier
`key as
`for revealing information
`niques
`the only way to access basic functions or forcing the user down
`This can make an inter
`of hierarchical
`interaction
`longer sequence
`face more complex and cumbersome
`
`tech
`
`For information
`about applying the principle of simplicity see Chap
`ter Menus Controls
`and Toolbars
`discusses pro
`This chapter
`and describes how and when to use the
`gressive disclosure in detail
`system supplied elements
`standard
`interface
`
`in your
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`30
`
`
`
`Design Methodology
`
`Design Principles and Methodology
`
`Chapter
`
`Effective interface design
`
`is more than just
`set of rules
`following
`and design methodology
`It also
`user centered
`It requires
`attitude
`work through
`involves early planning of the interface and continued
`the software development
`
`process
`
`consideration
`
`Balanced Design Team
`An important
`is the compo
`in the design of
`product
`and builds it Always try to balance
`sition of the team that designs
`disciplines and skills
`visual design writing
`development
`including
`human factors
`and usability
`assessment Rarely are these character
`istics found in
`team of individuals
`single individual
`so create
`who specialize in these areas and who can contribute uniquely
`final design
`
`to the
`
`Ensure that
`
`team can effectively work and communicate
`the design
`them with
`them in close proximity or providing
`together Locating
`better commu
`common area to work out design
`details often fosters
`nication and interaction
`
`The Design Cycle
`An effective
`
`number of
`involves
`user-centered design
`testing and iterating
`important phases designing
`prototyping
`The following
`sections describe these phases
`
`process
`
`Design
`
`can be the most critical
`The initial work on
`softwares
`be
`design
`cause during this phase you decide the general shape of your prod
`If the foundation work is flawed it is difficult
`uct
`to correct
`
`afterwards
`
`involves not only defining the objectives and
`This part of the process
`who your users are and
`features for your product but understanding
`and goals This includes understanding
`tasks intentions
`their
`as their background
`age gender expertise
`experience
`limitations and special needs their work environment
`
`such
`
`physical
`
`factors
`
`level
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`31
`
`
`
`Chapter
`
`Design Principles and Methodology
`
`and cultural
`
`equipment
`and their current
`
`social
`
`and physical
`influences
`surroundings
`the depen
`task organization
`the steps
`required
`and the output objective An order-
`dencies redundant
`activities
`entry system may have very different
`users and requirements
`than an
`kiosk
`information
`
`At this point
`framework
`begin defining your conceptual
`your product with the knowledge and experience
`of your
`Ideally you want
`ence
`design model
`to create
`that
`view of the tasks to be performed Consider
`the basic
`and different
`can be employed
`types of metaphors that
`organization
`Observing users at their current
`tasks can provide ideas on effective
`metaphors to use
`
`to represent
`target audi
`the users
`
`fits
`
`conceptual
`
`Document
`
`your design Committing your planned
`to written
`design
`valuable reference point and form of
`format not only provides
`but often helps make the design more concrete
`communication
`reveals issues and gaps
`
`and
`
`Prototype
`
`design model prototype some of the basic
`After you have defined
`aspects of the design This can be done with pencil and paper
`models
`where you create illustrations
`interface to which
`of your
`can be attached
`comic book-like
`other elements
`storyboards
`of sketches
`
`processes
`software using
`
`animation
`
`prototyping
`
`sequences
`movie-like
`or operational
`simulations
`tool or normal development
`tools
`
`that
`
`illustrate specific
`
`in many ways First it provides an
`valuable asset
`prototype is
`the design Second
`effective tool
`for communicating
`it can help you
`define task flow and bet