Designing Web Interfaces PDF
Designing Web Interfaces PDF
Copyright © 2009 Bill Scott and Theresa Neil. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are
also available for most titles (safari.oreilly.com). For more information, contact our corporate/institutional
sales department: 800-998-9938 or [email protected].
Printing History:
January 2009: First Edition.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of
O’Reilly Media, Inc. Designing Web Interfaces, the image of a Guianan cock-of-the-rock, and related trade
dress are trademarks of O’Reilly Media, Inc.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trade-
mark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher and authors assume
no responsibility for errors or omissions, or for damages resulting from the use of the information con-
tained herein.
ISBN: 978-0-596-51625-3
[V] [6/09]
Contents
Foreword.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Preface.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
3. Direct Selection.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Toggle Selection 62
Collected Selection 67
Object Selection 70
Hybrid Selection 72
6. Inlays.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Dialog Inlay 123
List Inlay 127
Detail Inlay 132
Tabs 134
Inlay Versus Overlay? 136
Index.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Chapter 1
Foreword
* The term parti comes from Matthew Frederick’s book 101 Things I Learned in Architecture School (MIT Press).
x Foreword
The breadth of solutions they have encountered has given them a unique perspective
on the design principles behind the most successful rich interactions on the Web. From
“make it direct” to “react immediately,” the principles he outlines in this book are your
yardstick for measuring the value that rich interactions bring to your web application.
Through in-depth descriptions of context and trade-offs, Bill and Theresa support each
principle with the design considerations and best practices you need to make informed
decisions. Engineers, product managers, marketers, and designers can rally around and
continually return to these principles and considerations to ensure that everyone is evalu-
ating the impact of design decisions the same way.
This combination of rich web interaction design principles at the top and design consider-
ations at the bottom allows web designers to fill in the middle with meaningful structures
that enable people and organizations to interact, communicate, and get things done. Just
like our friends, the architects.
So, dive in and immerse yourself in the direction and details you need to bring your rich
web application partis to life!
—Luke Wroblewski
October 2008
Senior Director, Product Ideation and Design, Yahoo! Inc.
Author, Web Form Design: Filling in the Blanks (Rosenfeld Media)
Author, Site-Seeing: A Visual Approach to Web Usability (Wiley)
Chapter 1
Preface
What Happened
My (Bill’s) first personal computer was a Radio Shack Color Computer (circa
1981)—complete with a chiclet-style keyboard. The first few months the main user inter-
face was the command line, typing in COLOR BASIC code.
Later, an upgrade to an Apple IIe brought a nicer keyboard with lots of games. But the
interface was basically the same. The command-line and text-driven menu systems ruled
the day. When the IBM PC came on the scene it brought more of the same. Lotus 123,
which was the state-of-the-art spreadsheet application at the time, was controlled by a set
of cryptic keystrokes. Not much of a user experience.
Then an interface revolution started. The Macintosh arrived in 1984, and shortly after
its introduction, I brought one home. The mouse opened the door to a brand-new world
of interaction. Instead of having to learn archaic commands to navigate through text-
based menus, interaction in this new environment happened naturally in a direct, intui-
tive manner.
OK, you are probably thinking, so what? That was 1984. This is now. What does this have
to do with a book about designing web interfaces?
Everything.
For most of the history of the Web, sites and applications were marked by primitive inter-
faces—just like the early desktop era. Most sites were built from two events:
• Clicking hyperlinks
• Submitting forms
Try to create an interesting user experience from just those two events. And, to add insult
to injury, every click and every submit was punctuated with a page refresh. Creating a
seamless user experience was next to impossible.
xii Preface
Interestingly, the technologies have existed for many years to get around these limitations.
But it was only after they became widely available across the most common browsers
that developers could count on them in their everyday development. In 2004, Google
launched Gmail and Google Maps using a set of techniques later dubbed Ajax by Jesse
James Garrett.
The difference was dramatic. The Ajax-enabled Google Maps now interacted more like a
desktop application with real-time pan-and-zoom—all with no page refresh. Mapquest,
on the other hand, behaved like most other web applications at the time, refreshing the
page each time the map was repositioned or zoomed. The contrast was clear between the
old world of the Web and the new world as enabled by Ajax.
Design Patterns
What do we mean by design patterns?
Christopher Alexander coined the term “patterns” in his seminal work A Pattern Lan-
guage: Towns, Buildings, Construction (Oxford University Press) to catalog common ar-
chitectural solutions to human activities. He described a pattern as:
…a problem which occurs over and over again in our environment, and then de-
scribes the core of the solution to that problem…
Patterns were later applied to software in the book Design Patterns: Elements of Reusable
Object-Oriented Software (Addison-Wesley), by the Gang of Four (Erich Gamma, Rich-
ard Helm, Ralph Johnson, and John M. Vlissides). A few years later design patterns were
extended to the realm of user interface design.*
It is the latter form of patterns that we present in this book: interaction design patterns.
You will find 75+ patterns illustrating the most common techniques used for rich web
interaction. Each design pattern is illustrated by examples from various websites. Since
the patterns described are interactive, we use a generous amount of figures to explain the
concept. We tease out the nuances for a given solution as well as identify patterns to be
avoided (anti-patterns). Best practice sections call out suggestions along the way.
The patterns are presented in the context of six design principles, which form the frame-
work for the book:
* See works such as Jenifer Tidwell’s Designing Interfaces: Patterns for Effective Interaction Design (O’Reilly) and
the pattern library of Martijn van Welie (http://www.welie.com/).
xiv Preface
Tip
This indicates a tip, suggestion, or general note.
xvi Preface
Using Examples
You can find all of the figure examples on our companion Flickr site (http://flickr.com/
photos/designingwebinterfaces). The figures are available for use in presentations or other
derivative works provided you respect the Creative Commons license and provide attri-
bution to this work. An attribution usually includes the title, author, publisher, and ISBN.
For example: “Designing Web Interfaces, by Bill Scott and Theresa Neil, Copyright 2009
Bill Scott and Theresa Neil, 978-0-596-51625-3.”
If you feel your use of examples falls outside fair use or the permission given above, feel
free to contact us at [email protected].
Acknowledgments
Bill’s Acknowledgments
Writing this book was not just the effort of Theresa Neil and myself. There are many di-
rect contributors but even more that indirectly inspired us.
Most importantly I wish to thank Ruth. You are my wonderful wife of 30 years, my friend,
and an amazing mother. Without your patience and support I could not have gotten this
book finished.
I am deeply indebted to my editors at O’Reilly. Double kudos go to Mary Treseler, who
patiently cajoled Theresa and I to complete this work. You provided valuable feedback
early in the process. Thanks to the rest of the team that brought this book to life: Rachel
Monaghan, Marlowe Shaeffer, Ron Bilodeau, Colleen Gorman, Adam Witwer, and Robert
Romano, to name a few.
Anyone who has written a book also knows that the technical reviewers are your criti-
cal test market. Thanks for the helpful praise and constructive criticism from Christian
Crumlish, Dan Saffer, Luke Wroblewski, Juhan Sonin, Kevin Arthur, and Alan Baumgarten.
Though I could not address every issue, I took each comment seriously and they had a
significant impact on the finished product.
I owe a lot to my time at Yahoo!. Thanks to Erin Malone for sending me an email out
of the blue, which eventually led to her hiring me at Yahoo!. There I was surrounded by
brilliant people and given the opportunity to succeed. To Erin, Matt Leacock, and Chanel
Wheeler for founding the Yahoo! Design Pattern Library. Thanks to Larry Tesler and
Erin, who gave me the opportunity to lead and evangelize the launch of the public Yahoo!
Design Pattern Library. It was in my role as pattern curator that I crystallized much of
the thinking contained in this book. A special thanks to the many talented designers and
developers who gave me continual feedback and inspired me with their craftsmanship.
xviii Preface
The YUI team, and in particular Nate Koechley and Eric Miraglia, for the formulation
of “Interesting Moments” grids and for the opportunity to tie the patterns to real-world
code. My co-evangelists: Douglas Crockford, Iain Lamb, Julien Lecomte, and Adam Platti.
My good friend, Darren James, who encouraged me along the way. Thanks to the many
talented designers that I got the chance to collaborate with and whose thoughts are found
sprinkled throughout this text: Karon Weber, Samantha Tripodi, Ericson deJesus, Micah
Laaker, Luke Wroblewski, Tom Chi, Lucas Pettinati, Kevin Cheng, Kathleen Watkins,
Kiersten Lammerding, Annette Leong, Lance Nishihira, and many others.
Outside of Yahoo!, my thinking was encouraged and matured by knowing/learning from
Dan Saffer (Adaptive Path), Ryan Freitas (Adaptive Path), Aza Raskin (Humanized),
Scott Robbins (Humanized), Peter Moerholz (Adaptive Path), and David Verba (Adap-
tive Path). A special debt of gratitude to those in the pattern community. Jenifer Tidwell
for pointing the way to patterns. For Martijn van Welie for his excellent pattern library.
For James Refell and Luke Wroblewski and their work on patterns at eBay. For Christian
Crumlish, the current pattern curator at Yahoo! and his clear thinking. Jesse James Garrett,
for not only giving Ajax a name, but inviting me to the first Ajax Summit and then taking
me on tour with him. Teaching in the Designing for Ajax Workshops gave me the confi-
dence to write this book and tested the material in front of a live audience.
And thanks to the many companies and conference coordinators that invited me to
speak. Sharing this material with thousands of listeners was invaluable in determining
what resonates with most designers and developers. In no particular order (listed with the
company that they invited me to speak at): Jared Spool (UIE), Ben Galbraith and Dion
Almer (Ajaxian/Ajax Experience), Kathryn McKinnon (Adobe), Jeremy Geelan (SysCon),
Rashmi Sinha (BayCHI/Slideshare), Aaron Newton (CNET), Brian Kromrey (Yahoo!
UED courses), Luke Kowalski (Oracle), Sean Kane (Netflix), Reshma Kumar (Silicon Val-
ley Web Guild), Emmanuel Levi-Valensi (People in Action), Bruno Figueiredo (SHiFT),
Matthew Moroz (Avenue A Razorfish), Peter Boersma (SIGCHI.NL), Kit Seeborg (Web-
Visions), Will Tschumy (Microsoft), Bob Baxley (Yahoo!), Jay Zimmerman (Rich Web
Experience), Dave Verba (UX Week). Other conferences and companies that I must
thank: Web Builder 2.0, eBig, PayPal, eBay, CSU Hayward, City College San Francisco,
Apple, and many others.
My deep appreciation goes to Sabre Airline Solutions, and especially Brad Jensen, who bet
on me and gave me a great opportunity to build a UX practice in his organization; and
to David Endicott and Damon Hougland, who encouraged me to bring these ideas to the
public. And to my whole team there for helping Theresa and I vet these ideas in the wild.
Many patterns in this book were born out of designing products there.
Finally, I want to thank Netflix, where I am now happily engaged in one of the best places
to work in the world. Thanks for supporting me in this endeavor and for teaching me how
to design and build great user experiences.
Preface xix
Theresa’s Acknowledgments
I would like to gratefully acknowledge the following folks:
Aaron Arlof, who provided the illustrations for this book. They are the perfect representa-
tion of the six principles.
Brad Jensen, my vice president at Sabre Airline solutions, who had me interview Bill in
the first place. Without Bill’s mentoring and training I would not be in this field.
Damon Hougland, who helped Bill and I build out the User Experience team at Sabre.
Jo Balderas, who made me learn to code.
Darren James, who taught me how to code.
All of my clients who have participated in many a white board session, enthusiastically
learning and exploring the patterns and principles of UI design, especially Steven Smith,
Dave Wilby, Suri Bala, Jeff Como, and Seth Alsbury, who allowed me to design their en-
terprise applications at the beginning of the RIA revolution. A special thanks to my current
colleagues: Scott Boms of Wishingline, Paulo Viera, Jessica Douglas, Alan Baumgarten, and
Rob Jones.
Most importantly, I wish to thank my husband for his unwavering support, and my par-
ents for their encouragement. And my son, Aaron, for letting me spend so many hours in
front of the computer.
Principle One
Make It Direct
On a recent trip to Big Sur, California, I took some photos along scenic Highway 1. After
uploading my pictures to the online photo service, Flickr, I decided to give one of the
photos a descriptive name. Instead of “IMG_6420.jpg”, I thought a more apt name would
be “Coastline with Bixby Bridge.”
The traditional way to do this on the Web requires going to the photo’s page and clicking
an edit button. Then a separate page for the photo’s title, description, and other informa-
tion is displayed. Once on the editing page, the photo’s title can be changed. Clicking
“Save” saves the changes and returns to the original photo page with the new title displayed.
Figure P1-1 illustrates this flow.
Figure P1-1. Web applications have typically led the user to a new page to perform editing
In Flickr you can edit the photo title just like this. However, Flickr’s main way to edit photos
is much more direct. In Figure P1-2 you can see that by just clicking on “IMG_6420.jpg”,
editing controls now encapsulate the title. You have entered the editing mode directly
with just a simple click.
Editing directly in context is a better user experience since it does not require switching
the user’s context. As an added bonus, making it easier to edit the photo’s title, description,
and tags means more meta-information recorded for each photo—resulting in a better
searching and browsing experience.
Figure P1-2. In Flickr, clicking directly on the title allows it to be edited inline
Make It Direct
The very first websites were focused on displaying content and making it easy to navigate
to more content. There wasn’t much in the way of interactivity. Early versions of HTML
didn’t include input forms for users to submit information. Even after both input and
output were standard in websites, the early Web was still primarily a read-only experience
punctuated by the occasional user input. This separation was not by design but due to the
limits of the technology.
Alan Cooper, in the book About Face 3: The Essentials of Interaction Design, describes the
false dichotomy.
…many programs have one place [for] output and another place [for] input, [treat-
ing them] as separate processes. The user’s mental model…doesn’t recognize a
difference.
Cooper then summarizes this as a simple rule: Allow input wherever you have output.*
More generally we should make the interface respond directly to the user’s interaction:
Make it direct.†
To illustrate this principle, we look at some broad patterns of interaction that can be used
to make your interface more direct. The next three chapters discuss these patterns:
Chapter 1, In-Page Editing
Directly editing of content.
Chapter 2, Drag and Drop
Moving objects around directly with the mouse.
Chapter 3, Direct Selection
Applying actions to directly selected objects.
* Cooper, Alan et al. About Face 3: The Essentials of Interaction Design (Wiley, 2007), 231.
† This is a restatement of the principle of Direct Manipulation coined by Ben Scheiderman (“Direct manipulation:
a step beyond programming languages,” IEEE Computer 16[8] [August 1983], 57–69).
Chapter 1
In-Page Editing
Content on web pages has traditionally been display-only. If something needs editing, a
separate form is presented with a series of input fields and a button to submit the change.
Letting the user directly edit content on the page follows the principle of Make It Direct.
This chapter describes a family of design patterns* for directly editing content in a web
page. There are six patterns that define the most common in-page editing techniques:
Single-Field Inline Edit
Editing a single line of text.
Multi-Field Inline Edit
Editing more complex information.
Overlay Edit
Editing in an overlay panel.
Table Edit
Editing items in a grid.
Group Edit
Changing a group of items directly.
Module Configuration
Configuring settings on a page directly.
The most direct form of In-Page Editing is to edit within the context of the page. First, it
means we don’t leave the page. Second, we do the editing directly in the page.
* We use the term “design patterns” to denote common solutions to common problems. Design patterns origi-
nate from Christopher Alexander’s book A Pattern Language (Oxford University Press). You can read a series
of essays from me (Bill) and others on design patterns at http://www.lukew.com/ff/entry.asp?347.
4 Chapter 1: In-Page Editing
The advantage of Inline Edit is the power of context. It is often necessary for users to
continue to see the rest of the information on the page while editing. For example, it is
helpful to see the photo while editing the photo’s title, as explained in the next section,
“Single-Field Inline Edit.”
It is also useful when editing an element that is part of a larger set. Disqus, a global com-
ment service, provides inline editing for comments (Figure 1-1). After posting a comment
and before anyone replies to the comment, an edit link is provided. The editing occurs
within the context of the rest of the comments shown on the page.
Tip
If editing needs the context of the page, perform the editing inline.
Figure 1-1. Disqus allows comments to editing inline within the context of other comments
The first two patterns, Single-Field Inline Edit and Multi-Field Inline Edit, describe
techniques for bringing direct inline editing into the page.
Non-editing state
Flickr chose to keep the title clear of any edit
actions.
The title looks like a title. This provides the highest
readability by not cluttering the interface with edit
actions or an editable style.
This will lead to discoverability issues. An alternate
approach is to place an “edit” link somewhere in line
with the title that would start the editing process.
Single-Field Inline Edit 5
Invitation to edit
On mouse hover, the background is backlit with
yellow. A tool tip invites the user to “Click to edit”.
Invitations attempt to lead the user to the next
level of interaction (from mouse hover to mouse
click).
Invitations have to be discovered to be useful.
Flickr’s bet is that the user will drift his mouse over
the title (of his own photo).
Editing
Once the user clicks on the title, it is placed into an
edit mode. An edit box is switched into view im-
mediately under the title text.
The “Save” and “Cancel” buttons make it clear we are
editing the title by providing a familiar interface—
the user input form.
A disadvantage to this approach is that the picture
gets pushed down to make way for the additional
interface elements.
Completion
There are a number of ways to signify that the
text is being saved. In this example, the title text
is temporarily replaced with the text “saving…”.
Upon completion, the new title is shown in the
non-editing style.
An alternative approach is to show a busy progress
indicator while the change is being made.
Figure 1-2. Flickr provides a straightforward way to edit a photo’s title directly inline
Considerations
The flow is simple. Click on the title to start editing. When you are done, hit the “Save”
button, and the title is saved in place. Flickr was one of the first sites to employ this type
of in-page editing. As a testament to its usefulness, the interaction style first designed has
not changed much over the last few years.
But there are some challenges to consider.
6 Chapter 1: In-Page Editing
Discoverability
Just how discoverable is this feature? In this example, there are a number of cues that in-
vite the user to edit. The invitations include:
• Showing a tool tip (“Click to edit”)
• Highlighting the background of the editable area in yellow
• Changing the cursor to an edit cursor (I-beam)
But all these cues display after the user pauses the mouse over the title (mouse hover).
Discoverability depends on the user hovering over the title and then noticing these
invitations.*
To make the feature more discoverable, invitational cues could be included directly in the
page. For example, an “edit” link could be shown along with the title. Clicking the link
would trigger editing. By showing the link at all times, the edit feature would be made
more discoverable.
But this has to be balanced with how much visual noise the page can accommodate. Each
additional link or button makes the page harder to process and can lead to a feature not
being utilized due to the sheer volume of features and their hints shown on the page.
Tip
If readability is more important than editability, keep the editing action hidden until
the user interacts with the content.
Yahoo! Photos† took this approach for editing titles (Figure 1-3). When showing a group
of photos, it would be visually noisy to display edit links beside each title. Instead, the
titles are shown without any editing adornment. As the mouse hovers over a photo title,
the text background highlights. Clicking on the title reveals an edit box. Clicking outside
of the edit field or tabbing to another title automatically saves the change. This approach
reduces the visual noise both during invitation and during editing. The result is a visually
uncluttered gallery of photos.
* While the Yahoo! Design Pattern Library (http://developer.yahoo.com/ypatterns/) was being launched, this
pattern was not included in the initial set of patterns due to an internal debate over this issue of discoverability.
In fact, one of the reviewers, a senior designer and frequent user of Flickr, had only recently discovered the
feature. As a result, we withheld the pattern from the public launch.
† Yahoo! Photos was replaced in 2007 with Flickr.
Single-Field Inline Edit 7
Figure 1-3. Editing titles in Yahoo! Photos keeps visual clutter to a minimum; it simply turns on a
visible edit area during editing
Accessibility
Another concern that arises from inline editing is the lack of accessibility. Accessibility
affects a wider range of users than you might first consider. Assistive technologies help
those with physical impairments, medical conditions, problems with sight, and many
other conditions.
Assistive technologies generally parse the page’s markup to find content, anchors, alter-
nate titles for images, and other page structure. If the inline edit feature does not contain
explicit markup built into the page (such as an explicit, visible edit link), assistive tech-
nologies cannot easily discover the inline edit feature.
In a sense, relying on the mouse to discover features will prevent some users from being
able to edit inline. As mentioned before, providing an explicit edit link helps with discov-
erability (as shown previously in Figure 1-1). But as a by-product it also makes the feature
more accessible.
Tip
Providing an alternative to inline editing by allowing editing on a separate page can
improve accessibility.
There is a natural tension between direct interaction and a more indirect, easily accessible
flow. It is possible to relieve this tension by providing both approaches in the same inter-
face. Flickr actually does this by offering an alternate, separate page for editing (Figure
1-4).
Edit link
Flickr provides a separate “Edit” link for editing the
title, description, and tags for the photo.
8 Chapter 1: In-Page Editing
Figure 1-4. Flickr allows you to also edit a photo’s title, description, and tags in a separate page
Invitation to edit
On mouse hover two actions are revealed: edit and
delete. The “Edit” link serves as the invitation to edit
the note.
Multi-Field Inline Edit 9
Transition to edit
Once you click the “Edit” link, a busy indicator is
animated while an edit form for the title and body
replaces the textual display of the note.
A slight cross-fade transition and a progress indica-
tor are used to cue the user to this switch of con-
text. This ties the textual display and the edit form
together.
Editing
Editing is very straightforward since it uses a form.
It provides the flexibility for other options to be
placed in the editing form.
The “Save note” button completes the edit.
Completion
The edit form is replaced with the new title and
body. To make it clear that a change occurred, the
background is highlighted in yellow. After a few
seconds the yellow is faded back down to the nor-
mal background color.
Contrast this with Flickr’s technique of showing sta-
tus while saving instead of after completion.
Figure 1-5. Backpackit reveals a multi-field form for editing a note’s title and body
Considerations
In Single-Field Inline Edit the difference between display mode and edit mode can be
more easily minimized, making the transition less disruptive. But when editing multiple
fields, there is a bigger difference between what is shown in display mode and what is
needed to support editing.
10 Chapter 1: In-Page Editing
Figure 1-6. Yahoo! 360 shows an “Edit Blast” link to invite editing
Figure 1-7 shows how the blast appears during editing. Notice that the edit form is de-
signed to show both modes (display and editing) in the same visual space.
Overlay Edit 11
Figure 1-7. Yahoo! 360 brings the editing into the displayed blast; the difference between display and
edit modes is minimized
The size similarity was not an accident. During design there was a concerted effort to
make the display mode slightly larger without losing visual integrity, while accommodat-
ing the editing tools in the space of the bubble.
WYSIWYG*
If the two modes (display and editing) are in completely separate spaces, the user may lose
a sense of what effect the change will have during display. In Yahoo! 360, you can change
the type of bubble and immediately see what it will look like. Switching from a “quote”
bubble to a “thought” bubble is reflected while still in editing mode (Figure 1-8). This
would not be possible if editing happened in a separate edit form.
Figure 1-8. Yahoo! 360 immediately displays the new blast type while still in edit mode
Overlay Edit
The previous two patterns brought editing inline to the flow of the page. Inline editing
keeps the editing in context with the rest of the elements on the page.
Overlay Edit patterns bring the editing form just a layer above the page. While still not
leaving the page for editing, it does not attempt to do the editing directly in the flow of the
page. Instead a lightweight pop-up layer (e.g., dialog) is used for the editing pane.
There are several reasons for choosing Overlay Edit instead of Inline Edit.
Sometimes you can’t fit a complex edit into the flow of the page. If the editing area is just
too large, bringing editing inline can shuffle content around on the page, detracting from
the overall experience. A noisy transition from display to edit mode is not desirable.
* What You See Is What You Get: an interface where content displayed during editing appears very similar to the
final output.
12 Chapter 1: In-Page Editing
At other times you might choose to interrupt the flow, especially if the information be-
ing edited is important in its own right. Overlays give the user a definite editing space. A
lightweight overlay does this job nicely.*
Tip
An Overlay Edit is a good choice if the editing pane needs dedicated screen space
and the context of the page is not important to the editing task.
Yahoo! Trip Planner is an online place for creating and sharing trip plans. Trips contain
itinerary items that can be scheduled. When scheduled, the itinerary contains the dates
the item is scheduled. Each item can be edited in an overlay (Figure 1-9).
Non-editing state
Each itinerary item in Yahoo! Trip Planner can be
scheduled.
You can add dates or edit an existing one. The
dates scheduled are displayed in a simple read-
able format.
Invitation to edit
The “[Edit]” link is the invitation to edit.
It is shown at all times.
* In the past, separate browser windows were used for secondary windows. Lightweight overlays simply map the
secondary content into a floating layer on the page. The resulting overlay feels more lightweight. See Chapter 5.
Overlay Edit 13
Editing
The edit form is shown in an overlay.
Since scheduling an itinerary item requires several
fields of input, the overlay provides a nice place to
contain this editing.
Completion
The itinerary item is scheduled after pressing the
Update button.
No transitions are used. The presence of the sched-
uled date signifies that it has been added.
Figure 1-9. Yahoo! Trip Planner provides a complex editor in an overlay for scheduling an itinerary
item
Considerations
“Sun Jun 4 12:00am—Mon Jun 5 12:00am” is easier to read than a format appropriate for
editing (Figure 1-10). Using an editor prevents errors when entering the start and end
dates for a specific itinerary item.
Figure 1-10. Yahoo! Trip Planner provides an overlay editor for adjusting itinerary times
Since the range of dates is known, Trip Planner uses a series of drop-downs to pick the
start and end dates along with the time.
It should be noted that using multiple drop-downs for choosing the hour and minute is not
the best experience. Although not in the context of an overlay, a better example of choosing
an event time when creating an event can be found at Upcoming.org (Figure 1-11).
14 Chapter 1: In-Page Editing
Figure 1-11. Upcoming provides a better experience for choosing time of day
The experience of picking a time from a single list (or typing the time in) is more direct
than navigating multiple drop-downs.
Why an overlay?
An overlay should be considered when:
• The editing module is considerably larger than the display values.
• Opening an area on the page for the editing module would be distracting or push
important information down the page.
• There is concern that the opened information might go partially below the fold. An
overlay can be positioned to always be visible in the page.
• You want to create a clear editing area for the user.
• What you are editing is not frequently edited. Having to click on an edit link, adjust to
the pop-up location, perform your edit, and close the dialog is a tedious way to edit a
series of items. In such cases, opt to either dedicate a space on the page for each item
as it is selected, or allow the editing to occur in context to remove some of the time
required to deal with an overlay.
• What you are editing is a single entity. If you have a series of items, you should not
obscure the other similar items with an overlay. By allowing the edit to occur in con-
text, you can see what the other item’s values are while editing.
Table Edit 15
Table Edit
Editing tables of data is less common in consumer web applications. In enterprise web
applications, however, tables reign supreme. The most common request is for the table
editing to work like Microsoft Excel, which long ago set the standard for editing data in
a grid.
A good example of Table Edit is a Google Docs Spreadsheet (Figure 1-12).
16 Chapter 1: In-Page Editing
Non-editing state
Each cell is tuned toward readability. There are no
editing clues while in this state.
Invitation to edit
The invitation to edit comes after the cell is
clicked.
Editing
An edit box is overlaid on top of the cell being ed-
ited. This invites the user to actually type as much
text as she needs into the cell.
Completion
Completion occurs when the user tabs, clicks out-
side the cell, or presses Enter.
Figure 1-12. Editing a spreadsheet in Google Docs is very similar to editing a spreadsheet in Microsoft
Excel
Table Edit 17
Considerations
Presentation is the primary consideration when displaying a table of data. Editing is sec-
ondary. As a result, the editing scaffolding is hidden and only revealed when it’s clear the
user wants to edit a cell.
Activation
A single mouse click is required to start editing a cell instead of a mouse hover. This
is consistent with keeping the display of the grid uncluttered. Imagine how irritating it
would be if every mouse motion revealed an edit box.
Tip
You should generally avoid double-click in web applications. However, when web ap-
plications look and behave like desktop applications, double-click can be appropriate.
Rendering versus editing. Google Spreadsheet displays the edit box slightly larger than the cell.
This clearly indicates editability and lets the user know that input is not limited to the size
of the cell (the edit box actually dynamically resizes as the user types into it). The only is-
sue to consider is that the larger edit area covers other table cells. However, this works well
in this case since editing is explicitly triggered by a mouse click. If activation had occurred
on a mouse hover, the edit mode would have interfered with cell-to-cell navigation.
Group Edit
As mentioned before, it is a good idea to keep the differences between the edit mode and
the display mode as minimal as possible. In fact, it is a good idea to minimize modes
where possible. In honor of this principle, a former manager of mine sported a vanity
plate with the phrase “NOMODES”. However, modes cannot be avoided altogether, as
they do provide necessary context for completing specific tasks.
If you want to keep the display of items on the page as uncluttered as possible while still
supporting editing, consider using a single mechanism to enter a special editing mode:
Group Edit.
On the iPhone’s home screen, the icons are normally locked down. However, there is a
way to switch into a special Group Edit mode that allows you to rearrange the icon’s posi-
tions by drag and drop. You enter the mode by pressing down continuously on an icon
until the editing mode is turned on (Figure 1-13).
Non-editing state
Tapping icons on the iPhone launches an
application.
What we would like is to switch into a mode where
we can move the icons around.
Holding down on an icon activates the rearrange
mode.
Invitation to rearrange
When the mode is activated, all of the icons begin
to wiggle.
This gives the clue that the icons are “loose” and
may be rearranged.
Group Edit 19
Rearranging
Tapping an icon no longer launches an applica-
tion. Instead, you can drag and drop icons into
new positions.
Completion
Pressing the “Home” button returns you to the
normal Home screen functionality (exiting the re-
arranging mode).
Figure 1-13. The iPhone has a special mode for rearranging applications on the home page—pressing
and holding down on an icon places all the applications in “wiggly mode”
Considerations
The Apple technique signifies that we have entered a special editing mode. When the
icons become “wiggly,” it is not a large intuitive leap that the icons have become loose and
thus we can rearrange them.
Discoverability
Admittedly, the feature is not very discoverable. But it can be argued that it is straight-
forward once discovered. However, pressing the home button deactivates the rearranging
mode. This really should operate more like a toggle. A better way to exit the “wiggly”
mode would be to press and hold down on a wiggly icon. It follows the idea that you are
pushing the icon back into its fixed place. Since deactivation is not the same mechanism
as activation, it is a little hard to figure out how to go back into the normal display mode.
20 Chapter 1: In-Page Editing
Tip
Activation and deactivation should normally follow the same interaction style. This
makes it easy to discover the inverse action. This is a principle we call Symmetry of
Interaction.
Another example of group editing is in the 37 Signals product, Basecamp (Figure 1-14).
When sharing files with Basecamp, you can organize them into various categories. The
categories are like folders. Clicking on a category link shows all the files in that “folder.”
What if you want to delete a category? Or rename it? At the top of the category section
there is a single “Edit” link that turns on editing for the whole area.
Figure 1-14. 37 Signals Basecamp provides a way to toggle a set of items into edit mode
Once the Group Edit mode is entered, you can add another category, rename an existing
category, or delete empty categories. Notice the “Edit” link toggled to read “Done Editing”.
Clicking this link exits the group-editing mode.
Tip
Switching between edit modes should happen instantaneously. There is no point in
making the user wait on an animation to finish before he can start editing.
Symmetry of Interaction
Unlike the iPhone example, you turn off editing in the same manner and location that
you switched it on. The “Done Editing” link is in the same spot as the “Edit” link was.
Since both are hyperlinks, they have the same interaction style. Interactions should be
symmetrical wherever possible.
Module Configuration 21
Module Configuration
Popular portal sites like Yahoo! and Google’s interactive home page display specific con-
tent modules (e.g., Top Stories).
Module Configuration is a common pattern on these types of sites. Instead of modifying
modules on a separate page, the sites provide ways to directly configure the amount and
type of content that shows in each module. The My Yahoo! home page provides an “Edit”
link that allows for Module Configuration (Figure 1-15).
Non-configuration state
A news module contains top news stories. Each mod-
ule also has an “Edit” link.
Invitation to configure
The “Edit” link is the invitation to edit.
Activating edit slides in a mini-configuration panel in
context with the news stories.
Configuration
The mini-form allows you to change the title and the
number of stories that show. You can save the chang-
es with the “Save” button. The “Close Edit” link forms
a symmetrical interaction for edit activation and de-
activation. However, there is ambiguity: does “Close
Edit” do the same operation as “Save”?
22 Chapter 1: In-Page Editing
Completion
The number of news stories changes and the mini-
configuration panel slides back out of the way.
Figure 1-15. Configuring modules on the My Yahoo! page can be done directly in place
Considerations
There are some issues to consider when using Module Configuration.
Visual noise
Putting edit links on each module can be visually noisy. An alternative approach is to
use the Group Edit pattern (as we saw in Figure 1-14) to place an edit link at the page
level that turns on edit links for each module. When the “Done Editing” link is clicked,
the links for each module are hidden. Again the trade-off is between visual noise and
discoverability.
One of the great innovations that the Macintosh brought to the world in 1984 was Drag
and Drop. Influenced by the graphical user interface work on Xerox PARC’s Star In-
formation System and subsequent lessons learned from the Apple Lisa, the Macintosh
team invented drag and drop as an easy way to move, copy, and delete files on the user’s
desktop.
It was quite a while before drag and drop made its way to the Web in any serious applica-
tion. In 2000, a small startup, HalfBrain,* launched a web-based presentation application,
BrainMatter. It was written entirely in DHTML and used drag and drop as an integral part
of its interface.
Drag and drop showed up again with another small startup, Oddpost,† when it launched
a web-based mail application (Figure 2-1) that allowed users to drag and drop messages
between folders.
* HalfBrain also created a full spreadsheet application written in DHTML prior to this. It included many of the
features of Microsoft Excel.
† Some of the developers at Oddpost actually came from HalfBrain. Yahoo! later purchased Oddpost’s mail ap-
plication to form the basis for the current Yahoo! Mail product.
26 Chapter 2: Drag and Drop
Figure 2-1. The Oddpost web mail client performed like a desktop mail application and included drag
and drop as a key feature
The biggest hindrance was the difficulty in saving the user’s state after a drag was com-
pleted without refreshing the page. It was possible, but the underlying technology was not
consistent across all browsers. Now that the technologies underlying Ajax* have become
widely known and a full complement of browsers support these techniques, Drag and
Drop has become a more familiar idiom on the Web.
Interesting Moments
At first blush, drag and drop seems simple. Just grab an object and drop it somewhere.
But, as always, the devil is in the details. There are a number of individual states at which
interaction is possible. We call these microstates interesting moments:†
• How will users know what is draggable?
• What does it mean to drag and drop an object?
• Where can you drop an object, and where is it not valid to drop an object?
• What visual affordance will be used to indicate draggability?
* Jesse James Garrett, founder of Adaptive Path, originally defined the term Ajax as “Asynchronous JavaScript
and XML.” However, it generally means being able to retrieve information or save state without refreshing the
page—an integral ability for any rich interaction.
† Bill Scott, author of this book, originally called these interaction events. Eric Miraglia, a former colleague of his
at Yahoo!, coined the more colorful term interesting moments.
Interesting Moments 27
• During drag, how will valid and invalid drop targets be signified?
• Do you drag the actual object?
• Or do you drag just a ghost of the object?
• Or is it a thumbnail representation that gets dragged?
• What visual feedback should be used during the drag and drop interaction?
What makes it challenging is that there are a lot of events during drag and drop that can
be used as opportunities for feedback to the user. Additionally, there are a number of ele-
ments on the page that can participate as actors in this feedback loop.
The Events
There are at least 15 events available for cueing the user during a drag and drop interaction:
Page Load
Before any interaction occurs, you can pre-signify the availability of drag and drop.
For example, you could display a tip on the page to indicate draggability.
Mouse Hover
The mouse pointer hovers over an object that is draggable.
Mouse Down
The user holds down the mouse button on the draggable object.
Drag Initiated
After the mouse drag starts (usually some threshold—3 pixels).
Drag Leaves Original Location
After the drag object is pulled from its location or object that contains it.
Drag Re-Enters Original Location
When the object re-enters the original location.
Drag Enters Valid Target
Dragging over a valid drop target.
Drag Exits Valid Target
Dragging back out of a valid drop target.
Drag Enters Specific Invalid Target
Dragging over an invalid drop target.
Drag Is Over No Specific Target
Dragging over neither a valid or invalid target. Do you treat all areas outside of valid
targets as invalid?
Drag Hovers Over Valid Target
User pauses over the valid target without dropping the object. This is usually when a
spring loaded drop target can open up. For example, drag over a folder and pause, the
folder opens revealing a new area to drag into.
28 Chapter 2: Drag and Drop
The Actors
During each event you can visually manipulate a number of actors. The page elements
available include:
• Page (e.g., static messaging on the page)
• Cursor
• Tool Tip
• Drag Object (or some portion of the drag object, e.g., title area of a module)
• Drag Object’s Parent Container
• Drop Target
Tip
You can use an interesting moments grid to capture any complex interaction.
The grid is a handy tool for planning out interesting moments during a drag and drop
interaction. It serves as a checklist to make sure there are no “holes” in the interaction.
Just place the actors along the lefthand side and the moments along the top. In the grid
intersections, place the desired behaviors.
Purpose of Drag and Drop 29
Figure 2-2. A simplified interesting moments grid for the original My Yahoo! drag and drop design;* it
provided a way to capture the complexities of drag and drop into a single page
Invitation to drag
Moving the mouse to a module’s header changes
the cursor to indicate that the item is draggable.
Dragging
The module being moved is dragged directly. A
ripped-out “hole” is exposed where the module
was dragged from.
Drag and Drop Module 31
Invitation to drop
Dragging the module opens up a new hole indi-
cating where the object will be dropped.
The hole always indicates where the object will go
when dropped.
Figure 2-3. Netvibes allows modules to be arranged directly via drag and drop; the hole cues what will
happen when a module is dropped
Considerations
Netvibes allows its modules to be rearranged with drag and drop. A number of interesting
moments decide the specific interaction style for this site. Figure 2-4 shows the interesting
moments grid for Netvibes.
Figure 2-4. Interesting moments grid for Netvibes: there are 20 possible moments of interaction;
Netvibes specifically handles 9 of these moments
While dragging, it is important to make it clear what will happen when the user drops the
dragged object. There are two common approaches to targeting a drop:
• Placeholder target
• Insertion target
32 Chapter 2: Drag and Drop
Placeholder target
Netvibes uses a placeholder (hole with dashed outline) as the drop target. The idea (il-
lustrated in Figure 2-5) is to always position a hole in the spot where the drop would
occur. When module 1 starts dragging, it gets “ripped” out of the spot. In its place is the
placeholder target (dashed outline). As 1 gets dragged to the spot between 3 and 4, the
placeholder target jumps to fill in this spot as 4 moves out of the way.
Figure 2-5. A placeholder target always shows where the dragged module will end after the drop;
module 1 is being dragged from the upper right to the position between modules 3 and 4
The hole serves as a placeholder and always marks the spot that the dragged module will
land when dropped. It also previews what the page will look like (in relation to the other
modules) if the drop occurs there. For module drag and drop, the other modules only
slide up or down within a vertical column to make room for the dragged module.
One complaint with using placeholder targets is that the page content jumps around a lot
during the drag. This makes the interaction noisier and can make it harder to understand
what is actually happening. This issue is compounded when modules look similar. The
user starts dragging the modules around and quickly gets confused about what just got
moved. One way to resolve this is to provide a quick animated transition as the modules
move. It is important, however, that any animated transitions not get in the way of the
normal interaction. In Chapter 11, we will discuss timing of transitions in detail.
There is a point in Figure 2-5 where the placeholder shifts to a new location. What deter-
mines placeholder targeting? In other words, what determines where the user is intending
to place the dragged object? The position of the mouse, the boundary of the dragged ob-
ject, and the boundary of the dragged-over object can all be used to choose the module’s
new location.
Boundary-based placement. Since most sites that use placeholder targeting drag the module
in its original size, targeting is determined by the boundaries of the dragged object and
the boundaries of the dragged-over object. The mouse position is usually ignored be-
cause modules are only draggable in the title (a small region). Both Netvibes and iGoogle
take the boundary-based approach. But, interestingly, they calculate the position of their
placeholders differently.
Drag and Drop Module 33
In Netvibes, the placeholder changes position only after the dragged module’s title bar has
moved beyond the dragged-over module’s title bar. In practice, this means if you are moving
a small module to be positioned above a large module, you have to move it to the very top of
the large module. In Figure 2-6 you have to drag the small “To Do List” module all the way
to the top of the “Blog Directory” module before the placeholder changes position.
Figure 2-6. In Netvibes, dragging a small module to be placed above a large module requires dragging a
large distance; the “To Do List” has to be dragged to the top of the “Blog Directory” module
In contrast, moving the small module below the large module actually requires less drag
distance since you only have to get the title bar of the small module below the title bar of
the large module (Figure 2-7).
Figure 2-7. Dragging a small module below a large module requires a smaller drag distance; since the
targeting is based on the header of the dragged-over module, the drag distance in this scenario is less
than in the previous figure
Figure 2-8. The Netvibes approach requires the dragged object’s title to be placed above or below a
module before the placement position changes; this results in inconsistent drag distances
A more desirable approach is that taken by iGoogle. Instead of basing the drag on the title
bar, iGoogle calculates the placeholder targeting on the dragged-over object’s midpoint.
In Figure 2-9, the stock market module is very large (the module just above the moon
phase module).
Figure 2-9. When dragging a module downward, iGoogle moves the placeholder when the bottom of
the dragged module crosses the midpoint of the object being dragged over; the distance to accomplish a
move is less than in the Netvibes approach
With the Netvibes approach, you would have to drag the stock module’s title below the
moon phase module’s title. iGoogle instead moves the placeholder when the bottom of the
dragged module (stock module) crosses the midpoint of the dragged over module (moon
phase module).
Drag and Drop Module 35
What happens when we head the other way? When we drag the stock module up to place
it above the moon phase module, iGoogle moves the placeholder when the top of the
stock module crosses the midpoint of the moon phase module (Figure 2-10).
Figure 2-10. When dragging a module upward, iGoogle moves the placeholder when the top of the
dragged module crosses the midpoint of the object being dragged over; dragging modules up or down
requires the same effort, unlike in the Netvibes example
As Figure 2-11 illustrates, module 1 is dragged from the first column to the second col-
umn, the placeholder moves above module 3. As module 1 is dragged downward, the
placeholder moves below 3 and 4 as the bottom of module 1 crosses their midpoints.
Figure 2-11. To create the best drag experience, use the original midpoint location of the module being
dragged over to determine where to drop the dragged module: module 1 is being dragged into the
position just below module 4
36 Chapter 2: Drag and Drop
The net result is that the iGoogle approach feels more responsive and requires less mouse
movement to position modules. Figure 2-12 shows the interesting moments grid for the
iGoogle drag and drop interaction.
Figure 2-12. Interesting moments grid for iGoogle: as in the Netvibes grid, there are 20 possible
moments of interaction; iGoogle specifically handles 8 of these moments
Insertion target
Placeholder positioning is a common approach, but it is not the only way to indicate drop
targeting. An alternate approach is to keep the page as stable as possible and only move
around an insertion target (usually an insertion bar). A previous version of My Yahoo! used
the insertion bar approach as the dragged module was moved around (see Figure 2-13).
While the module is dragged, the page remains stable. No modules move around. Instead
an insertion bar marks where the module will be placed when dropped.
This technique is illustrated in Figure 2-14. When module 1 is dragged to the position
between 3 and 4, an insertion bar is placed there. This indicates that if 1 is dropped,
then 4 will slide down to open up the drop spot.
Figure 2-14. Using an insertion bar keeps the page stable during dragging and makes it clear how
things get rearranged when the module is dropped
Unlike with the placeholder target, the dragged module 1 is usually represented with a
slightly transparent version of the module (also known as ghosting). This is the approach
shown in Figure 2-13 in an earlier version of My Yahoo!. In the most current version, full-
size module dragging has been replaced with a thumbnail representation (the small gray
outline being dragged in Figure 2-15). This is somewhat unfortunate since the small gray
outline is not very visible.
Figure 2-15. My Yahoo! uses a small gray rectangle to represent the dragged module
As you can see in Figure 2-16, the My Yahoo! page makes different decisions about how
drag and drop modules are implemented as compared to Netvibes (Figure 2-4) and
iGoogle (Figure 2-12).
Figure 2-16. My Yahoo! uses 15 of the possible 32 moments to interact with the user during drag and
drop; the biggest difference between My Yahoo!, Netvibes, and iGoogle is the insertion bar placement—
another subtle difference is how drag gets initiated
Drag and Drop Module 39
Drag distance
Dragging the thumbnail around does have other issues. Since the object being dragged is
small, it does not intersect a large area. It requires moving the small thumbnail directly
to the place it will be dropped. With iGoogle, the complete module is dragged. Since the
module will always be larger than the thumbnail, it intersects a drop target with much less
movement. The result is a shorter drag distance to accomplish a move.
Tip
Keep in mind that Drag and Drop takes additional mouse dexterity. If possible,
shorten the necessary drag distance to target a drop.
Drag rendering
How should the dragged object be represented? Should it be rendered with a slight trans-
parency (ghost)? Or should it be shown fully opaque? Should a thumbnail representation
be used instead?
As shown earlier, My Yahoo! uses a small gray rectangle to represent a module (Figure 2-15).
Netvibes represents the dragged module in full size as opaque (shown back in Figure 2-3),
while iGoogle uses partial transparency (Figure 2-17). The transparency (ghosting) ef-
fect communicates that the object being dragged is actually a representation of the dragged
object. It also keeps more of the page visible, thus giving a clearer picture of the final result
of a drop.
Figure 2-17. On iGoogle the dragged module Top Stories is given transparency to make it easier to see
the page and to indicate that we are in a placement mode
Ghosting the module also indicates that the module is in a special mode. It signals that the
module has not been positioned; instead, it is in a transitional state.
40 Chapter 2: Drag and Drop
Tip
For Drag and Drop Modules, use the module’s midpoint to control the drop targeting.
Of the various approaches for Drag and Drop Modules, iGoogle combines the best ap-
proaches into a single interface:
Placeholder targeting
Most explicit way to preview the effect.
Midpoint boundary
Requires the least drag effort to move modules around.
Full-size module dragging
Coupled with placeholder targeting and midpoint boundary detection, it means drag
distances to complete a move are shorter.
Ghost rendering
Emphasizes the page rather than the dragged object. Keeps the preview clear.
Invitation to drag
One of the in-context tools revealed during mouse
hover shows a four-way arrow indicating that the
object can be moved.
Dragging this object allows the list item to be
moved.
Dragging
Rearranging occurs in real time. An empty slot is
exposed where the dragged item will fit.
Dropped
The item snaps into the new location (where the
hole was opened up).
Figure 2-18. Backpackit allows to-do lists to be rearranged directly via drag and drop
42 Chapter 2: Drag and Drop
Considerations
Backpackit takes a real-time approach to dragging items. Since the list is constrained, this
is a natural approach to moving objects around in a list. You immediately see the result
of the drag.
Placeholder target
This is essentially the same placeholder target approach we discussed earlier for drag-
ging and dropping modules. The difference is that when moving an item in a list, we are
constrained to a single dimension. Less feedback is needed. Instead of a “ripped-out” area
(represented earlier with a dotted rectangle), a simple hole can be exposed where the ob-
ject will be placed when dropped.
A good example from the desktop world is Apple’s iPhoto. In a slideshow, you can easily
rearrange the order of photos with drag and drop. Dragging the photo left or right causes
the other photos to shuffle open a drop spot (Figure 2-19).
Figure 2-19. iPhoto uses cursor position: when the cursor crosses a threshold (the edge of the next
photo), a new position is opened up
The difference between iPhoto and Backpackit is that instead of using the dragged photo’s
boundary as the trigger for crossing a threshold, iPhoto uses the mouse cursor position.
In the top row of Figure 2-19, the user clicked on the right side of the photo. When the
cursor crosses into the left edge of the next photo, a new space is opened. In the bottom
row, the user clicked on the top left side of the photo. Notice in both cases it is the mouse
position that determines when a dragged photo has moved into the space of another pho-
to, not the dragged photo’s boundary.
Tip
In a Drag and Drop List, use the mouse position to control where the item will be
dropped.
Drag and Drop List 43
Insertion target
Just as with Drag and Drop Modules, placeholder targeting is not the only game in town.
You can also use an insertion bar within a list to indicate where a dropped item will land.
Netflix uses an insertion target when movies are dragged to a new location in a user’s
movie queue (Figure 2-20).
Invitation to drag
The cursor changes to indi-
cate draggability.
Dragging
A hole is marked where
the item is pulled from. The
dragged item’s index num-
ber changes and an insertion
bar indicates where it will be
moved to.
Dropped
The item is moved immedi-
ately into the spot marked
by the insertion bar.
Figure 2-20. A Netflix queue can be rearranged via drag and drop
The upside to this approach is that the list doesn’t have to shuffle around during drag. The
resulting experience is smoother than the Backpackit approach. The downside is that it is
not as obvious where the movie is being positioned. The insertion bar appears under the
ghosted item. The addition of the brackets on the left and right of the insertion bar is an
attempt to make the targeting clearer.
44 Chapter 2: Drag and Drop
Spring loaded
The movie does not imme-
diately start moving up. In-
stead, it drops down and to
the right slightly. This gives
the feeling that the movie is
being launched to the top.
Drag and Drop List 45
Figure 2-21. When a movie is moved to the top with the “Move to Top” button, the movie jerks down
slightly, then springs to the top
The combination of the downward jerk and then the quick animation to the top gives a
subtle clue that the object is draggable. This is also an interesting moment to advertise
drag and drop. After the move to top completes, a simple tip could appear to invite users
to drag and drop. The tip should probably be shown only once, or there should be a way
to turn it off. Providing an invitation within a familiar idiom is a good way to lead users
to the new idiom.
Tip
If drag and drop is a secondary way to perform a task, use the completion of the famil-
iar task as an opportunity invite the user to drag and drop the next time.
Drag lens
Drag and drop works well when a list is short or the items are all visible on the page.
But when the list is long, drag and drop becomes painful. Providing alternative ways
to rearrange is one way to get around this issue. Another is to provide a drag lens while
dragging.
A drag lens provides a view into a different part of the list that can serve as a shortcut
target. It could be a fixed area that is always visible, or it could be a miniature view of
the list that provides more rows for targeting. The lens will be made visible only during
dragging. A good example of this is dragging the insertion bar while editing text on the
iPhone (Figure 2-22).
46 Chapter 2: Drag and Drop
Figure 2-22. The iPhone provides a drag magnifier lens that makes it easier to position the cursor
Invitation to drag
When the mouse hovers over a member of the
organization, the cursor changes to show dragga-
bility. In addition, the texture in the top-left corner
changes to represent a dimpled surface. This hints
at draggability.
Dragging
An insertion bar is used to indicate where the
member will be inserted when dropped.
Dropped
When the dragged member is dropped, the chart
is rearranged to accommodate the new location.
Figure 2-23. Cogmap allows organizational charts to be rearranged on the fly with drag and drop
48 Chapter 2: Drag and Drop
Considerations
When object relationships can be clearly represented visually, drag and drop is a natural
choice to make these type of changes. Cogmap uses the target insertion approach. This
allows the dragging to be nondistracting, since the chart does not have to be disturbed
during targeting.
Figure 2-24. Bubbl.us provides a visual indication of which node the dropped node will attach itself to
In both cases, immediate preview is avoided since it is difficult to render the relationships
in real time without becoming unnecessarily distracting.
Looking outside the world of the Web, the desktop application Mind Manager also uses
highlighting to indicate the parent in which insertion will occur. In addition, it provides
insertion targeting to give a preview of where the employee will be positioned once
dropped (Figure 2-25).
Figure 2-25. Mind Manager is a desktop tool that uses a combination of insertion targeting plus a clear
preview of the drop
Drag and Drop Object 49
Drag initiated
When a message drag is ini-
tiated, a snippet of the mes-
sage is shown, along with
an icon denoting whether a
drop can be made.
Instead of signaling that a drop is valid or invalid by changing the visual appearance of the
area dragged over, Yahoo! Mail shows validity through the dragged object. When a drop
will be invalid (Figure 2-27, left):
• The dragged object’s icon becomes a red invalid sign.
• If over an invalid folder, the folder is highlighted as well.
When a drop will be valid (Figure 2-27, right):
• The dragged object’s icon changes to a green checkmark.
• The drop target highlights.
50 Chapter 2: Drag and Drop
Another approach is to signal both validity and location in the drop target itself. In this
case you would highlight the valid drop target when it is dragged over and not highlight
the drop target if it is invalid. In Yahoo! Mail’s interaction, the signaling of validity and
where it can be dropped are kept separate. This allows a drag to indicate that a target is a
drop target, just not valid for the current object being dragged.*
Figure 2-27. Yahoo! Mail mistakenly shows a valid indicator instead of an invalid indicator for a
message when it is dragged back over the inbox
One odd situation occurs when you first start dragging a message and then later drag it
back into the inbox area (Figure 2-27). At first it shows the inbox as an invalid drop area.
Then it shows it as a valid drop area. Recall in our discussion on the various interesting
events that initially dragging over your “home area” and then later dragging back into it
are all events that should be considered during drag and drop. Here the interface needs to
display the same indicator in both cases.
Tip
Feedback during dragging is key to providing a clear Drag and Drop Object interaction.
* For example, while a contact may be dragged into the Contacts folder, a message may not. In either situa-
tion, the Contacts folder will highlight. However, the dragged contact will show a green checkmark, while the
dragged message will show a red invalid sign.
Drag and Drop Object 51
Figure 2-28. By offsetting the drag object a large distance from the cursor, the message feels disjointed
from the actual object being dragged; in fact, it looks like it is closer to the second message in the list
instead of the first message actually being dragged
Figure 2-29. Yahoo! Mail requires the user to drag four or five pixels to initiate a drag (notice the cursor
is at the top of the “B” and has to be dragged 2/3 of the way down to start the drag); this gives the
impression that the message is stuck and not easy to drag. Reducing this value will make messages feel
easier to drag
A good rule of thumb on drag initiation comes from the Apple Human Interface
Guidelines:
Your application should provide drag feedback as soon as the user drags an item at
least three pixels. If a user holds the mouse button down on an object or selected text,
it should become draggable immediately and stay draggable as long as the mouse
remains down.*
It might seem like a small nit, but there is quite a difference between starting a drag after
three pixels of movement versus four or five pixels. The larger value makes the object feel
hard to pull out of its slot to start dragging. On the flip side, starting a drag with too small
a value can cause drag to initiate accidentally, usually resulting in the interface feeling too
finicky.
Tip
Start a drag when the object is dragged three pixels or the mouse is held down for half
a second.
* See http://tinyurl.com/5aqd4k for the Apple Human Interface Guideline on drag feedback.
52 Chapter 2: Drag and Drop
The only part of the Apple guideline that could be quibbled with is whether to start drag
mode immediately on mouse down or wait about a half-second to start. Why not initiate
the drag immediately? Certain devices, like pen input, are not as precise as mouse input. If
you allow an object to be dragged and that object has other controls (like hyperlinks), you
will want to allow the user to start a drag even if he clicks down over some element within
the object (like a hyperlink). You will also want to allow him to just click the hyperlink and
not have a drag accidentally initiate. Moving into drag mode immediately will preclude
the ability to disambiguate between a click on an item within the object versus a drag start
on the object itself.
Invitation to drag
The invitation is clear. By using the
drop target area as an advertisement
for the drag feature, the process is dis-
coverable (as well as natural).
Dropped
Photos dropped are collected into an
upload area. Pressing “Start Upload”
starts the uploading process.
Completed
All items are marked Complete when
finished.
Figure 2-30. Yahoo! Photos provided a way to upload files directly to the site via drag and drop from
the user’s filesystem into the web page
54 Chapter 2: Drag and Drop
Considerations
This is not a trivial implementation. But it does clearly illustrate the benefit of drag and
drop for operating on a set of files. The traditional model requires each photo to be se-
lected individually for upload. Drag and drop frees you to use whatever browsing method
is available on your system and then drop those photos for upload.
Figure 2-31. Drag and drop recommendations: the hard way to do ratings
Figure 2-32. Instead of drag and drop, Netflix uses a simple set of stars to rate a movie
You might still be tempted to take this approach if you have a lot of objects that you want
to add as favorites or set an attribute on. Don’t give in. This method still falls way short
since the amount of space needed for this far outweighs simpler approaches such as pro-
viding an action button for the selected objects.
Tip
Drag and drop should never be forced. Don’t create an artificial visual construct to
support it.
Invitation to drag
Hovering over any part of the route provides a
draggable circle (route point) with a tool tip saying
“Drag to change route”.
Dragging
We want to stay on the east side of the bay and
cross the San Mateo bridge. Dragging the route
bubble back over the bridge will reroute our trip.
Dropped
The route changes as we drag. Dropping com-
pletes the rerouting action.
This is the opposite of the Artificial Visual Construct anti-pattern. The route is a Natural
Visual Construct. Since anywhere along the route is draggable, there are a lot of opportu-
nities to discover the rerouting bubble. When the route is being dragged, Google dynami-
cally updates it. The constant feedback forms the basis of a Live Preview (which we will
discuss in Chapter 13).
Invitation to drag
You can add to the cart with the “+ cart” button or
you can drag the item to the shopping cart. If you
use the button, the item flies to the cart; the cart
bumps open and closed briefly to indicate that the
item has been entered.
Dragging
The item gets a dragging treatment.
Dropped
The cart is populated with the new item.
Figure 2-34. This Laszlo shopping cart demo uses both drag and drop and a button action to add items
to its shopping cart
Considerations
There are a few issues to consider in this example.
Discoverability
Drag and drop is a natural way collect items for purchase. It mimics the shopping experi-
ence in the real world. Grab an item. Drop it in your basket. This is fast and convenient
once you know about the feature. However, as a general rule, you should never rely solely
on drag and drop for remembering items.
The Challenges of Drag and Drop 59
Parallel, more explicit ways to do the same action should be provided. In this example,
Laszlo provides an alternative to dragging items in the cart. Notice the “+ cart” button in
Figure 2-34. Clicking this button adds the item to the shopping cart.
Teachable moment
When providing alternates to drag and drop, it is a good idea to hint that dragging is an
option. In the Laszlo example, clicking the “+ cart” button causes the shopping cart tray
to bump slightly open and then closed again. This points to the physicality of the cart. Us-
ing another interaction as a teachable moment to guide the user to richer interactions is a
good way to solve discoverability issues.
Tip
Look for opportunities for teachable moments in the interface leading users to ad-
vanced features.
When the Macintosh was introduced, it ushered into the popular mainstream the ability
to directly select objects and apply actions to them. Folders and files became first-class
citizens. Instead of a command line to delete a file, you simply dragged a file to the trash-
can (Figure 3-1).
Figure 3-1. DOS command line for deleting a file versus dragging a file to the trash on the Macintosh
Treating elements in the interface as directly selectable is a clear application of the Make
It Direct principle. On the desktop, the most common approach is to initiate a selection
by directly clicking on the object itself. We call this selection pattern Object Selection
(Figure 3-2).
Figure 3-2. Files can be selected directly on the Macintosh; Object Selection is the most common
pattern used in desktop applications
Toggle Selection
Checkbox or control-based selection.
Collected Selection
Selection that spans multiple pages.
Object Selection
Direct object selection.
Hybrid Selection
Combination of Toggle Selection and Object Selection.
Toggle Selection
The most common form of selection on the Web is Toggle Selection. Checkboxes and
toggle buttons are the familiar interface for selecting elements on most web pages. An
example of this can be seen in Figure 3-3 with Yahoo! Mail Classic.
Figure 3-3. In Yahoo! Mail Classic a mail message can be selected by clicking on the corresponding row’s
checkbox
The way to select an individual mail message is through the row’s checkbox. Clicking on
the row itself does not select the message. We call this pattern of selection Toggle Selec-
tion since toggle-style controls are typically used for selecting items.
Tip
Toggle Selection is the easiest way to allow discontinuous selection.
Once items have been check-selected, actions can be performed on them. Usually these
actions are performed on the selection by clicking on a separate button (e.g., the Delete
button). Gmail is a good example of actions in concert with Toggle Selection (Figure
3-4).
Toggle Selection 63
Unselected state
Each mail message has a checkbox that controls
whether it is selected or not.
Selected items
Two mail messages have been selected. In addition
to the checkbox selection, the selected items are
highlighted in light yellow.
Action triggered
Delete will operate on the selected items.
Action completed
The two selected email messages have been
deleted.
Considerations
Toggle Selection with checkboxes has some nice attributes:
• Clear targeting, with no ambiguity about how to select the item or deselect it.
• Straightforward discontinuous selection, and no need to know about Shift or Control-
key ways to extend a selection. Just click the checkboxes in any order, either in a
continuous or discontinuous manner.
• Clear indication of what has been selected.
Tip
Toggle Selection is the normal pattern used when content is paged. Actions normally
apply only to the selected items on the visible page.
Figure 3-5. Yahoo! Mail uses a scrolled list for its messages; selection includes what is in the visible part
of the list as well as what is scrolled out of view
Selected items
When items get selected, a status
bar appears that keeps a tally of the
number of items selected. The close
button (x) is an alternate way to de-
select the selected items.
Select all
A “select all” checkbox selects all
items on the page. The selection
status then shows the current num-
ber of items selected.
66 Chapter 3: Direct Selection
No selection
If a tool is chosen and there is noth-
ing selected, a message appears
explaining why the action could not
take place.
This is opposite of the normal error-
prevention technique of disabling
the tool when nothing is selected.
Figure 3-6. Yahoo! Bookmarks explicitly displays the state of the selection
The advantage of this method is that it is always clear how many items have been selected.
Visualizing the underlying selection model is generally a good approach. This direct ap-
proach to selection and acting on bookmarks creates a straightforward interface.
One interesting question: what happens when nothing is selected? One approach is to dis-
able any actions that require at least one selected item. Yahoo! Bookmarks takes a different
approach. Since buttons on the Web do not follow a standard convention, you often can’t
rely on a color change to let you know something is not clickable. Yahoo! Bookmarks chose
to make selection very explicit and make it clear when a command is invalid because noth-
ing is selected (“No selection” in Figure 3-6). This is not normally the optimal way to handle
errors. Generally, the earlier you can prevent errors, the better the user experience.
Netflix disables the “Update DVD Queue” button when nothing is selected and enables it
when a movie gets selected (Figure 3-7).
Figure 3-7. When nothing is selected, Netflix disables the “Update DVD Queue” button to prevent errors
early
Collected Selection 67
Collected Selection
Toggle Selection is great for showing a list of items on a single page. But what happens if
you want to collect selected items across multiple pages? Collected Selection is a pattern
for keeping track of selection as it spans multiple pages.
In Gmail, you can select items as you move from page to page. The selections are re-
membered for each page. If you select two items on page one, then move to page two and
select three items, there are only three items selected. This is because actions only operate
on a single page. This makes sense, as users do not normally expect selected items to be
remembered across different pages.
Considerations
Gmail does provide a way to select all items across different pages. When selecting all
items on a individual page (with the “All” link), a prompt appears inviting the user to
“Select all 2785 conversations in Spam”. Clicking that will select all items across all pages
(Figure 3-8). The “Delete Forever” action will operate on all 2785 conversations, not just
the 25 selected on the page.
68 Chapter 3: Direct Selection
Figure 3-8. Gmail provides a way to select all items across all pages, allowing the user to delete all items
in a folder without having to delete all items on each page individually
Figure 3-9. LinkedIn provides a holding place for saving selections across multiple pages
The list of potential invitees is shown in a paginated list on the lefthand side. Clicking the
checkbox adds them to the invite list. The invite list becomes the place where selected
contacts across multiple pages are remembered.
Collected Selection 69
Any name in the invite list can be removed by clicking the “X” button beside it. Once
the complete list of invitees is selected, clicking the “Invite selected contacts” sends each
selected contact a LinkedIn invitation.
Figure 3-10. Yahoo! Photos used a “tray” to implement a form of Collected Selection; the confusing
aspect was which actions in the menu operated on the tray versus the photos selected on the page
There was a problem with the design, however. In the menu system it was hard to discern
whether the user meant to operate on the selection (photos on the page could be selected
through an Object Selection model) or on the collected items in the tray. To resolve this am-
biguity, the drop-down menus contained two identical sets of commands. The first group of
commands in the menu operated on the collected items in the tray. The second set of com-
mands operated on the selected objects. Needless to say, this was confusing since it required
the user to be fully aware of these two selection models when initiating a command.
One way to remove this ambiguity would have been to have a single set of commands
that operated on either the tray or the photos—depending on which had the focus. This
would require a way to select the tray and a way to deselect it (by clicking outside the tray).
A possible approach would be to slightly dim the photo gallery when the tray is selected
(causing it to clearly have the focus), and do the opposite when the tray is not the focus.
70 Chapter 3: Direct Selection
Object Selection
As we mentioned earlier, Toggle Selection is the most common type of selection on the
Web. The other type of selection, Object Selection, is when selection is made directly on
objects within the interface.
Sometimes using a checkbox does not fit in with the style of interaction desired. Laszlo’s
WebTop mail allows the user to select messages by clicking anywhere in the row. The re-
sult is that the whole row gets highlighted to indicate selection (Figure 3-11).
Nothing selected
Normal view when nothing is selected and the
mouse is not over a message.
Hovered state
When the mouse hovers over a row, the row is sub-
tly highlighted to indicate focus and what will be
selected if the user clicks.
Object Selection 71
Selected state
When the user clicks on a message, the whole row
gets selected.
Figure 3-11. Laszlo WebTop Mail uses highlighting to indicate row selection
Considerations
Desktop applications tend to use Object Selection. It is also natural that web-based mail
applications that mimic desktop interactions employ this same style of selection. Instead of
showing a control (like a checkbox), the object itself can be selected and acted on directly.
Object Selection can be extended by holding down the Shift key while clicking on a dif-
ferent item. The Command key (Macintosh) or Control key (Windows) can be used to
individually add items in a discontinuous manner. The downside to this approach is that
it is not obvious to use the modifier keys for extending the selection. Toggle Selection’s
use of toggle buttons makes the selection extension model completely obvious.
Flickr is a simple example of the keyboard being used to extend the selection in a web ap-
plication. In the Organizr tool, multiple photos can be selected by using modifier keys to
extend the selection (Figure 3-12).
Figure 3-12. Flickr allows for discontinuous selection by using the Command/Control key to extend
selection
Desktop-style selection
For now Object Selection is not as common on the Web. Given that most sites have been
content-oriented, there have been few objects to select. Also, with the Web’s simple event
model, Object Selection was not easy to implement. In typical web pages, keyboard events
have rarely made sense since they are also shared with the browser. However, all of this is
changing as the capabilities of web technologies continue to improve.
72 Chapter 3: Direct Selection
Most desktop Object Selection interactions include ways to use the mouse to drag-select
objects. Yahoo! Photos introduced this same type of object selection to its photo gallery
(Figure 3-13). Individually clicking on a photo selects it. Using the Shift key and clicking
also extends the selection. In addition, using the Control key and clicking discontinuously
selects photos. And like most desktop applications, you can drag a selection box around a
group of items to add them to the selected set (in this case, photos).
Figure 3-13. Yahoo! Photos 3.0 created a rich drag selection mechanism for selecting photos
Hybrid Selection
Mixing Toggle Selection and Object Selection in the same interface can lead to a confus-
ing interface. Referring back to Yahoo! Bookmarks, you’ll see an odd situation arise during
drag and drop (Figure 3-14).
Figure 3-14. In Yahoo! Bookmarks, one item is selected, but two items can be dragged by dragging on
the unselected item
Hybrid Selection 73
Considerations
There are a few important issues to consider when using Hybrid Selection.
Figure 3-15. Yahoo! Mail Classic uses Toggle Selection; it also highlights selected rows, but rows can
only be selected by clicking the message’s checkbox
74 Chapter 3: Direct Selection
Figure 3-16. Yahoo! Mail Beta launched with Object Selection: no checkboxes were provided, and
discontiguous selection could only be done by using keyboard modifiers
Figure 3-17. Yahoo! Mail now uses a hybrid approach: it incorporates both the Toggle Selection and the
Object Selection patterns (messages can be selected with checkboxes or by clicking on the row); Toggle
Selection selects the message without loading the message in the viewing pane
Hybrid Selection brings with it the best of both worlds. You can use the checkbox selec-
tion model as well as normal row selection. You get the benefit of explicit selection and
simplified multiple selection that Toggle Selection brings. And you get the benefit of
interacting with the message itself and direct object highlighting.
Tip
Combining Toggle Selection and Object Selection is a nice way to bridge a common
web idiom with a common desktop idiom.
Digg is a popular news site where the community votes on its favorite stories. If you see a
story on Digg that you like you can vote your approval with a simple click action on the
“digg it” button (Figure P2-1).
Figure P2-1. Digg makes it easy to vote to digg articles with the “digg it” button next to each article
It wasn’t always this simple. Kevin Rose founded Digg to democratize the finding of tech
articles. In the earliest versions of Digg, the user had to complete a two-step process to
digg a story (Figure P2-2).
Figure P2-2. The first version of Digg required a two-page process to “digg” a story
In the current version of Digg it’s much simpler—just click the “digg it” button, and the
vote is immediately recorded (Figure P2-3).
Figure P2-3. Digg now uses a “digg it” button to immediately record a “digg” within the same page
Kevin Rose has noted that changing to a one-step process had a huge impact on the num-
ber of stories being dug and thus on the success of his site. Here is his view on what
transpired:
There was a huge shift in activity on Digg when we made the move to the one-click
digg in November 2005. Once we added Ajax, activity went through the roof on [the
number of ] diggs. It was just insane. Just the ease of the “one-click and you’re done”
made all the difference in the world. Once the users grasped that the content is syndi-
cated to friends, friends’ activities then went through the roof. These small incremen-
tal steps in feature additions drove the growth.*
Did you get that? Changing to a one-click digg was not technically difficult. Yet it made
a significant impact on Digg’s success. It not only increased the ease of digging stories,
but it also had an impact on other site activities. This is the power of making interactions
lightweight.
Next, in Chapter 4, we look at a set of patterns that can make our interactions lightweight:
Contextual Tools
Tools placed in context within the page content.
* From Rose’s talk at the San Francisco Bay Area Chapter of ACM SIGCHI (BayCHI), April 11, 2006. See http://
www.baychi.org/calendar/20060411/.
Chapter 4
Contextual Tools
Interaction in Context
Most desktop applications separate functionality from data. Menu bars, toolbars, and pal-
ettes form islands of application functionality. Either the user chooses a tool to use on the
data or makes a selection and then applies the tool.
Early websites were just the opposite. They were completely content-oriented. Rich tool
sets were not needed for simply viewing and linking to content pages. Even in e-commerce
sites like Amazon or eBay, the most functionality needed was the hyperlink and “Submit”
button.
However, this simplistic approach no longer exists in the current web application land-
scape. As the Web has matured, a wide variety of application styles has emerged.
On one end of the spectrum there are simple sites that need no more functionality than
the hyperlink and a “Submit” button. On the other end of the spectrum there are full ap-
plications hosted as a website. Google Search and Yahoo! Mail are two typical applications
that illustrate this variation (Figure 4-1).
Figure 4-1. Google Search needs only hyperlinks and a search button; Yahoo! Mail, on the other hand,
is a full-featured application with toolbars and menus
80 Chapter 4: Contextual Tools
Between these two opposites are a lot of sites that need to mix content and functionality.
It is to this intersection that we turn our attention in this chapter.
Think for a moment where user interfaces are headed.
Touch-based interfaces were the stuff of research labs and, more recently, interesting You-
Tube videos. But now they’re as close as our phones. Most notably, the Apple iPhone
brought touch to the masses (Figure 4-2). Gesture-based interfaces seemed even further
out. Yet these became reality with the Nintendo Wii.
Figure 4-2. The Apple iPhone introduced touch-based interfaces to the consumer market
With both gesture and touch-based interfaces, interaction happens directly with the
content.
Tip
The content is the interface. Instead of being contained in separate areas of functionality,
the actions feel close to the objects being interacted with.
This concept also informs our current challenge. How do we bring tools nearer to the
content to make the interaction as lightweight as possible?
Fitts’s Law
Fitts’s Law is an ergonomic principle that ties the size of a target and its contextual prox-
imity to ease of use. Bruce Tognazzini restates it simply as:
The time to acquire a target is a function of the distance to and size of the target.
In other words, if a tool is close at hand and large enough to target, then we can improve
the user’s interaction. Putting tools in context makes for lightweight interaction.
Always-Visible Tools 81
Contextual Tools
We could simply isolate our functionality into islands of tools (toolbars and menus). But
this would work against Fitts’s Law by requiring more effort from the user. It would also
add more visual weight to the page. Instead of interacting with the functionality sepa-
rately, we can bring the functionality into the content with Contextual Tools.
Contextual Tools are the Web’s version of the desktop’s right-click menus. Instead of hav-
ing to right-click to reveal a menu, we can reveal tools in context with the content. We can
do this in a number of ways:
Always-Visible Tools
Place Contextual Tools directly in the content.
Hover-Reveal Tools
Show Contextual Tools on mouse hover.
Toggle-Reveal Tools
A master switch to toggle on/off Contextual Tools for the page.
Multi-Level Tools
Progressively reveal actions based on user interaction.
Secondary Menus
Show a secondary menu (usually by right-clicking on an object).
Always-Visible Tools
The simplest version of Contextual Tools is to use Always-Visible Tools. Digg is an ex-
ample of making Contextual Tools always visible (Figure 4-3).
Visible tool
Beside each story is a digg scorecard. Just below is the
“digg it” button. The digg button shows for all stories.
Other actions are represented less prominently.
Invitation
On mouse hover, the digg button border changes to a
darker color and the text label changes to black. High-
lighting is an effective way to signal interactivity.
82 Chapter 4: Contextual Tools
Completion
Once the user clicks the “digg it” button, the vote is
counted. The current vote fades out and then the new
digg count (including your vote) appears instantly. The
digg button changes to “dugg” and is no longer clickable
(indicated by the gray text).
Figure 4-3. Digg’s “digg it” button is a simple Contextual Tool that is always visible
Considerations
The “digg it” button and Digg scorecard provide Always-Visible Tools next to each story.
Just as with Digg, rating movies is central to the health of Netflix. The Cinematch™ rec-
ommendation engine is driven largely by the user’s ratings. So a clear call to action (to
rate) is important. Not only do the stars serve as a strong call to action to rate movies, but
they also provide important information for the other in-context tool: the “Add” button.
Adding movies to your movie-shipping queue is key to having a good experience with the
Netflix service.
Always-Visible Tools 83
Relative importance
One way to clarify this process is to decide on the relative importance of each exposed
action. Is the “digg it” action as important as the “bury it” action? In the case of Digg, the
answer is no. The “digg it” action is represented as a button and placed prominently in the
context of the story. The “bury it” action is represented as a hyperlink along with other
“minor” actions just below the story. The contrast of a button and a hyperlink as well as its
placement gives a strong indication as to the relative importance of each action.
Tip
If an action is critical, expose it directly in the interface.
Discoverability
Discoverability is a primary reason to choose Always-Visible Tools. On the flip side, it
can lead to more visual clutter. In the case of Digg and Netflix, there is a good deal of vi-
sual space given to each item (story, movie). But what happens when the items you want
to act on are in a list or table?
Generally Contextual Tools in a list work well when the number of actions is kept to a
minimum. Gmail provides a single Always-Visible Tool in its list of messages—the star
rating—for flagging emails (Figure 4-5).
Simply clicking the star flags the message as important. The unstarred state is rendered in
a visually light manner, which minimizes the visual noise in the list.
The following list, from Google Reader, takes a different approach. It shows several tools
for managing subscriptions: rename, delete, and change folders for each subscription in
the list. This is convenient but is definitely heavier visually (Figure 4-6).
84 Chapter 4: Contextual Tools
Figure 4-6. Google Reader’s Manage Subscriptions page displays lots of actions for each subscription,
leading to a visually heavier display
Sometimes concerns over visual noise must take a back seat to discoverability. The Yahoo!
India Our City team struggled with a design early on. They wanted to hide the “email this”
icon and only show it on hover. However, since the site was specifically for India, they
were concerned with how much exposure the population had with simple web interac-
tions like mouse rollover. So instead of hiding the icon, they chose to show it for every
story (Figure 4-7).
Figure 4-7. Yahoo! India Our City was designed for users who were not familiar with mouse rollover;
the email icon is shown at all times
Hover-Reveal Tools
Instead of making Contextual Tools always visible, we can show them on demand. One
way to do this is to reveal the tools when the user pauses the mouse over an object. The
Hover-Reveal Tools pattern is most clearly illustrated by 37 Signal’s Backpackit (Figure
4-8). To-do items may be deleted or edited directly in the interface. The tools to accom-
plish this are revealed on mouse hover.
Normal state
The edit and delete tools are hidden in the normal state.
Invitation
On mouse hover, the tools are revealed. The tools are “cut” into
the gray bar, drawing the eye to the change.
Considerations
The gray bar on the left is a nice visual reinforcement for the interaction. By allowing the
tools to “cut” into the sidebar, the designers draw your eye to the available tools. The light
yellow background draws attention to the to-do item being acted on. These two simple
treatments make it clear which line has the focus and that additional tools have been
revealed.
Tip
To reduce visual clutter, hide non-primary actions until they are needed.
Visual noise
Showing the items on hover decreases the visual noise in the interface. Imagine if instead
the delete and edit actions were always shown for all to-do items. Figure 4-9 shows just
how visually noisy that approach would have been.
86 Chapter 4: Contextual Tools
Figure 4-9. What the Backpackit interface would have looked like if the Contextual Tools were always
visible
Yahoo! Buzz reveals its tools on mouse hover for both its Top Searches (Figure 4-10) and
Top Stories (Figure 4-11).
For Top Searches, it is important to keep the top-ten list as simple as possible. Showing
tools would compete with the list itself. Since the actions “Search Results” and “Top Ar-
ticles” (Figure 4-10, right) are less important, they are revealed on hover. The actions may
be important, but making the content clear and readable is a higher priority.
Figure 4-10. Yahoo! Buzz reveals additional tools for the top searches when the user hovers over each
item
Similarly, for Top Stories, Yahoo! Buzz shows only “Share”, “Post”, and “Buzz Down” tools
on hover. “Buzz Up” is shown at all times, but gets extra visual treatment on mouse hover
(Figure 4-11, right). “Buzz Up” is important enough to show at all times, but can be toned
down when not the focus.
Hover-Reveal Tools 87
Figure 4-11. Yahoo! Buzz highlights the row and brings in additional tools
Discoverability
A serious design consideration for Hover-Reveal Tools is just how discoverable the ad-
ditional functionality will be. In the earlier Backpackit example (Figure 4-8), while the
Contextual Tools are revealed on hover, the checkbox is always visible for each to-do
item. To check off an item, users have to move the mouse over it. When they do, they will
discover the additional functionality.
Flickr provides a set of tools for contacts. To avoid clutter, contact profile photos are
shown without any tool adornment. When the mouse hovers over the contact’s photo, a
drop-down arrow is revealed (Figure 4-12). Clicking reveals a menu with a set of actions
for the contact. This works because users often know to click on an image to get more
information. Being drawn to the content is a good way to get the user to move the mouse
over the area and discover the additional functionality.
Tip
Help users understand revealed tools by using familiar idioms (such as hyperlinks for
actions or drop-down arrows to expose additional functionality).
Yahoo! Mail’s flagging feature is revealed when the user hovers over the flagged column
on a mail message (Figure 4-13). Contrast this to Google’s always-revealed star approach
we discussed earlier (Figure 4-5).
88 Chapter 4: Contextual Tools
Figure 4-13. Yahoo! Mail reveals the flag button when the user’s mouse hovers over the flag column of
a message
The Yahoo! approach is visually cleaner, but less discoverable. We will have more to say
about making tools discoverable in Chapter 10 when we discuss Dynamic Invitations.
* Yahoo! for Teachers was only released in beta and never widely publicized. It was recently closed down, and
another company (edtuit.com) will be launching a similar site.
Hover-Reveal Tools 89
Figure 4-14. An early version of the Yahoo! for Teachers beta revealed Contextual Tools in an overlay;
the overlay covered more than half of the item to its right
The final straw was if users wanted to delete several items, they would hover over the
image, wait for the overlay, click Delete, then be forced to move out and back in again to
activate the next image’s Contextual Tools (Figure 4-15). Hover and Cover is a common
anti-pattern that occurs when exposing an overlay on hover and hiding important context
or further navigation.
Figure 4-15. Navigating required a zigzag approach to get around the tool overlay
Hover and Cover was resolved by no longer using an overlay. Instead, additional margin
space was added to each image, and the Contextual Tools were hidden. On mouse hover,
the tools were simply revealed, along with a border defining the image being acted on
(Figure 4-16).
Figure 4-16. In the redesigned version, tools were shown on hover directly surrounding the image
instead of in an overlay
The difference (Figure 4-14 versus Figure 4-16) is dramatic. Not only is the experience
improved, but overall page performance is improved as well. On mouse hover, the image
no longer shifts in a distracting manner. In redesign, the delete always shows up in the
same place relative to the image; this means the user “remembers spatially” where the
command is, making it easier to target (Figure 4-17).
90 Chapter 4: Contextual Tools
Figure 4-17. Since the Delete action appears in the same spot relative to the image, the user can easily
anticipate where the action will appear
Tip
Be careful when using overlays to expose additional information or tools. The overlay
can get in the way of normal navigation or hide important information.
Tip
Don’t make users hover over your tools in order to figure out what they mean.
Figure 4-18 illustrates this in an early version of Zooomr. The only recourse for the user
was to pause over each icon and wait a second or so to read a tool tip about the purpose
of the icon. This does not create a lightweight interaction!
Figure 4-18. A very early version of Zooomr revealed a number of unidentifiable icons when the mouse
hovered over a photo
Toggle-Reveal Tools 91
Activation
Tool overlays should activate immediately. The tools are an extension of the interface, and
any delay creates too much of a delay between the activation and invocation of the action.
In Chapter 5, we will discuss Dialog Overlays. In that discussion we suggest a delay be-
fore showing informational overlays. Why the difference? Since information may not be
needed to understand the object, and given the fact that activation might be accidental,
it is best to place a small delay when showing the additional information (usually a half-
second delay is sufficient). But actions are different. Following the suggestions just men-
tioned (avoid Hover and Cover anti-pattern), the actions can be revealed without a lot of
disruption. And if they show immediately, the user can access the additional commands
almost as quickly as with Always-Visible Tools.
Toggle-Reveal Tools
A variation on the two previous approaches is to not show any Contextual Tools until a
special mode is set on the page. A good example of Toggle-Reveal Tools is in Basecamp’s
category editing, which we discussed in Chapter 1 (Figure 4-19).
92 Chapter 4: Contextual Tools
Not visible
Each category is listed in this section. The “Edit”
link at the top is the way to edit the category
section.
Figure 4-19. Basecamp reveals category-editing tools only when the edit mode is turned on for the area
Considerations
Here are a few considerations to keep in mind when using Toggle-Reveal Tools.
Soft mode
Generally, it is a good thing to avoid specific modes in an interface. However, if a mode is
soft it is usually acceptable. By “soft” we mean the user is not trapped in the mode. With
Basecamp, the user can choose to ignore the tools turned on. It just adds visual noise and
does not restrict the user from doing other actions. This is a nice way to keep the interac-
tion lightweight.
Tip
Interfaces should strive to be modeless. Often, though, a “soft mode” can be employed
to provide context for an action that is easy to activate and easy to remove.
Multi-Level Tools 93
When would you use this technique? When the actions are not the main thing and you
want to reduce visual noise. This fits the category example perfectly. Items are renamed or
deleted occasionally. It is common, however, to want to click through and see the contents
of a category (the category is always hyperlinked). Hence, make it readable and easily nav-
igable in the normal case—but still give the user a way to manage the items in context.
Google Reader could potentially be improved in this manner. In the current interface,
clicking “Manage Subscriptions” takes the user to another page to edit subscriptions. One
possible change is the addition of an “edit” button that toggles in a set of context tools for
each subscription (Figure 4-20). This would allow the user to rename and unsubscribe
without leaving the context of the reading pane.
Figure 4-20. Adding an “edit” link to Google Reader’s feed list and toggling in common actions could
potentially make it easier to manage subscriptions
Multi-Level Tools
Contextual Tools can be revealed progressively with Multi-Level Tools. Songza* provides
a set of tools that get revealed after a user clicks on a song. Additional tools are revealed
when hovering over the newly visible tools (Figure 4-21).
* Aza Raskin is the designer of Songza, founder of Humanized. He is the son of the late human-computer inter-
face expert Jef Raskin.
94 Chapter 4: Contextual Tools
Normal state
The tools are not visible normally.
Mouse hover just highlights the
song—it does not reveal the Con-
textual Tools.
Click activation
On mouse click, a cloverleaf-style
menu is shown with the four basic
functions: play, rate, add, and share.
Hover expose
Second-level actions are exposed
while hovering over share or rate.
Considerations
Songza reveals the four options “play”, “rate”, “share”, and “add to playlist” after the user
clicks on a song title. Hovering over “share” or “rate” reveals a secondary set of menu items
(Figure 14-21, center).
Multi-Level Tools 95
Radial menus
Radial menus* such as in Songza have been shown to have some advantages over more
traditional menus. First, experienced users can rely on muscle memory rather than hav-
ing to look directly at the menu items. Second, the proximity and targeting size make the
menu easy to navigate since the revealed menu items are all equally close at hand (recall
Fitts’s Law).
The one potential downside to this approach is that rating a song requires several steps: an
initial click on the song, moving the mouse over the “rate” menu item, then clicking either
the thumbs up or thumbs down option. If rating songs was an important activity, the extra
effort might prevent some users from doing so. An alternate approach would be to replace
“rate” directly with the thumbs up and the thumbs down options.
Activation
Another interesting decision Songza made was to not activate the radial menu on hover.
Instead, the user must click on a song to reveal the menu. Activating on click makes the
user intent more explicit.
Making activation more explicit avoids the issues described earlier in the Hover and Cov-
er anti-pattern. The user has chosen to interact with the song. Conversely, with a mouse
hover, it’s never quite clear if the user meant to activate the menu or just happened to
pause over a song title.
Default action
However, this does mean there is no way to start a song playing with just a simple click.
Playing a song requires moving to the top leaf. One possible solution would be to place the
“play” option in the middle of the menu (at the stem) instead of in one of the leaves. Click-
ing once would activate the menu. Clicking a second time (without moving the mouse)
would start playing the song. This interaction is very similar to one commonly used in
desktop applications: allowing a double-click to activate the first item (default action) in
a right-click menu.
Tip
Keep the most common actions as near to the activation point as possible.
* Also known as pie menus. See Jack Callahan et al. (1988), “An empirical comparison of pie vs. linear menus.”
Proceedings of ACM CHI Conference on Human Factors in Computing Systems: 95–100.
96 Chapter 4: Contextual Tools
Contextual toolbar
Picnik is an online photo-editing tool that integrates with services like Flickr. In all, there are
six sets of tools, each with a wide range of palette choices. Picnik uses Multiple-Level Tools
to expose additional functionality. By wrapping the photo with tools in context and progres-
sively revealing the levels of each tool, Picnik makes editing straightforward (Figure 4-22).
Figure 4-22. Picnik wraps layers of Contextual Tools around the image being edited
Muttons
Another variation on Multi-Level Tools is the “mutton” (menu + button = mutton). Mut-
tons are useful when there are multiple actions and we want one of the actions to be the
default. Yahoo! Mail uses a mutton for its “Reply” button (Figure 4-23).
Normal state
Yahoo! Mail displays the “Reply” mutton in its toolbar as a button
with a drop-down arrow control.
As a button
On mouse hover, the button gets a 3D treatment and color high-
light. The drop-down arrow gets the same treatment to call out its
functionality.
Clicking the “Reply” button at this point will trigger a reply without
activating the menu.
As a menu
Clicking on the drop-down arrow reveals two commands: “Reply
to Sender” is the same as the default “Reply” button action; “Reply
to All” is an additional action that was hidden until the menu was
revealed.
Figure 4-23. Yahoo! Mail’s “Reply” button looks like a drop-down when hovered over; clicking “Reply”
replies to sender, and clicking the drop-down offers the default action as well as “Reply to All”
Multi-Level Tools 97
Clicking “Reply” performs the individual reply. To reply to all, the menu has to be acti-
vated by clicking on the drop-down arrow to show the menu.
Muttons are used to:
• Provide a default button action (“Reply to Sender”)
• Provide a clue that there are additional actions
• Provide additional actions in the drop-down
If muttons are not implemented correctly, they can be problematic for those using acces-
sibility technologies. Because an earlier version of Yahoo! Mail did not make the mutton
keyboard accessible, Yahoo!’s accessibility guru, Victor Tsaran, was convinced that there
was no “Reply to All” command in the Yahoo! Mail interface. Only after the mutton was
made more accessible could he find the “Reply” command.
Figure 4-24. The Yahoo! for Teachers Profile Card info is hidden unnecessarily
Tip
Never use small targets. Make targets large enough to notice and interact with.
The arrow is tiny (8×8 pixels). It is exposed only on hover. Providing Tiny Targets makes
interaction much more difficult. An alternate approach would be to always show a “more
info” link. Clicking it could toggle the additional profile information. Alternatively, pro-
viding a larger target for the arrow would improve its findability and targeting.
98 Chapter 4: Contextual Tools
Secondary Menu
Desktop applications have provided Contextual Tools for a long time in the form of Sec-
ondary Menus. These menus have been rare on the Web. Google Maps uses a secondary
menu that is activated by a right-click on a route. It shows additional route commands
(Figure 4-25).
Invitation
When the mouse is over the route, potential
stops are marked with a white circle.
Menu
Right-clicking on the item exposes four com-
mands that act on the point selected: “Add a
destination”, “Zoom in”, “Zoom out”, and “Center
map here”.
Figure 4-25. Google Maps uses a right-click menu to add new route stops or to adjust the map around
the current point on the route
Considerations
Secondary Menus have not been common in web applications.
Discoverability
As a general rule, never put anything in the Secondary Menu that can’t be accomplished
elsewhere. Secondary Menus are generally less discoverable. More advanced items or
shortcuts, however, can be placed in the Secondary Menu as an alternate way to accom-
plish the same task.
Accessibility
Right-click is not the only way to activate a Secondary Menu. You can activate the menu
by holding down the mouse for about one second. This provides a more accessible ap-
proach to popping up a Secondary Menu. This technique is used in the Macintosh Dock.
Clicking and holding down on an application in the dock will reveal the Secondary Menu
without requiring a right-click activation.
Flow
In the book, Flow: The Psychology of Optimal Experience, published by Harper Perennial,
Mihaly Csikszentmihalyi describes the state of “optimal experience” as the times when
people enter a state of concentration so focused it creates a state of effortless control. Athletes
may enter into flow and report the feeling of unself-consciousness as well as rising to the
peak of their abilities. Flow, however, can be broken by a sudden awareness of the sur-
roundings or by some interruption that happens to come along.
Unfortunately, users of our web applications rarely experience this level of happiness. In
fact, the traditional web experience is punctuated with a page refresh each time the user
chooses an action. It’s like watching a play where the curtain comes down between each
line of dialogue. The page refresh creates an artificial break in the action—or a break in
the user’s flow.
Change Blindness
The break can cause visual consequences as well. I recently took some of my children to
the Exploratorium in San Francisco (a wonderful hands-on science museum for all ages).
An exhibit that caught my eye was the one demonstrating change blindness.* A large screen
displayed an image of a store-front typical of those seen in most urban areas, complete
with awning, windows, doors—all of a distinctive style. Then suddenly a new updated im-
age of the store-front replaced the original one. The new image had a slight change from
the original. However, try as I might I could not detect the change. Why? The transition
was punctuated by a very brief (less than a fourth of a second) delay. Showing the origi-
nal image, going blank, then showing the second image made it really hard to detect the
change between the two.
Wikipedia describes change blindness as:
Overlays are really just lightweight pop ups. We use the term lightweight to make a clear
distinction between it and the normal idea of a browser pop up. Browser pop ups are cre-
ated as a new browser window (Figure 5-1). Lightweight overlays are shown within the
browser page as an overlay (Figure 5-2). Older style browser pop ups are undesirable
because:
• Browser pop ups display a new browser window. As a result these windows often take
time and a sizeable chunk of system resources to create.
• Browser pop ups often display browser interface controls (e.g., a URL bar). Due to
security concerns, in Internet Explorer 7 the URL bar is a permanent fixture on any
browser pop-up window.
Figure 5-1. If Orbitz used a browser pop-up window for its calendar chooser (it does not), this is how it
might look
• Lightweight overlays are just a lightweight in-page object. They are inexpensive to
create and fast to display.
• The interface for lightweight overlays is controlled by the web application and not
the browser.
• There is complete control over the visual style for the overlay. This allows the overlay
to be more visually integrated into the application’s interface (compare Figures 5-1
and 5-2).
Figure 5-2. Orbitz uses a lightweight DHTML overlay for its calendar chooser; since it does not require
the overhead of a separate browser window, it can pop up quickly and is better integrated into the page
visually
Lightweight overlays can be used for asking questions, obtaining input, introducing fea-
tures, indicating progress, giving instructions, or revealing information. They can be ac-
tivated directly by user events (e.g., clicking on an action, hovering over objects) or be
provided by the web application at various stages in the completion of an action.
Tip
Never use browser overlays. They are expensive to create, hard to control, slower than
lightweight overlays, and visually unappealing.
We will look at three specific types of overlays: Dialog Overlays, Detail Overlays, and
Input Overlays.
Dialog Overlay 107
Dialog Overlay
Dialog Overlays replace the old style browser pop ups. Netflix provides a clear example
of a very simple Dialog Overlay. In the “previously viewed movies for sale” section, a user
can click on a “Buy” button to purchase a DVD. Since the customer purchasing the DVD
is a member of Netflix, all the pertinent shipping and purchasing information is already
on record. The complete checkout experience can be provided in a single overlay (Figure
5-3).
Activation
Clicking the “Buy” button initiates the
purchase process.
Overlay treatment
The confirmation dialog is shown in a
lightweight overlay. Since the overlay
is modal (interaction is only accepted
in the overlay) the rest of the page is
dimmed down. The user may also can-
cel the purchase.
Figure 5-3. Netflix uses a lightweight pop up to confirm a previously viewed DVD purchase; in
addition, it uses the Lightbox Effect to indicate modality
Considerations
Because the overlay is a lightweight pop up, the confirmation can be displayed more rap-
idly and the application has complete control over its look and placement.
Lightbox Effect
One technique employed here is the use of a Lightbox Effect. In photography a lightbox
provides a backlit area to view slides. On the Web, this technique has come to mean bring-
ing something into view by making it brighter than the background. In practice, this is
done by dimming down the background.
You can see the Lightbox Effect pattern used by Flickr when rotating images (Figure 5-4).
108 Chapter 5: Overlays
Figure 5-4. Flickr also uses a Lightbox Effect to focus attention on the overlay
The Lightbox Effect is useful when the Dialog Overlay contains important information
that the user should not ignore. Both the Netflix Purchase dialog and the Flickr Rotate
dialog are good candidates for the Lightbox Effect. If the overlay contains optional infor-
mation, then the Lightbox Effect is overkill and should not be used.
Modality
Overlays can be modal* or non-modal. A modal overlay requires the user to interact with
it before she can return to the application. In both the Netflix example (Figure 5-3) and
the Flickr example (Figure 5-4), the overlays are modal: users cannot interact with the
main Netflix or Flickr page until they perform the action or cancel the overlay. In both
cases, modality is reinforced with the Lightbox Effect. Dimming down the background
cues the user that this portion of the interface cannot be interacted with.
Sometimes overlays are non-modal. An example of this can be found in the Netflix site.
When a DVD is added to the user’s shipping list (queue), a confirmation overlay is shown
(Figure 5-5). While it may appear that the only way to dismiss the overlay is by clicking the
“Close” box in the upper-right corner, in reality the user can click anywhere outside the
overlay (in the dimmed area) and the overlay will dismiss. In this case the Lightbox Effect is
used to focus the user’s attention on the confirmation and recommendations available.
* For a discussion on modality, see Jef Raskin’s “The Humane Interface” (2000), 100, 141.
Dialog Overlay 109
Figure 5-5. Netflix uses a non-modal overlay with the Lightbox Effect to focus attention on the
confirmation and recommendation
Tip
Use the Lightbox Effect to emphasize modality or call attention to special information
in an overlay.
* Cooper, Alan and Robert Reimann. About Face 2.0: The Essentials of Interaction Design (Wiley, 1995), 178.
110 Chapter 5: Overlays
In the context of flow he describes how egregious it is to interrupt the user needlessly:
One form of excise is so prevalent that it deserves special attention…. Flow is a natural
state, and people will enter it without much prodding. It takes some effort to break
into flow after someone has achieved it. Interruptions like a ringing telephone will do
it, as will an error message box. Some interruptions are unavoidable, but most others
are easily dispensable…. Interrupting a user’s flow for no good reason is stopping the
proceedings with idiocy and is one of the most disruptive forms of excise.*
This is a clear anti-pattern that should be avoided. We call these types of overlays Idiot
Boxes.
One of the clearest examples of Idiot Boxes is the way certain confirmation overlays
were used in Yahoo! Photos. When users selected a set of photos and dragged and then
dropped them onto an album, they were treated with not just one confirmation, but with
two (Figure 5-6).
* Cooper, Alan et al. About Face 3: The Essentials of Interaction Design (Wiley, 2007), 228.
Dialog Overlay 111
Figure 5-6. Yahoo! Photos uses unnecessary overlay pop ups to communicate what happens when the
user drops photos into an album
A fundamental problem in this interaction is the lack of clear invitations and feedback at
just the right moment. Lacking feedback when the user drags over the album (to signal
you will be dropping it on the “Paris06” album) and after it has been dropped is often
“remedied” by the heavy-handed use of pop-up overlays to state the obvious. We will
discuss these concepts in more detail in later chapters.
Tip
Mind the interesting moments in an interaction. They can remove the need for Idiot
Boxes.
Second, there is no way to control the look and feel of the alert pop up. With lightweight
overlays, any valid web interface can be created to interact with the user.
Figure 5-7. In an older version of Google Reader, the JavaScript alert box displays differently on a
Microsoft Windows PC versus a Macintosh
The alert shown in Figure 5-7 has recently been replaced with a lightweight overlay (Fig-
ure 5-2).
Detail Overlay
The second type of overlay is somewhat new to web applications. The Detail Overlay al-
lows an overlay to present additional information when the user clicks or hovers over a
link or section of content. Toolkits now make it easier to create overlays across different
browsers and to request additional information from the server without refreshing the
page.
Taking another example from Netflix, information about a specific movie is displayed as
the user hovers over the movie’s box shot (Figure 5-8).
Detail Overlay 113
Box shots
In the more recent versions of the Netflix site, large box
shots are employed without synopsis text. Box shots convey
a lot of information.
Figure 5-8. Netflix shows “back of the box” information in an overlay as the user hovers over a movie’s
box shot
Considerations
The overlay provides a nice way to reveal a synopsis for a movie. In a sense it is like flip-
ping over the DVD box and reading what is on the back.
114 Chapter 5: Overlays
Activation
The overlay is displayed when the mouse hovers over a box shot. There is about a half-
second delay after the user pauses over a movie. The delay on activation prevents us-
ers from accidentally activating the overlay as they move the cursor around the screen.
Once the user moves the cursor outside the box shot, the overlay is removed immediately.
Removing it quickly gives the user a fast way to dismiss it without having to look for a
“Close” box.
Tip
For Detail Overlays activated by a mouse hover, provide a slight delay before displaying.
You can find the same interaction style employed on Yahoo! News. When the user hovers
over news story links in various areas (like Most Popular), a sneak peek shows the news
photo and lead of the story (Figure 5-9).
Figure 5-9. Yahoo! News reveals more about a story without a user having to click to another page
In both cases the user is given the additional context to make a decision about what to
do next. In the case of Netflix, a movie’s description or rating prediction may lead to the
user renting the movie. With Yahoo! News, since click-throughs to news stories are more
intentional, the user will be taken to stories that interest him. This creates a sense of user
satisfaction and control, both of which are ingredients to a good user experience.
Figure 5-10. Amazon shows a book-buying widget on simple hover—but requires clicking the “Close”
box to dismiss it
Tip
Make activation and deactivation symmetrical interactions.
Figure 5-11. Yahoo! Foods All Main Ingredients drop-down is activated by clicking on the arrow and
can only be deactivated by clicking the close button (X)
116 Chapter 5: Overlays
Figure 5-12. Each Detail Overlay is preceded by the Needless Fanfare of a one-second animation that
zooms the information into place
The animation takes a full second to complete. Instead of delaying before activation, it de-
lays after activation. Perhaps the design team thought that the animation tied the details
to the item it zoomed out from. However, the Netflix approach simply creates a bubble
effect that points back to the item it is revealing information for (Figure 5-7, right).
Tip
Once activated, show Detail Overlays immediately without fanfare.
Product display
On the Barnes & Noble home page,
books are displayed with lots of detailed
information.
Detail Overlay
The Detail Overlay is an exact copy of
the information displayed on the page.
Also notice that the overlay covers most
of the other item (Mad Men).
Figure 5-13. Barnes & Noble does not need Detail Overlay since the information is exactly the same as
displayed on the page
Barnes & Noble uses a Detail Overlay in a completely useless manner. The overlay con-
tains exactly the same information that the page already contained! Not only that, but the
overlay almost completely obscures the other item displayed on the page. It also creates an-
other common problem—the book image (dictionary) in the overlay is not positioned the
same as the book image on the page (about 12 pixels difference). The shift causes the annoy-
ing illusion that the book is wiggling back and forth, which detracts from the experience.
On the other hand, AOL Finance provides a very nice example of pulling detailed stock
information into an overlay that fits in a seamless manner, provides additional informa-
tion, and does not cover up the navigation to the next item that might be of interest
(Figure 5-14).
118 Chapter 5: Overlays
Figure 5-14. AOL Finance provides additional information without preventing other navigation; the
detail is activated by clicking on the blue arrow button
Input Overlay
Input Overlay is a lightweight overlay that brings additional input information for each
field tabbed into. American Express uses this technique in its registration for premium
cards such as its gold card (Figure 5-15).
Input form
The form is displayed with simple
prompt/input for each field. No ad-
ditional help information is shown
statically.
Input overlay
Tabbing or clicking into any field
wraps the field in an overlay. The
overlay provides additional input
information.
Obscuring fields
The overlay does obscure fields just
below it, but not to the left or right.
Deactivation
Clicking anywhere removes the over-
lay. This lets the user click through
the field covered by the overlay.
Figure 5-15. American Express provides Input Overlays to guide the user through the signup process
120 Chapter 5: Overlays
Considerations
There are a few things to keep in mind when using Input Overlays.
Clear focus
As the user tabs or clicks from field to field, the field gets wrapped in an overlay. The over-
lay contains additional input help information. This allows the normal display of the form
to be displayed in a visually simple manner (just prompts and inputs). The overlay creates
focus on the given input field. Instead of seeing an ocean of inputs, the user is focused on
just entering one field.
Two additional touches that would help with field-covering issues include:
• Give the overlay a slight translucency in order to faintly reveal the fields below.
• Allow a click deactivation to not only deactivate the overlay but click through to the
field that was clicked over. This allows the user to click into a field shown through
the overlay.
Not every bit of additional control, information, or dialog with the user needs to be an
overlay. Another approach is to inlay the information directly within the page itself. To
distinguish from the pop-up overlay, we call these in-page panels Inlays.
Dialog Inlay
A simple technique is to expand a part of the page, revealing a dialog area within the page.
The BBC recently began experimenting with using a Dialog Inlay as a way to reveal cus-
tomization controls for its home page (Figure 6-1).
Activation
The “Customize homepage”
button activates the cus-
tomization inlay.
124 Chapter 6: Inlays
Customization inlay
The additional customization
controls for the BBC home
page are shown directly in
context with the rest of the
page.
Figure 6-1. The BBC home page puts its customization tools in an inlay that slides out when activated
Considerations
Of course an overlay could have been used instead. However, the problem with overlays
is that no matter where they get placed, they will end up hiding information. Inlays get
around this problem by inserting themselves directly into the context of the page.
Tip
Inlays provide in-context dialog with the user.
Dialog Inlay 125
In context
This Dialog Inlay is similar to a drawer opening with a tray of tools. Instead of being tak-
en to a separate page to customize the home page appearance, the user can make changes
and view the effects directly. The advantage is the ability to tweak the page while viewing
the actual page.
My Yahoo! also provides a Dialog Inlay for revealing its home page customization tools.
The original version of My Yahoo! did not use this approach. Instead, customizations
would take the user away to a separate page (Figure 6-2).
Figure 6-2. In an original version of My Yahoo!, clicking on “Change Colors” takes you to a separate
page to customize colors
Figure 6-3 shows the new My Yahoo!, incorporating an Dialog Inlay that slides into place
to reveal customization tools for changing the page’s appearance.
Figure 6-3. My Yahoo! allows the page to be customized inline by using an Inlay Dialog panel that
slides into view
126 Chapter 6: Inlays
Here’s one more example, which shows how a Dialog Inlay can be used to operate on spe-
cific objects within an interface. In Yahoo! Bookmarks, selected bookmarks can be edited,
deleted, etc. Because a pop up will often hide the items being operated on (the user ends
up having to move the dialog pop up out of the way to make sure the right object is being
deleted), an inlay can work nicely when tied in with a toolbar (Figure 6-4).
Edit tags
Clicking the “Edit Tags” but-
ton slides an “Edit Bookmark
Tags” panel into place. The
panel provides full editing
for the selected bookmarks.
The bookmarks gallery is still
visible.
Figure 6-4. In Yahoo! Bookmarks, clicking “Edit Tags” expands a Dialog Inlay for editing the two
bookmarks selected
By being in proximity to the toolbar and keeping the objects visible, the Dialog Inlay pro-
vides a clear way to expose additional interface elements in context. In all of the previous
examples, the panel is revealed with an animated slide in transition. This provides a nice
way to smooth out the experience (we will discuss transitions in Chapters 11 and 12).
List Inlay 127
List Inlay
Lists are a great place to use Inlays. Instead of requiring the user to navigate to a new page
for an item’s detail or popping up the information in an Overlay, the information can be
shown with a List Inlay in context. The List Inlay works as an effective way to hide detail
until needed—while at the same time preserving space on the page for high-level over-
view information.
Google Reader provides an expanded view and a list view for unread blog articles. In the
list view, an individual article can be expanded in place as a List Inlay (Figure 6-5).
Inlay list
Clicking on a single article ex-
pands it in place, in context with
the rest of the list.
Figure 6-5. In list view, Google Reader shows all articles as a collapsed list—except for the one that is
currently selected
Considerations
By allowing the reader to move through a list of article titles (by mouse or keyboard),
the articles can be scanned quickly so she can decide which should be looked at in detail.
Clicking on an article title expands the article in place. Showing one item at a time focuses
the reader on the current content.
Tip
Expanding content in context is a powerful way to help users understand information.
It follows the principle of focus+context.*
* Focus+context enables users to see the object of interest in full detail while at the same time getting a overview
of the surrounding context. It is also related to Jenifer Tidwell’s design pattern, “Overview Plus Detail,” de-
scribed in her book Designing Interfaces (O’Reilly).
List Inlay 129
Figure 6-6. The weather demo illustrates the way an accordion works: only one panel is revealed at a
time
In this example, the accordion allows only one weather pane to be visible at a time. When
a pane is activated it slides open, simultaneously closing the previously open panel.
130 Chapter 6: Inlays
Parallel content
The Yahoo! Autos Car Finder tool (Figure 6-7) uses an accordion-style interaction for
search filters that allows more than one pane to be open at a time. This choice makes sense
because the decisions needed for one detail pane may be affected by the details of another
pane. However, one problem with this specific implementation is the lack of information
when a pane is closed. For example, no summary information is given for the “Price” tab.
Looking at that button, it is not clear whether search criteria has been set or what it might
be set to without first opening the pane.
Figure 6-7. Yahoo! Autos places filter criteria in Accordion panes; when panes are hidden, no summary
information is provided
List Inlay 131
Wine.com takes the opposite approach (Figure 6-8). Each area is initially open. All filters
are displayed. As the user selects filters, the area collapses partially to show the results of
filtering. This strategy accomplishes a few things. First, it gets rid of detail progressively—
unnecessary information is hidden. Second, it invites the user to interact with the hidden
content (with the “view all” link). Third, it provides summary information for panels that
do not need to be opened as often.
Figure 6-8. Wine.com never closes a pane completely; as filters are selected, it partially closes and
summarizes the choices
Accordions can also be horizontally oriented. This is usually best done in nontraditional
interfaces. A good example is the Xbox 360 interface (Figure 6-9).
Figure 6-9. The Xbox 360 provides a novel menu interface by using a horizontal accordion
Even though the previous examples vary in visual and interaction styles, they all share the
List Inlay pattern as a basic approach to revealing additional content in the context of the
existing page.
132 Chapter 6: Inlays
Detail Inlay
A common idiom is to provide additional detail about items shown on a page. We saw this
with the example of the Netflix movie detail pop up in Chapter 5 (Figure 5-8). Hovering
over a movie revealed a Detail Overlay calling out the back-of-the-box information.
Details can be shown inline as well. Roost allows house photos to be viewed in-context for
a real estate listing with a Detail Inlay (Figure 6-10).
In-context tools
Hovering over a real estate list-
ing brings in a set of in-context
tools, including the “View pho-
tos” tool.
Detail overlay
The Detail Inlay contains
thumbnails of house pho-
tos. Clicking on an individual
thumbnail pops up a Detail
Overlay with a larger photo of
the house.
Figure 6-10. Roost provides both Detail Inlay and Detail Overlay patterns to show home photos
Considerations
One of the more difficult things to do on most real estate sites is get a view of the house
in context without having to navigate from page to page. The curb appeal, inside view,
and backyard are all key factors in driving interest for a house. Knowing this, the team at
Roost wanted to make it really easy to get to the photos quickly.
Tabs
Lest we forget, there are some very traditional interface elements that can be used to inlay
details. Tabs, for instance, can be used as a Detail Inlay. Instead of moving the user from
page to page (site navigation), tabs can be used to bring in content within the page, keep-
ing the user in the page.
Considerations
In Figure 6-11 you can see not just one type of tab for Yahoo!’s home page, but three!
Three different tab styles and interactions can be confusing. In fact, user-testing revealed
this to be the case. However, the design sidestepped some of the problem by giving the
three tab areas each a different visual style. Let’s look at each type of tab interaction.
Figure 6-11. Yahoo’s home page employs three different Tab styles to encourage exploration of
additional content
Traditional tabs
The Featured, Entertainment, Sports, and Video sections are styled as a traditional tab
notebook (Figure 6-11, callout 1). Going from section to section requires the user to
click on the corresponding tab. Most studies on tabs find that the first and second tabs get
the most activity and the subsequent tabs get clicked less frequently. This is the rationale
for placing the “Featured” content first.
Tabs 135
Content tabs
Each section has four featured stories. In this example, the “Cute hamster” is tied to the
thumbnail and story lead (Figure 6-11, callout 2). Clicking on a story lead switches the
content inside the tab. Effectively this is a secondary tab control, but visually it appears as
a content story. By switching in the story without leaving the page, the user can get a peek
at the top stories.
Overlays allow you to bring additional interactions or content in a layer above the cur-
rent page. Inlays allow you to do this within the page itself. However, another powerful
approach to keeping users engaged on the current page is to create a virtual page. That is
to say, we create the illusion of a larger virtual page.
Tip
Think of the interface as a children’s pop-up book. Additional real estate can be called
on as needed to extend the interface.
Virtual Scrolling
The traditional Web is defined by the “page.” In practically every implementation of web-
sites (for about the first 10 years of the Web’s existence) pagination was the key way to get
to additional content. Of course, websites could preload data and allow the user to scroll
through it. However, this process led to long delays in loading the page. So most sites kept
it simple: go fetch 10 items and display them as a page and let the user request the next
page of content. Each fetch resulted in a page refresh.
The classic example of this is Google Search. Each page shows 10 results. Moving through
the content uses the now-famous Google pagination control (Figure 7-1).
138 Chapter 7: Virtual Pages
Figure 7-1. The now-famous Google pagination control illustrates the most common way to move
through data on the Web
Another approach is to remove the artificial page boundaries created by paginating the
data with Virtual Scrolling. In Yahoo! Mail, mail messages are displayed in a scrolled list
that loads additional messages on demand as the user scrolls (Figure 7-2).
Scrolled list
Email messages are displayed as
a scrolled list. This has been the
normal approach on desktop mail
clients. Yahoo! Mail brings that ap-
proach to the Web.
Scrolling
Messages are loaded on demand. As
the user scrolls, the content items
are filled in. While loading, the mes-
sage lines are replaced with the text
“Loading…”.
Scroll completes
Messages are displayed based on
where the user scrolled to.
Figure 7-2. Instead of showing just the messages that can be displayed on a single page, Yahoo! Mail
dynamically loads messages as the user scrolls
Virtual Scrolling 139
Considerations
In some sense Virtual Scrolling turns the scrollbar into a “pagination control.” But in-
stead of a page refresh, the messages are seamlessly brought into the message-list pane,
giving the illusion of a larger virtual space.
Desktop-style applications
In testing Virtual Scrolling, Yahoo! found that users naturally understood the scrolling
paradigm, most likely because they were already accustomed to this feature on desktop
mail clients. Since the Yahoo! Mail Web application looks very similar to desktop web ap-
plications, the expectation for scrolling already exists in the user’s mind.
Tip
The more the web application looks and behaves like a desktop application, the more
intuitive desktop idioms (like Virtual Scrolling) are to the user.
Loading status
There are a few downsides to the Yahoo! Mail version of Virtual Scrolling. First, if the
loading is slow, it spoils the illusion that the data is continuous. Second, since the scrollbar
does not give any indication of where users are located in the data, they have to guess how
far down to scroll. A remedy would be to apply a constantly updating status while the user
is scrolling.
Progressive loading
Microsoft has applied Virtual Scrolling to its image search. However, it implements it in
a different manner than Yahoo! Mail. Instead of all content being virtually loaded (and
the scrollbar reflecting this), the scrollbar reflects what has been loaded. Scrolling to the
bottom causes more content to load into the page (Figure 7-3).
Scrolled list
12,500,000 image results are represented as a scrolled
list. Obviously there is no way to accurately represent
that many items in a list with a scrollbar. Notice the
scrollbar shows size relative to the amount of data that
has been loaded.
140 Chapter 7: Virtual Pages
Scrolling
By scrolling into the area where results have not been
loaded, images are initially represented as gray squares
to indicate that they are currently not loaded.
As each image is loaded it replaces the gray squares.
At the top, the start and end range of the visible im-
ages is displayed (“Images 46–70 of 12,500,00”).
Scroll completes
Image results are fully loaded, and the scrollbar is up-
dated to reflect where this page is in relation to the
previously loaded content.
Figure 7-3. Microsoft Live Image Search uses Virtual Scrolling to fetch additional search results
The Live Image Search approach does a nice job of eliminating paging. It gets around the
“Where am I?” issue by progressively loading and dynamically adapting the scrollbar to
reflect how much has been loaded.
Tip
Use progressive loading of content when the data size is large or unknown.
This type of Virtual Scrolling (where the scrollbar only reflects what has been directly
loaded) works well for search results since relevance starts dropping off the further you
move through the data. But with mail messages, this is not the case and would not be a
good approach since users need to access messages beyond just those loaded at the top.
The Microsoft approach also provides no way to jump to the bottom (although in this
case the option is not needed since the end of all results has little or no relevance).
Virtual Scrolling 141
One more example illustrates an endless wall of pictures and uses a novel approach to a
scrollbar control for Virtual Scrolling. PicLens is a Firefox add-on that allows viewing
images from Google Search, Flickr, and other services to be displayed in the browser as a
wall of photos that can be scrolled through (Figure 7-4).
Figure 7-4. PicLens provides an endless wall of photos; the scroller at the bottom continues to expand
with more content
The scrollbar dynamically resizes and relocates its thumb based on the amount of content
loaded and where it is in the data (Figure 7-5). It also cleverly discards the beginning as it
gets further and further into the content. The basic idea is to give users good navigation
no matter where they are in the gallery of images.
Figure 7-5. The scroller in PicLens dynamically adapts to show the user’s orientation in the data; it
indicates how many images are shown and to some degree where the user is in the wall of images
These examples of Virtual Scrolling demonstrate three different ways to manage the vir-
tual space:
• Yahoo! Mail creates the illusion that all data has been loaded up-front by having the
scrollbar reflect the total virtual space.
• Microsoft Live Search creates the virtual illusion as the user moves down through the
search results.
142 Chapter 7: Virtual Pages
• And PicLens does the same with the caveat that it shows a virtual window in the
larger virtual space (by only providing a scroller control for where the user is and
some before and after context).
Inline Paging
What if instead of scrolling through content we just wanted to make pagination feel less
like a page switch? By only switching the content in and leaving the rest of the page stable,
we can create an Inline Paging experience. This is what Amazon’s Endless.com site does
with its search results (Figure 7-6).
Paginated results
Searching for “Men’s athletic shoes”
displays a traditional-looking set of
search results. The pagination con-
trols are familiar (shown as an explod-
ed callout).
Inline Paging 143
Inline Paging
Clicking to “page 3” causes just the
search results area to update with the
third page of results.
Figure 7-6. Endless uses Inline Paging to create a seamless experience moving through search results
Considerations
There are some issues to consider with Inline Paging.
In-page update
Endless.com provides the normal pagination controls. But instead of the whole page re-
freshing, only the results area is updated. Keeping the context stable creates a better flow
experience. With Inline Paging it feels like the user never leaves the page even though
new virtual pages of results are being brought into view.
Tip
Paging is sometimes the most convenient and natural way to break up information.
144 Chapter 7: Virtual Pages
Natural chunking
Inline Paging can also be useful when reading news content online. The International
Herald Tribune applied this as a way to page through an article while keeping the sur-
rounding context visible at all times (Figure 7-7).
Paging tool
The online version of the
paper mimics the paper
version.
But unlike the paper ver-
sion, a “next page” button
moves through the story.
Inline Paging
Instead of refreshing the
complete page, only
the story columns are
replaced with the next
page.
Figure 7-7. The International Herald Tribune uses Inline Paging to seamlessly move through a story
without losing context
Gmail also uses Inline Paging (Figure 7-8). A set number of messages is displayed on
the page. Clicking the “Older” or “Newer” links moves the user to a new set of messages.
However, instead of refreshing the complete page, just the message area updates. While
there is still some interruption whenever the user switches pages, by making the transi-
tion “stay in the page” the interaction feels much lighter, and a virtual space is created
through clever use of pagination.
Inline Paging 145
Figure 7-8. Gmail paginates seamlessly by only updating the message area
Sometimes Inline Paging can be as simple as clicking on a button to load more items into
the page on demand. The newly loaded content can be added to the current page. This
allows the content to be scrolled, but places the control outside the scrollbar.
Back button
The biggest issue with Inline Paging is whether the back button works correctly. One
criticism of Endless.com is that if the user pages through search results and then hits the
back button, it jumps to the page just before the search. This unexpected result could be
fixed by making the back button respect the virtual pages as well. This is the way Gmail
handles the back button.* Clicking back moves you through the virtual pages.
* This was not always the case. Originally, Gmail did not handle the back button correctly. In the most recent
versions, however, it has provided correct handling for the back button.
146 Chapter 7: Virtual Pages
Figure 7-9. The iPhone iTunes store displays 25 songs initially; the “Load 25 More Results…” button
fetches 25 more songs
Each tap of the “Load 25 More Results…” button loads 25 more songs. The number of
songs loaded is cumulative. With the first tap there are now 50 songs; the third tap, 75
songs; and so on. Normally no scrollbar is shown. However, if the user places a finger on
the list to move up or down, the scrollbar is displayed (Figure 7-10). Since the finger is
the “scroller,” the scrollbar becomes just an indicator of how many songs are loaded and
where the user is in the list.
Figure 7-10. The scrollbar displays when the user starts scrolling through the content; the scrollbar is
just a feedback mechanism to indicate scrolling is happening, how much content is loaded, and where
the user is in the scroll operation
Scrolled Paging: Carousel 147
Timeline
The top section provides
a navigation control
through various Under-
ground articles. “Previous-
ly” and “Up Next” indicate
where the user can go.
148 Chapter 7: Virtual Pages
Animation
Animation reinforces the
fact that the articles are
from the past (the content
moves in from the left to
the right).
Figure 7-11. Yahoo! Underground uses a Carousel to communicate a timeline of blog articles
Considerations
There are some issues to consider when using Scrolled Paging.
Time-based
Carousels work well for time-based content. Flickr employs a Carousel to let users navi-
gate back and forth through their photo collection (Figure 7-12).
Figure 7-12. Flickr uses a Carousel to allow the user to get photos in chronological order; this makes it
possible to find photos without leaving the current page
Tip
Carousels are best for featured or recent content. They are also good for small sets of
time-based content.
Animation direction
Inexplicably, AMCtheatres.com animates its Carousel the opposite way. This leads to a
confusing experience, and it’s harder to know which control to click (Figure 7-13).
Virtual Panning 149
Figure 7-13. AMC animates its carousel backward from the accepted standard: clicking the right arrow
should scroll in content from the right (not the left)
Virtual Panning
One way to create a virtual canvas is to allow users the freedom to roam in two-dimensional
space. A great place for Virtual Panning is on a map. Google Maps allows you to pan in any
direction by clicking the mouse down and dragging the map around (Figure 7-14).
150 Chapter 7: Virtual Pages
Start drag
Clicking and holding down changes
the cursor into a hand (signifying
panning).
Dragging
Dragging the canvas moves the map
in real time.
Figure 7-14. Google Maps creates a virtual canvas; one tool that helps with that illusion is the ability to
pan from area to area
Considerations
There are some issues to consider while using Virtual Panning.
Gestures
Besides map applications, the idea of Virtual Panning has been extended to other devices
thanks to gesture-based interfaces.* With the introduction of the iPhone, the user can
simply “flick” through weather locations, photos, or an iTunes playlist.
Flicking is similar to panning yet has some differences. With Virtual Panning the canvas
only moves while the mouse is dragging it around. With flicking, if the user starts the
dragging operation and releases, the canvas will continue moving with some momentum.
The canvas slows in such a way as to mimic real-world forces.
Considerations
Hard Rock Café has a large rock and roll memorabilia collection. Recently, it digitized
photos of the collection and placed them online for virtual viewing.† The memorabilia
application uses a ZUI interface to move around from artifact to artifact and zoom in to
see details on each item (Figure 7-15).
* For a discussion on gestural interfaces, see Designing Gestural Interfaces by Dan Saffer (O’Reilly).
† The Hard Rock Memorabilia site is located at http://memorabilia.hardrock.com/. It was developed in Silverlight
using Deep Zoom (a.k.a. Seadragon) by Vertigo Software in Point Richmond, CA.
152 Chapter 7: Virtual Pages
Zoomed-out
At the zoomed-out level the
user can see thumbnails of the
total collection.
Zooming in
By using the mouse thumb-
wheel, the user can zoom in (it
is like flying) on any object.
Detail stitched in
As the user gets closer and
closer, more detail is stitched
in. Detail is only limited by what
can be dynamically mapped in
as the user zooms.
Figure 7-15. Hard Rock Café uses a zoomable user interface (ZUI) to allow its memorabilia collection
to be viewed online
Zoomable User Interface 153
Aza Raskin, son of the late Jef Raskin (who pioneered many of the original ZUI concepts)
is continuing to experiment with user interfaces that push the current norms. He dem-
onstrated some potential ZUI interactions in a concept demo for Firefox on the mobile
(Figure 7-16). *
Zoomed-in to content
This browser page lives on a large canvas. This
view is zoomed in to the page.
Slide over
Using a panning technique, the page is pulled
to the right, revealing a hidden toolbar on the
left.
Zoomed-out
The canvas can contain many “Tabs”, or
windows.
Add a Tab
Clicking the plus sign adds a new Tab. The
interface zooms out slightly, revealing a new
window being created in the bottom left of
the canvas.
New Tab
The new Tab now fills up the screen as the in-
terface settles in to a zoomed-in mode.
Figure 7-16. Firefox Mobile Concept Prototype showing panning gestures as well as a ZUI interface
In the last three chapters we’ve been discussing the principle Stay on the Page. Sometimes
tasks are unfamiliar or complicated and require leading the user step-by-step through a
Process Flow. It has long been common practice on the Web to turn each step into a sepa-
rate page. While this may be the simplest way break down the problem, it may not lead
to the best solution. For some Process Flows it makes sense to keep the user on the same
page throughout the process.
Google Blogger
The popular site Google Blogger generally makes it easy to create and publish blogs. One
thing it does not make easy, though, is deleting comments that others may leave on your
blog. This is especially difficult when you are the victim of hundreds of spam comments
left by nefarious companies hoping to increase their search ranking.
Blogger forces you to delete these comments through a three-step process. Each step is an
individual page, all punctuated with a page refresh (Figure 8-1).
Figure 8-1. Google Blogger forces you through a three-step process for each comment you delete, which
is especially tiresome if you have dozens of spam comments to delete
158 Chapter 8: Process Flow
My (Bill’s) blog site was recently spammed. It turns out that my 100 or so articles all had 4
or more spam comments. That means that I had to delete more than 400 spam comments.
Given the way Google Blogger implemented comment deleting, I had to follow these steps
for each comment on each blog article:
1. Scroll to find the offending comment.
2. Click the trash icon to delete the comment.
3. After page refreshes, click the “Remove Forever” checkbox.
4. Click the “Delete Comment” button.
5. After the page refreshes, click the link to return to my blog article.
6. Repeat steps 1–5 for each article with spam comments.
It took 1,600 clicks, 1,200 page refreshes, 400 scroll operations, and several hours to finally
rid myself of all of the spam comments. If the delete action could have been completed in
the same page as the comments, that would have eliminated hundreds of clicks and well
over a thousand page refreshes, and scrolling would have been all but eliminated. I would
not have wasted all the mental energy to reorient myself after each page transition. And I
would have been a much happier man.
This is a common interaction flow on the Web. It turns out to be simpler to design and
implement a process as a series of pages rather than a single interactive space.
— Using a second program, such as Flickr Uploadr, to upload the photos to Flickr.
— Copying the link for a Flickr set (which involves first locating the page for the
uploaded set).
• Send the link in email to appropriate friends.
If some magic were invoked, here is how it might happen:
• The camera would be event-aware. It would know that is your daughter’s eighth
birthday.
• When finished taking pictures of the event, the camera would upload the pictures to
Flickr.
• Flickr would notify family and friends that the pictures of the birthday party are
available.
Thinking along these lines gets some of the artifacts out of the way. Of course the magic
could be taken to the extreme: just eliminate the camera altogether! But by leaving some
elements in the equation, the potentially unnecessary technology pieces can be exposed.
How about the cable? What if the camera could talk magically to the computer?
This kind of thinking led to some recent products that allow users to upload photos auto-
matically from their digital camera to their favorite photo site. The camera’s memory card
actually contains a Wi-Fi connection, giving it direct access to a photo-upload service.*
Turning back to our world, when we look at the multiple page Process Flows that lit-
ter the Web, we find that a little magic could dispense with the artifact of the “page” in
many places. Amazon’s shopping process illustrates this artifact. It provides a fairly typical
multi-page experience when users add items to a cart (Figure 8-2).
First, the user finds a book. Then when she adds it to her shopping cart, she is taken to a
separate page. Getting back happens either through the back button or finding the “Con-
tinue Shopping” button elsewhere on the page. Each book add is a heavy context switch
to the second page.
But what if we could apply some magic? Could we get away with having fewer page transi-
tions? Could we eliminate the multi-page transition?
Yes. It is possible to take flows like this and present them in a single interactive space. At
other times, we can convert a multi-page experience into a single, long page. But some-
times the process is best left broken into individual pages. In those cases we can often
encapsulate the multiple pages into a simple Dialog Overlay, which effectively maintains
the context while preserving distinct page-to-page flow.
John Maeda, author of the book Laws of Simplicity (MIT Press), discusses the magic of
hiding complexity:
In this chapter we will apply a little magic, hopefully get rid of the nuisance of page transi-
tions where possible, and in the end treat the user to a better experience. Specifically, we
will look at these Process Flow patterns:
• Interactive Single-Page Process
• Inline Assistant Process
• Configurator Process
• Overlay Process
• Static Single-Page Process
The Gap accomplishes this kind of product selection in a single page (Figure 8-3) us-
ing Interactive Single-Page Process. The purple shirt is available in all sizes from XS to
XXXL. Hovering over the dark blue shirt immediately discloses that this color is only
available in XS and S sizes.
Figure 8-3. The Gap uses Interactive Single-Page Process to reflect the sizes for each product color
choice in real time
Considerations
There are some issues to consider when using an Interactive Single-Page Process.
Responsiveness
The user’s taste preference comes first. Either the color or the size can be chosen. If the
item is out of stock for any color/size combination, it is displayed as unavailable (by show-
ing the color or size as disabled). By placing this process in a few simple interactions, the
user can quickly find something available to buy. With any online shopping experience,
the potential for the user to bail out is a real concern. In-place interactions like this reduce
these bailout moments.
In Designing Interfaces (O’Reilly), Jenifer Tidwell uses the term Responsive Disclosure to
describe this same pattern. According to Tidwell, Responsive Disclosure is good when:
The user should be walked through a complex UI task step-by-step, perhaps because
he is computer-naive, or because the task is novel or rarely done (as in a Wizard). But
you don’t want to force the user to go page-by-page at each step—you’d rather keep
the whole interface on one single page. *
Amazon’s interface for selecting a shirt also uses Interactive Single-Page Process with a
slightly different interface (Figure 8-4).
Selecting sizes
Sizes are shown in a drop-down
menu. The sizes that are not avail-
able for the selected color are
disabled.
If a disabled size is selected, the un-
available colors will be displayed in
a dimmed state.
Selecting color
The colors available for this size
neck are clearly shown in the color
selection palette.
Unavailable
If a combination that is unavail-
able is selected, a clear warning is
displayed and no links to purchase
are made available.
Figure 8-4. Amazon provides a similar experience to the Gap, utilizing Interactive Single-Page Process
Interactive Single-Page Process 163
The idea is the same: make the experience for selecting a product painless by providing
inventory disclosures as quickly as possible, and doing it all in a single-page interface.
Tip
Interactive, single-page process flows improve user engagement and increase conver-
sion rates.
Date selection
In the first column, the
calendar reveals available
dates. Check-in and check-
out dates can be chosen
from a calendar.
Available room types are
shown for the date and
number of people.
Each column represents what would normally be presented on a separate page. In the first
column, a calendar discloses availability up front. This prevents scheduling errors. Select-
ing the room from the second column updates both the room picture and the pricing. The
pricing is reflected back on the calendar days (Figure 8-6) as well as in the third column
where credit card and contact information is entered.
164 Chapter 8: Process Flow
Figure 8-6. The Broadmoor calendar shows availability and pricing information
Benefits
Adobe calls out the Broadmoor one-page reservation interface in its Adobe Showcase.* It
states the benefits of this method:
• Reduces entire reservation process to a single screen.
• Reduces the number of screens in the online reservation process from five to one.
Other online reservation applications average 5 to 10 screens.
• Seventy-five percent of users choose OneScreen in favor of the HTML version.
• Allows users to vary purchase parameters at will and immediately view results.
• Reduces the time it takes to make a reservation from at least three minutes to less
than one.
Additionally, Adobe notes that conversion rates (users who make it through the reserva-
tion process) are much higher with the Interactive Single-Page Process.
Considerations
There are some things to consider when using the Inline Assistant Process.
Additional step
Amazon, on the other hand, is betting on its recommendation engine. By going to a sec-
ond page, Amazon can display other shirts like the one added—as well as advertise the
Amazon.com Visa card (Figure 8-8).
166 Chapter 8: Process Flow
Figure 8-8. Amazon shows recommendations when confirming an add to its shopping cart
Which is the better experience? The Gap seems to be the clear winner in pure user expe-
rience. But which brings in more money? It’s a question we cannot answer, but the right
one for any site to ask.
Tip
Use a quick and easy approach to get users to finish a task. Use additional steps when
there are opportunities to engage the user further (as with recommendations).
Each movie on the site has an “Add” button. Clicking “Add” immediately adds the movie
to the user’s queue. As a confirmation and an opportunity for recommendations, a Dialog
Overlay is displayed on top of the movie page.
Just like Amazon, Netflix has a sophisticated recommendation engine. The bet is that
since the user has expressed interest in an item (shirt or movie), the site can find other
items similar to it to suggest. Amazon does this in a separate page. Netflix does it in an
overlay that is easily dismissed by clicking anywhere outside the overlay (or by clicking
the close button at the top or bottom).
In a previous version of Netflix (or if JavaScript is disabled), this becomes a multiple-page
experience (Figure 8-10).
Figure 8-10. Without JavaScript enabled, you can see the original multi-page flow for the “Add to
Queue” process on the Netflix site
Each movie add leads to a separate recommendation page. Clicking on “Add” for a movie
on a recommendation page takes the user to a secondary recommendation page. This
process can continue, on and on. Eventually, the user has to hit the back button a num-
ber of times to get back to the original context. In the Overlay example (Figure 8-9), the
multi-page flow is encapsulated in the overlay and can be easily dismissed at any point,
quickly returning the user to the originating page.
168 Chapter 8: Process Flow
Multiple steps
Each step is presented is presented as a
separate “page” within the overlay.
Each “page” has a simple, clear call to
action.
Final step
Filling out the contact information is left
until the end. If this step occurs too early in
the process, it might make the user think
all the steps will be this involved.
Figure 8-11. Discover encapsulates its “Create Your Profile” flow in a Dialog Overlay
Considerations
There are some issues to consider when using the Dialog Overlay Process.
Figure 8-12. Discover dedicates a complete “page” to just selecting when you would like to pay your bill
Making the in-between steps clear and visually appealing with a single call to action
makes the process feel lightweight. The last step is the biggest. By this time the user has
committed to the process to some degree. Most of the user information is already filled in
from the account, so the step does not feel too involved. But imagine if this step were first.
It could cause users to more frequently bail out from the process, thinking that each step
would be as involved as the first one.
Clear status
The other interesting touch in this example is providing an indication of the number
of steps (Figure 8-13). There are any number of ways to indicate this information; the
important thing is to give some indication of what the users are dealing with when they
start. Usually three steps are ideal. In this case, there are five steps. But as we mentioned,
the early steps are single actions.
Figure 8-13. Discover uses the orange dot to indicate how far the users are in the process and gray dots
to indicate what they have left
Netflix probably has one of the simplest overlay flows. When a user purchases a previously
viewed DVD, a one-page overlay appears. Since the only way for a user to get to this pur-
chase dialog is by being a member, Netflix has all the information it needs (shipping and
billing information, for example) to complete the purchase in a single step (Figure 8-14).
Configurator Process 171
Figure 8-14. Netflix has a single-step purchase flow for previously viewed DVDs
Configurator Process
Sometimes a Process Flow is meant to invoke delight. In these cases, it is the engagement
factor that becomes most important. This is true with various Configurator Process in-
terfaces on the Web. We can see this especially at play with car configurators. Porsche
provides a configurator that allows users to build their own Porsche (Figure 8-15).
172 Chapter 8: Process Flow
Figure 8-15. Porsche’s car configurator provides an engaging way to customize a car
Being able to tweak the colors, wheels, interior, and options for a car and see the results in
real time is an engaging experience. In Chapter 14, we discuss Live Previews. Live Previews
allow the user to see the effect of his changes on a simulated version of the real thing.
Considerations
There are some issues to consider when using a Configurator Process.
Immediate feedback
In the case of the Porsche site, when the user clicks on various body colors, the car is re-
configured in the selected color and rendered in photorealistic shading. Most configura-
tors allow a 360-degree view of the car as it is configured.
Tip
Use immediate feedback (Live Previews) to simulate real-world choices.
Imagine if this was turned into a multi-page experience. Each panel would ask for the color,
the wheel style, the interior material, dashboard configuration, and various other options.
At the end, you would see your car. Not compelling? By making the experience engaging,
users are more apt to experiment and fall in love with the car they have “designed.”
Configurator Process 173
It should be noted that the Porsche color configuration experience is actually part of a
multi-page process flow. This highlights the fact that the decision between a single-page
experience and a multi-page experience are not mutually exclusive. Single-page work-
flows can live within a multi-page workflow.
There is a dynamic nature to this Configurator Process. As the user selects items to add
to the computer, the price is dynamically updated using a Spotlight technique (discussed
later in Chapter 11). In the upper-right corner of the page, the system configuration and
price are highlighted to indicate updated information. The downside is that if this user is
scrolled too far down, she can’t see the update Spotlight since the summary panel is not
visible.
174 Chapter 8: Process Flow
Since the customized flow contains many options for listing an item, it requires a good
deal of handholding. A multi-page process fits well with guiding the user through a com-
plex set of tasks.
The other flow provided by eBay is a simplified Static Single-Page Process (Figure 8-19).
Figure 8-19. eBay displays a simplified “Sell Your Item” as a Static Single-Page Process
176 Chapter 8: Process Flow
Considerations
There are some issues to keep in mind when using a Static Single-Page Process.
First page
The first page focuses the us-
ers on just deciding what the
issue is.
Static Single-Page Process 177
Final page
The second page allows them
to describe the details of that
problem.
Why is it good to have a multi-page process in this case? Confirmation is a critical step in
the process. The user needs a place to focus just on reporting a problem. Suggestions can
be provided here without the context of all the other possible problems.
Recently I had the chance to travel to Germany. It had been over 15 years since my last
trip, so one of the things on my agenda was to take some time and tour by car. Not want-
ing to figure out local maps or ask for directions, I requested a car with a GPS navigational
system.
The system turned out to be dead simple. However, at first I was disappointed: it did
not contain a street map view. Instead it displayed a simplified set of arrows indicating
the correct turn and audible instructions just when I needed it. But the system worked
perfectly. I found the experience delightful. Instead of trying to look at an in-dash map, I
simply let it tell me what to do next. It provided just the right amount of directions with-
out taking away my travel experience.
One reason I needed these just-in-time cues was due to lack of familiarity with the streets
of Germany. Being in an environment with different cultural conventions (not the least
of which was the language barrier) added to its total necessity. If I moved to Germany,
learned the language, and used the roads on a daily basis, then my dependence on the GPS
would diminish.
We need a similar experience for our web applications.
An Invitation
In earlier chapters we discussed Drag and Drop, Inline Editing, and Contextual Tools, as
well as other patterns of interaction. A common problem with many of these rich interac-
tions is their lack of discoverability.
Let’s look again at the way Flickr introduces the ability to edit a photo description (Figure
P4-1). Just below each photo is a description area. This area can be edited directly. But
how does the user know the area is editable? In the first panel of Figure P4-1 there is no
cue or invitation telling users that they can edit the photo description. But notice in the
second panel—when users hover their mouse over the description area, a cue to edit
appears.
Figure P4-1. Flickr provides an invitation to edit the photo description
The background of the editable areas becomes highlighted in light yellow. A tool tip
appears, cueing the user to “Click to edit”. If users follow these cues to the next level of
interaction (from mouse hover to mouse click), they will be able to edit the photo descrip-
tion directly.
Invitations are the prompts and cues that lead users through an interaction. They often
include just-in-time tips or visual affordances that hint at what will happen next in the
interface.
Providing an invitation to the user is one of the keys to successful interactive interfaces.
In the Flickr example, the designers chose to reveal the feature during mouse hover. This
Invitation is revealed just in time, when the mouse is paused over the editable area. The
downside is that the feature is not visible when the mouse is not over the area. The other
choice is to make the Invitation visible at all times. There is an obvious tension between the
two styles of invitations, static and dynamic, which we explore in the next two chapters:
Chapter 9, Static Invitations
These are invitations that are offered on the page using visual techniques to invite
interaction.
Chapter 10, Dynamic Invitations
These invitations come into play in response to what and where the user is interacting.
Chapter 9
Static Invitations
By providing cues for interaction directly on the page we can statically indicate to the
user the expected interface behavior. Static Invitations provide cues directly on the page.
There are two broad patterns of Static Invitations:
Call to Action Invitation
Invite users to primary task or tasks.
Tour Invitation
Invite users to explore new features.
Figure 9-1. Yahoo! Answers and Discover Card use a clear 1-2-3 set of call to action invitations
182 Chapter 9: Static Invitations
Call to Action Invitations are generally provided as static instructions on the page. But
visually they can be provided in many different ways (Figure 9-2).
Flickr Organizr
In the Organizr, the user can drag items from
a photo set to a work area. When the work
area is empty, the area serves as a Call to Ac-
tion for dragging items to edit.
Figure 9-2. Textual invitation, interactive ratings, and Call to Action buttons are different ways to
create Call to Action Invitations
Call to Action Invitation 183
Considerations
There are some issues to keep in mind when using a Call to Action Invitation.
Visual noise
The problem of course with a Call to Action Invitation is that it competes with every-
thing else on the page. Thinking through what actions you want to call out on a page
(before any interaction) is a healthy design exercise that brings clarity to both visual and
information hierarchy on the page.
Tip
Use a Call to Action Invitation for a primary action or to call out main 1-2-3 steps.
Like.com is a site for finding items that are similar to other items. Users can shop for
similar colors, shapes, and patterns. Given a particular kind of watch, the users can draw a
box around some physical feature they really like about it. Like.com will then find similar
watches that match the characteristics that were highlighted. For example, highlighting
the chronograph face will find more chronograph-style watches (Figure 9-3).
Since this feature is unique, a Call to Action Invitation is placed just above the watch.
Titled “Refine by Visual Detail”, it contains a Static Invitation that says “Draw a box on
the item to focus your search on that area.”
Figure 9-3. Like.com allows users to highlight what they like visually about a product; it will then
return items visually similar: the black watch matched the face style highlighted
As with any Static Invitation, the question is: does it get lost on the page? The additional
graphic that represents a mouse dragging a box adds some visual contrast to grab the user’s
attention. In situations like this, only user-testing can verify whether users get it or not.
184 Chapter 9: Static Invitations
Figure 9-4. Backpackit uses a blank page to invite the user to start adding content
It’s a simple idea: starting with a blank slate invites the user to fill it in. Recycling what
would normally be a blank area to provide clues on how to personalize it is a great way to
entice users to create content. The use of the arrow is a nice touch as it allows the user to
read the page as normal, but visually ties the invitation back to the toolbar above.
Tip
Recycle blank areas with invitations to interact.
Unfinished invitation
Yahoo! has a security feature that helps users confirm that they are indeed logging in to
the official site (and not a spoof site). The setup is simple. Provide an image associated
with the login page, an image known by only the user and Yahoo!. When users are on the
official site, they will see the image uploaded for the login page.
Tip
Leave an area unfinished to invite the user to complete a task.
The Login team has gone through a couple of iterations on how to cue the user to add a
sign-in seal. You can see these two approaches in Figure 9-5. The first renders the corner
of the login area as a page turned down. The idea is that something appears out of place,
which draws the user to interact with the security feature. We can only speculate, but
given the latest revision to the invitation it appears that the first design did not work as
well as expected (Figure 9-5, left). In the second iteration, messaging, visual style, color,
and proximity have all been combined to create a clear invitation (Figure 9-5, right).
Tour Invitation 185
Figure 9-5. Yahoo! Login provides a Call to Action Invitation to add a sign-in seal: the first version
(left) used a dog-ear graphic to get the user’s attention; later versions (right) used a rectangular area
with a different color background
Tour Invitation
Closely related to Call to Action Invitations are Tour Invitations. The situation: you have
a newly redesigned site or a whole range of new features. How do you invite the user to
interact with the new site correctly and discover these new features?
When Yahoo! Maps went through a major interface change they included an Tour Invita-
tion (Figure 9-6). Tours are a great way to introduce new features.
186 Chapter 9: Static Invitations
Animated transitions
Each step is animated into place
and slides slightly up and to the
right.
This extra animation is intended to
get the user’s attention.
Tour steps
Once the tour starts, the shade
slides out of the way and an overlay
describes a specific feature.
Next step
The overlay positions next to the
feature item. It also provides a clear
call to action (though more sub-
dued) to exit the tour and return to
Yahoo! Maps.
Figure 9-6. Yahoo! Maps provides a Tour Invitation for its features; the tour provides a way to invite
users to interact with new features
Considerations
While tours can be a nice way to explain design changes to a web application, they are too
heavy-handed for showing features at the moment the user interacts with them. And they
run the risk of not being used since they are optional to the user’s flow.
Not a Band-Aid
Be careful. It is tempting to use tours as a Band-Aid for a poor interface. If users don’t
get it, then creating more instructional text and providing tours will not solve the real
problems an interface may have during interaction. But coupled with a well-designed
interface, a tour can be just what is needed for users to get started.
Tip
Tours don’t make a difficult site easy to use.
The key to tours is keeping them simple, easy to start, and easy to stop. A tour should just
illustrate the live site. Going into a “tutorial” mode separate from the site rarely works.
Keep it simple
When Yahoo! changed its home page in 2006, it launched a way to tour the live interface
with a Dialog Overlay (Figure 9-7). The overlay provides a three-step interface: “Search
Smarter”, “Find it Faster”, and “Get Personal”. Each step highlights a different part of the
interface with a bubble callout explaining the feature (Yahoo! calls this a “Feature Cue”).
188 Chapter 9: Static Invitations
Figure 9-7. The redesigned Yahoo! home page included a tour interface at launch; the tour provided a
nice way to invite users to use the main features of the site
Simple visual techniques like dimming the page and highlighting the key areas works
well. Using a Lightbox Effect (discussed more thoroughly in Chapter 11) to highlight
features and clearly explaining them are great techniques for keeping tours simple.
Figure 9-8. Like.com displays its four key features (“Detail Search”, “Color Match”, “Shape Match”, and
“Pattern Match”) in a large section at the top of the page; each feature is displayed in rotation
Tour Invitation 189
While visually stunning, there are a few issues with this approach:
• Users tend to view visually treated areas at the top of a page as an advertisement. In
tests of several products that employed this type of site introduction, users failed to
even notice the area.
• Since the tour is completely disconnected from the site, it is harder for users to map
these feature descriptions to the actual site.
However, Like.com is trying to introduce completely new idioms. Creating a nice visual,
bold explanation does a very good job of making these features easy to discover and in-
teract with. The real key is that the features are easy to use in the site. The tour becomes
secondary and as such may overcome the limitations noted.
Static Invitations are useful for cueing the user about what the interface has to offer.
However, it is a fact established by many independent tests that users often don’t read in-
structional text. A good way to get the users’ attention is to provide invitations to interact
at the moment when they need it. Dynamic Invitations engage users at the point of the
interaction and guide them through the next step of interaction.
There are several ways to engage the user with a Dynamic Invitation:
Hover Invitation
During mouse hover.
Affordance Invitation
Using the familiar as a bridge to the new.
Drag and Drop Invitation
For drag and drop.
Inference Invitation
During interaction.
More Content Invitation
For revealing more content.
Hover Invitation
One way to engage the user is by using the mouse hover to show a Hover Invitation.
The Gap uses the mouse hover event to invite its shoppers to take a more detailed look at
an item (Figure 10-1).
192 Chapter 10: Dynamic Invitations
Non-hover state
The Gap displays items as normal when
the mouse is not over them.
Figure 10-1. The Gap provides a nice “Quick Look” feature that is exposed as a Hover Invitation
Considerations
There are some issues to keep in mind when using a Hover Invitation.
Visual cues
The button revealed uses inviting language. The term “Quick Look” makes it seem quick
and easy. The button also looks like a button. The affordance of a button is clear; buttons
have a clear connection with providing an action. It says to the user “click me” without
saying it directly. The button also visually contrasts with the item hovered over. Finally,
the proximity of the invitation clarifies which item can be inspected.
Hover Invitation 193
Another nice touch is that the button changes visual depth when the mouse hovers over
it. This detail hints that the button can be clicked. It gives a signal to what the next level of
interaction should be—clicking the button. It provides a Hover Invitation.
Notice also that this employs the best practice we discussed in the last chapter: using fa-
miliar idioms to bridge the gap to new interactions.
Figure 10-2. Like.com chose to display the “Visual Search” button at all times, most likely because it is a
key feature on the site
The tension between revealing a feature statically on the page versus more subtly during in-
teraction is based on how primary the action is, and is best resolved through user testing.
Netflix uses Static Invitations to reveal star ratings and the “Add” button for every movie
shown on the page (Figure 10-3). As with Like.com, this setup has the negative effect of
making the page visually heavier. But as with Like.com, priority is clearly placed on the
exposed features.
194 Chapter 10: Dynamic Invitations
Figure 10-3. Netflix shows the “Add” button and star rating statically on the page; both adding movies
to the queue and rating them are important to the user’s experience with the service
Both Like.com and Netflix have specific reasons that drove them to not use a Hover In-
vitation to reveal these actions but instead to use the Call to Action Invitation. An egre-
gious example can be contrived by changing the design of Backpackit to show all of its
in-context tools at the same time (Figure 10-4).
Figure 10-4. A portrayal of what Backpackit would look like if it displayed all actions at once (this is
not the approach Backpackit took)
Hover Invitation 195
This setup would not work at all as it is so visually dense it distracts from the to-do list
itself. Looking at this extreme example helps us to evaluate the tension between being
visually explicit and interactively subtle:
• Choose being visually explicit if your actions are key actions and you can do it in such
a way as to not be too visually dense.
• Choose being interactively subtle whenever possible if the actions are secondary to
the content and the primary goal is readability and visual simplicity.
Figure 10-5. Flickr highlights the background, displays a tool tip, and changes the cursor to invite the
user to edit
Figure 10-6. Yahoo! Movies previews what the rating will look like after it gets chosen
Previewing what effect the action will have is a really nice way to invite the user to engage
with a feature. Yahoo! Movies does this by showing the grade in the left pane as it will ap-
pear after the grade is chosen (Figure 10-6). LandsEnd.com does just the opposite. When
the user hovers over a color swatch, the slacks do not change color; only after a click does
this happen. The downside is that the user can’t just quickly roll over the swatches and
see what each looks like. Additionally, the user only knows if a color is unavailable after
clicking on the color swatch (Figure 10-7).
196 Chapter 10: Dynamic Invitations
Figure 10-7. LandsEnd.com does not show colors on hover; only on click will the color be shown
Affordance Invitation
In his book The Design of Everyday Things (Basic Books), Donald Norman applied the
term affordance to design. The original use of the term goes back to J. J. Gibson, a per-
ceptual psychologist. Gibson used the term to describe the actionable properties of an
object. The classic example is that of a doorknob. To humans the affordance provided is
the ability to grasp, turn, or pull the handle. In Gibson’s view the property did not have to
be visible, it just needed to be something the actor (human or animal) perceived as a way
to interact with the object. Norman used this term to describe the idea of a perceived af-
fordance for a user interface element. He hastened to add that the perceived affordance on
Affordance Invitation 197
screen elements does not have physical properties, but on some level users will perceive
that they can interact with them largely due to convention, terminology, metaphor, and
consistency.*
Considerations
There are some issues to consider when using an Affordance Invitation.
Non-hover state
A user’s photo is displayed in a visually non-cluttered style. Just the
picture, not interface tools, is visible.
Hover state
When the mouse enters the photo, an additional interface element
(a drop-down arrow) is revealed. The photo gets treated with visual
depth: this creates an affordance that this is an interface control and
not just content.
* For a fuller discussion of the nuance between an affordance and a perceived affordance, see http://www.
interaction-design.org/encyclopedia/affordances.html.
198 Chapter 10: Dynamic Invitations
Drop-down activated
Action menu is revealed. The arrow flips upside down, indicating that
clicking on it will collapse the menu. The menu itself is a common
idiom inviting user interaction.
Figure 10-8. Flickr employs the familiar drop-down affordance when the user hovers over another
Flickr user’s profile picture; clicking the drop-down reveals a menu of actions
Tip
Bridge new interactions with familiar idioms.
Multiple idioms
During this interaction sequence, several idioms are revealed. Each revealed idiom is fa-
miliar and naturally leads the user to the next level of interaction. In the Flickr example
the Contextual Tool for contacts has these affordance attributes:
Looks like a button
When the user hovers over a photo, it gets a visual depth treatment that looks like a
button.
Has a drop-down arrow
A drop-down arrow is part of the visual button treatment. It is slightly separated (by
whitespace) to emphasize that it has a specific function.
Provides a drop-down menu
When the menu is revealed, it is an obvious idiom that the user knows how to interact
with.
Inverts the arrow
The drop-down arrow is flipped upside down to indicate that the menu can be closed.
Affordance Invitation 199
At each step in the interaction, a familiar idiom is revealed. Each tugs the user forward
into the interaction.
Another common idiom used throughout the Web is the hyperlink. It clearly indicates a
possible “click” (Figure 10-9).
Figure 10-9. Backpackit uses the familiar idioms hyperlink and trashcan to indicate each tool’s purpose
(edit and delete)
Recall from our earlier examples of Backpackit that hovering over a to-do item reveals
contextual tools. The “Edit” tool is represented as a hyperlink. The interaction is fairly
obvious. Clicking the link will do something. The link is labeled “Edit” so it should edit
something. Because it is revealed when the mouse is over the “Milk” item and the “Edit”
link is placed in proximity to it, we can assume it will edit the “Milk” item.
Perceived affordance
The other tool revealed is a trashcan icon. Again, most users are familiar with the trash-
can icon idiom. It has been in use since the early 1980s, and was popularized by the
Apple Macintosh. It is fairly obvious that clicking the trashcan will delete “Milk” from our
to-do list.
While dynamically revealing contextual tools might initially be unexpected, the use of
these Affordance Invitations serves as a bridge to invite the user to understand how to
complete a task.
The Events
In Chapter 2, we listed 15 different events that are available to the designer to cue the user
during a drag and drop interaction. Here are the 15 drag and drop events we listed in that
chapter:
• Page Load
• Mouse Hover
• Mouse Down
• Drag Initiated
• Drag Leaves Original Location
• Drag Re-Enters Original Location
• Drag Enters Valid Target
• Drag Exits Valid Target
• Drag Enters Specific Invalid Target
• Drag Is Over No Specific Target
• Drag Hovers Over Valid Target
• Drag Hovers Over Invalid Target
• Drop Accepted
• Drop Rejected
• Drop on Parent Container
As with any complex interaction, it is key to guide the user through each step. Given this
many interactions, it’s important to show invitations at key moments.
While at Yahoo!, I (Bill) worked on the Yahoo! for Teachers product. A key feature is
the Yahoo! Gobbler™, which allows teachers to grab text clippings, images, and links from
pages around the Web and “gobble” them back to their classroom projects (Figure 10-10).
Drag and Drop Invitation 201
Non-drag state
The Yahoo! Gobbler allows teachers to grab elements from
the page (images, text clippings, links) and drag them into
the Gobbler tool. Items dropped into projects in the Gob-
bler are saved automatically to the Yahoo! for Teachers port-
folio of projects.
Drag initiated
Once the drag is initiated, a small thumbnail representation
can be dragged around.
There is an additional opportunity missed for an invitation,
however. When drag is initiated, all of the valid drop objects
could be lightly highlighted. This would indicate to the user
where it is valid to drag items.
202 Chapter 10: Dynamic Invitations
Dropped object
Once dropped, the object replaces the previous item
displayed.
Figure 10-10. Yahoo! for Teachers Gobbler uses several invitations during a drag and drop interaction
Considerations
The challenge is how to indicate that items on the page are draggable and what to do
with them once they are dragged. The interaction is made clear by highlighting draggable
items on hover, indicating where something has been ripped from, showing a miniature
version of the clipping (as it would be represented once saved), and highlighting the proj-
ect that is ready to receive the clipping.
Thinking through each of these microstates in an interaction is really a navigation problem.
How do we subtly prompt the user about what to do next? This is the power of invitational
design when intertwined with the interaction. A common mistake is to provide drag and
drop with little or no cues during operation. This leads to confusion.
Drag and Drop Invitation 203
Invitation to drag
For any drag to work, there needs to be a way to indicate draggability. In the prior ex-
amples the only indication that something was draggable was the cursor change on mouse
hover. In observing user-testing, the step of providing the cursor change is a key way users
can find out whether something is draggable. The cursor change is subtle and seems to
only cue users who know the page allows drag and drop. The continued challenge is to make
drag and drop discoverable for users not expecting it.
In the same round of testing we experimented with various styles for module headings
to indicate a “grip” area. Surprisingly this seemed to have a negligible effect.
The key element to indicating draggability is answering the question, where do you grab to
drag a module? In iGoogle (Figure 10-11), the title contains a link to the module’s origin as
well as three controls (menu drop-down, collapse, and remove). That leaves a small space
(or in some cases almost no space) for grabbing the module for drag and drop. It also
means a smaller space to see the cursor change and allow the feature to be discovered.
Figure 10-11. In iGoogle the area users can grab a module for dragging is sometimes very small if the
title is long; the drag area is between the word “Feed” and the menu drop-down arrow
One solution would be to reserve an always-visible grab texture on the lefthand side of the
header (Figure 10-12).
Figure 10-12. Adding a drag control to the left of the header for modules would provide a discoverable
and standard way to drag each module
The grab area plays on users’ spatial memory: it indicates that they should always go here
to start dragging. Coupled with the cursor change indicating draggability, the grab area
creates a complete invitation for drag.
It’s OK to be extremely explicit. Concept Share does this for associating a concept with an
image the user has added to a concept workspace. Saying “Drag me” is a clear invitation
to drag (Figure 10-13)!
204 Chapter 10: Dynamic Invitations
“Drag me”
A comment can be associated
with a specific part of an image
by dragging a connection line to
the image.
To make it explicit, the top-right
corner of the comment box says
“Drag me”.
“Reset Pointer”
Once the connector is dragged
from the comment box to the
image, the “Drag me” changes to
say “Reset Pointer”.
Figure 10-13. Concept Share explicitly invites the user to “Drag me” in order to tie comments to a part
of the image
Google Maps recently added a feature that allows users to change driving directions by
dragging the displayed route to connect through different roads (Figure 10-14). A con-
nector object (represented as a circle) provides a tangible object to drag. Changing the
cursor indicates draggability. The tool tip states plainly “Drag to change route”. Since the
route actually changes dynamically as the user drags it, the effect of dragging is immedi-
ately reinforced: changing the route on-the-fly.
Drag and Drop Invitation 205
Figure 10-14. Google Maps displays a draggable circle, changes the cursor, and displays a tool tip
Figure 10-15. Flickr’s Organizr provides a place to move photos that users wish to perform actions on;
a typical action involves adding them to a set
206 Chapter 10: Dynamic Invitations
Yahoo! Photos had a nice upload feature that allowed direct drag and drop from the user’s
desktop into the upload page. Since this is new functionality that is not typically supported
by browsers, the designers chose to prominently advertise drag and drop. The invitation
to drop photos the easy way was placed in the spot where photos could be dropped. Using
a stylized arrow and image to illustrate the procedure helped to make the feature clear
(Figure 10-16). Both examples use the Blank Slate Invitation (discussed in Chapter 9).
Figure 10-16. Yahoo! Photos provided an easy upload feature through drag and drop, and advertised it
prominently
This only works if the message is clear and simple. The Flickr invitation has other instruc-
tions that may detract from the main message. In Yahoo! Photos there are two ways to
upload: the select and upload model and the drag and drop model. To avoid confusion
between the two models, the drop text reads “Drag and drop photos here or click ‘Select
photos…’ above.” One slight improvement would have been to place each choice on a line
by itself and make the “or” all-caps (Figure 10-17).
Figure 10-17. Slightly altered messaging to make the two upload interactions more explicit
Drag and Drop Invitation 207
Invitation to drop
Another place that invitations can happen is during the drag. If there is a single drop tar-
get, you can repurpose the area by changing the messaging there to indicate this is where
to drop.
In the Flickr Organizr tool (Figure 10-18), once dragging starts, the bottom pane (con-
taining all the photos) gets overlaid with a message “Drop a photo here to remove it from
the batch.” This is a straightforward way to invite the user to take the next step. At a more
general design level, there are other possible ways to remove a photo from the work batch
area. One would be to provide a small [X] next to the photo on hover, allowing the user to
click to remove it from the temporary area. Dragging is consistent here since it was used
to place it in the area to begin with.
Figure 10-18. Flickr contains a slightly confusing drop invitation: users have to drag the photos from
the temporary work area (batch) to their set of photos in order to “remove” them
The problem with temporary areas like this is that users can often be confused about what
it means to remove the items after they are done working with them. What is odd about
this is having to use drag and drop to “remove” the item from the batch by dragging it
back into the photo area (when in reality it was not actually removed). Flickr completes
this action by showing an animated nuclear explosion. This seems to indicate the photo
has been “nuked,” when in reality it is just no longer in the temporary area.
An alternate approach is to have a set of actions that only work on objects that are directly
selected (see Chapter 3). This removes the need for drag and drop to simulate selection.
The more common use for drop invitations is like the one used by Yahoo! Mail (Figure
10-19). When dragging a mail message to folders, the dragged message representation
contains a drop status icon indicating what will happen on drop.
208 Chapter 10: Dynamic Invitations
Invalid drop
The red “banned” icon indicates that the mes-
sage cannot be successfully dropped here.
Figure 10-19. Yahoo! Mail provides drop invitations embedded with the drag object
Green is used to indicate a valid drop target; red indicates invalid. The “check” indicates
that the message can be moved here. The “banned” icon indicates that the item will not be
dropped here. The “plus” icon is a special case. Dragging a message to the Contacts folder
will add the sender to the contact list.
Inference Invitation
Another challenge to providing invitations is not over-anticipating the user’s intent. When
you couple the different actions a user may perform with the fact that you cannot always
know what the user is going to do next, you find the problem much more difficult than
you first imagined.
What you don’t want to end up with is the infamous Clippy, Microsoft Office’s attempt to
determine what the user wanted to do next. Clippy was overaggressive with its sugges-
tions as well as visually distracting (and annoying). It was eventually removed from the
product suite.*
Tip
Use visual inferences during interaction to cue users as to what the system has inferred
about their intent.
For a counterexample, Google Sketchup does a really nice job of inferring user intent.
When the user is drawing 3D objects, the interface provides cues (called Inference Invita-
tions) as he moves his mouse around (Figure 10-20).
Figure 10-20. Google Sketchup does an amazing job of inferring what the user might want to do next
while drawing
Considerations
There are some issues to keep in mind while using Inference Invitations.
Intelligent interaction
The inference engine uses help cues that appear automatically while the user is working
on the sketch, to identify significant points or geometric conditions. These cues make
complex inference combinations clear as the user draws. Besides point-based inferences,
the interface also provides inferences for the linear space or for planar space.
The result is a very intelligent way to draw. When sketching real-world objects, the user
will want to play off of existing spaces. The inference engine plays off of this real-world
metaphor. Even smarter, users can cue the inference engine as to their interest in real
* Clippy’s official name was Clippit. For the full scoop on Clippy, see http://en.wikipedia.org/wiki/Office_Assistant.
210 Chapter 10: Dynamic Invitations
time, allowing it to respond to what they are doing. When they start drawing a line, they
can hover over another line edge telling Sketchup that this is their reference. Then it is
trivial to draw a line parallel or perpendicular to the reference line (Figure 10-21).
Figure 10-21. Google Sketchup uses just-in-time inferences while the user is drawing
Figure 10-22. Yahoo! home page contains more content than is statically visible
The Yahoo! home page contains more than 20 pages of hidden content and previews from
6 other Yahoo! sites in a small space.
In the Personal Assistant (top right, Figure 10-22), whenever the mouse hovers over a
Yahoo! site tab, it automatically animates open. This provides a More Content Invitation
revealed through a simple Hover Invitation.
Yahoo! Games provides an interesting approach to exposing more games. Featured games
are shown two at a time. A carousel component is used to slide more games into view.
But to give the idea that there are more games, a small thumbnail viewer shows six games
at a time. The two main games in view are highlighted in the thumbnail viewer (Figure
10-23).
Dual view
The top item is a carousel showing two
items at a time.
The bottom gives more context. It shows
six items and highlights the two that are
shown above.
Scrolling
Scrolling through the top carousel moves
the user through more games; this can
be seen from the context view below.
Figure 10-23. Yahoo! Games uses a two-level viewer: the top shows two games; the bottom gives
context indicating that more games can be viewed
Considerations
There are some issues to keep in mind when using More Content Invitation.
Tip
Where appropriate, use animation to indicate that there is more content.
Animation is a powerful way to indicate that more content is available. When Yahoo!
Games starts up, this two-level game viewer gets kicked off by sliding in content. Every
few seconds (if the viewer is not interacted with), an animation rolls in new content. Since
animation grabs visual attention, it works as an invitation to indicate to the user that there
is more content (Figure 10-24).
Figure 10-24. Yahoo! Health has an animated slideshow that reveals the top health stories
This is the technique used at Yahoo! Health. The top 10 stories are displayed in a list on
the right with a large visual treatment for each story on the left. Each story is spotlighted
for a few seconds. A new story is animated into view with a cross-fade animation. Inter-
acting with the slideshow automatically pauses it. The auto-play can be restarted with a
“Play” button. The nice thing about this approach is that it exposes the stories in a visu-
ally attractive manner, and by animating through the stories, invites interaction with the
content.
Tip
When there is more content, use hover to reveal its existence or allow a little of the
other content to be slightly revealed.
Figure 10-25. Starz reveals a little bit of the next movie in its carousel to invite users to go to more
content
Showing just a little of the off-page content (providing a peek) at the edge adds a visual
cue that there is more content before and after the visible area. This strategy can also be
used with content outside of carousels. Slightly revealing an additional row of content at
the natural fold for a web page invites the user to interact with what would normally not
be seen.
Kathy Sierra writes a blog called “Creating Passionate Users.”* She does an amazing job
identifying what is happening in the typical user’s head. I had the good fortune to attend
a workshop by Kathy Sierra of the same name. She puts the spotlight on the “brain.” Not
just the mind, but the physical, chemically driven brain.
In her talk she recommends the book Mind Hacks by Tom Stafford and Matt Webb
(O’Reilly), which pulls back the curtain to see how the mind works. I quickly added it to
my shortlist of must-have books. Fortunately, at the same conference, O’Reilly was giving
away books at its booth. I could only choose one—and guess what they had? That’s right,
Mind Hacks.
Mind Hacks contains 100 short experiments (or hacks) you can do on your own brain.
Each hack provides a glimpse at the inner workings of our gray matter. But the hack that
really got my attention was Hack #37, “Grab Attention”:
Sudden movement or light can grab your attention, thanks to a second region for
visual processing.
It turns out that besides the normal visual-processing region of the brain (you are using
the occipital lobe right now while reading this book), there is a second region that deals
with attention capture.
We experience it every day. While talking with a friend at a park, someone throws a Fris-
bee to another person in the background. You cannot help but notice this change of mo-
tion even though you are not looking directly at it. You can thank the superior colliculus
for this little attention interruption.
As the authors describe it, this region of the brain is not very sophisticated. But it does a
good job of telling you to pay attention because something may be coming at you. You
aren’t sure what it is but you know you better watch out. This response is automatically
generated deep within the chemistry of the brain. It is something that happens naturally
without any conscious thought.
* Kathy no longer blogs actively; however, her excellent work is archived at http://headrush.typepad.com/.
Hack #37 explains why there are so many unfortunate advertisements with dancing sil-
houettes (such as the one in Figure P5-1): motion catches your attention, whether you
want it to or not! As stated in a New York Times article, “Don’t Like the Dancing Cowboys?
Results Say You Do”:*
Rogers Cadenhead, an author and blogger, resorted to tinkering with his computer
to block all ads from the company. “I was trying to read a news article and realized
the dancing mortgage people were eliminating all rational thought from my brain,”
he said.
Figure P5-1. Dancing cowboy silhouettes from mortgage advertisers grab attention
If animation is this powerful for advertisers, it can certainly be harnessed and, used in
moderation, become an effective part of a rich web interface. The question for us is how
do we use these Transitions (cinematic effects, animations, and so on) to improve the
user experience? It’s not enough to bring animation into an application: there must be a
reason.
In the next two chapters, we will explore a set of common Transition patterns and the
rationale for when and how to apply the principle Use Transitions in your application:
Chapter 11, Transitional Patterns
Introduces the Transition patterns, such as Brighten and Dim, Expand and Col-
lapse, Self-Healing Fade, Animation, and Spotlight.
Chapter 12, Purpose of Transitions
Further explores the reasons for using these powerful effects and where they are most
appropriate.
* http://www.nytimes.com/2007/01/18/business/media/18adco.html
Chapter 11
Transitional Patterns
We have chosen to use the term Transitions to describe special effects that happen over a
specified period of time. The term transition seems to catch the right spirit of how these
cinematic effects get applied. They provide the grease that smoothes out what happens
in the interface. Without transitional effects the user can be left to wonder what just
occurred.
There are a number of Transitions available for our use. Let’s take a quick survey of the
most popular.
Tip
Use Brighten and Dim to control the user’s point of reference.
218 Chapter 11: Transitional Patterns
Considerations
Dimming and brightening an area is an effective way to communicate subtle or second-
ary changes in an interface. Using Brighten focuses attention on an area. Using Dim in
an area causes the elements to be treated as secondary or not in use. Dimming reduces
attention to an area. Dim and Brighten can communicate importance, whether an object
is in use, and if an interface is ready for interaction.
Importance
A common technique is to Dim a page and show an overlay in the normal, non-dimmed
state. The effect seems to brighten an area and dim the rest. This interaction pattern is
called a Lightbox Effect.
Wayfaring uses the Lightbox Effect when a user attempts to log in (Figure 11-1).
Normal state
Normal brightness. The whole
interface is available for
interaction.
Lightbox Effect
The user clicks the “Log In” link in
the upper right. The whole page
dims in luminance. The overlay
for the “Log In/Sign Up” box is
displayed at normal brightness.
The net effect feels as if the dia-
log was brightened.
Figure 11-1. Wayfaring uses a Lightbox Effect to focus the user on login or signup
Brighten and Dim 219
The login box appears brightened (again, in reality the background is the only thing
changed—it is dimmed). Brightening an area with this technique makes it the primary
focus. Dimming the background indicates that the rest of the interface is not currently
part of the interaction at hand.
Recall the Yahoo! home page tour we discussed in a Chapter 9. Each part of the interface
introduced is highlighted with the Lightbox Effect (Figure 11-2).
Figure 11-2. The Yahoo! home page tour uses the Lightbox Effect to highlight each of the three areas it
introduces
One issue to consider when using the Lightbox Effect is how jarring the change in lumi-
nance will be to the user. Dimming the interface and brightening an overlay calls a lot of
attention to the dialog. In some ways it can make the overlay feel like a big context switch.
If the goal is to quickly show a dialog, get input, and get out of the way, then do not use
the Lightbox Effect. Instead use a normal Dialog Overlay.
Active
Another use of Dim and Brighten is to show when an object is being interacted with. An
object can be dimmed when it’s not in use and brightened when it is in use. The original
version of Measure Map (now a part of Google Analytics) provided a graph detailing the
number of visitors to a blog over time. In order to decrease visual noise, the graph was
dimmed when not in use (Figure 11-3).
220 Chapter 11: Transitional Patterns
Graph in use
When the mouse hovers over the
graph, the image immediately
raises its luminance to bright.
This indicates that the graph is
available for interaction.
Figure 11-3. Measure Map dims and brightens the Visitor Graph based on whether the user is
interacting with it or not
When the mouse moves outside the graph, the image begins to fade in luminance. When
the mouse re-enters the graph area, the graph quickly brightens. The dim and brighten
effects take about a fourth of a second to transition.
Tip
Use Brighten and Dim to indicate whether or not an interface is active.
Not ready
You can also use Dim to indicate that a part of the interface is not ready for interaction.
When searching for hotels in Yahoo! Travel’s Farechase tool, the map displaying the found
hotels is dimmed until the search is finished (Figure 11-4).
Brighten and Dim 221
Ready
Once the hotel results are returned,
the map brightens. The attention
shifts here when the map is ready for
interaction. Notice that all other map
tools show up at this time as well.
Figure 11-4. Yahoo! Travel’s Farechase uses Dim to communicate that search results are not ready and
Brighten to communicate when they are ready
Once the search is finished, the map result area is brightened and all interaction tools for
the map are displayed (zoom, map styles, etc.) Dimming the map is coupled with other
indications that the search is not completed.
Brighten/Dim transitions are very useful. You can use them when you:
• Need to focus attention on a particular part of an interface (or detract attention from
another part of the interface).
• Need to provide feedback indicating that an object is being interacted with. A com-
mon interaction is to brighten an object when the mouse is hovered over it.
• Decrease visual noise in an interface. Elements that are secondary can be dimmed
when not in use.
• Indicate that a part of the interface is not ready to be interacted with, perhaps when
an application is being loaded.
222 Chapter 11: Transitional Patterns
Expand/Collapse
It’s helpful to have additional content or other panels hidden until the user needs them.
This is accomplished by using Expand and Collapse to control a panel’s visibility in the
flow of the page.
Considerations
There are some issues to keep in mind when using Expand and Collapse.
Expand/Collapse Inlays
In Chapter 5 we discussed Inlays. A typical way to bring an Inlay into a page is with
Expand/Collapse transitions.
When these panels are shown, providing an animated transition for expanding the panel
open or collapsing the panel closed helps connect the panel to the control that activates
it. Expand is visually more eye-catching than Brighten/Dim (because the movement is
more dramatic than reducing color slightly).*
Yahoo! Bookmarks uses Expand/Collapse to hide and show its edit panel for editing
bookmark tags (Figure 11-5).
* You can try this for yourself. Put your left hand straight in front of you. While keeping your eyes straight
ahead, move your hand to the side until you can just no longer see it from your peripheral view. Now wiggle
your fingers. Did you see it? Movement makes something normally invisible, visible.
Expand/Collapse 223
Panel closed
Once closed, the panel is invisible.
Figure 11-5. Yahoo! Bookmarks expands and collapses the “Edit” panel in place with the page
While the same result could have been accomplished with a normal Overlay, the Expand
in context makes it apparent that it is connected to the “Edit” button as well as applied to
the content. By making it inline, the context is preserved and not hidden.
Tip
Use Expand and Collapse to extend the available screen real estate in the application.
Expand/Collapse 225
Expand and Collapse within the flow of the page is often used to open details about items
within the page. It provides a nice way to toggle open additional content without losing
the context of the summary information.
Expand/Collapse as Overlay
A slight variation is to have content Expand/Collapse appear as an Overlay on the page.
Instead of pushing content down or out of the way, the panels simply slide out from some
part of the page into a layer above the rest of the items on the page. The panel slides out,
anchored to the activating control.
Five Runs is a Ruby on Rails application-monitoring tool. It provides a window into the
inner workings of Rail’s apps, helping IT groups track down system issues. The Five Runs
web application uses slide-out panels for additional controls (Figure 11-6).
Figure 11-6. Five Runs animates expanding and collapsing panels with additional controls as overlays
to the interface
226 Chapter 11: Transitional Patterns
Be careful to not overuse Expand. For example, in a photo application, if you provide a
rollover to expand photos from thumbnail to a larger size, the transitions will become
annoying because the user will see them back-to-back. Either remove the transition alto-
gether or make it extremely fast.
An especially egregious example of overuse of Expand/Collapse is when it is applied to
normal drop-down menus. The primary purpose of transitions is to communicate, and
no amount of graphic trickery will make a noisy interface compelling. In a recent incarna-
tion of the Nasa.gov website, we can see Expand and Collapse abused with their overuse
of animated menus (Figure 11-7).
Figure 11-7. Nasa.gov animates its menus: each menu animates its expand and collapse, resulting in
situations where multiple menus can be open at a time
Tip
Avoid gratuitous Animation when expanding and collapsing content.
Buzzword also employs Animation Gone Wild by animating each toolbar button open
and closed on hover. While it is a clever way to conserve space when the items are not
interacted with, it feels like a series of Mouse Traps (Figure 11-8).
* No, there is no companion DVD available on late-night TV for this anti-pattern ;-).
Self-Healing Fade 227
Figure 11-8. Several tool items get animated open at the same time by moving the mouse through
Buzzword’s toolbar
Self-Healing Fade
When deleting or moving items, it is often helpful to temporarily expose a “hole” where
the object being removed once lived. Animating the remove of the item and the closing of
the hole reinforces where the deleted item was removed.
Considerations
This Self-Healing Fade pattern is used when deleting to-do items in Backpackit. Once
an item is removed from an area, a hole is left. Next, the hole seals up, effectively healing
itself (Figure 11-9).
Delete selected
The list item is selected for delete by clicking the trashcan.
Item gone
The item fades all the way out, reinforcing that the item is
gone.
Figure 11-9. 37 Signals’ Backpackit uses a Self-Healing Fade to reinforce that an item has been deleted
Animation
In our everyday world, objects occupy real space and don’t normally instantly appear and
disappear. We throw a piece of trash into the trashcan and see it leave our hand and go
through the air into the trashcan.
Considerations
In our interfaces, we do not need to mimic every movement from the real world. Inter-
faces would be dreadfully slow. But by using Animation to show where an object came
from or is going, we can make it easier for the user to find the object again or feel confi-
dent putting the object away in the future. Using animation to position an object in a grid
confirms that it went into the slot. This type of feedback clarifies the user interaction.
Animation 229
Zoom back
My Yahoo! uses a zoom-back Animation if a drop fails. It communicates simply that the
module returned from where the user attempted to drag it (Figure 11-10).
Dragging module
The dragged module is represented as a small gray
outline.
Zoom-back animation
If the module is dropped on itself, an animation of
the dragged module flies back to the corner of the
module. The zoom-back animation indicates that
the drop was not successful and the module re-
turned to its original location.
Figure 11-10. My Yahoo! uses a zoom-back animation to show that a module did not get moved, but
instead returned to its original location
While the use of a small gray rectangle for the drag object is less than helpful (a thumbnail
of the object being dragged would be better), the image of a gray rectangle flying back to the
module’s original spot is simple and clear enough to communicate what happened.
Tip
Build association between elements on the page with Animation.
230 Chapter 11: Transitional Patterns
Drop animation
Another place to use Animation is when dropping modules on a web page into new loca-
tions. In earlier versions of My Yahoo!, the dropped module would animate into place.
The earliest version took about one second to animate into place. A later version took it
down to less than a half-second.
Tip
After defining a transitional effect, simplify it by making another pass to cut the effect’s
values in half.
In the current version of My Yahoo!, the dropping modules process uses no animation
at all. The same can be said for iGoogle (Figure 11-11). When a module is dropped, no
animation is used to show where the object went.
Why? Well in many ways the animation is gratuitous. The user has positioned the object
for dropping. There is plenty of feedback right before the drop, so animating it into place
just makes the interface feel slower and doesn’t communicate anything new to the user.
Figure 11-11. It’s obvious where the dropped object will land in iGoogle, so it is not necessary to
animate the drop
Spotlight 231
Spotlight
Spotlights are useful when a change has occurred in an interface. By momentarily high-
lighting an object, you can subtly notify the user of a change in the interface. The Spot-
light is often accomplished by first highlighting the background of an object, then fading
out the highlight. An example of this technique is in Backpackit (Figure 11-12).
Before change
Edit is selected.
During change
An edit field is animated in con-
text. The “Rename this list” but-
ton is pressed.
Spotlight on change
After the change is made, the
new title is spotlighted briefly.
The spotlight fades over the
course of a second.
Considerations
When the title of the list is changed, it is momentarily spotlighted by highlighting its
background in yellow. The color fades to the background color in about one second. This
does a nice job of communicating that a change has occurred without keeping the notifi-
cation around a long time. It avoids the Idiot Boxes anti-pattern we discussed in Chapter
5 by using a very subtle indication of change.
232 Chapter 11: Transitional Patterns
Tip
Use Spotlight to temporarily call attention to a change in the interface.
Signaling change
Flickr uses Spotlight when adding photos to the Organizer. A status message is placed in
the upper right. If another action is taken, a second status message appears. The first mes-
sage moves down (visually swaps location with the first) and then fades out. The current
message will fade out as well after time passes. This is a simple way to provide confirma-
tion that requires no action and removes itself automatically (Figure 11-13).
Figure 11-13. As each photo is added to the Flickr Organizer, a status message is added; as messages
age, they fade out
We pointed out in the previous chapter that objects don’t just pop in and pop out in the
real world, appearing and disappearing suddenly. We usually see them go away or go
somewhere in particular. An interface that does not mimic some aspect of this real-world
behavior will be harder to understand.
Our eyes are wired to react to movement. The world doesn’t flicker. It doesn’t disappear
or suddenly change and force us to look for the change. Things move smoothly in the real
world. They do not “pop up.” Transitions smooth out the jarring world of the Web, mak-
ing changes appear more natural.
The main purpose for Transitions is to provide an engaging interface and reinforce
communication.
Engagement
Transitions can be used to increase engagement.
Interacting with an area on the screen that responds by growing slightly, or seeing an
accordion pane “snap” into place creates a richer and more compelling experience. The
interface seems more alive and reactive. Of course, going overboard with these techniques
can distract from what is being communicated and become just a Web 2.0 version of the
horrendous blink tag.
234 Chapter 12: Purpose of Transitions
Certain contexts tip the scale more toward the engagement side and less toward the com-
munication side. In areas like game or car sites, engagement can take on a more important
role. However, in most websites, communication is the most important purpose for tran-
sitions, with engagement being a secondary consideration.
Communication
Transitions are first and foremost about communication. Harry Marks, award-winning
broadcast designer, stated:*
If you don’t have a story, no amount of graphic trickery will make it interesting.
The story is the key. Transitions are for making the story more compelling, filling in the
hard jumps, and making an action more concrete and believable. Transitions communi-
cate in the following ways:
• If an object fades away, users know it changed state from visible to invisible even if
they are not staring directly at the object.
• If an object fades into view, users know the object has arrived. It was not there but
now is.
• If an object fades rapidly, it is seen as an important event. If it fades slowly, its impor-
tance is lower.
• If an object is “coming at” users (getting larger and appearing to go past them), then
users think of it as something that is important (and perhaps dangerous).
• If an object zooms down in size rapidly and disappears, it will capture the users’ at-
tention immediately.
Given the way transitions can communicate, what exactly do they communicate? They
give us a way to:
• Maintain context while changing views
• Explain what just happened
• Show relationships between objects
• Focus attention
• Improve perceived performance
• Create an illusion of virtual space
Slide Out
When “CPU charts” gets selected, the current
chart for “Key Metrics” starts sliding out.
Slide In
Once the “Key Metrics” panel slides out, the
“CPU” panel slides in.
Figure 12-1. Five Runs switches between metric views by a simple Slide Out/Slide In transition
236 Chapter 12: Purpose of Transitions
Different charts can be selected by clicking on the bar graph summary. In reality, this pro-
cess is the same as flipping through a series of tabs. But instead of a tab controlling the vis-
ibility of each panel, clicking on the associated metrics bar causes the content to switch in.
The transition of sliding out the old and sliding in the new causes a clear mental connec-
tion. The surrounding context does not change so the switch in views stays in context.
Another just as effective (and possibly more effective) approach would be to simply cross-
fade between the two panels. This method creates a faster transition while clearly com-
municating that the panels are associated with the different bars clicked.
Faceplate
The Laszlo weather widget uses a cross-fade between its configuration panel and weather
panes (Figure 12-2). This simple Faceplate pattern ties the two panes together and gives
an indication that the other pane is always hidden just below the currently visible panel.
Once the weather is displayed, clicking on the zip code in the upper right cross-fades the
panels to get back to the zip code entry pane.
Figure 12-2. Laszlo’s Weather widget uses a cross-fade between the configuration faceplate and the
weather details
Laszlo’s Weather widget uses a cross-fade to switch between entering the zip code and
viewing the panel. The Faceplate transition is especially useful for extending screen real
estate. It works when both panels are the same size and each panel is independent.
Flip
Another way to have two panels share the same space is to use a Flip transition. The effect
is the same as flipping a playing card over. The animation is effective if it actually feels like
the panel is being flipped. Generally, the flip side of the image displays all the knobs and
switches for configuring an object.
Skitch is a desktop application for taking screen snapshots. All of the configuration con-
trols are located “on the back side.” Of course, in reality there is no physical back side to
the application, but the Flip transition helps create this illusion (Figure 12-3).
Communication 237
Figure 12-3. Skitch uses a Flip transition between the application and configuration details
Carousel
We have discussed Carousels in previous chapters. Carousels are great for extending vir-
tual space. But what effects reinforce this virtual extension? Let’s look at four carousel
implementations to discuss different approaches to animating carousels.
One of Amazon’s many carousels actually does not use any animated transitions at all.
Each arrow click just shows the next batch of books (Figure 12-4).
Figure 12-4. This particular carousel on Amazon does not use any animation; it provides no clue to the
direction users are moving through the content
This one is rather disconcerting. Without the visual effect of content sliding in, it is easy
to get confused about whether content is moving in from the left or the right. Adding the
effect creates the illusion that content is being pulled into the page through the carousel.
Another Amazon carousel takes just the opposite approach (Figure 12-5). Visually it rep-
resents the items in a circular fashion to attempt to create a “true” carousel effect. And
it uses lots of animation. In fact it uses animation in a way that appears to be gratuitous.
Each click of the arrow moves the carousel around a few pixels at a time. Clicking and
holding a little longer spins the carousel faster. In fact, it generally spins it too fast to stop
on a desired book.
238 Chapter 12: Purpose of Transitions
Figure 12-5. Amazon uses a circular carousel as a widget for its associates to use; the carousel has the
opposite problem as the last one: it animates too much
A simpler implementation is to just animate the movement through the content space. In
Flickr, clicking the arrow animates content into view. Since all content to the left is earlier
in time and all content to the right is later in time, animating the movement through time
is helpful in finding photos (Figure 12-6).
Figure 12-6. Flickr employs the more common approach to use animation to flip through carousel
content, in this case, back and forth chronologically
How fast should Carousels be when they animate*? It’s not easy to quantify. But the car-
ousel should be fast enough that it will be finished animating by the time a normal user
is ready to click the arrow again. Usually this is much less than half a second and never
more than a second.
* For a reference on animation timing, see Timing for Animation by Harold Whitaker and John Halas (Focal
Press).
Communication 239
The Starz on Demand carousel animates one image at a time (while displaying four im-
ages at time) and takes about a second to complete the animation. This is painfully slow,
especially since it only brings in one item at a time. You find yourself clicking a lot of the
arrows to see available movies (Figure 12-7).
Figure 12-7. Starz on Demand animates one image at a time and takes about a second to complete the
animation
Accordion
Another component that helps maintain context while switching views is the Accordion.
We discussed this pattern briefly in Chapter 6 on the topic of List Inlays. The Accordion
is a variation on a Tab panel. Each panel title is the activation to slide open its associated
panel. The currently visible panel and the panel being opened transition to closed and
open states at the same time. This allows the carousel to take up a fixed amount of space
(Figure 12-8).
Figure 12-8. Opening Rico’s Accordion widget shows one panel at a time; it animates opening and
closing each panel simultaneously
Accordions are good for collapsed modules of content. However, they should be used
sparingly, as they have a strong visual style. If you scatter them around or make them too
beveled, they will quickly clutter the interface.
Normally, accordions activate on click. However, a trend of late is to activate accordions
on hover. This is normally a bad idea. Elsewhere we have written about the anti-pattern
Mouse Trap and this can easily become one. However, you can see a nice implementation
of a hover-based Accordion on Apple.com’s Mac store (Figure 12-9).
240 Chapter 12: Purpose of Transitions
Figure 12-9. Apple.com uses an accordion to provide content for “Where to Buy”, “Hot News” and
“Mac@work”; each panel is activated on mouse hover
The Nasa.gov accordion contains panels that are three times wider than the Apple accor-
dion and are the centerpiece of the home page. This means that when users move their
mouse over the accordion panel titles, panels fly open and closed. Since the targeting is
three times as wide, twice as high, and the main part of the page, this process becomes
very disorienting. The interaction is not helped by how visually heavy the accordion is
compared to Apple’s more-subtle styling. Apple’s accordions are in the right sidebar, and
the point is to get users to discover the hidden content.
Communication 241
Tip
Don’t automatically open accordion panels on hover if the panels are large or central
to the site content.
Initial configuration
The configurator takes up the main
part of the page (left side).
The price summary and specifica-
tions are located in the righthand
sidebar.
Configuration changes
When the configuration is changed,
the price, shipping, and specifica-
tion information are highlighted
with spotlighting.
Figure 12-11. Apple.com spotlights changes to the price and shipping as users make changes to their
configuration
242 Chapter 12: Purpose of Transitions
Recall the yellow Spotlight used by Backpackit: it fades out after about one second. Con-
trast that to Apple’s approach of highlighting in blue and keeping the spotlight in effect
(Figure 12-12).*
Why the difference? Some of the differences are just stylistic choice. But in Apple’s case,
users want to know that they changed the default configuration and price. The change it-
self is important enough to keep spotlighted. In Backpackit’s case, users are just changing
to-do items, not the amount of money being spent on a computer.
Tip
Keep the last change highlighted (don’t fade out with Spotlight) if there is a chance
the change happened off-screen and the user might not see it.
In Yahoo! Finance, stock values are updated in real time. When a stock value changes,
it gets the Spotlight treatment. However, to avoid making the interface feel extremely
chatty, the designers chose to use a subtle color change, a very light shade of green for the
price going up and a very light shade of red for the price going down (Figure 12-13).
Figure 12-13. Yahoo! Finance uses a very subtle color change and a quick change back to the original
background color (half a second)
* In the latest version of the Apple store, the highlight fades out just as with Backpackit. This adjustment is actu-
ally unfortunate, as changes made below the fold are not highlighted by the time the user scrolls back to the
top.
Communication 243
became highly visible during a switch (Figure 12-15), not only because of the contrast of
inverted text, but since the black background calls out the length of the title (by its bound-
ing box), any variance in title length is readily apparent.
Figure 12-14. Switching between the panels “Help with people and permissions” and “Help with file
sharing” is not apparent with this design of Backpackit’s Help section
Figure 12-15. Changing the background of the panel titles to be inverted causes them to get noticed
when a switch occurs
Opposite effect
Not every attempt to highlight change works. Flickr Daily Zeitgeist is a blog sidebar plug-
in (Figure 12-16). As new photos show up, they fade slowly in place, overlaying four pho-
tos within the tile of photos. Not bad. Users may or may not notice the photo showing
up, but that’s OK. That detail is secondary. However, when the photo goes away, it rapidly
scales down, revealing the images underneath while replacing one of the four images. The
sudden rapid movement once again gets the superior colliculus to say “What the…?” Users
look at the photos, and by the time they glance they are not really sure what happened. In
reality they’re seeing the new photo fading into place, but the effect makes it feel as if they
missed something important.*
Figure 12-16. Flickr Zeitgeist rapidly scales down the image going away and slowly fades in the new
image
* This is discussed in detail by Tom Stafford and Matt Webb (the authors of Mind Hacks) at http://www.oreillynet.
com/pub/a/network/2004/12/06/mndhcks_1.html.
244 Chapter 12: Purpose of Transitions
Tip
Movement gets more attention than a simple color change.
Thumbnail view
“Transmit shopping page” shows a small set of thumbnail
views of the application.
Screenshot displayed
Even after the screenshot zooms to full size, it is obvious that
it is tied to the thumbnail below because of the transitions
that were employed.
Figure 12-17. Transmit uses Zoom and Fade to tie the thumbnail and the screenshot together in the
shopper’s mind
Communication 245
The Gap ties a thumbnail to a detailed product view by using a series of Zoom rectangles
when a shopper selects an item. The Zoom rectangles tie the object to the detail box dis-
played (Figure 12-18).
Figure 12-18. The Gap shows details about an item; it ties the details to the item by using Zoom boxes
as a transition effect
Focus Attention
Sometimes you would just like to make sure the user sees something. It’s not necessarily a
change in the interface, but just something to be aware of.
In the earlier example of Transmit, the “Close” box is placed on the upper left of the snap-
shot detail view. The overlay uses a Fade transition to fade in the close button after the
it appears. By waiting until the other animation is finished, the “Close” box gets readily
noticed (Figure 12-19).
Figure 12-19. Transmit fades in the “Close” box after the dialog is displayed to focus attention on how
to dismiss the dialog
Focusing attention can also be associated with what the user is currently interacting with.
In Chapter 11 we discussed the MeasureMap graph that used Brighten when the mouse
hovered over it and Dim when the mouse moved away from it (Figure 11-3). Similarly,
the Gap uses Spotlight when focusing the user’s attention on the selected pair of jeans
(Figure 12-20).
Normal view
All jeans are initially rendered the
same.
Spotlighted view
When a pair of jeans is clicked
on, the rest of the jeans dim. This
focuses the attention on the pair
selected.
Figure 12-20. The Gap spotlights the selected pair of jeans to focus the shopper’s attention on the
selected merchandise
Tip
Keeping the user engaged during a long process improves the perceived performance
time.
A good example of this technique at work is with Yahoo! Travel’s Farechase tool. Search-
ing for a hotel can take a long time. In this example, it took 30 seconds to complete (Figure
12-21).
Searching services
A spinning set of arrows adds ad-
ditional feedback that something is
happening.
Results shown
Finally, the result status and the re-
sults are shown.
Figure 12-21. Yahoo! Travel’s Farechase tool steps through five stages of animation before producing the
search results
Since Farechase is actually retrieving results from a number of different hotel search ser-
vices, the search can take quite a while. Farechase cleverly goes through five stages of
Transitions to make the time appear to go faster. The result is that the users are kept
informed and engaged throughout the process and report a much better experience, since
they’re less frustrated with the time it takes to get results.
Expand finishes
The site panel animates to full open position. It
allows the user to interact with the mini-view.
Figure 12-22. Yahoo!’s Personal Assistant uses Expand and Collapse to create a virtual mini-space for
other Yahoo! sites
Expanding content with an animation emphasizes that the content is associated with the
button that activated it. In this case, hovering over the “Messenger” button animates a
preview of the Yahoo! Messenger site. Transitions are key to underpinning the concept of
Virtual Pages we discussed in Chapter 7.
The previous two principles introduced the power of invitations and the usefulness of
Transitions. Invitations are powerful because they directly address discoverability and
provide feedback before an interaction happens. Transitions are useful because they pro-
vide visual feedback during an interaction. But another class of feedback exists. It is the
feedback that happens immediately after each interaction with the system—an immediate
reaction paired with the user’s action.
Newton’s Third Law of Motion states:
This law explains how a bird flies. Its wings push air downward. At the same time the air
pushes the bird upward. The amount of force downward on the air equals the amount of
upward force from the air. For every action there is an equal and opposite reaction. These
are often called action-reaction force pairs.
While we can’t literally extend Newton’s law to the world of user interfaces, we certainly
can apply this principle to the way we should interact with users. When users click on a
button, they expect the button to depress. When they type in a field, they expect to see
characters show up in the text box. When they make a mistake, they want the application
to tell them where they goofed. When they start to search, they would like the results to
show up as they type. When they start an unknown process, they hope they will be guided
step by step with clear, timely, and contextual feedback.
In short, users want the application to react to their every action. The interface should
React Immediately.
While there is a possibility of too much feedback (or, more accurately, too much of the
wrong feedback—a concept we will discuss in the upcoming chapters), a system with little
or no feedback feels sluggish and thickheaded. Immediate reactions are an expected part
of intelligence. You can’t have an intelligent interface without them.
Wundrbar.com is an example of an interface that reacts immediately (Figure P6-1). Wun-
drbar provides a search layer to a number of third-party services such as purchasing flight
tickets, renting cars, or checking gas prices. As the user types a flight search in an input
field, the interface formats a flight search form in real time. The tight loop between input
and immediate feedback makes it easy to create a correct search (Figure P6-1).
Figure P6-1. As the user types in a flight search, Wundrbar immediately displays what it understands;
the user is able to express all the needed input
It should be noted that while interfaces built in this style have only recently shown up on
the Web, this principle is not new to the world of user interfaces. The Mac OSX Human
Interface Guidelines calls this principle “Feedback and Communication,” and describes
its goal as:
Jakob Nielsen, in his widely recognized heuristics research, described a principle of “vis-
ibility of system status” in which:
…the system should always keep users informed about what is going on, through
appropriate feedback within reasonable time.†
Bruce Tognazzini, founder of the Human Interface Group at Apple, captured the essence
of this in his design principle called Latency Reduction,‡ in which the user is kept en-
gaged throughout a lengthy process. The emphasis is on communication, feedback, and
engagement.
The next two chapters will look at two areas where we can directly apply this principle:
Chapter 13, Lookup Patterns
Discusses Auto Complete, Live Suggest, Live Search, and Refining Search.
Chapter 14, Feedback Patterns
Covers Live Preview, Progressive Disclosure, Progress Indication, and Periodic
Refresh.
* http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGHIDesign/
chapter_5_section_2.html
† http://www.useit.com/papers/heuristic/heuristic_list.html
‡ http://www.asktog.com/basics/firstPrinciples.html#latencyReduction
Chapter 13
Lookup Patterns
Auto Complete
Auto Complete is a powerful pattern that benefits from a reactive interface. As the user
types input into a field, a drop-down menu of matching values is displayed. When done
right, the choice that best matches will be auto-selected. The user can stop typing and
accept the choice that has been matched or choose a different value from the list. The
selected value is then entered into the field. Yahoo! Mail uses Auto Complete for email
addresses (Figure 13-1).
The Yahoo! Mail Auto Complete has a singular purpose: help users find an email ad-
dress from their contact list. However, the user can choose to ignore the displayed value
and instead enter a new email address. This distinguishes Auto Complete from a normal
drop-down selection box. Selection boxes provide a limited set of valid values. Users are
not free to add their own values. For example, entering a U.S. state is best done with a
select box and not Auto Complete since you don’t need to create new states.
Considerations
At first glance Auto Complete can seem like a simple interaction. However, there are a
few key interesting moments to consider.
Typing
How long should you wait to display feedback as the user types? In the case of Auto Com-
plete, feedback should be sent after each character is typed. Since the focus is on entering
a value in a field, the set of choices should be shown instantaneously. However, it is ac-
ceptable to delay retrieving values between keystrokes if the user is a fast typist.
Matching
In the case of Yahoo! Mail, the typed character(s) are matched against any part of the con-
tact’s name and email address. This is important since sometimes the user recalls part of
an email address and other times is typing the contact’s first or last name.
Yahoo! Mail also highlights the matched contact as well as displaying the matched char-
acters in bold text. This clearly indicates which contact was matched as well as how the
match was made.
The Up and Down arrow keys can modify the matched value. They simply move up and
down through the list of partially matched contacts.
Selecting
Once an item is matched, it should be straightforward for the user to accept the match.
In the case of Yahoo! Mail, hitting the Tab key enters the matched contact into the input
field.
Auto Complete 255
This might seem obvious. However, it is not uncommon for Auto Complete interactions
to miss this crucial step. A counterexample to Yahoo! Mail ironically comes from Yahoo!
as well. The Yahoo! Travel Farechase product provides an Auto Complete feature for en-
tering origin and destination airports (Figure 13-2).
Farechase handles the delay during typing well but fails in the way it handles matching
and selecting. Neither of the two airports that match the phrase “san jose” gets high-
lighted. The only indication of which airport Farechase thinks is the best match is based
on position. Since “San Jose, CA—SJC (San Jose International Airport)” is the first airport
in the list, it seems that this might be the best match. But hitting Tab reveals that neither
was considered worthy of choosing. Instead the user gets to keep a partially typed phrase,
“san jose”.
The only way to get it to work correctly is to use the Up and Down arrow keys (or the
mouse) to explicitly choose an airport from the drop-down set of choices. This is a
cumbersome, unnecessary step that is easily avoided by automatically selecting the first
matched item in the list.
256 Chapter 13: Lookup Patterns
Figure 13-3. Kayak shows the matched airport and allows the user to accept the selection by hitting the
Tab key
The only critique of this system is the use of light yellow for the selection color. In most
cases it is too subtle. However, unlike Farechase, Kayak just does the right thing when the
user hits the Tab or Enter key. There’s no need to use the down arrow key to select the first
item: just press the Tab or Enter key to accept the match.
Tip
Auto Complete should never make the user scroll through the drop-down to choose
the already selected item! The Tab key should enter the matched item.
This follows one of Jakob Nielsen’s 10 usability principles: Error Prevention. Providing
immediate reactions and the proper cues prevents the user from entering the wrong value
(e.g., “dall”) and having to go back to correct a mistake that should have been avoided in
the first place.
Live Suggest
A very close cousin to Auto Complete is the Live Suggest pattern (also known as winnow-
ing). While Auto Complete provides suggested real-time values for an input field, Live
Suggest provides real-time search term suggestions for creating a search. The context
switch from input field to search box and from input value to term suggestion puts a dif-
ferent twist on the interaction.
Google Suggest was one of the first examples of Live Suggest on the Web. As the user
types in the Google Suggest search box, the top search terms that match the user’s input
are shown in a drop-down. Figure 13-4 shows two versions of Google Suggest with differ-
ent approaches to matching and choosing.
Figure 13-4. Two versions of Google Suggest take different approaches for selecting a matched item
258 Chapter 13: Lookup Patterns
Considerations
Just as in Auto Complete, Live Suggest has three interesting moments to focus on: typing,
matching, and selection. Let’s look at how both versions of Google Suggest handle these.
Typing
The two versions handle reactions to user input the same way. As the user types, sugges-
tions are presented in real time with no noticeable delay. If the user pastes a phrase into
the search box, it will just display results for phrase and not attempt to display results for
individual characters.
Matching
The most powerful aspect of Google Suggest is its ability to narrow in on good search
terms based on partial input. Here is how Google describes the service:
As you type into the search box, Google Suggest guesses what you’re typing and offers
suggestions in real time. This is similar to Google’s “Did you mean?” feature that offers
alternative spellings for your query after you search, except that it works in real time.
For example, if you type “bass,” Google Suggest might offer a list of refinements that
include “bass fishing” or “bass guitar.” Similarly, if you type in only part of a word, like
“prog,” Google Suggest might offer you refinements like “programming,” “program-
ming languages,” “progesterone,” or “progressive.”
Our algorithms use a wide range of information to predict the queries users are most
likely to want to see. For example, Google Suggest uses data about the overall popu-
larity of various searches to help rank the refinements it offers…. Google Suggest does
not base its suggestions on your personal search history.*
What this means is that by progressively applying the suggestion algorithm to the current
input, the search terms are narrowed to yield a good search result. It also has the potential
of producing novel or intriguing suggestions.
Providing real-time feedback can have a negative side effect. If what is shown diverges
from what the user is actually looking for, instead of narrowing in, the process becomes
distracting. This is the tension in all suggestion-based systems. Are you distracting the
user or helping her narrow in on better results? You should continue to make live sug-
gestions only if you are certain you can narrow and not distract. Otherwise, take a more
conservative approach and change the suggestions less frequently.
Tip
Suggestions should always narrow toward the user’s goal and avoid distracting her
with needless information.
* See http://labs.google.com/suggestfaq.html.
Live Suggest 259
Narrowing suggestions are powerful. For example, typing “tom cr” shows a number of
common Tom Cruise searches. Continuing to type “tom cruise crazy” yields specific com-
mon searches (see Figure 13-5).
Figure 13-5. Google Suggest progressively applies suggestions that help narrow in on the best search
terms
Yahoo! Search also provides a Live Suggest for its searches (see Figure 13-6). One differ-
ence between Google Suggest and Yahoo! is that Yahoo! provides feedback on matched
terms.
Figure 13-6. Yahoo! Search highlights what is different between its suggestions and what the user inputs
At first glance it seems that Yahoo! is highlighting the wrong thing. Recall the Yahoo!
Mail Auto Complete example earlier in this chapter (see Figure 13-1). The characters that
matched the user’s input for each matched contact are displayed in bold. But in Yahoo!
Search, just the opposite happens. Instead of highlighting the matched text, it highlights
the difference. This twist shifts the focus to how each suggestion will narrow the search.
This illustrates how dependent interaction styles are on context. With Auto Complete,
we are trying enter a direct value. The suggestions are possible matches. With Live Sug-
gest, we are trying to formulate the right query for a search. Each suggestion has a unique
context to offer. When the words “is”, “oprah”, “video”, “scientology”, and “juice” are high-
lighted, users can quickly scan and get the suggestion’s context. Each suggestion provides
a way to head off in a different direction.
260 Chapter 13: Lookup Patterns
Both Live Suggest implementations have another nice side effect. Spelling mistakes are
caught earlier in the cycle since the guesses are based on implicitly correcting the spelling
of the search query.
Selecting
In the earlier versions of Google Suggest, the best match (first item) was automatically
chosen. Not only was the suggested term highlighted but also the full matching string
was placed in the search box. Typing “tom c” produced “tom cruise” with “ruise” selected
(see Figure 13-4). The idea of selecting the portion of the text not explicitly typed was to:
• Allow the user to hit Enter to accept the implicit match.
• Allow the user to hit Delete to remove the implicitly added string (e.g., “ruise”).
More recent revisions have taken a different approach. Instead the best match is not se-
lected and the search box is never modified by matches found. The idea is to:
• Avoid making assumptions that the guesses are what the user wants. Guesses have to
be explicitly chosen with the arrow keys or the mouse.
• Allow the user a more normal search-box experience.
There are advantages to each approach. The first is more heavy-handed and assumes the
guess has a high probability of being the user’s intent. As we saw earlier with Auto Com-
plete, selecting the suggestion as the value to accept makes for a more pleasant experi-
ence. But the current approach better captures the idea of a “suggestion”; it’s just that—a
suggestion, not an explicit choice.
More Considerations
Live Suggest doesn’t have to look exactly like the preceding examples. It can come in other
flavors. When users enter a new question in Yahoo! Answers, an alternate set of questions
is suggested (see Figure 13-7).
Question entered
Suggestions are not made while
the user is busy typing.
Live Suggest 261
Suggested alternatives
Suggestions are triggered when
the user stops typing.
Figure 13-7. Yahoo! Answers suggests already answered questions as an alternative to creating a new
question
Typing
This method departs from the previous Live Suggest examples. Instead of triggering sug-
gestions after each character is typed, suggestions are displayed whenever the user pauses
typing. If a complete question is entered without a pause, no suggestions will be displayed
until the very end. Showing suggestions too early would be distracting and would not help
users narrow down to the question they are trying to formulate.
Live Search
Yet another close relative to both Auto Complete and Live Suggest is Live Search. As
with Live Suggest, a search query is being formulated. But instead of displaying suggested
search terms, actual live search results are shown in real time.
A clear example of this is ZUGGEST* for Amazon. Not affiliated with Amazon.com, Fran-
cis Shanahan created a Live Search for Amazon products (see Figure 13-8).
Modifying search
Expanding the phrase to “web de-
sign” yields a different set of results
in real time.
Figure 13-8. ZUGGEST for Amazon is a third-party way to search Amazon using the Live Search
pattern
* See http://www.francisshanahan.com/zuggest.aspx.
Live Search 263
Considerations
Providing in-context, real-time results to queries as they are typed is a powerful way for
users to find what they are looking for. Live Suggest sets up a tight feedback loop for
finding the right query. However, the actual search results are shown outside this iterative
feedback loop. Live Search, on the other hand, creates a tight feedback loop directly with
the search results themselves.
How does the handling of interesting moments differ between Auto Complete and Live
Suggest?
Typing
Since returning search results generally takes longer than the time between typing char-
acters, searching should wait for the user to stop typing. This allows feedback to happen
at times when it will not be distracting, as well as providing better user experience perfor-
mance. While ZUGGEST does not provide a Busy Indicator or Progress Indicator, it is a
good idea to provide this feedback as soon as a search is initiated. Otherwise the interface
will feel sluggish. Instant feedback improves the perceived performance.
Contextual results
While ZUGGEST presents a full search interface, sometimes the results can be shown
in a more compact way. This is especially useful if you want to contain Live Search in a
separate tool on the page or in a sidebar.
Firefox version 3 introduced search directly into the URL bar of the browser (Figure 13-9).
Figure 13-9. Firefox’s AwesomeBar uses Live Search to retrieve results based on previous interest in
websites
264 Chapter 13: Lookup Patterns
Dubbed the “AwesomeBar”, it lets you use the URL field of your browser to do a key-
word search of your history and bookmarks. No longer do you have to know the do-
main of the page you’re looking for—the AwesomeBar will match what you’re typing
(even multiple words!) against the URLs, page titles, and tags in your bookmarks and
history, returning results sorted by “frecency” (an algorithm combining frequency +
recency).†
While ZUGGEST bases its results strictly on a straight product lookup, the AwesomeBar
bases its search on personalized information. Since the browser can keep track of the us-
ers’ interest in pages and knows how recently they accessed them, the Live Search can be
a powerful aid to finding previous sites they have visited.
The variance in the way these two sites perform matches has to do with context. With a
straightforward search, you don’t know if users are looking for something they have seen
before or not. And you would rather not limit their results. In the case of the browser
URL, chances are that users are heading to a site they have been to before.
* See http://blog.mozilla.com/blog/2008/04/21/a-little-something-awesome-about-firefox-3/.
† See the Mozilla blog at http://tinyurl.com/6mowhb.
Live Search 265
Figure 13-10. Dunstan Orchard’s blog provides details on blog posts with a balloon pop up on mouse
hover
Figure 13-11. Yahoo! Instant Search shows a single result based on what the user types
Live Suggest
As the user types “ajax”, search terms are sug-
gested in the lefthand side of the page.
Live Search
Meanwhile, the first matched term “ajax” trig-
gers a Live Search and shows the results in
context of the Live Suggestions.
Figure 13-12. AllTheWeb.com LiveSearch was an experimental combination of Live Suggest and Live
Search
Live Search 267
AllTheWeb LiveSearch is no longer live on the Web,* however, Yahoo!’s search has
evolved to incorporate a variation on combining Live Suggest and Live Search into a
single interface.
Tip
Combining Live Suggest and Live Search is a good way to provide a dynamic search
experience.
As we saw in Figure 13-6, the main page for Yahoo! Search incorporates Live Suggest in
its interface. The search results page incorporates a pull-down shade that contains the
Live Suggest results. Changing the search query brings new suggestions in the pull-down
shade area. Clicking on any of the suggestions displays new search results for the page
(Figure 13-13).
Figure 13-13. Yahoo! Search combines Live Suggest and Live Search into a single interface
Figure 13-14. Yahoo! Mail switched from a Live Search model to a traditional submit model for Search;
performance considerations were the primary drivers
Refining Search
Another variation on Live Search is Refining Search. Also known as Faceted Browse,
Refining Search provides a set of live filters that allow the search results to be tuned in
real time.
One of the earlier applications that effectively used Refining Search on the Web was Kay-
ak, an online travel search site. The filter bar on the left dynamically updates the flight
results on the right (Figure 13-5).
Real-time refinement
Changing filters updates the results in real
time.
Figure 13-15. Kayak uses a Refining Search model to allow users to tweak travel results in real time
Considerations
As we have shown with Auto Complete, the Live Suggest and Live Search React Im-
mediately principle is a powerful way to narrow in on a desired result. Kayak uses this
technique effectively to allow the user to iteratively get a new set of results by tweaking a
set of filters. While the filters can be placed anywhere on the page that makes sense, most
sites (like Kayak) place the filters in a lefthand sidebar.
Figure 13-16. Refining Search is triggered by scrolling down and hitting the “Show Results” button; the
results are shown after a page refresh that scrolls the page back to the top
Tip
Avoid page refreshes in Refining Search. The point is to quickly iterate to a result.
Refreshing the page causes the user to lose her context.
Figure 13-17. Viewzi uses animated transitions to “smooth out” the changes between each Refining
Search iteration
Clicking the pink bar (denoting “display Google results”) brings the Google results into
the mix. Notice that the second panel shows the Google results flying into the page. The
final panel shows both Ask and Google results displayed on the same page. The in-
between fly in Transition makes it clear what got added during the Refining Search.
Refining Search 271
Custom filters
Roost, a real estate search site, provides an interface similar to Kayak’s. One nice addition
is the ability to add custom search terms. Typing custom attributes in the “Custom Search
Terms” panel adds them to the set of filters. The terms can then be checked on and off in
real time. Like Kayak, Roost makes use of sliders for the Refining Search (Figure 13-18).
Figure 13-18. Roost uses sliders and a custom search area to refine searches
It should be noted that, while visually attractive, sliders can be hard for users to control. If
you employ them, you should:
• Display a tool tip or other real-time feedback while dragging a slider knob.
• Allow clicking anywhere on the background or along the range to set the slider.
• Make sure any background graphic gives additional feedback for the values along the
range.
• Consider an input field for accessibility considerations.
• Allow double sliders (a knob for minimum value and a knob for maximum value) to
overlap. Otherwise certain ranges can’t be entered. Endless.com is one of the few sites
that gets this technique right (Figure 13-19).
Figure 13-19. Endless.com allows its dual sliders to overlap; as a result, any range of values can be set
272 Chapter 13: Lookup Patterns
Figure 13-20. Like.com uses colors, textures, shape, and sizes to refine product searches
Endless.com provides filters for finding shoes (Figure 13-21). The filters include things
like shoe sizes, widths, and color families. The filters more closely represent the values
than just simple checkboxes, sliders, or drop-downs.
Figure 13-21. Endless.com provides visual representations for filtering shoe sizes, widths, and color
families
Refining Search 273
Figure 13-22. Yahoo! for Teachers triggers Refining Search following a burst of user interaction with the
refinement filters
Reacting immediately to the user is not only needed for lookup patterns, but in order to
provide interactive feedback in other situations. There are several patterns that help keep
the user informed about what is happening in the application:
• Live Preview
• Progressive Disclosure
• Progress Indicator
• Periodic Refresh
Live Preview
A Live Preview gives the users a glimpse beforehand of how the application will interpret
their input once submitted.
We mentioned Jakob Nielson’s Error Prevention principle earlier. This principle says:
Even better than good error messages is a careful design which prevents a problem
from occurring in the first place.*
Benjamin Franklin seemed to be speaking about the same principle when he uttered the
famous quote, “An ounce of prevention is worth a pound of cure.”
Tip
Use Live Previews to prevent errors.
Being reactive to user input is an excellent way to provide that ounce of prevention. Live
Previews dispense just the right amount of information, in context and just in time to
keep users informed, preventing unnecessary mistakes.
Wundrbar.com is an example of an interface that reacts immediately (Figure 14-1). Wun-
drbar provides a search layer to a number of third-party services such as purchasing flight
tickets, renting cars, or checking gas prices in Des Moines.
Search invitation
The “examples” help area serves as an invitation
to discover how to interact with Wundrbar.
Reaction: Origin
Typing “fly boston” automatically fills in the Ori-
gin with “Boston, Logan, MA (BOS)”.
Live Preview 277
Reaction: Destination
Adding “to dfw” causes the destination to be un-
derstood. The complete airport name is filled in.
Notice that the format of the origin/destination
has changed to look complete. It is no longer
shown as a field to fill in, but as something more
permanent.
Reaction: Airline
Typing “on american a” is enough for the “Other
trip details” to fill in with “American Airlines”. The
“Dates” section still has a red underline, indicat-
ing that there is more to fill out.
Reaction: Dates
Finally, typing “from july 12 to july 16” completes
the form.
Note that before we start seeing action-reactions, we get a nice Static Invitation in the
“Examples” section. Once we start typing, this interface perfectly illustrates the principle
of action-reaction pairs. Our action of typing the word “fly” leads to the reaction of an
Expedia flight search panel being displayed. The panel is shown immediately in context.
278 Chapter 14: Feedback Patterns
A total of three invitations is shown in this reaction. The origin, destination, and depar-
ture date all have a red dotted underline. This cues the user that the application needs this
information.
Emboldened by the intelligence displayed, let’s experiment with some more text. Typing
“boston” and “to dfw” each get a reaction as Wundrbar fills out the origin and destina-
tion. At this point it does an interesting thing. Sure that it has understood the user’s intent,
it changes the way it displays these two pieces of information. The fields are no longer
shown needing input, but instead are shown as read-only text (Figure 14-2). This indi-
cates that Wundrbar has interpreted the origin and destination and is ready to move on
to other input.
Figure 14-2. The origin and destination are displayed as an input form before the user types them;
afterward they are changed to display not as input, but as static text
The intelligence continues as the interface correctly interprets “fly bos to dfw on american
airlines from July 12 to July 16”.
But what happens if the user gets off the rails and enters something incorrect? By continu-
ing to display what it thinks users mean, Wundrbar gives users the feedback they need
just in time. This is a key to reactive interfaces. The reactions must be in real time in order
to be effective. In this case, if users see it has interpreted their input incorrectly, they can
change their phrase in real time to get the correct response.
If a user did mistype, she would see something like Figure 14-3. The red underline next
to the “To” field is very visible. It serves as a nice way to cue the user that the input is
incomplete.
Figure 14-3. Typing “zzz” for an airline just leaves the “To” field displaying a red-dotted underline
Live Preview 279
Considerations
There are some issues to consider when using Live Previews.
Immediate feedback
Instead of users entering a password, hitting the “Submit” button, and then finding out
that their password is “too short,” the Google signup process (Figure 14-4) keeps users
informed as they modify their entry. The nice thing about this interface is that it lets us-
ers make an informed decision about their password strength before making their final
choice.
Google uses a Live Preview to help users choose an adequate password during the sign-
up process.
Too short
Feedback is immedi-
ate. The password is too
short.
Fair
The password strength
meter changes dynami-
cally as the user strength-
ens his password.
Strong
The blue, full line with
the word “Strong” signals
completion.
Figure 14-4. Google uses Live Preview to show password strength before creating an account
Engagement
The use of a bar that fills up as users strengthen their passwords is reminiscent of the
“ring-the-bell” carnival game, where you swing the hammer and try to hit the bell—only
getting to a strong password is much easier.
Tip
Use Live Previews to improve user engagement.
Yahoo! Small Business uses Live Preview to help users find a domain name without leav-
ing the current page (Figure 14-5).
280 Chapter 14: Feedback Patterns
Checking…
The busy indicator is shown.
Not available
The name is taken. The Search
button changes to “Search
Again”. Also, a link to see “similar
name options” that are available
appears.
Figure 14-5. Yahoo! Small Business uses Live Preview for domain name search
In context
The difference between this example and the Google example is the use of a search button
to trigger the in-context preview. The search button removes the ambiguity. But instead of
going to a different page for showing the results of the attempted domain name creation,
the results are provided in context.
In this example, the Live Preview is overlaid directly on the initial search box. The advan-
tage of this approach is that it:
• Does not disturb the page by adding more content into the flow of the page.
• Feels more lightweight than a page transition.
• Gives a clear place to put a progress indicator.
• Provides room for a status message and two courses of action: “Search Again” or “See
similar name options”.
Last.fm also uses a button to check the validity of a field during its “Sign up” flow (Figure
14-6). Typing into the username field immediately reveals a “Check Availability” button.
Pressing the button triggers a Live Preview check of whether this username is available. If
it is not, a red exclamation point is placed beside the field and the button changes to say
“Try another name”.
Live Preview 281
Sign up form
Initially, input forms are displayed as simple
prompts and inputs.
Check availability
Once a value is entered in the “Desired username”,
a “Check Availability” button is displayed. Clicking
starts the username check.
Checking…
The username is checked for availability.
Figure 14-6. Last.fm uses a Live Preview to help the user pick a valid username
Notice that a tight feedback loop was created in all three examples. For each significant
action, there is an equal and opposite reaction. This is fundamental to the success of using
Live Previews in your application.
282 Chapter 14: Feedback Patterns
Showcasing products
Live Previews are not just limited to form input. They also can be used in an online prod-
uct catalog to preview a product. Strictly speaking, previews have been used on sites for
almost as long as there has been a Web. Showing a close-up of a camera on an electronics
site is a common technique. But what sets a Live Preview apart from a simple preview is
its interactive nature.
Land’s End uses a tool called My Virtual Model* to bring Live Previews to clothes shop-
ping. It is based on the premise that if you can show what the clothes will look like on the
shoppers, they will be happier with their purchases. While virtual models can only come
so close to reality, users can personalize the model with their height, weight, body shape,
and so on. Then when they select shirts, pants, and shoes, their virtual model will appear
dressed with the items (Figure 14-7).
Figure 14-7. Clicking on different articles of clothing is immediately reflected on the virtual model
* My Virtual Model is a third-party tool for online clothing stores. See http://www.mvm.com/.
Live Preview 283
The MINIUSA site uses the Live Preview pattern in a similar way. Displaying how differ-
ent models of Mini Coopers will look with different color combinations instantaneously
is a powerful marketing tool (Figure 14-8).
Figure 14-8. MINIUSA.com sports a Live Preview for selecting Mini Cooper models and altering color
combinations on the fly
The site also lets the user spin the car around 360 degrees to get a look at the car from
every angle (Figure 14-9).
Figure 14-9. Changing perspective is as easy as moving a slider; the feedback is in real time
The ability to react instantaneously to the user’s color or perspective changes fits well
into the marketing message of cool and zippy. Imagine an old-style interface of “make
the change,” and “go to another page and see the result”. Live Previews allow users the
freedom to experiment.
284 Chapter 14: Feedback Patterns
Progressive Disclosure
The Progressive Disclosure pattern is related to Live Previews. When users are faced
with a series of steps, it is often best to provide hints only when they are needed, instead
of cluttering the interface by displaying all the hints at once.
Picnik is a photo manipulation tool that adds photo-editing features to a number of photo-
sharing sites. During the “Create Account” flow, it provides Progressive Disclosure of
hints and feedback all along the way to keep the user engaged and successfully filling out
the signup form (Figure 14-10).
Initial view
There are actually five fields that need to be filled in. Ini-
tially, Picnik only shows three.
Password
Moving into the password field reveals the “Password
again” field. The field is slightly faded out.
Progressive Disclosure 285
“Password again”
Once the password is filled out, the “Password again” field
brightens.
Confirmation
A simple checkmark indicates that the password was
successfully entered. The “Password again” field is hidden.
Focus is now on “Email address”.
“Email again”
Like above, the “Email again” field is initially shown slightly
faded out. Once the field is entered, it illuminates.
Figure 14-10. Picnik provides a series of Progressive Disclosures during account creation
Considerations
Typically, login interfaces get little dynamic treatment. All fields for input are shown with
every possible hint revealed. Unfortunately, this kind of full disclosure creates a very clut-
tered interface.
286 Chapter 14: Feedback Patterns
Keeping it lightweight
The right idea is to make the task feel as lightweight as possible. The Picnik interface says,
“It is as easy as 1-2-3,” even though there are really five fields to be entered, not three.
Tip
Use Progressive Disclosure to make a heavier process feel more lightweight.
There are some really nice subtle touches to the feedback in the Picnik form:
• The “Password again” and “Email again” fields are revealed only after entering the
corresponding “Password” or “Email address” fields.
• The “…again” fields are shown at about half the intensity. This hints they are related
to what users are entering but does not take over the entire process by immediately
becoming full intensity.
• The “…again” fields are fully illuminated once entered.
• A simple checkmark is used to indicate success.
• Flowers keep appearing along the bottom after each successful entry. This provides a
subtle feedback that users are making progress.
Progress Indicator
Another opportunity for creating a reactive interface occurs when the application is busy
with a lengthy process. Progress Indicators keep a conversation going with the user when
the rest of the interface is currently unavailable. This is a common situation on travel sites,
as well as many search-based applications.
In Chapter 12, we discussed the way Yahoo! Travel Farechase used transitions to improve
perceived performance. Let’s look at a similar example from another travel site, Micro-
soft’s Farecast service. It provides a variety of Progress Indicators throughout the search
process (Figure 14-11).
Progress Indicator 287
Search initiated
Clicking the “Search” button triggers the first
Progress Indicator, which simply changes the
search button to say “Searching…”.
Diversion
After a few seconds, the search results page is
displayed. But notice that there are no results
yet.
There are actually three Progress Indicators:
the “showing results” page, the “animating the
fare” predications, and a progress bar.
Results trickle in
The first set of results now appears. The fare
predictor panel finishes animating into place.
The progress bar collapses to a small bar just
above the results.
Finished
Results are displayed. The progress bar goes
away.
Figure 14-11. Farecast makes use of a number of different Progress Indicators to make the interface feel
snappier and more reactive
288 Chapter 14: Feedback Patterns
Considerations
There are some issues to consider when using Progress Indicators.
Perceived performance
There are actually nine Progress Indicators used by Farecast in this one flow:
1. Search button label changes to “Searching…”.
2. Switch to search results page.
3. “We’re Searching…” animated progress bar.
4. Daily Low Fare History chart animates from flat line to trend line.
5. 7-Day Low Fare Prediction spinning wheel.
6. 7-Day Low Fare Prediction spinning wheel changes to the “Tip: Wait” graphic.
7. Progress bar collapses to single line, changes to read “Still searching…”.
8. First set of results trickle in.
9. Progress bar disappears.
When I went through this process, it took 24 seconds from the time I clicked the Search
button until I got all the results. But because there are so many reactions to my one action,
the process seemed much faster.
Tip
Keeping the user informed improves the overall experience.
Orbitz is generally twice as fast as Farecast at retrieving flight results. Orbitz pulls results
from its own service, while Farecast pulls from multiple services. However, in Orbitz,
there is sometimes a noticeable delay before the Progress Indicator is shown. And since
there is only one indicator, it stays on the stage longer than any single one of Farecast’s
indicators. The net result is that Farecast can feel at least as fast, if not faster, than Orbitz.
Of course Progress Indicators can be really simple. When users search their mail folders in
Yahoo! Mail, a simple busy indicator is displayed next to the search box (Figure 14-13).
Figure 14-13. Yahoo! Mail uses a simple spinning wheel to indicate a search is in progress
Placing progress indicators next to the place the action was initiated is common. Another
variation is to place the Progress Indicator over the area that will be affected by the op-
eration. In the Yahoo! Mail example, this would mean placing a Progress Indicator over
the search results area. This technique is common in Refining Search and can be seen in
Kayak (Figure 14-14).
Figure 14-14. Kayak places the progress indicator over the results area
Immediate feedback
Progress indication can come in many forms. It is a way to keep the user informed of
changing status. In Yahoo! Answers, user are restricted to 110 characters for the question.
As users type in the question, the number of characters they have left is updated (Figure
14-15).
290 Chapter 14: Feedback Patterns
Figure 14-15. Yahoo! Answers displays real-time feedback on how much longer a question can be
Deferred loading
A final example of a Progress Indicator is one that is useful when there are external ser-
vices you would like to defer loading until after the page is shown. An earlier design of
Technorati used this technique to load its own content quickly, and then used loading
indicators in place of the external content (Figure 14-17).
Progress Indicator 291
Loading
All local content is loaded immediately. Two
busy indicators spin as the content that has
been deferred gets loaded.
Figure 14-17. An earlier version of Technorati used loading indicators for deferred content-loading of
external services
Periodic Refresh
Sometimes an interface needs to showcase new content or new community activity. In
such a case, the interface is not really reacting to the users’ input but to the larger com-
munity as a whole. Periodic Refresh brings in fresh content on a periodic basis without
direct user interaction.
Digg Spy is a feature of the Digg site that allows users to observe real-time activity in the
Digg community (Figure 14-18).
New story
New stories fade into the empty slot.
Figure 14-18. Digg Spy uses Periodic Refresh to show top stories as they come in
Digg Spy generally shows new stories every few seconds. Each story is a single row in a
list of other stories. Keeping the rows compact makes it easier to roll in new content. Each
scroll is only the height of a single row.
Tip
Communicate community participation by periodically adding new content into the
page.
Considerations
There are a few issues to consider when using Periodic Refresh.
Visual noise
Netflix’s Community section also uses the Periodic Refresh to spotlight recent member
reviews (Figure 14-19).
294 Chapter 14: Feedback Patterns
Figure 14-19. Periodically, a new review is rolled in to replace the previous review; placing a mouse
over the area pauses this feature
One of the issues with the Netflix version is that each review is taller than a Digg Spy
summary. This means each time a new review rolls in, it has to cover a distance equal to
the height of a review. While Digg Spy is able to animate a new story into place in about
a fourth of a second, Netflix reviews take closer to two seconds. An alternate approach
would be to show collapsed review summaries. This would allow more reviews to be dis-
played and take less time to display each new review.
The Principles
The six principles are simple and straightforward.
Make It Direct
The principle of WYSIWIG (What You See Is What You Get) has been proven over and
over again during the last quarter of a century. Allowing users to directly edit content in
context (In-Page Editing), control the interface with Drag and Drop, and directly ma-
nipulate objects (Direct Selection) all work toward creating an intelligent interface.
Keep It Lightweight
Respecting the user’s level of effort is key to producing an effortless interface. Under-
standing the user’s intent and providing just the right amount of interface (Contextual
Tools) within the current context is critical to providing a lightweight experience.
Provide an Invitation
With an array of interactions at our disposal, it would be easy to have most of our features
go unnoticed and unused. Throwing out contextual “welcome mats” within the page both
statically and dynamically (Affordance Invitation, Call to Action Invitation, Blank Slate
Invitation, Tour Invitation, Hover Invitation, Drag and Drop Invitation, Inference In-
vitation, and More Content Invitation) invites users to explore new idioms, improving
their overall experience.
Use Transitions
Not just for those annoying mortgage ads, Transitions are necessary for both communi-
cation and engagement. With a wide variety of cinematic effects at our disposal (Brighten
and Dim, Expand/Collapse, Self-Healing, Animation, Spotlight, Lightbox Effect, Face-
plate, Flip, Carousel, Accordion, Slide In and Slide Out, and Zoom), we can either over-
whelm our user with Animation Gone Wild or Needless Fanfare, or we can use these
effects to explain happenings, show relationships, focus attention, improve performance,
and create the illusion of virtual space.
Be Reactive
For every action there should be an equal and opposite reaction. This is the physics of our
interfaces. Providing Auto Complete, Live Suggest, Live Search, Refining Search, Live
Previews, Progressive Disclosure, Progress Indicators, and Periodic Refresh form the
tools for creating a lively, reactive interface.
Staying Up to Date
The Web is constantly evolving, and it is impossible to always have the most up-to-date
examples, and to capture emerging patterns in a book. We provide two resources to keep
this work updated and relevant:
Designing Web Interfaces companion site
Please visit http://designingwebinterfaces.com for up-to-date information on this
book as well as updated examples, principles, and patterns. You can also contact the
authors at this site.
Designing Web Interfaces Flickr site
All of the figures are available on http://flickr.com/photos/designingwebinterfaces/.
In addition, for many of the figures there are companion screencasts (movies) show-
ing the interactions in action.
Index
Colophon
The image on the cover of Designing Web Interfaces is a Guianan cock-of-the-rock (Rupi-
cola rupicola). Easily identified by the distinctive half-moon crest on its head, this bird
is native to mountainous regions in northern South America, spanning the countries of
Guyana, French Guiana, Suriname, Colombia, Venezuela, and Amazonian Brazil. Mainly
fruit eaters, Guianan cocks-of-the-rock pass whole seeds through their digestive systems,
thereby contributing to tree and plant diversity in the lowland forests they inhabit.
Adult cocks-of-the-rock reach heights of eight inches and have stout, round bodies. Males
are typically smaller than females and have bright orange plumage with black and white
accents, whereas the females are a muted brown. The males take advantage of their bright
plumage to attract females as part of their elaborate mating ritual, during which they
gather in a lek, spread their wings, strut, ruffle their tail feathers, and issue a series of
unique calls. The birds are polygamous; successful males will mate with many females
during breeding season. Females build cup-shaped nests for their eggs out of clay and
plant matter inside cliff cavities or along rock faces, and they raise their chicks alone.
In the early 20th century, hunters trapped Guianan cocks-of-the-rock and sold them as
pets. Today, the birds are popular among bird watchers, eco tourists, and fly fishermen
(who use the colorful feathers to make fishing flies). Additionally, the Guianan cock-
of-the-rock, with its prominent “mohawk” and vibrant plumage, has been featured on
tourism brochures and stamps for several of the countries it inhabits. Although native
tribes still hunt the birds for feathers and food, the species is not threatened or at risk of
extinction.
The cover image is from Johnson’s Natural History. The cover font is Adobe ITC Gara-
mond. The text font is Adobe Minion Pro, and the heading and note font is Adobe Myriad
Pro Condensed.