|
Notes on Mullet & Sano, 1995
Last modified: Mon May 21 04:23:43 EDT 2001
|
|
|
General
|
Kevin Mullet and Darrell Sano. Designing Visual
Interfaces: Communication Oriented Techniques.
Prentice Hall, 1995.
|
|
|
|
These are notes on the Mullet & Sano book from the
perspective of someone designing a personal universal
controller. The information that is extracted is relevant
for that purpose, and doesn't necessarily reflect the book
as a whole. For example, the sections of imagery and
style were not included, because the controller is
unlikely to generate icons or choose a style in which to
present an interface. These will be chosen by the
appliance and the device respectively.
The book is divided into eight chapters, half of which
seem useful for the controller research.
- Chapter 2: Elegance and Simplicity
-
This chapter is about simplifying interfaces so that
complexity is avoided and the user is not distracted or
confused by parts of the interface. As they write,
"elegance cannot be easily summarized by rules of thumb.
It depends heavily on taste." Of the four chapters,
this one is the least relevant. The techniques
described do seem interesting however, and it would be
interesting to see if we could implement them in some
way.
- Chapter 3: Scale, Contrast, and Proportion
-
This chapter covers visual variables, such as those
described in its title. Certain variables are better
than others for describing certain things. The use of
these variables effectively will be important for the
controller. The techniques in this section are
unfortunately somewhat difficult to implement. The
knowledge of variables may be more useful for
integrating in some other way (i.e. not rule-based).
- Chapter 4: Organization and Visual Structure
-
This chapter and the next are the most relevant to our
purposes. This chapter emphasizes the need for well
thought-out organization in any interface. Grouping and
hierarchy are important components of establishing
organization, which underscores the necessity for these
to be well-represented in the specification language.
- Chapter 5: Module and Program
-
Module and Program are design terms that refer to
aspects of a design that can be used to build
consistency across a family of designs for a related
cause. The main application of this methodology will be
in describing the interface conventions of the
controlling devices. The gridding technique will be
useful for the controller in general however. Several
techniques in this chapter can be applied to creating
good grids and these should be implemented in the
controller.
The beauty of this book is that each chapter is divided
into three sections: principles, common errors, and
techniques. The techniques sections are divided
into several conceptual sections, all of which end with a
set of design rules that we can attempt to implement in
computer form. The rules aren't specified for a computer,
but many do not appear to require human creativity to
follow. I believe the next step after reading this book
will be to implement a simple layout engine that takes as
input a set of widgets and groupings and creates screens
based on the concepts in the techniques sections of the
book.
The notes for each chapter focus on the techniques
section, although knowledge from other sections has also
been extracted where appropriate.
|
|
|
Elegance and Simplicity
|
The important points of this section are 1) complexity
must be avoided and 2) avoiding complexity is often an
iterative process in which the value of each design
element is evaluated. If the element is found to be
unnecessary, then it must be removed. This is the first
of three techniques that are described in this chapter:
- Reducing a Design to its Essence
The purpose of this technique is to reduce the design to
its essential elements. The reinforces the message by
not distracting the user from what is important. Trial
and error seems to be only way to effectively reduce a
design however, which could make it difficult to use
this in our automatic layout method. The best we can
hope for is to create the minimal number of elements to
begin with... Some kind of evaluation technique would
be necessary to do more. This is made explicit when
reduction is seen as a three-step process:
- "Determine the essential qualities that should be
conveyed by the design"
- "Critically examine each element in the design and
ask yourself why it is needed, how it relates to the
essence of the design, and how the design would suffer
without it."
- "Try to remeove the element from the design
anyway. What happens?"
Clearly, it is not clear how the second steps could be
implemented, although the third might be possible if a
design could be evaluated for functional or aesthetic
value.
- Regularizing the Elements of the Design
-
A predictable rythym can make the design easier to
comprehend. The regular columns in the NeXTStep browser
is an excellent example. The interface has five
columns, which are easy to read because they are all the
same width. A figure that shows the same figure with
the columns constrained to their maximum width is nearly
impossible to read. The controller must create designs
with this kind of regularity, which fortunately will
probably be a by-product of gridding, discussed later.
There are four strategies that can be used to achieve
regularity in designs.
- "Use regular geometric forms, simplified contours,
and muted colors wherever possible."
- "If multiple similar forms are required, make them
identical, if possible, in size, shape, color,
texture, lineweight, orientation, alignment, or
spacing.
- "Limit variation in typography to a few sizes from
one or two families"
- "To reap the benefits of regularity, make sure
critical elements intended to stand out in the display
are not regularized.
The first two points should be addressed by the
interface conventions of the controlling device,
although they may need to be described to our layout
software. The third point may be addressed by
interface conventions, but should be taken into
account in any case. The last item must be handled by
the interface generator, although I guess that
interface conventions may take advantage here as well
(e.g. default button borders).
- Combining Elements for Maximum Leverage
-
What is leverage? This was initially a point of
confusion for me. Leverage means using parts of the
design for multiple purposes, thus making the design
visually efficient. The example given is the
title bar in most GUI windows, which use the bar to
display a label for the window and window manager
controls. This kind of leverage can't be obtained by
the PUC, because it exists at the level of the
controlling device. Leverage at higher levels is more
difficult because it requires task knowledge that we
might not have. The steps for finding places to
leverage the elements in the design are:
- "Review the functional role played by each element
in the design. (This information should be a natural
product of the reduction phase.)"
- "Look for situations where multiple elements are
filling (or partially filling) the same role.
- "Question whether an element's role could be
filled as well by an adjacent component, possibly
after minor modification."
- "Combine redundant elements into a single, simpler
unit or replace the lot with a common higher-level
idiom from the target environment designed to address
the situation"
These points are about as difficult to implement as
those for reduction. The fourth point is reminiscent
of the process that we may need to use to substitute a
fancier component for a set of simpler components,
except that it's backwards. Ideally, we'll be trying
the fancy component first before resorting to
constructing our own.
|
|
|
Scale, Size, and Proportion
|
This section describes how the visual relationships of a
design can be altered to produce an effect that does not
overly dominate the design in an undesired way. This
discussion is based on an idea of visual variables
(size, value, hue, orientation, texture, shape, and
position) and different styles of perception
(associative, selective, ordered, and
quantitative). See the book (pp. 54-56) for
further explanation of these variables and styles.
Hopefully most of these issues will be handled by the
built-in widgets of the controlling device.
An odd tidbit from the section is somewhat relevant. The
golden ratio has been shown to the be the most pleasing
proportion. As an aside, the ratio is used internally by
Kim's system to
judge which objects are vertically vs. horizontally
oriented.
Four techniques are described in this chapter, with the
caveat that "mastery of these techniques requires
extensive practice." It may be interesting to explore a
neural net to describe these techniques, if it in fact
they cannot be represented formally as rules.
- The Squint Test
-
This is a less a technique than a trick. Simply
squint at a design. The essence of the trick is to view
the design out-of-focus and with reduced light. Elements
that are visible when squinting will be visible at a glance by the users.
It may be possible to implement this technique is some
way, but it is not clear that other methods of judging
symmetry and balance would not work better.
Furthermore, this is an evaluative technique. It is not
clear how such techniques will fit into the system.
- Establishing Perceptual Layers
-
Similar elements in a design can be grouped into visual
layers for easy association by users.
- "Group each item of information into a small number
(7+/-2) of categories according to its origin or
intended use. A group must be established for any group
of items that will need to be processed independently.
Each item must be assigned to at least one group."
- "Determine the rank or importance of the various
groups and organize them into an even smaller number
(e.g., 3-5) of echelons based on this ranking."
- "Use appropriate perceptual variables to establish
the layering effect. Size and value can establish clear
perceptual hierarchies, while hue is most effective for
non-hierarchical grouping."
- "Maximize the perceptual difference between groups
while minimizing the difference within groups."
- "Use the squint test to ensure that elements in the
same layer group together as a unit."
Although our layouts could probably benefit from some
layering, the cost of implementing a system that could
do it seems high.
- Sharpening Visual Distinctions
-
Make the distinctions between different visual layers
very clear. This is similar to the technique above.
- "Identify the rankings that need to be established
across the groups of information (see analysis undering
Layering, above)."
- "Determine the range of variation (e.g., minimum and
maximum values or sizes, numbers of colors, etc)
available and use as much of it as possible in the
resulting code."
- "Use logarithmic rather than linear scaling across
groups."
- "Use the squint test to ensure that [the different]
echelons can be easily recognized."
Hopefully most of this work will be handled by the
interface conventions of the controlling device.
- Integrating Figure and Ground
-
The figure is the primary formal element and
the ground is the visual context within which the
figure appears. The figure and the ground must be
proportionally sized for the design to visually integrate
correctly. This design rule must be implemented by the
automatic layout tool.
- "Determine the overall size of the figure/ground
combination."
- "Equalize the visual weight of figure and
ground.
- "Provide enough space around the margins of the
figure to eliminate unwarranted visual tension."
- "Position the figure correctly within the ground."
Since the above steps are vague, we will need to find
some heuristic numbers to use in our implementations.
These may need to be supplied in a definition for the
conventions of the device.
|
|
|
Organization and Visual Structure
|
The structure of the design must lead the user to
systematically discover the elements of the interface.
There are four principles of structure: grouping,
hierarchy, relationship, and balance. The
techniques described are the ones that will be the most
important for the PUC to implement correctly.
- Using Symmetry to Ensure Balance
-
Symmetry is one of the easiest ways to get good looking
interfaces and is very effective for simple layouts. Balance comes
for free in symmetric designs.
- "Identify the axes along which symmetry will be
established. In visual interface design, this decision
usually boils down to whether horizontal and/or vertical
symmetry."
- "Symmetry about the vertical axis is more prevalent
in human perception and is generally more useful in
visual displays."
- "Center the information on the axis of symmetry by
carefully balancing the amount of information on each
side of the axis. The information need not form a
literal mirror image provided the mass and extent are
equalized."
- "Make sure the axis of symmetry is itself centered
within the overall display context (i.e., the window or
icon in question)."
- "Use the squint test to verify the results."
It will be interesting to see how we measure issues of
"mass" and "extent."
- Using Alignment to Establish Visual Relationships
-
Alignment is important for displays to be coherent...
Elements that are not aligned can be distracting and
confusing.
- "Identify the major boundaries in the existing
layout, and look for ways to enhance them by moving
additional elements into alignment with them."
- "Look for elements and margins - both internal and
external - that almost, but not quite, align with one
another and bring them into alignment by altering the
size or postiion of one or both elements."
- "Look for free-standing elements and make sure they
are aligned with something else in the display - either
a major margin or some other element to which they are
related."
- "If an element cannot be related to anything else in
the display, try to relate it to the proportions of the
display itself by positioning the element to correspond
to a regular division of the space."
- Optical Adjustment for Human Vision
-
It is sometimes necessary to make changes to the
design to account for pecularities in human visual
perception. Circular elements should extend slightly
beyond margins set by linear elements. Spacing should be
determined by area in addition to distance, as in kerning
for fonts.
- "Determine the true point of alignment,
dimension of extent, or unit of spacing required.
Translate this into the "normal" margin that would be
occupied by a rectangular element in the same
position."
- "Extend elements beyond the margin according to the
sharpness of their adjacent angle. The greater the
acuteness of the angle, the farther it will need to
extend beyond the "normal" margin."
- "Use a "close-up" version of the squint test
encompassing only the elements in question to verify
alignment with the intended margin or visual equivalence
of the relevant intervals."
We will need functions in order to make some of these
adjustments... Particular for extending elements
outside of the margin based upon the acuteness of their
angle or the curvature of their shape. This information
will probably need to be obtained through studies with
designers.
- Shaping the Display with Negative Space
-
Negative space, or white space, is important for
differentiating different elements and groups within a
design. Good use of white space will direct the
viewer's eye to the regions of interest.
- "Review the organization of the information into a
prioritized set of chunks of manageable size. Note: the
groups identified for techniques described previously
serve this purpose as well."
- "Ensure spatial separation of independent units of
information by adding extra white space between chunks.
Extra space is needed even if explicit boundary
delimiters are used!"
- "Determine which elements - and these often include
individual elements used as labels for larger, less
important chunks - require additional visual
emphasis."
- "Increase the white space surrounding critical
elements by moving them into the margins, by moving
other elements away from them."
- "Always remember that white space is not wasted
space! Its role is to direct the viewer's attention
to adjacent regions containing critical
information."
Hopefully we can make these steps generative instead of
refining. These rules are also supposed to be difficult
to apply...
|
|
|
Module and Program
|
This chapter discusses mechanisms that bring regularity
and structure to families of designs. While the module
and program of our interfaces will be mostly specified by
the controlling device, it will be necessary to specify
the module and program, i.e. the interface conventions, of
each controlling device to maintain consistency.
THe chapter focuses mostly on grid-based design. It will
probably be necessary to specify a grid for each
controlling device.
- Reinforcing Structure through Repetition
-
Repetition is already used in most interfaces simply by
following user interface conventions. The PUC may want
to create certain conventions of its own however,
because it will be creating a number of interfaces that
the user will interact with, and these interfaces are
likely to more have more in common than arbitrary
applications on the controlling device.
The following steps may need to be carried out for each
controlling device.
- "Start with rough sketches of the series of layouts
to be produced."
- "Look for common margins or functional units that
must be clearly perceived across displays. Individual
displays should be adjusted to ensure consistent
positioning of major structural elements."
- "Look for widely-spaced elements that should be
visually related but which cannot be positioned next to
one another."
- "Look for paths the user's eye needs to follow
through the display. Repeated structural elements can
serve as landmarks and guides that help users with the
nagivation task as they become familiar with the
program."
- "Use standard locations and a consistent
presentation style for rules, text, or images introduced
to visually reinforce the naturally repeating elements
of the design."
Probably should also consider doing this on the current
designs, just to see what we find. The results could be
useful for the specification.
- Establishing Modular Units
-
Modular units are the created by the spacing in a
grid. The following steps illustrate how to specify a
grid. Most of these steps will have to be performed for
each controlling device.
- "Determine the vertical unit. In GUI design this
means defining the standard control height and the
spacing between controls. You will need to do this once
for each GUI toolkit at each standard size you intend to
support."
- "The vertical unit should allow any
two controls to be placed next to one another, and
should provide for proper spacing of multi-line
controls, multi-control groups, and separations between
groups. If labels are to be placed above rather than
beside controls, the vertical unit must provide for
correct positioning of labels as well."
- "Determine the horizontal unit. The unit should be
large enough to accommodate most of the one-word labels
in the design space and should be at least three times
as wide as the vertical unit."
- "The optimum horizontal unit should provide 5-7
divisions of the typical display width and should be
easy to factor evenly into partical or multiple
units."
The specification of each controlling device will need
to at least include partial values that can be used to
calculate the vertical and horizontal units. The
conventions of the device may influence how these units
are chosen.
- Creating Grid-Based Layout Programs
-
They say in the book, "Effective grid-based design
requires both careful planning and a willingness to
adjust the content intself when appropriate." Both
comments are relevant and we must focus on the second
one in particular. Requiring multiple labels in the
specification will help with this, as will adding the
ability to scale images, etc. Fortunately, "applying
the canonical grid is largely mechanical."
- "Determine any size restrictions on the area to be
laid out."
- "Determine the basic vertical and horizontal
modules. The vertical module is determined by the
widget set, while the horizontal module is determined by
the number of controls (and sometimes by the lengths of
their labels). These parameters (row height, column
width, and number of columns) define precisely the
canonical grid that will be used for this layout
problem."
- "Develop a rough layout sketch that approximates the
sizes, positions, and orientations of the relevant
control elements."
- "Use the canonical grid to adjust the sizes and
positions of elements across rows. Short elements are
extended to begin and end on grid boundaries, while long
elements are allowed to span multiple grid units or are
shortened to fit within the standard unit. In this way,
the grid is merely being used to help establish
consistent alignment relationships of the type described
in the previous chapter. Symmetry-enhancing adjustments
to control ordering and arrangement can also be
introduced anywhere in the display."
- "For dynamic layouts, identifying the minimum size
that can be accommodated by the layout is usually a
better solution than trying to recompute the layout for
arbitrarily small display sizes."
The trickiest part of this is deciding on the number of
columns to put into the grid. Do you use a six-column
format if your longest component is a string of six
radio buttons? What about three columns with two rows
of radio buttons? What metric do we use to decide this?
Probably a trade-off between the length of the label and
the space in the layout.
|
|
|
Conclusions
|
I think that the best way to see how these things work
will be to try them out. Won Chul Kim did some things to
improve the balance and symmetry of his generated
interfaces. I will read up a little on what he did and
then experiment with it myself.
|
|
|
Jeffrey Nichols
|
|