Common Desktop Environment: Style Guide and Certification Checklist

Chapter 2 Input, Navigation, Selection, and Activation

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 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. 

Required 

c: 

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

Required 

d: 

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

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. 

Required 

f: 

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

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. 

Optional 

h: 

Use the Alt key only to provide access to mnemonics. 

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. 

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. 

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. 

Required 

n: 

 

 

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. 

 

 

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. 

 

 

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. 

 

 

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. 

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. 

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. 

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. 

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. 

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. 

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. 

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.