Different types of commands

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