Common Desktop Environment: Style Guide and Certification Checklist

# 2 Input, Navigation,
Selection, and Activation

Contents of Chapter:

Input Guidelines

Navigation
  Mouse-Based Navigation
  Keyboard-Based Navigation

Selection

Component Activation
  Basic Activation
  Mnemonics
  CheckButton
  OptionButton
  Gauge

Input devices have different actions depending on which part of the interface the user is interacting with. Usually, mouse users can access windows and controls more easily than keyboard users, due to the inherent flexibility in mouse manipulation. Keyboard users must use specific keys to move the cursor in the application.

Users have to move pointers and cursors within the interface to indicate where actions should occur. To do so, users employ navigation methods that vary, depending on the cursor's location in the interface. Therefore, navigation refers to how users move pointers and cursors within the interface.

Users often need to indicate which element of the interface they want to interact with. Selection enables users to identify individual or multiple elements for subsequent interaction.

Activation refers to using controls to perform actions. When a user chooses a button or chooses an item from a menu, for example, the user is activating those controls.

The following sections outline Common Desktop Environment requirements for input, navigation, selection, and activation.

## Input Guidelines

Virtual keys are names for generic operations that the user can perform through the interface. They may be mapped to one or more physical key combinations. Application developers are strongly urged to provide support for Help, Properties, Undo, Cut, Copy, and Paste if their application has functions corresponding to these virtual keys. Other virtual keys may be supported as appropriate.

    Required

a:

  Components and applications that have functions corresponding to the Motif/Common Desktop Environment virtual keys must support those keys. See link.

  See the checklist item for a list of the virtual keys and their mappings.

## Navigation

The desktop allows either BSelect or BMenu to be used to display menus. This capability has been added for users familiar with environments that provide a dedicated mouse menu button.

For mouse-based navigation of text fields, the desktop has added a requirement that the text cursor be placed at the mouse cursor position, rather than at the beginning or the end of the text field.

### Mouse-Based Navigation

    Optional

b:

  BMenu Press or BMenu Click on a menu bar item displays the menu. See link.

    Required

c:

  BMenu Press or BMenu Click on an option button displays the option menu. See link.

    Required

d:

  BSelect Press on a text field causes the text cursor to be inserted at the mouse cursor position. See link.

### Keyboard-Based Navigation

The requirement to support Tab as a navigation key within groups of push buttons has been added to make keyboard navigation easier for users who have difficulty with the standard keyboard. This change is intended to reduce the number of side-to-side traversals of the keyboard (from Tab to arrow keys and back) that a user must perform to navigate within a single dialog box.

    Optional

e:

  Each time a new window is opened, keyboard focus is placed in the first field or location within the window or in a default location, if this is appropriate for the particular window. See link .

    Required

f:

  The Tab key moves input focus between push buttons within a group. See link.

  The arrow keys also move the selected focus per the OSF/Motif Style Guide, Revision 1.2.

    Required

g:

  Use the Control, Shift, and Alt keys only to modify the function of other keys or key combinations. See link.

    Optional

h:

  Use the Alt key only to provide access to mnemonics. See link.

## Selection

The desktop has incorporated two significant changes to selection in Motif. The first is that users may elect to have either Adjust or Transfer capability on the middle mouse button. In addition, the desktop integrates drag and select on the first mouse button.

On a three-button mouse, button 2 is typically used for the BTransfer (or BSelect) function. However, in a Common Desktop Environment environment, the user may change an environment setting indicating that mouse button 2 should be used for the BAdjust function instead. BAdjust can be used to toggle the selection state of elements under the multiple selection model.

The following guidelines describe the BAdjust behaviors.

#### Mouse-Based Multiple Selection

    Required

i:

  If your application contains collections that follow the multiple selection model, BAdjust is supported and behaves just like BSelect, when the BTransfer button is currently configured to behave as BAdjust. See link .

    Required

j:

  In a collection that uses multiple selection, clicking BSelect or BAdjust on an unselected element adds that element to the current selection. Clicking BSelect or BAdjust on a selected element removes that element from the current selection. Clicking BSelect or BAdjust moves the location cursor to that element. See link .

#### Mouse-Based Range Selection

    Required

m:

  If your application contains collections that follow the range selection model, BAdjust is supported and behaves just like Shift+BSelect, when the BTransfer button is currently configured to behave as BAdjust. See link .

    Required

n:

  In a collection that uses range selection, when the user presses Shift+BSelect, or BAdjust, the anchor remains unchanged, and an extended range for the selection is determined, based on one of the extension models. See link .

  Reselect
    The extended range is determined by the anchor and the current pointer position, in exactly the same manner as when the selection was initially made. See link .

  Enlarge Only
    The selection can only be enlarged. The extended range is determined by the anchor and the current pointer position, but then is enlarged to include the current selection. See link .

  Balance Beam
    A balance point is defined at the midpoint of the current selection. When the user presses Shift+BSelect or BAdjust on the opposite side of the balance point from the anchor, this model works exactly like the reselect model. When the user presses Shift+BSelect, BAdjust, or starts a navigation action modified by Shift on the same side of the balance point as the anchor, this model moves the anchor to the opposite end of the selection and then works exactly like the reselect model. See link .

  When the user releases BSelect or BAdjust, the anchor does not move, all the elements within the extended range are selected, and all the elements outside of it are deselected.

#### Mouse-Based Discontiguous Selection

    Required

o:

  In a collection that uses discontiguous selection, BAdjust can be used to extend the range of a discontiguous selection. The extended range is determined in exactly the same way as when BAdjust is used to extend a range selection. See link .

## Component Activation

The following guidelines have been provided to clarify double-click timing and mnemonics, to explain changes in activation of specific components, and explain behaviors of components that are new in CDE Motif.

### Basic Activation

    Required

x:

  The time allowed to detect a double click (`*doubleClickTime: 500`) should be no less than 500 milliseconds. See link.

### Mnemonics

    Required

y:

  Mnemonic characters must be chosen for ease-of-location within the text of a label. Wherever possible, use the first character of the label. If that is not possible, try to use the last character of the label, or if there is more than one word, the first character of the second word. After that, go through the label from the second character on until a unique mnemonic is found. See link .

### CheckButton

    Required

7-1:

  Your application uses check buttons to select settings that are not mutually exclusive. A check button graphically indicates its state with the presence or absence of a check mark. See link .

  A check button is used to select settings that are not mutually exclusive. The user needs to know whether the button is set or not.

### OptionButton

    Required

7-23:

  When the user presses BSelect or BMenu in an option button, the associated option menu is posted. See link.

  BSelect Press is a consistent way of activating an option button.

    Required

7-24:

  When the user releases BSelect or BMenu within the same option button that the press occurred in, the associated option menu is posted if it was not posted at the time of the press. When the user releases BSelect or BMenu outside of the option button, the associated option menu is unposted. See link .

  BSelect Release or BMenu Release posts or unposts an option menu, depending on whether the release occurs inside the option button and whether the option menu was posted at the time of the press.

### Gauge

    Required

ib:

  A gauge is similar to a scale except that a gauge is a display-only device with no user interactions. The appearance of a gauge is similar to a scale, but the gauge lacks a scale slider. See link .

    Optional

ic:

  Despite being a display-only device, a gauge should get keyboard focus so that the user can access Help or Settings for that control. See link.

Generated with CERN WebMaker