- From: Greg Lowney <gcl-0039@access-research.org>
- Date: Thu, 25 Feb 2010 11:16:15 -0600
- To: undisclosed-recipients:;
- Message-ID: <4B86B05F.7020605@access-research.org>
Here are some thoughts on different types of commands.
Summary:
1. /*direct commands*/:
1. */direct navigation commands/* move focus to a specified
item regardless of which currently has the focus
1. /*direct activation commands*/ activate a specified item
regardless of which currently has the focu/*s*/
2. /*linear navigation commands*/ (sometimes called logical or
sequential navigation commands) move forwards and backwards
through a list of items
3. /*structural navigation*/ commands move forwards and backwards,
and up and down a hierarchy
4. /*spatial commands*/ (sometimes called directional commands):
1. /*spatial navigation commands*/ move from one item to
another based on direction on the screen
2. /*spatial manipulation commands*/ resize or reposition an
item on the screen
Descriptions of types of navigation commands:
Direct commands benefit users in several ways. First, direct navigation
benefits all users who want to reduce the number of discrete commands
they have to enter, especially those for whom input is difficult,
painful, or slow. Also, compared to spatial or sequential navigation, it
is far more efficient for users who have difficulty reading the screen,
as it greatly reduces the number of times they must examine the screen
contents to carry out a command (e.g. being able to type a fixed string
of keys instead of having to press a navigation key, then read the
selected item to see if it is their final destination, repeated until
the answer is yes).
It is sometimes useful to distinguish two categories of direct commands:
*Direct Navigation Commands* that move the focus to a corresponding
element; and *Direct Activation Commands* that activate an element or
function without necessarily bothering to move the focus to it. When
Ctrl+O displays the Open dialog box, that's a Direct Activation Command
that performs the same action as the Open menu item on the File menu,
and therefore can be considered associated with it, but does not
directly invoke it. In contrast, when the user presses Alt+D to move the
focus to the Address field on the browser's toolbar, that is a Direct
Navigation Command associated with the Address field. There are also
hybrid commands that do both; for example, the access key associated
with a push button in a dialog box typically moves the focus to the
button then activates it, and if the action does not dismiss the dialog
box, the focus is left on the button rather than on the control that had
the focus before the access key was pressed.
*Linear navigation* (or "sequential" or "structural" navigation)
commands are identified by having two primary directions: Next and
Previous. Typical commands include Next, Previous, First, and Last. The
navigation order may or may not correspond to the visual orientation of
items on the screen; typically it will in a simple list such as a menu,
but not in a multidimensional arrangement such as icons in a window or
controls in a form. The Microsoft documentation says "With logical
navigation clients navigate to the object that logically precedes or
follows another object, as determined by the server."
*Structural navigation* includes linear navigation (next and previous,
first and last) but adds the concept of hierarchy: an element may have a
*parent element* that contains it and it may have *child elements* that
it contains, as well as other relationships such as or labeling or
otherwise referring to other elements. Typical structural navigation
commands include moving up to the parent element, down to the first
child element, and to the next, previous, first and last among
*siblings* (elements sharing the same parent).
*Directional navigation* (or "spatial navigation") commands are
identified by the fact that a command is associated with a particular
direction on the visual screen. This mapping may not always be exact: it
is common for the right arrow key to move the focus to the object that
is most approximately to the right of the current item.
Within single-dimension context, such as simple lists, directional
commands such as Up and Down keys usually correspond with linear
navigation commands such as Next and Previous. However, in
multi-dimensional contexts such as a regular grid or an array of
arbitrarily positioned icons, the directional commands may not always
correspond to Next and Previous. For example, in a grid the user may be
able to move the focus using Up, Down, Left, and Right arrows instead of
or in addition to Tab and Shift+Tab for Next and Previous.
Directional navigation is usually much more efficient than
logical/sequential navigation when targets are arranged in anything
other than a single dimensional list. For example, imagine a list of 100
items that wrap into two columns of 50; to navigate from the first to
the 51st might take 50 presses of the logical "next" navigation key
(Tab), but only a single directional navigation key (right arrow).
However, directional navigation has several severe limitations. The
first is that when targets can be arbitrarily arranged it's impossible
to avoid a situation where some items are unreachable using any finite
set of directional navigation keys. (For example, imagine a user has
rearranged four desktop icons to form a square, with a fifth in their
center. Using the usual complement of four directional arrow keys, the
user can move between any of the four corners, but cannot reach the one
in the middle.) The second limitation is that it is often impossible for
the user to be sure that they've visited every item. Both of these
limitations can be overcome by providing logical/sequential navigation
commands in addition to directional.
Many contexts provide a mixture of directional and sequential navigation
commands. For example, in a Windows "list view" grid the Down arrow key
to actually invoke the Next function (in that it wraps from the bottom
of one column to the top of the next) while the Right arrow key is
purely directional (not wrapping from the right side of one row to the
left side of the next row).
Received on Thursday, 25 February 2010 17:16:44 UTC