Common Desktop Environment: Style Guide and Certification Checklist

Component Activation

Basic Activation








Your application uses BSelect to activate a button.  

BSelect, the first mouse button, provides a consistent means of activating a button using the mouse. 



When a button has the focus, your application uses the Select key or Spacebar to activate the button.  

The Select key and Spacebar provide a uniform way of selecting a button. Selecting a button is equivalent to activating the button. 



When an activatable menu entry has the focus, your application uses the Select, Spacebar, Enter, or Return key to activate the entry.  

The Select, Spacebar, Enter, and Return keys offer a consistent means of activating a menu entry using the keyboard. 



When BSelect is pressed over a button, the appearance of the button changes to indicate that releasing BSelect will activate the button. If, while BSelect is pressed, the pointer is moved outside of the button, the visual state is restored. If, while BSelect is still pressed, the pointer is moved back inside of the button, the visual state is again changed to indicate the pending activation. If BSelect is pressed and released within a button, the button is activated, regardless of whether the pointer has moved out of the button while it was pressed.  

The visual state of a button offers a cue to the user about whether the button will be activated when the mouse button is released. 



If a selectable element of a collection is activatable, BSelect Click, the Select key, and Spacebar (except in text) select it. BSelect Click 2 selects and activates it.  

This rule provides for consistent integration of activation and selection in a collection where elements can be both selected and activated. 



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









If your application uses accelerators, the component with the accelerator displays the accelerator key or key combination following the label of the component.  

An accelerator is a key or key combination that invokes the action of some component regardless of the position of the location cursor when the accelerator is pressed. So that the user knows that there is an accelerator associated with a component, the accelerator needs to be displayed. 



If a button with an accelerator is within a primary or secondary window, or within a pull-down menu system from its menu bar, it is activatable whenever the input focus is in the window or the menu bar system. If a button with an accelerator is within a pop-up menu system, it is activatable whenever the focus is in the pop-up menu system or the component with the pop-up menu.  

An accelerator must be activatable from the window or component associated with the accelerator. 









If your application uses mnemonics, the label for the component with the mnemonic contains the character that is its mnemonic. If the label does not naturally contain the character, the mnemonic is placed in parentheses following the label.  

A mnemonic is a single character that can be associated with any component that contains a text label. Mnemonics provide a fast way of selecting a component from the keyboard. To let the user know that there is a mnemonic associated with a selection, the mnemonic is underlined in the label of the selection by the toolkit. For a mnemonic to be underlined, the label for a selection needs to contain the mnemonic character. If the label does not contain the mnemonic, putting the mnemonic in parentheses following the label provides visual consistency. 



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. 



All mnemonics are case insensitive for activation.  

The user must be able to activate a mnemonic by pressing either the lowercase or the uppercase variant of the mnemonic key. 



When the location cursor is within a menu or a menu bar, pressing the mnemonic key of a component within that menu or menu bar moves the location cursor to the component and activates it. If a mnemonic is used for an option button or for a cascading button in a menu bar, pressing Alt and the mnemonic anywhere in the window or its menus moves the cursor to the component with that mnemonic and activates it.  

A mnemonic is generally activatable when the location cursor is within the component that contains the mnemonic. Pressing Alt and the mnemonic provides a way to activate a visible mnemonic when the location cursor is within the window that contains the mnemonic. 

Tear-off Activation








Activating a tear-off button tears off the menu that contains the button.  

A tear-off button is like a push button with the special interaction of tearing off the menu from its cascading button. Tear-off buttons use the same basic activation as other buttons. 



When a menu with a tear-off button is posted, pressing BTransfer in the tear-off button starts a tear-off action. As long as BTransfer is held, a representation of the menu follows the movement of the pointer. Releasing BTransfer ends the tear-off action by unposting the menu system, creating a new window at the current pointer location that contains the contents of the menu, and giving focus to the new window in explicit pointer mode.  

Help Activation








Your application uses the Help key on a component to invoke any context-sensitive help for the component or its nearest ancestor with context-sensitive help available.  

The Help key offers the user a consistent mechanism for invoking context-sensitive help. 



Your application provides context-sensitive help at all locations.  

The user should never get a "help not available" message.  

Default Activation








If your application uses default push buttons in a window, the current default push button is highlighted. When the focus is on a push button, its action is the default action, and the push button shows default highlighting. If the default action in a window varies, some push button always has default highlighting, except when there is no current default action. 

Placing emphasis on the default push button in a dialog box provides the user with a visual cue about the expected reply to the dialog box. 



When focus is in a window with a default action and an activatable menu does not have the focus, the Enter key and Control+Return invoke the default action. If focus is in a component other than multiline text or an activated menu, Return also invokes the default action. These actions have no other effect on the component with the focus, unless the default action has some effect on that component.  

These rules ensure that the means of invoking a default action are consistent across applications. 



Except in the middle of a button motion operation, pressing the Cancel key anywhere in a dialog box is equivalent to activating the Cancel push button in the dialog box.  

The Cancel key provides a uniform means of canceling dialog box from the keyboard. 

Expert Activation








If your application supports expert activation, expert actions exist only as shortcuts to application features that are available through another mechanism.  

Expert activation, using mouse double-clicking on buttons, provides a convenient way for experienced users to perform certain tasks quickly. However, new users and keyboard-only users need to be able to perform the same tasks. 



When the focus is on a button used for expert activation, no default action is available, unless the default and expert actions are the same.  

This rule minimizes possible confusion between default and expert activation. 



If a component with an expert action is selectable, activating the expert action first selects the component and then performs the expert action.  

A user needs to be able to select a component, even if it has an expert action associated with it. 

Previewing and Autorepeat








If your application supports activation preview using BSelect, the previewing information is removed when the user releases BSelect.  

Activation preview presents the user with additional information that describes the effect of activating a button. This information cannot interfere with the normal operation of the application. 

Cancel Activation







Pressing the Cancel key stops current interaction in the following contexts:  

  • During a mouse-based selection or drag operation, it cancels the operation.

  • During a mouse-based scrolling operation, it cancels the scrolling action and returns the system to its state prior to the start of the scrolling operation.

  • Anywhere in a dialog box that has a Cancel push button, it is equivalent to activating that push button, except during a mouse-based selection or drag operation.

  • In a pull-down menu, it either dismisses the menu and moves the location cursor to the cascading button used to pull it down, or unposts the entire menu system. In a pop-up menu, option menu, tear-off menu, or menu bar, it unposts the menu system.

  • When the focus is in a torn off menu window, it closes the torn off menu window.

These guidelines for the Cancel key ensure the consistent operation of the key across applications.