Common Desktop Environment: Style Guide and Certification Checklist

General Application Design Rules



There is always exactly one control within any window of your application that has the input focus if the window in which it resides has the input focus. 

If any window within your application has focus, some control within that window must have focus. The user should not have to explicitly set focus to a control within the window. 



When a text field within your application does not have the input focus, the text cursor is not displayed within that field. 

Although use of inactive text cursors is allowed within the Motif style, it is better to hide the text cursor on focus out rather than display the inactive text cursor. This makes it easier for the user to quickly scan the screen or a window and determine which text field currently has focus. 



Your application provides keyboard mnemonics for all buttons, menus, and menu items displayed within the application. 

Once the user becomes adept at using your application, keyboard mnemonics provide the user a quick way to access functionality. Mnemonics also facilitate access to functionality from within keyboard-centric applications or windows. The user need not frequently switch between use of the mouse or use of the keyboard. Mnemonics should be provided pervasively throughout the user interface. 



Your application provides keyboard accelerators for those functions that are expected to be used frequently by the user. 

Keyboard accelerators provide the user who has become expert at using your application a quick way to access application functionality without having to go through menus and dialog boxes. 



If your application does not use the values of global environment settings, such as multiclick timeout intervals, drag thresholds, window color settings, mouse left- or right-handedness, and so on, but instead uses its own values for these settings, then your application provides one or more Options dialog boxes that allow the user to change the values for these settings. 

In general, you should not override the value of settings treated as global environment settings. These settings are controlled by the user through the Common Desktop Environment Style Manager. If you choose to ignore these settings and specify your own settings, then your application will be have inconsistently with other applications in the Common Desktop Environment desktop. If you nevertheless choose to provide your own values, then you must provide the user a way to make your settings consistent with the rest of the desktop.