Pile of Working Surfaces
Context: The artifact displays anything visual, and
can be split up into multiple working surfaces.
X-based window managers, and windowing OSes such as Macintosh and Windows
MDI applications (e.g. Word, Excel, Developer Studio)
Physical bulletin board
Problem: How should the artifact's working surfaces
Solution: Stack the surfaces loosely so that they
obscure each other most of the time, but so that one or more surfaces of
the user's choosing can be on top. If the surfaces look alike
when stacked close together, label each surface with a recognizable name
or icon (or let the user pick the label). Provide a very simple means by
which a user can indicate via the label, and by any part of the surface,
"Bring that one to the top." Allow the user to work freely in any of the
surfaces, even ones that are not topmost.
The user wants easy access to many working surfaces.
There may not be enough space to show them all together.
Each surface may need a different amount of space, or can be resized independently
of the other surfaces.
The user can identify them by name or icon, so that they can be brought
to the top when needed.
The users generally wants to manage the working surfaces' positions and
Though this pattern is most familiar in the "two-and-a-half-D" context
of a desktop GUI, it also works effectively in a more fully 3D environment.
2D working surfaces are still important in this context-- they're needed
to view documents, or images, or video clips, for example -- but you now
have more freedom to scatter them throughout 3D space, with the added
benefits of distance cues and (possibly) more freedom of movement
to observe them from different viewpoints. Ben Shneiderman's Designing
the User Interface has a picture of one implementation of such a space,
Xerox Parc's WebBook/WebForager (pg. 530). However, he also points
out that "[a] three-dimensional desktop is thought to be appealing to users,
but disorientation, navigation, and hidden data problems remain."
Resulting Context: To keep things conceptually simple
for the user (and for the programmer), use one single "stacking plane"
in which the working surfaces appear. This allows any surface to be topmost,
and prevents the miserable confusion caused by Windows applications that
use two stacking planes -- one on top of the other, each containing multiple
working surfaces (MDI child windows in one, dialogs in the other), and
no obvious clue to the user that they have to move or get rid of all the
dialogs before they can get at the MDI child windows underneath. It's awful
for novices, who understandably believe that there is just one stack of
Comments to: firstname.lastname@example.org
Last modified May 17, 1999
Copyright (c) 1999 by Jenifer Tidwell. All rights reserved.