`
`PART
`
`THE CAST
`
`Font
`
`Character Spaciri
`
`EonL
`
`_____________________
`Tms Rmn
`Univers 47 CondensedL
`
`______________________
`VALiFlounded DI
`Vineta
`
`llnderline
`
`Jiflofle
`
`Effects
`
`Size
`
`1111
`
`11
`12
`
`Font Style
`
`jUegula
`
`Ralic
`Bold
`Bold Italic
`
`Color
`
`Auto
`
`Preview--------------------
`
`Cancel
`
`DelaulL.
`
`Help
`
`Strikethrough
`
`Hidden
`
`Superscript
`
`fl Small caps
`
`______
`
`Univers
`
`57 Condensed
`
`______
`
`flAIl caPs
`lont The screen image ma riot exactly
`
`resident
`
`printer
`
`match
`
`the printed output
`
`fl Subscript
`
`This
`
`is
`
`scalable
`
`Figure 21-3
`
`The Font dialog box in Word is
`of
`dialog It reflects all of the characteristics
`properties
`they relate to typography When
`the user changes something on
`the current selection as
`this dialog the text qualities of the selection will change but no functions are executed
`The process is essentially
`passive configuring one rather
`than an active process-oriented
`one This dialog reflects the best and worst of contemporary dialog design The preview
`box is great but why cant
`the font combobox
`left corner use the actual
`in the upper
`fonts too The OK and CANCEL buttons are in the upper
`an emerging
`right corner
`right corner English-speaking
`people and many others read
`Microsoft standard Upper
`to lower right so the terminating command buttons should be in the
`from upper
`left
`lower right corner Another big mistake is that
`the terminating buttons are on the panes
`than on the common dialog background
`Does
`is ambiguous
`This arrangement
`rather
`the
`the entire dialog box All terminating
`OK button mean to accept
`this pane or accept
`buttons should be placed outside any tabbed panes
`
`It is easy to think of properties as an artifact of object-oriented
`programming
`is how we refer to the characteristics of things But
`because in that world that
`are just the aspects of any artifact
`in programthe characteristics
`properties
`document or chunk of data
`
`of
`
`dialog box generally
`the current selection This follows
`controls
`properties
`the object-verb form The user selects the object and then via the property dia
`log selects new settings for the selection
`
`0321
`
`IBG 1029 (Part 3 of 4)
`CBM of U.S. Patent No. 7,412,416 B2
`
`
`
`CHAPTER 21 DIALOG BOXES
`
`313
`
`Function dialog boxes
`Function dialog boxes are usually summoned from the menu They are most
`single function like printing
`frequently modal dialog boxes and they control
`inserting or spell checking
`
`dialog boxes not only allow the user to launch an action but
`Function
`often also enable the user to configure the details of the actions behavior
`many programs for example when the user requests printing the user uses
`to print the number of copies
`to print
`print dialog to specify which pages
`to and other settings directly relating to the print func
`which printer
`to output
`the dialog but
`tion The terminating OK button on the dialog not only closes
`the print operation
`
`they
`
`In
`
`the
`
`also initiates
`
`This technique though common combines two functions into one configur
`function can be configured
`ing the function and invoking it Just because
`user will want
`however doesnt necessarily mean that
`to see these two functions accessible
`
`to configure it before
`
`separately
`
`every invocation
`
`prefer
`
`controlling
`
`and
`
`Many functions available from modern software are quite complicated
`are cor
`dialog boxes
`Their
`have many configurable
`options
`respondingly complicated too
`The example shown in Figure 21-4 is from PowerPoint The user first config
`file then executes the configured command
`ures the operation by choosing
`by pressing the terminating command button OK It is very tempting to make
`instead Fight the urge It may seem more
`terminating button say PRINT
`terminating command button is
`logical but the loss of
`captioned
`consistently
`it will
`price to pay If the dialogs caption bar text
`is appropriate
`too great
`read like an English phrase telling the user exactly what will happen Print the
`OK
`document
`
`that
`
`Bulletin dialog boxes
`devilishly simple little artifact that
`thiahdog box is
`The
`most abused part of the graphic user interface
`
`is arguably the
`
`The bulletin is best characterized by the ubiquitous error message box There
`for how these dialogs should look and work pri
`are well-defined conventions
`call has been present in the Windows API since
`marily because the MessageBox
`Version 1.0 Normally the issuing programs name is shown in the caption bar
`very brief text description of the problem is displayed in the body
`and
`
`0322
`
`
`
`314
`
`PART
`
`THE CAST
`
`File Name
`
`_________________________
`
`Directories
`
`a\
`
`.End Fie..
`
`Drives
`
`List Files of Lpe
`
`All Fiiti...ire
`
`i.rrif
`
`lil.t
`
`hiiiiui
`
`LirikoFiI
`
`Figure 21-4
`
`The Insert Picture dialog box from PowerPoint
`function dialog box It is quintessen
`tially modal allowing the user to first configure the function by choosing
`file Nothing
`the OK button is pressed The dialog does not have
`happens however until
`an effect
`on an object
`but
`rather performs an operation
`
`is
`
`indicates
`
`graphic icon that
`
`the class or severity of the problem along with an OK
`button usually completes
`the ensemble Sometimes
`button to summon online
`help is added An example from Word is shown in Figure 21-5
`
`Both property and function dialog boxes are always intentionally
`requested by
`the userthey serve the user Bulletins on the other hand are always issued
`unilaterally by the programthey serve the program Both error and confir
`mation messages are bulletins and we will cover both variants in detail
`VII The Guardian
`
`in Part
`
`0323
`
`
`
`CHAPTER 21 DIALOG BoxEs
`
`315
`
`The measurement must be between -22 and 22
`
`Figure 21-5
`
`Heres
`
`is easier
`
`fact
`
`typical bulletin dialog box It is never
`requested by the user but
`is always issued
`by the program when it fails to do its job The program simply decides that
`unilaterally
`and solve the problem Users interpret
`to blame the user
`than it is to go ahead
`this as saying The measurement must be between
`and 22 inches and you are
`-22 inches
`buffoon for not knowing that basic fundamental
`fact You are so stupid in
`an incredible
`that Im not even going to change
`it for you
`
`it
`
`Process dialog boxes
`Process dialog boxes like bulletins are erected at
`
`discretion
`
`rather
`
`than at
`
`the users request They indicate
`function and that
`busy with some internal
`it has become stupid
`
`the programs
`the program is
`
`to the user that
`
`The process dialog box alerts
`It also warns the user not
`
`normally
`
`the user
`
`to the programs
`
`inability to respond
`
`to be overcome with impatience
`
`and to
`
`resist banging on the keyboard to get the programs attention
`
`central process
`
`All of todays desktop computers have
`single-microprocessor
`ing unit or CPU CPUs can only do one thing at
`time although
`through
`the CPU does
`tiny bit of work on several programs in
`concurrencywhere
`kind of round-robin-they can seemingly
`execute multiple software threads at
`problem arises when hardware becomes part of the equation
`the same time
`The CPU cannot use concurrent
`chunk of hard
`ware ties down the system for
`computer must access
`it cannot continue with other
`the disk or the network
`responds If the CPU requests something big
`processing until
`from the disksomething that
`ten seconds saythe entire computer
`grinding halt for the entire ten seconds the computer gets stupid
`comes to
`preemptive multi-tasking environment like Windows 95
`This is true even in
`
`programming techniques
`long time What
`this means is that when the
`
`if
`
`the hardware
`
`takes
`
`0324
`
`
`
`316
`
`PART
`
`THE CAST
`
`The CPU can preempt software threads but it still cannot preempt
`
`hardware
`
`process
`
`Software that makes significant use of slower hardware like networks disks or
`tapes will always become stupid sometimes for relatively long periods of time
`accessing hardware Programs that must
`Software can also get stupid without
`before they can interact with usersanachro
`perform billions of instructions
`named corebound programsfrequently
`calculations
`
`get stupid during their
`
`nistically
`
`In any case when
`process that will take perceptible
`program begins
`quanti
`ties of time as measured by the human user
`the program must make it clear
`it is busy and not
`just being rude If the program does not
`that
`indicate
`it as rudeness at best or at worst will assume the pro
`interpret
`gram has crashed and take drastic action
`
`the user will
`
`this
`
`Design tip The program must inform the user when it gets
`stupid
`
`As we discussed in Chapter 15 many programs rely on active wait cursor hint
`ing turning the cursor into an hourglass This solution springs big leaks in the
`multi-threaded world of Windows 95 and
`better solution is
`process dialog
`box better yet an equivalent progress meter built directly into the programs
`main window
`
`Each process dialog box has four tasks
`
`Make clear to the user that
`
`time-consuming process is happening
`
`Make clear to the user that
`
`things are completely normal
`
`Make clear to the user how much more time the process will
`
`take
`
`Provide
`
`way for the user to cancel
`
`the operation
`
`The mere presence of the process dialog box satisfies
`the first requirement
`to the fact
`alerting the user
`that some process is occurring Satisfring the third
`progress meter of some sort show
`can be accomplished with
`requirement
`ing the relative percentage of work performed and how much is yet
`to go
`Satisfying the second requirement
`is the tough one The program can crash and
`box up lying mutely to the user about
`the status of
`the
`
`the dialog
`
`leave
`
`0325
`
`
`
`CHAPTER 21 DIALOG BOXES
`
`317
`
`operation
`
`show via time-related
`The process dialog box must continually
`are progressing normally The meter should show the
`movement
`that
`things
`than the total
`progress relative to the total time the process will consume rather
`size of the process Fifty percent of one process may be radically different
`time than 50% of the next process
`
`in
`
`time-consuming process
`
`static dia
`
`that
`
`The users mental model of the computer executing
`be that of machine turning or reciprocating
`will quite reasonably
`the computer is Reading disk may tell the
`log box that merely announces
`it doesnt show that
`time-consuming process is happening but
`that
`user
`is true The best way to show the process is with some animation on the dialog
`in Windows 95 when files are moved copied or deleted
`box In the Explorer
`small animated cartoon of papers flying from one
`process dialog box shows
`see Figure 21-6 The effect
`folder or the wastebasket
`to another
`folder
`is really doing something
`the computer
`
`this
`
`is
`
`rather
`
`than cerebral
`
`remarkable the user gets the sense that
`things are working normally is visceral
`The sensation that
`The progress bar of blue squares
`and users even expert users are reassured
`of
`time
`the amount
`by hinting at
`satisfiesbarelythe third requirement
`remaining in the process Although this is one of the best designed features in
`There is one dialog box per
`Windows 95 it can still use some improvement
`operation but the operation can affect many files The dialog should also show
`of the number of files in the operation Right now the
`an animated countdown
`blue squares in the progress bar just show the progress of the single file cur
`Im tickled that Microsoft got this one so
`rently being transferred Regardless
`
`right
`
`Notice
`
`that
`
`cel
`
`CANCEL button
`also has
`the copy dialog in Figure 21-6
`there be way to can
`requirement number four that
`Ostensibly this satisfies
`the amount of
`about
`the operation The user may have second
`thoughts
`it so the CANCEL button
`take and decide to postpone
`time the operation will
`realizes that he issued the wrong com
`allows him to do so However
`the operation
`the operation he will not only want
`mand and wishes to cancel
`trace of the operation to be obliterated
`
`if the user
`
`to stop but will want all
`
`If the user drags 25 files from directory Alpha to directory Bravo and halfway
`them placed in directory
`he really wanted
`the move realizes
`through
`that does is stop the
`Charlie he can push the CANCEL button Unfortunately
`the remainder of the moves In other
`its current state and abandons
`move at
`words if the user presses the CANCEL button after 10 files have been copied the
`the first 10 are now in
`in directory Alpha but
`remaining 15 files are still
`
`that
`
`all
`
`0326
`
`
`
`318
`
`PART
`
`THE CAST
`
`II
`
`uu
`
`Figure 21-6
`
`this one right For any move copy or delete operation
`Hooray Microsoft They really got
`process dialog box The dialog
`uses animation
`they show
`in the Explorer
`well-designed
`to show paper documents flying out of the folder on the left
`into the folder or wastebas
`ket on the right The users mental model
`is one of the things moving inside
`the comput
`er and this little gem actually
`to see the outside of
`shows things moving
`It is refreshing
`the inside of the computer in users terms for once The only thing
`the computer reflect
`that worries me is whether Microsoft merely spawns
`an animation thread or actually
`the animation to the copyin other words if the program crashes does the animation
`stop too Or will pages just keep on flying from one
`forever
`to another
`folder
`
`ties
`
`directory Bravo This is not what the user wants If the button says CANCEL it
`dont want any of
`and that means
`should mean cancel
`this to have
`any effect
`If the button were to accurately
`its current action it
`represent
`would say ABANDON ABORT or STOP Instead it says CANCEL so cancel
`it should do
`
`is what
`
`If the user pressed the CANCEL button the program should really cancel
`effects ofthe operation by undoing the already-done part This may mean some
`significant buffering is needed and the cancel operationcould
`easily take more
`time than the original move copy or delete But isnt this rare event one when
`the time required is easily justified In the Explorer the program can com
`pletely undo
`copy move or delete attaboy
`so there is no reason why the
`also undo the portion that
`couldnt
`had already been
`
`CANCEL button
`
`the
`
`performed
`
`good alternative would be to have two buttons on the dialog
`one labeled
`labeled ABANDON The user could then choose the one
`CANCEL and the other
`
`he really wants
`
`0327
`
`
`
`Dialog Box Etiquette
`
`the last chapter we discussed the larger design issues
`dialog boxes In this chapter we zoom in closer
`dialogs should act Even an
`to examine the way well-behaved
`appropriate dialog box can exhibit behavior
`is unex
`pected or irritating By attending to the details we can
`them from rude interrupters
`to polite and helpful
`
`concerning
`
`change
`
`attendants
`
`that
`
`You rang
`If you recall we divided dialog boxes
`into four
`bulletin and process One of
`between
`these types
`is the way they
`differences
`important
`are summoned The first two are shown only at
`explicit request while the latter
`two are issued unilaterally by
`the program When you say Jeeves come in here you
`to step smartly into the room and plainly
`expect
`and immediately offer his services On the other hand when
`raise you want him to wait
`to ask
`Jeeves wants
`
`the most
`
`types
`
`the users
`
`319
`
`property
`
`function
`
`the butler
`
`for
`
`0328
`
`
`
`320
`
`PART
`
`THE CAST
`
`pleasant mood before interrupting your
`obsequiously until you are relaxing in
`spirit bulletin and process
`reverie to impose his own needs In this butlerian
`dialogs should show much more deference than property or function dialogs
`the opposite is often true
`
`Unfortunately
`
`user-requested dialog may be large and place itself
`screen No unrequested
`be so brassy however
`dialog should
`in its use of space and should appear off to one side of
`smaller more compact
`to obstruct
`the users view of things
`
`front-and-center
`
`on the
`
`It should
`
`be
`
`the screen so as not
`
`Whos processing
`Actually the need for bulletin and process dialog boxes is unclear They are as
`too In
`and about
`common as weeds in contemporary software
`as useful
`Chapters 28 and 29 well discuss ways of eliminating bulletin dialog boxes but
`what can we do with process dialogs
`
`The answer
`
`Because
`
`dialog is
`
`to that question is found by asking who is doing the processing
`room we must ask whether
`the process reported
`separate
`from that on the main window If the func
`function separate
`by the dialog is
`tion is an integral part of what is shown on the main window then the status
`function should be shown on the main window instead For example
`of that
`the Windows 95 flying pages dialog that was shown in Figure 21-6 is attractive
`to what
`the Explorer
`but
`file fundamental
`isnt copying
`and appropriate
`could have been built right
`does The animation in this case
`Explorer window The little pages could fly across the status bar or they could
`fly directly across the main window from directory to directory
`
`into the main
`
`Process dialogs are of course much easier to program than building animation
`right into the main window of program They also provide
`convenient
`compromise to fling up
`very reasonable
`for the CANCEL button so it
`time-consuming task But dont
`process dialog for the duration of
`that by doing this we are still going to another
`room for
`of the fact
`the correct solution
`It is an easy solution but not
`
`is
`
`function
`
`place
`
`lose sight
`
`this-room
`
`The caption bar
`caption bar it cannot be moved All dialog boxes
`If dialog box doesnt have
`should be movable so they dont obscure the contents of the windows
`they
`have caption bars Is that clear
`overlap Therefore all dialog boxes should
`Even the Windows style guide almost agrees on this point saying In general
`should use only movable dialog boxes
`an application
`
`0329
`
`
`
`CHAPTER 22 DIALOG Box ETIQUETTE
`
`321
`
`Design tip All dialog boxes should have caption bars
`
`that system modal messages which of course
`There seems to be some belief
`you will never create dont have to have caption bars because
`they are often
`reasoning goes Well the
`guess the programmers
`used to report fatal errors
`them move the dialog around Of
`so why bother
`system is crashed
`course when your system crashes
`is precisely the time you might need to get
`good look at what was on your screen before you reboot After all you will
`probably lose whatever was there
`
`to let
`
`about what
`There also seems to be widespread
`confusion
`in
`text string to put
`the caption bar of dialog box Some people think it should be the name of the
`function while others think it should be the name of the program The belt-
`crew tends to use both The correct
`answer
`
`is very simple
`
`and-suspenders
`
`neither of these
`
`If the dialog box is
`function dialog the caption bar should have the name of
`the functionthe verb if you will For example if you request Break from
`the Insert menu the caption bar of the dialog should say Insert Break
`What are we doing We are inserting
`break We are not breaking so the
`caption bar should not say Break
`word like that
`could easily scare or
`confuse somebody
`
`Design tip Use verbs in function dialog caption bars
`
`would go so far as to say that when the function will operate on some selec
`tion the caption bar should indicate what
`to the best of its ability
`is selected
`sentence Smilin Ed is dead and invoke
`For example if you select
`Font item from the Format menu the dialogs
`caption bar should
`say
`Format font for Smilin Ed is dead If youve selected
`text thats too big to
`fit on the caption bar it should show the first and last couple of words of the
`
`the
`
`separated by ellipses If nothing is selected the caption should say
`selection
`Format font for future text
`
`Design tip Use object names in property dialog caption bars
`
`description
`
`properties
`
`If the dialog box is
`property dialog the caption bar should have the name or
`we are setting The properties
`of the object whose
`dialogs in Windows 95 work this way When
`request the Properties dialog for
`named Backup the caption bar says Properties
`for Backup
`
`directory
`
`0330
`
`
`
`322
`
`PART
`
`THE CAST
`
`Transient posture
`they would be transient-posture
`If dialog boxes were independent
`programs
`programs As you might expect dialog boxes should then look and behave
`idioms bright colors and large buttons
`transient programs with bold visual
`On the other hand transient
`programs borrow their pixels from sovereign
`so they must never be wasteful of pixels The imperative to be
`applications
`large is constantly at war with the imperative to be small One solution is to
`make each of the individual
`to make sure that
`the
`gizmos slightly larger but
`dialog itself wastes no additional
`
`like
`
`space
`
`Design tip Dialogs should be as small as possible but no
`smaller
`
`extra-large
`
`for
`
`standard by creating
`International popularized
`few years ago Borland
`large red
`buttcons with bitmapped symbols on their faces
`big blue question mark for HELP
`for OK and
`large green checkmark
`CANCEL
`first Most people now find
`They were cleverly designed and very attractiveat
`reason The icons
`them wasteful of space and with good
`on the buttcons
`worked well
`themselves well enough
`
`that
`
`the extra size
`
`now uses
`the same bitmaps on buttons of more
`much better
`The
`
`to visually identify
`wasnt necessary Borland
`size which is
`conventional
`
`solution
`
`images
`the need to waste precious pixels
`
`visual
`
`accomplished
`
`the job just fine without
`
`Obscuring
`
`of
`
`the parent window can be avoided by always being conservative
`take more room than they need Pixels remain
`space Dialog boxes should never
`limited resource in modern
`desktop computers and dialog boxes can
`the most
`of good taste by sprawling across
`the screen
`
`the boundaries
`
`easily overstep
`Compare the space efficiency of the CompuServe Navigator
`to the one from Word in Figure 22-2
`
`dialog in Figure 22-1
`
`Checkboxes
`
`are
`
`gizmo the accompanying text
`lot of dedicated space Compared to the text of checkboxes buttcons
`requires
`can be crammed together
`like sardines
`
`relatively space-inefficient
`
`Reduce excise
`
`lot of exciseunnec
`burden on the user if they require
`Dialog boxes can be
`essary overhead which we discussed in Chapter 13 The user will soon tire of
`dialog box every time it appears
`
`having to always reposition
`
`or reconfigure
`
`0331
`
`
`
`CHAPTER 22 DIALOG Box ETIQUETTE
`
`323
`
`Uit01 Qif Forumsi
`
`Show Message Section Numbers in Dialogs
`
`F7 Show Library Section Numbers in Dialogs
`
`Get News Flashes
`
`Auto-File
`
`ant Messages in Folder
`
`Auto-Filed
`
`Forum Messaging
`
`On Entering Set Forum to Remember Last Session
`
`fl On Exiting Set Forum to Forget Session
`
`OK
`
`canceij
`
`jjalp
`
`Figure 22-1
`
`for Windows Version 1.0
`dialog box from CompuServe Navigator
`Here is
`properties
`The sprawling checkboxesconsurne
`lot of space At least it has
`caption bar so you can
`move it out of the way
`
`The duty of the dialog box designer is to assure that
`minimum particularly because dialog boxes are only supporting actors
`interactive drama
`
`the excise is kept
`
`to
`
`bare
`
`in the
`
`their geographical placement
`
`fail
`
`to
`
`reduce
`
`excise
`
`are
`
`in
`
`The most usual areas where dialog boxes
`and their state Dialogs should always remember
`time and they should
`
`where they were placed the last
`automatically Most dialogs
`fresh each time they are invoked
`remembering nothing from their last run This is an artifact of the way they are
`as subroutines with dynamic storage We should not
`these
`implemented
`the way our programs behave Dialogs
`details so deeply affect
`implementation
`should always remember what state they were in the last time they were invoked
`certain tab was
`and return to that same state If the dialog was expanded or
`
`return to that
`
`place
`
`also start out
`
`let
`
`0332
`
`
`
`324
`
`PART Vt THE CAST
`
`Indents and Spacing
`Indentation ------- Spacing
`
`Te.t
`
`fjciv
`
`Left
`
`Right
`
`special
`
`ii-25
`
`J0
`
`Before
`
`A1tr
`
`pt
`
`2pt
`
`Line Spacing At
`
`ri
`
`Single
`
`-i
`
`OK
`
`Cancel
`
`Tabs..
`
`rn
`
`Help
`
`Figure 22-2
`
`typical
`
`function dialog box from Microsoft Word shows
`use of space The
`an excellent
`are compact and very conservative of space Compare this with the previous figure
`controls
`Figure 22-1 Notice also their willingness
`instead of just canned
`to use graphic objects
`text-based gizmos like edit fields checkboxes
`and push-buttons
`
`selected the dialog should return the exact same way on subsequent visits In
`in more detail about how to apply memory to this type of
`Chapter 14 talked
`
`problem
`
`The same idea can be applied to the contents of input fields If
`checkbox was
`last time the dialog box should remember and come up with the box
`checked
`next time Chances are good that
`the settings used the last time will be
`
`checked
`
`used the next time too
`
`Know if you are needed
`dialog box can reduce excise is to not even bother
`The most effective way that
`appearing if it is not needed
`If there is some way for the dialog box to be smart
`to know whether
`the program shouldby all
`enough
`is really necessary
`meansdetermine this and prevent
`the user from having to merely dismiss the
`unneeded box an action
`is pure excise
`
`that
`
`it
`
`0333
`
`
`
`CHAPTER 22 DIALOG Box ETIQUETTE
`
`325
`
`For example in Word
`always save my document
`often print it just before closing it In other words
`document Unfortunately
`PRINT and CLOSE
`printing inadvertently marks the document
`as changed
`to save it when
`program always asks me if want
`issue the CLOSE command
`just did The program should pay attention Of course want
`even though
`before closing Not only should it not ask this question
`the document
`didnt change
`at all it should be able to see from my actions
`it the pro
`that
`gram did The entire invocation of this dialog box is excise
`
`just before
`
`print it and
`
`frequently want to SAVE
`
`the repagination
`
`involved in
`
`This means that
`
`the
`
`to save
`
`The same thing is true of bulletin dialogs
`
`that
`
`completed some function normally
`need to resort
`to the excise of
`
`If it was so normal
`
`dialog box that
`
`stops
`
`tell me that
`the program has
`the program shouldnt
`the proceedings with
`
`idiocy
`
`If
`
`program uses
`
`dialog box to offer me
`and
`
`selection of options every time
`
`ask
`
`for
`
`always use the same options
`certain
`the program
`function
`shouldnt bother to even put up the dialog box It should be able to recognize
`step Of course it would have
`the pattern and remove
`the unnecessary
`to
`inform me first so
`give me the option to
`am not surprised and it should
`
`override its decision
`
`Terminating commands
`for modal dialog boxes
`Every modal dialog box has one or more terminating commands Most modal
`dialog boxes have three the OK and CANCEL buttons and the close box on the
`caption bar The OK button means accept
`have made then close
`any changes
`the dialog and go away The CANCEL button means reject any changes
`have
`made then close the dialog and go away This is such
`simple and obvious
`formula such
`it is inconceivable that anyone
`well-established
`that
`would vary from its familiar
`trustworthy well-trod path Yet
`for inexplicable
`designers do diverge from this simple formula
`reasons many user interface
`and the despair of their users
`always to the detriment of their product
`
`standard
`
`The modal dialog box makes
`contract with the user that
`it will offer services
`OK buttonand
`bold and simple way to get Out without
`on approvalthe
`hurting anythingthe CANCEL button These two buttons cannot be omitted
`violating the contract and doing so deflates any trust the user might
`without
`
`0334
`
`
`
`326
`
`PART
`
`THE CAST
`
`have had in the program It is extremely expensive in terms of stretching
`users tolerance Never omit
`these two buttons or change their legends
`
`the
`
`Design tip Offer OK and CANCEL buttons on all modal dialog
`boxes
`
`to the problem is to never ask questions like that
`
`dialog box asking if the user
`colleague countered
`that
`this tip by suggesting
`wants to Cancel Reservation would cause problems when it appears with an
`OK and CANCEL button What does
`it mean to say CANCEL to Cancel Good
`question and the solution
`The example is
`reasons notably because it is
`particularly ugly one for several
`question like thatand
`confirmation dialog Besides if you ever need to ask
`you shouldntdont express
`it using the same words that are in the termina
`tion keys With Cancel Reservation
`the user must respond with the word
`CANCEL to avoid canceling Confusing You bet
`Instead the question should
`be stated like this Discard the Reservation Better yet well talk about how
`confirmation dialogs entirely in Part VII
`to eliminate
`
`Design tip Nevei use terminating words in dialogs
`
`The design tip Offer OK and CANCEL buttons on all modal dialog boxes
`applies to function and property types Bulletin dialogs reporting errorsthose
`thingscan get away with just an OK button as if the user wants to col
`hateful
`lude in the programs
`CANCEL button so
`failure Process dialogs only need
`the user can end
`
`time-consuming process
`
`The OK and CANCEL buttons are the most important
`controls on any dialog box
`These two buttons must be immediately identifiable visually standing out from
`the other
`from other action
`on the dialog box and particularly
`controls
`buttons This means that
`lining up several visually-identical buttons including
`OK and CANCEL is not the right thing to do regardless of how frequently it is
`done id est
`the stack of buttons in Figure 21-4 Even from companies who
`should know better the OK and CANCEL buttons are buried in groups of other
`unrelated buttons and their familiar legends change with depressing frequency
`
`The CANCEL button in particular
`to the dialog boxs ability
`is crucial
`to serve
`its pedagogic purpose As the new user browses the program he will want
`to
`examine the dialogs to learn their scope and purpose then CANCEL them so as
`into any trouble For the more experienced
`the OK button
`not
`to get
`
`user
`
`0335
`
`
`
`CHAPTER 22 DIALOG Box ETIQUETTE
`
`327
`
`begins to assume greater
`import
`dialog box makes his changes
`button
`
`than the CANCEL button The user calls the
`push of the OK
`
`and exits with
`
`confirming
`
`has shown off
`
`new standard for terminating buttons They
`Lately Microsoft
`demand that
`the OK button be in the upper right corner of the dialog and that
`the CANCEL button be positioned immediately below it with the HELP button
`below that Unfortunately Microsofts
`style troopers have chosen poorly The
`to lower right so the terminating but
`majority of users read from upper
`tons make more sense in the lower right of the dialog box Microsoft
`has also
`gone for the executive gray look and the terminating buttons are not visually
`unique font or typesize They
`identified by any unique color bitmaps or even
`just blend right in with the other buttons on the dialogtoo bad
`
`left
`
`location
`
`Im much more concerned with consistency in placement of these buttons than
`Im not
`am in the particular
`they occupy However
`their placement The OK button should be placed in the lower right corner of
`the dialog box and the CANCEL button should be placed immediately to its left
`or immediately above it The user can then dependably know that an affir
`mative ending of the dialog can be had by going
`to the extreme lower-right
`
`indifferent
`
`to
`
`corner
`
`The close box
`
`Because dialog boxes are windows with caption bars they have another
`nating idiom Clicking in the closebox
`in the upper right corner or double-
`the system menu box in the upper left corner in Windows
`.x termi
`clicking
`nates the dialog box The problem with this idiom is that
`the disposition
`or rejected Was it
`is unclear Were
`the changes
`users changes
`accepted
`equivalent of an OK or CANCEL Because of the potential
`for confusion there
`the idiom as CANCEL
`is only one possible way for programs to interpret
`this conflicts with its meaning on modeless dialog where it is
`CLOSE command The close box is needed on modeless dialog
`the same as
`but not on modal dialog box So to avoid confusion the close box should
`not be included in modal dialogs
`
`termi
`
`of the
`
`the
`
`Unfortunately
`
`Design tip
`
`ont put c1ose boxes on/dadiT
`
`If the user expects an OK and gets
`CANCEL he will be surprised and will have
`to do the work overand he will learn On the other hand if the user expects
`
`0336
`
`
`
`328
`
`PART
`
`THE CAST
`
`CANCEL and gets an OK he will still have to do the work over but
`he will be angry Dont
`
`this situation arise
`
`let
`
`this time
`
`terminate the dia
`
`familiar
`
`help but doesnt
`The HELP button requests context-sensitive
`terminating button It is so often grouped with the terminat
`it has assumed the same importance
`by association Online
`as the terminating commands Putting help
`is not as important
`help however
`to them is weak but not harmful and it has the power of
`In Windows 95 Microsoft
`standard
`is showing that
`they understand
`this prob
`1cm As you can see in Figure 22-3 they are beginning
`to move help away from
`the OK and CANCEL terminating buttons putting it on the caption bar Up
`there it is on an area common to all dialogs but clearly separated from the very
`terminating commands
`
`log so it isnt
`
`ing buttons that
`
`adjacent
`
`special
`
`Keyboard shortcuts
`
`that
`
`like
`
`Many dialogs offer services
`are frequently used or used repetitively
`those for REPLACE or FIND As users gain experience with the program they will
`the presence of keyboard shortcuts for these frequently used dialogs
`appreciate
`There are usually enough keys to go around and there is no reason why
`function
`should
`shortcut
`function
`have just
`single keyboard
`CTRLF keystroke
`should be callable with
`F2