Principles of User Interface Design Common User Access
Principles of User Interface Design Common User Access
A user interface is the software application’s interface with a user. A graphical user interface (GUI) is
a user interface that uses text and images and involves direct manipulation of the individual graphical
elements by the user.
Contents
Background ........................................................ 1 Windows............................................................... 4
Design Principles ................................................ 2 Views .................................................................... 5
Principles to Put the User in Control .................... 2 Window Organization .......................................... 5
Principles to Reduce the User’s Memory Load ....... 2 Menu Hierarchy ................................................... 6
Principles that Support Consistency ..................... 2 Controls ............................................................... 8
Principles that Create Aesthetic Appeal ................ 3 Navigation...........................................................10
Design Concepts ................................................. 3 Selection..............................................................11
Application—Editorial Comments ..................... 4 User Information.................................................11
Elements of the CUA User Interface .................. 4
Background
IBM developed a conceptual framework for the design of graphical user interfaces beginning in 1989.
They called it Common User Access or CUA. The third and current version is CUA 91, published
in 1991. CUA was documented in two IBM publications:
Systems Application Architecture Common User Access Guide to User Interface Design (SC34-4289-
00) and
Systems Application Architecture Common User Access Advanced Interface Design Reference (SC34-
4290-00).
These two documents presented design principles to underlie the graphical user interface, specified
the various elements of a GUI, and described the uses and interoperability of those elements. CUA
became the basis for the operating systems like Windows, OS/2, and Mac OS.
At the time CUA was developed, user interfaces were limited to a command-line interface, IBM 3270
terminals, and early microprocessor operating systems like MS-DOS. A command-line interface is
text-based where commands are typed on the keyboard. 3270 terminals provided a “thin client” to a
mainframe application “server,” to use modern terminology, and displayed text only in 24 rows of 80
columns each; the text was uppercase in one font, with some limited variation in color, and the screen
resolution was coarse. Each MS-DOS application had a totally different user interface. CUA was
intended to rationalize and harmonize all user interfaces, from mainframes to microprocessors. CUA
91 was adopted by Microsoft in the 1995 version of Windows.
The CUA user interface is “graphical,” including the use of a mouse (generically referred to as a
pointing device), and incorporates elements of object orientation. Its developers claimed that “a user
can focus more closely on the task at hand without having to be so conscious of the tools involved.”
When reading these two documents it is sometimes difficult to separate marketing hype from
semantics from a truly different paradigm. However, the idea that applications become invisible and
that users be able to perform the same actions in the same way on any object, regardless if it is a
purchase order or memo or spreadsheet, is a useful one. After all, how many unique applications can
we master at the same time?
CUA focuses on the quality and effectiveness of the user’s operation of an application. While this
had been a design issue for 3270-based applications all along, the possibilities for workstation-based*
applications greatly increased the effort required to design such a user interface.
CUA extends the concept of ergonomic into the mental realm. Not only must an application be
easy to operate manually, but it must also be easy to comprehend. As the operation of a computer
should be as much as possible a natural extension of a person’s manual dexterity, so too should the
organization and meaning of the application be a natural extension of the person’s conceptual model.
I believe that Common User Access is as valuable today as when it was conceived.
Design Principles
CUA is based on principles about the nature of the user’s control, the quantity and quality of what
the user has to memorize, the consistency of operations and appearance, and the satisfaction and
acceptance to be gained from an aesthetic appearance.
*
Modern workstations have monitors capable of displaying upper and lower case text, images, lots of colors, all in fine
resolution.
Design Concepts
The following terms describe concepts that are central to CUA. They are listed here in alphabetical
order.
Choice: In a window, the text or image that a user selects to modify or manipulate the
corresponding object. CUA identifies three kinds of choices: An action choice immediately performs
some task, e.g., Print. A routing choice displays a menu or a secondary window. A settings choice
allows the user to display or change the characteristics or properties of the corresponding object.
Control: In a window, a mechanism used to interact with data—enter it, display it, and change it—
or provide access to an action or routing choice. Some of the many kinds of controls are menu, list
box, and push button.
Metaphor: An object used in place of another to suggest a likeness or analogy between them. More
broadly: figurative visual language.
Object: An object is an item used to perform a task. In the CUA environment, there are three
classes of objects: container objects, data objects, and device objects. Objects can be grouped, and
groups can be organized hierarchically.
Transparent: An interface that does not distract the user from the task at hand.
Application—Editorial Comments
The fifteen years following the explication of CUA have seen the mass adoption of computers,
monitors capable of high resolution of text and images, and the internet. The vocabulary CUA
introduced is now well known to many. But the design principles have had an uneven application.
The crux of the design problem is reflecting the user’s conceptual model. That model is the result of
the confluence of the user’s needs, their experience, and the identity, the essence, of the object. This
is complicated by two things:
1. Recently science realized that for some scientific research the mere existence of the observer
influences the observed object. Similarly the design of a user interface influences the user’s
conceptual model. The user is both observer and operator. Their needs may not change, but their
understanding of the identity of the object can change. Whether this change is for the better or for
the worse is irrelevant.
It is not enough for a user interface to use labels the user can understand correctly and immediately.
It must also decompose the object and use methods and properties that match and extend the user’s
model. And it must accommodate the inevitable evolution of the user’s model. This is where the
principle about accommodating users with different business and technical skills comes into play.
A famous architect is often quoted as saying “form follows function.” In UI design form follows both
function—what the user needs to do with the object—and the innate structure of the object. A deep
understanding of the object and the uses to which it will be put is essential.
Windows
A window is an area with visible boundaries within which information is displayed. Windows are
used to present objects, action and routing choices, and messages and to conduct a dialog with the
user.
Window elements can be divided into two groups. In one group are the elements that relate to the
window as a whole: border and title bar, the latter comprising the system menu icon, window title,
and window sizing (min-max) buttons. In the second group are the elements that relate to the
subject of the window: menu bar, view, and message.
Views
A view is the contents of a window—one way of looking at an object’s information. A view
comprises text and/or images and lines that portray information about the subject of the window.
When the amount of data exceeds the space available, scroll bars—horizontal and/or vertical—are
used. A view may also contain action and routing choices.
Window Organization
Windows have a parent-child structure. Primary windows can have one or more secondary windows.
Secondary windows can be nested.
A window and its content are not necessarily permanently tied together. The user can completely
change the content of a window by selecting a different view or by changing the window’s size.
However, a box used for a dialog or to present a message is fixed with its content.
The diagrams that follow illustrate how data about an object can be presented within a window.
Different conditions related to the structure and volume of the data are addressed:
The data exists as one group and fits within one window.
The data exists as one group and doesn’t fit within one window.
The data exists as one group with subgroups and fits within one window.
The data exists as one group with subgroups and exceeds the capacity of one window.
The data exists as two or more groups and fits within one window.
The data exists as two or more groups and exceeds the capacity of one window.
The data exists as two or more groups, some of which can be subdivided, and exceeds the
capacity of one window.
S VVViie
ewW
W nndddooow
Wiin w
w S VVViie
eew
wW
w W nndddooow
Wiin w
w
Data presentation for 1 group that fits in 1 Data presentation for 1 group that doesn’t
window, no notebook. fits in 1 window: multi-paged notebook with
no tabs.
group 1
page 1 of 2
page 2 of 2
S VVViie
ewW
W nndddooow
Wiin w
w S VVViie
eew
wW
w W nndddooow
Wiin w
w
subgroup 1
general page 1 of 2
subgroup 1 page 1 of 2
subgroup 2
subgroup 2 page 1 of 3
S VVViie
ewW
W nndddooow
Wiin w
w S VVViie
eew
wW
w W nndddooow
Wiin w
w
group 1 group 2
group 1 page 1 of x
group 3
group 2 page 1 of y
group 3 page 1 of z
Menu Hierarchy
Menu items exist in a hierarchy that is reflected as a cascade as each is selected.
A three-level menu hierarchy is employed to present choices that can be applied to an object. The
menu bar—the second line of a primary and, optionally, secondary window—is the top level. There
are seven common menu bar choices:
In addition there is a system menu that contains window-specific choices. It is accessed through the
system menu icon in the upper left corner of a window.
There are standardized menu choices for the pull-down menus (second level) that are associated with
each menu bar choice. A perusal of these will give an idea of the approach that CUA offers to
applications.
Controls
Controls differ in appearance, operation, and the kinds of choices for which they are suitable. A
control is usually identified by a text label such as a field prompt (which identifies the field), column
heading, group heading, or title. Controls can be grouped into four types: those relating to text,
those related to non-text data, those relating to groups of data, and those related to action or routing
choices.
The following tables describe each control and its recommended usage. This enumeration is
worthwhile because, while at this time (2007) these controls have become common, they are
sometimes misused.
Text Controls
These controls are used for settings choices involving text entry.
Leaving theory aside for a moment, how controls work—what they can do—is specific to their
implementation in a programming language. Typically controls are available to developers as DLL
files and are manipulated with program code. Controls available from different vendors may vary in
their appearance and operation. It is up to the designer to choose to use them in a way that is CUA-
compliant.
Navigation
Navigation refers to movement of the cursor within a window and the access from a keyboard to any
part of a window. Navigation is used to access controls. It is accomplished in several ways:
mouse: Use for every choice and entry field; position pointer symbol at any position within an
entry field.
first-letter navigation: Use in all lists of objects or settings choices.
mnemonic: Use for each predefined choice. It moves the cursor to that choice and also selects
it.
shortcut key: Use for each predefined menu choice or for each frequently-used menu choice.
It moves the cursor to that choice (even when it is overlaid by other windows) and also selects it.
Cursor-movement keys:
[Tab], [Shift+Tab]: Move cursor to the next field (all controls are fields), left to right, top to
bottom. Wrap cursor from bottom right to top left. Because a group of radio buttons is one
field, [Tab] moves to the default or first button; an arrow key is used to move between buttons.
[Home]: Move cursor to leftmost choice in a group of choices, or to the beginning of the
current line in an entry field.
[End]: Move cursor to the rightmost choice in a group of choices, or to the end of the current
line in an entry field.
arrow keys: Move cursor within entry field or multiple choices for one field.
[Page Down]: Scroll down; displays content below the currently visible area.
[Page Up]: Scroll up; displays content above the currently visible area.
Selection
Selection causes an action. For example:
Selecting an menu item activates that choice, like printing a document.
Selecting an entry field allows the user to type text in it.
Selecting a radio button sets its corresponding choice and unsets a previous choice for the field.
Selecting an item in a combination box list causes it to be placed in the entry field, overlaying
any previous value.
Selecting a notebook tab causes the first page of that section to be displayed.
Selecting a push button activates its choice.
Selecting a window activates it and causes it to be placed on top of all the other open windows.
The previously active window, now inactive, is moved to the background.
User Information
Users are kept informed of the state of objects, processes, and other elements of their interaction with
the application.
Feedback is provided for processes that last longer than five seconds. This is typically done
with clocks and sliders which provide progress information.
Information can be explanative or descriptive, and can apply to a single object or a process or a
view of an object. It is conveyed by text in a special area of the window.
Messages are displayed in windows and are used for information that is particularly important
or urgent, especially exceptions. Message windows include controls, typically push buttons,
with which the user can respond. The message includes directions for possible responses, such
as how an exception can be corrected.
Visual signals use emphasis to indicate states like selected, open (in use), unavailable, and
inappropriate text entered in a field.
Audible signals are sounds used to draw the user’s attention to significant conditions.
Help describes how the application is to be used and the significance of key elements and
conditions. It may include a tutorial to describe the business concepts and rules.