Common Desktop Environment: Style Guide and Certification Checklist

Layout

Main Window

 

n/a 

 

 

 

Required 

6-1: 

Your application should be composed of at least one main window. 

A main window contains a client area and, optionally, a menu bar, a command area, a message area, and scroll bars. The client area contains the framework of the application. The use of a main window ensures interapplication consistency. 

Required 

bd: 

The default size of the application's main window must be large enough to accommodate a typical amount of data, but should not fill the entire physical display size to minimize visual conflicts with other applications. 

Each application potentially must share the display with other applications. The default window size should not take up all the available screen space. 

Required 

be: 

Resize corners should be included in any main window that incorporates a scrolling data pane or list. 

Resize corners should be included in any main window that incorporates a scrolling data pane or list. Any changes to the overall size of the window should result in a corresponding increase or decrease in the size of the scrollable portion. Additionally, your application might reorganize elements within the window based on the increased or decreased amount of space (for example, it might reorganize a row of buttons into two rows). 

Required 

6-2: 

If your application has multiple main windows that serve the same primary function, each window closes and iconifies separately.  

For example, a text editor might allow the user to edit multiple documents, each in its own main window. Each window is then treated as a separate application and can be closed or iconified when it is not being used. 

Required 

6-3: 

If your application has multiple main windows that serve different primary functions, each window should be able to iconify independently of the other windows. 

For example, a debugger might provide separate main windows for editing source code, examining data values, and viewing results. Each window can be iconified when it is not being used, but it is up to the application to decide whether each window closes separately or whether closing one window closes the entire application. 

Window Titles

 

n/a 

 

 

 

Optional 

bf: 

The title of your primary window (the main window your application displays to the user) should be the name of your application. 

Note that this does not have to be the actual name of the executable invoked by the user. 

Carefully consider how the title you choose for your primary window works when it is used in icons and pop-up windows. If the name of the pop-up window is too long, you may remove the application title; however, without the title, users might have difficulty telling which pop-up window belongs with the originating primary window. 

Optional 

bg: 

Use initial capital letters for each word in the title (in languages that support capitalization). 

Optional 

bh: 

Follow the application name for each property window, as a minimum, with the title Properties and the name of the object it affects. 

Optional 

bi: 

Begin the title of each pop-up window with the application title followed by a colon, then the title of the pop-up window. The colon should have a space both before and after it for readibility. 

Pop-up windows should always indicate which primary window they are associated with (which primary window invoked that pop-up). 

Optional 

bj: 

Use a hyphen to denote the current file name, when the application has files that can be loaded or saved. The hyphen should have a space before and after it. Only the base name of the file should be displayed, not the entire path. 

The hyphen is used to denote specific instances of a window or data. The colon serves to delimit general categories or commands. For example, a file manager might have the following title for a Properties dialog box: 

File Manager : Properties - myfile 

Optional 

bk: 

Follow the application name for each command window with the same title that is on the window button or window item users choose to display that window. 

Recommended 

bl: 

In the case of multiple primary windows, include the application name at the beginning of each window title, and add a name that uniquely identifies that primary window. No separator should be provided for these names (for example, Calendar Manager Multibrowse, Catalog Search, Admintool Databases). 

Optional 

bm: 

An abbreviated name for the application may be used on other windows, so long as it is done on all windows. 

Menu Bar


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

 

Required 

6-4: 

If your application has a menu bar, it is a horizontal bar at the top edge of the application, just below the title area of the window frame. A menu bar organizes the most common features of an application. It contains a list of menu topics in cascading buttons; each button is associated with a distinct pull-down menu containing commands that are grouped by common functionality. The use of a menu bar yields consistency across applications. 

Required 

6-5: 

The menu bar for your application contains only cascading buttons. 

When other buttons are included as topics in a menu bar, they inhibit menu browsing. 

 

6-6: 

This item has been deleted. It is replaced by the following guideline. 

Recommended 

bn: 

There are several common menu operations that should be considered "standard". The standard menu bar entries are File, Edit, View, Options and Help. If your application provides that functionality to the user, it should be included in the menu bar under the appropriate name.The contents of these menu entries are discussed below in more detail. 

Standard menu bar entries should be presented in the following order: 

File Edit View Options Help 

You should exclude from your menu bar any item shown in the preceding text if your application does not support the associated function. For example, if your application does not support the ability to display its data in different views, then you should not include a View menu. 

You may add application-specific menus in between any of the standard menu items, with the following exceptions: 

  • The File menu, if present, is located in the first menu position on the left.

  • The Help menu is located on the far right position.

  • If File and Edit are present, they should be next to each other.

For example, your application may have: 

File Edit <category1> <category2> View Options <category3> Help 

Recommended 

bo: 

Applications that are not file-oriented in nature (or that manage files transparently, not exposing this activity to the user) should replace the File menu with one or more application-specific menus. 

Replacing the File menu: 

Replacement1: <app-label> Selected  

Replacement2: <app-label><obj-type>  

Replacement3: <obj-type> 

You may use Replacement1 if your application has more than one object type. Items on <app-label> would be used for global actions that are not specific to an object type. The items in Selected are actions that pertain to objects that are currently selected, and may change depending on what objects are selected. If nothing is selected, this menu should have a single item that says (none selected). If an item is selected, but there are no items that apply to that object, this menu should have a single item that says (none). 

You may use Replacement2 if your application has a single object type. Actions that are global to the application are on <app-label>, and actions that are specific to the object type are on <obj-type>. 

You may use Replacement3 if your application has a single object type, and does not require an <app-label> menu. For example, a Print Manager might contain a Printer menu. 

All other menubar guidelines that apply to File-oriented applications also apply to non-File-oriented applications. Thus, the following menubar would be valid: 

<app-label> Selected Edit <category1> View <category2> Help 

Applications that are complex or are extremely domain-specific (for example, an application for medical imaging and diagnosis of cat scan data) may require other approaches to their menu bar design. For example, 

<app-label><category1><category2> Selected Edit <object-type> Options Help 

Recommended 

bp: 

Exit or Close should be located on the first (leftmost) menu of your menubar. 

File Menu Contents


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

 

Required 

bq: 

If the user chooses Exit, or in any other manner indicates that the application should be terminated, but there are changes to the current file that have not been saved, your application displays a dialog box asking whether the changes should be saved before exiting. 

The user must always be given the opportunity to explicitly state whether unsaved changes should be saved or discarded. A dialog box similar to the one described should also be displayed if the user chooses the Open from the File menu, but has not saved changes to the current file. 

Required 

6-7 

If your application uses a File menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application.  

Required 

 

New 

Creates a new file. If the current client area will be used to display the new file, your application clears the existing data from the client area. If changes made to the current file will be lost, your application displays a dialog box, asking the user about saving changes. The mnemonic is N. 

Required 

 

Open ... 

Opens an existing file by prompting the user for a file name with a dialog box. If changes made to the current file will be lost, your application displays a dialog box asking the user about saving changes. The mnemonic is O. 

Required 

 

Save ... 

Saves the currently opened file without removing the existing contents of the client area. If the file has no name, your application displays a dialog box, prompting the user to enter a file name. The mnemonic is S. 

Required 

 

Save As... 

Saves the currently opened file under a new name by prompting the user for a file name with a dialog box. If the user tries to save the file using an existing name, your application displays a dialog box that warns the user about a possible loss of data. Does not remove the existing contents of the client area. The mnemonic is A. 

Recommended 

 

Print 

Schedules a file for printing. If your application needs specific information to print, it displays a dialog box, requesting the information from the user. In this case, the menu entry is followed by an ellipsis (Print...). The mnemonic is P. 

Recommended 

 

Close 

Closes the current primary window and its associated secondary windows. If your application uses only a single primary window or multiple dependent primary windows, this action is not supplied. The mnemonic is C. 

Required 

 

Exit 

Ends the current application and all windows associated with it. If changes made to the current file will be lost, your application displays a dialog box, asking the user about saving changes. The mnemonic is X. 

 

 

 

 

 

The use of a File menu with these common file operations yields consistency across applications. 

<Object-type> / Selected Menu Contents

 

n/a 

 

 

 

Recommended 

br: 

If your application uses an <object-type> menu or a Selected menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application. Items should be presented to the user in the order listed below. 

The <object-type> menu contains controls that allow the user to create instances of the object-type. Both the <object-type> and Selected menus allow the user to manipulate object instances. Additional items should be added to the <object-type> or Selected menus if they relate solely to the manipulation of objects managed by the application (as opposed to more generic services that the application might provide). 

Recommended 

 

New ... 

Creates a new instance of the object-type. If appropriate, a dialog box is presented allowing the user to specify the values for settings associated with that object. 

Optional 

 

Move To ... 

Allows the user to move the selected objects into a folder. A file selection dialog box is displayed allowing the user to select the desired folder. 

Optional 

 

Copy To ... 

Allows the user to copy the selected objects into a folder. A file selection dialog box is displayed allowing the user to select the desired folder. 

Optional 

 

Put in Workspace 

Allows the user to put a link for the object onto the Common Desktop Environment desktop in the current workspace. 

 

 

 

 

Any of the preceding three menu choices should be provided only if the objects managed by your application are able to reside as separate entities outside of your application's main window. For example, a printer object created by a printer management application might be able to be placed in a Folder window and function as an application unto itself. Your application should also support drag and drop as a method for performing any of these actions. 

Optional 

 

Delete 

Removes the selected objects. A confirmation dialog box should be presented to the user before the object is actually deleted. 

Recommended 

 

Properties 

Displays a Properties window that shows the current values for settings associated with the selected object. 

Recommended 

 

<Default Action> 

This choice should enact the default action for the selected object. "Open" is a typical default. 

Edit Menu Contents


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

 

Required 

6-8 

If your application uses an Edit menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application:  

Optional 

 

Undo 

Reverses the most recently executed action. The mnemonic is U. 

Optional 

 

Cut 

Removes the selected portion of data from the client area and puts it on the clipboard. The mnemonic is T. 

Optional 

 

Copy 

Copies the selected portion of data from the client area and puts it on the clipboard. The mnemonic is C. 

Optional 

 

Copy Link 

Copies a link of the selected portion of data from the client area and puts it on the clipboard. The mnemonic is K. 

Optional 

 

Paste 

Pastes the contents of the clipboard into the client area. The mnemonic is P. 

Optional 

 

Paste Link 

Pastes a link of the data represented by the contents of the clipboard into the client area. The mnemonic is L. 

Optional 

 

Clear 

Removes a selected portion of data from the client area without copying it to the clipboard and does not compress the remaining data. The mnemonic is E. 

Optional 

 

Delete 

Removes a selected portion of data from the client area without copying it to the clipboard. The mnemonic is D. 

Optional 

 

Select All 

Sets the primary selection to be all the elements in a component of the client area. 

Optional 

 

Deselect All 

Removes from the primary selection all the elements in a component of the client area. 

Optional 

 

Select Pasted 

Sets the primary selection to the last element or elements pasted into a component of the client area. 

Optional 

 

Reselect 

Sets the primary selection to the last selected element or elements in a component of the client area. This action is available only in components that do not support persistent selections and only when the current selection is empty. 

Optional 

 

Promote 

Promotes to the primary selection the current selection of a component of the client area. This action is available only for components that support persistent selections. 

 

 

The use of an Edit menu with these common editing operations yields consistency across applications. 

Recommended 

bs: 

If your application does not provide an <object-type> or Selected menu, but allows the user to select data within the window and manage settings for the selected data, then it provides a Properties ... choice as the last item in the Edit menu. 

Required 

6-9: 

This item has been deleted.  

View Menu

 

n/a 

 

 

 

Recommended 

bt: 

If your application provides a View menu, it only contains functions that affect the way the current data is presented. It does not contain any option that alters the data itself. 

Options Menu

 

n/a 

 

 

 

Recommended 

bu: 

If your application has global settings that control the way the application behaves, it provides an Options menu from which these can be set. 

Help Menu Contents


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

 

Recommended 

bv: 

If your application includes a Help menu, it contains the following set of choices, with the specified functionality, when the actions are actually supported by your application. The Help choices included here supercede those listed for Motif 1.2. 

Required 

 

Overview 

Provides general information about the window from which help was accessed or about the application overall. The mnemonic is V. Place a separator after. 

Optional 

 

Index 

Provides an index listing topics for all help information available for your application. The mnemonic is I. 

Recommended 

 

Table of Contents 

Provides a table of contents listing topics for all help information available for your application. The mnemonic is C. 

Recommended 

 

Tasks 

Provides access to help information indicating how to perform different tasks using your application. The mnemonic is T. 

Recommended 

 

Reference 

Provides access to reference information. The mnemonic is R. 

Optional 

 

Tutorial 

Provides access to your application's tutorial. The mnemonic is L. 

Optional 

 

Keyboard 

Provides information about your application's use of function keys, mnemonics, and keyboard accelerators. Also provides information on general Common Desktop Environment use of such keys. The mnemonic is K. 

Optional 

 

Mouse 

Provides information about using a mouse with your application. The mnemonic is M. 

Optional 

 

Mouse and Keyboard 

Provides information about your application's use of function keys, mnemonics, keyboard accelerators, and using a mouse with your application. Also provides information on general Common Desktop Environment use of such keys. The mnemonic is M. Use rather than separate mouse and keyboard choices if this information is best presented together. 

Optional 

 

On Item 

Initiates context-sensitive help by changing the shape of the pointer to the question mark pointer. When the user moves the pointer to a component and presses BSelect, any available context-sensitive help for the component is presented. The mnemonic is O. Set off with separators on both sides. 

Required 

 

Using help 

Provides information on how to use the Common Desktop Environment Help Viewer. The mnemonic is U. Set off with separators on both sides. 

Required 

 

About applicationname 

Displays a dialog box indicating, minimally, the name and version of your application, and displays its icon or some other signature graphic for your application. The mnemonic is A. 

 

6-10: 

This item has been deleted. It is replaced by item bv.

Attachment Menu Contents

 

n/a 

 

 

 

Recommended 

bw: 

If your application uses an attachment menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application. 

Recommended 

 

Add File ... 

Selects files and other items to be attached. A file selection box is displayed allowing the user to select the desired files to attach. The default button in the file selection box is Attach. 

Recommended 

 

Save As ... 

Saves the currently selected attachments. The user is prompted with a file selection dialog box for indicating where in the file system the attachments are to be saved. When multiple attachments are selected, the name field is inactive and the current names of the attachments are used as the name of the new file. This menu item is active only when one or more attachments are selected. 

Recommended 

 

Rename ... 

Renames the attachment icon. The application should provide in-line renaming of attachment icons, such as File Manager uses. If the application cannot provide in-line renaming, then Rename allows the user to rename an attachment by displaying a dialog box, requesting the name from the user. This menu item is active only when a single attachment is selected. It is not active when multiple attachments are selected. 

Recommended 

 

Delete 

Deletes attachments from the attachment list. This menu item is active only when an attachment is selected.  

Recommended 

 

Select All 

Selects all the attachments in the attachment list. 

Pop-up Menus


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

 

Recommended 

bx: 

If your application provides functions that apply to a data pane and not any specific element therein, then a pop-up menu is provided that contains the frequently used data pane functions and is accessible by pressing BMenu when the mouse pointer is over the background of the pane or a nonselectable element within the pane. 

Recommended 

by: 

Your application should provide a pop-up menu for any element that is selectable within its data pane. 

Pop-up menus provide access to frequently used functions and should be used pervasively throughout the Common Desktop Environment desktop environment. A pop-up menu may contain a collection of options that appear in different menus available from the menu bar. For example, it may contain items from both the File and Edit menus. 

Recommended 

bz: 

When a pop-up menu is displayed over an unselected object, any action selected from the pop-up menu applies to that object only, and not to any other objects that might currently be selected. 

The preceding helps to protect the user from inadvertently applying an action to objects that the user may not realize are currently selected. Pressing the menu button invokes a pop-up menu pertinent to the object under the mouse cursor whether it is selected to not; if the object under the mouse cursor and other objects are selected, the pop-up menu is pertinent to the selected set. 

Recommended 

ca: 

Every pop-up menu in your application has a title that indicates the function the menu performs or the element on which it operates. 

Recommended 

cb: 

The functions accessible from within your application's pop-up menus are also accessible from buttons displayed within the window or menus accessed through the menu bar. 

Because pop-up menus are hidden, they should only provide redundant access to functions available from more visible controls within the application's windows. 

Optional 

6-11: 

If your application uses any of the common pop-up menu actions, the actions function according to the following specifications. See item cc for supplemental guidelines.

Optional 

 

Properties 

Displays a Properties dialog box that the user can use to set the properties of the component.  

Optional 

 

Undo 

Reverses the most recently executed action. 

Optional 

 

Primary Move 

Moves the contents of the primary selection to the component. This action is available only in editable components.  

Optional 

 

Primary Copy 

Copies the contents of the primary selection to the component. This action is available only in editable components.  

Optional 

 

Primary Link 

Places a link to the primary selection in the component. This action is available only in editable components. 

Optional 

 

Cut 

Cuts elements to the clipboard. If the menu is popped up in a selection, cuts the entire selection to the clipboard. 

Optional 

 

Copy 

Copies elements to the clipboard. If the menu is popped up in a selection, this action copies the entire selection to the clipboard. 

Optional 

 

Copy Link 

Copies a link of elements to the clipboard. If the menu is popped up in a selection, copies a link to the entire selection to the clipboard.  

Optional 

 

Paste 

Pastes the contents of the clipboard to the component. This action is available only in editable components.  

Optional 

 

Paste Link 

Pastes a link of the contents of the clipboard to the component. This action is available only in editable components.  

Optional 

 

Clear 

Removes a selected portion of data from the client area without copying it to the clipboard. If the menu is popped up in a selection, deletes the selection.  

Optional 

 

Delete 

Removes a selected portion of data from the client area without copying it to the clipboard. If the menu is popped up in a selection, deletes the selection. 

Optional 

 

Select All 

Sets the primary selection to be all of the elements in the collection with the pop-up menu.  

Optional 

 

Deselect All 

Deselects the current selection in the collection with the pop-up menu.  

Optional 

 

Select Pasted 

Sets the primary selection to be the last element or elements pasted into the collection with the pop-up menu.  

Optional 

 

Reselect 

Sets the primary selection to be the last selected element or elements in the component with the pop-up menu. This action is available only in components that do not support persistent selections and only when the current selection is empty. 

Optional 

 

Promote 

Promotes the current selection to the primary selection. It is available only in components that support persistent selections. 

 

 

 

 

 

The use of pop-up menus with these common actions yields consistency across applications. 

Recommended 

cc: 

Pop-up menus for selectable objects contain the following set of choices, with the specified functionality, when the actions are actually supported by your application. These guidelines supplement item 6-11.

Optional 

 

Move To ... 

Allows the user to move the selected objects into a folder. A file selection dialog box is displayed allowing the user to select the desired folder. 

Optional 

 

Copy To ... 

Allows the user to copy the selected objects into a folder. A file selection dialog box is displayed allowing the user to select the desired folder. 

Optional 

 

Put in Workspace 

Allows the user to put a link for the selected objects onto the Common Desktop Environment desktop in the current workspace. 

Optional 

 

Delete 

Deletes the selected object. A confirmation is displayed to the user before actually removing the object. 

Optional 

 

Properties ... 

Displays a dialog box indicating the current settings for attributes associated with the selected object. 

Optional 

 

Help ... 

Displays a help window pertaining to objects of the type selected. 

Optional 

cd: 

Choices within your pop-up menus are organized in the following manner: 

<choices that manage the object such as Open, Save, or Properties> 

----------- separator ---------------- 

<standard edit menu choices such as Cut, Copy, and Paste> 

----------- separator ---------------- 

<other choices> 

Required 

6-12: 

When a pop-up menu is popped up in the context of a selection, any action that acts on elements acts on the entire selection.  

In the context of a selection, pop-up menu actions affect the entire selection. 

Dialog Boxes

 

n/a 

 

 

Required 

6-13: 

Information dialog boxes do not interrupt the user's interaction with your application.  

An information dialog box conveys information to the user that does not require immediate attention, so it does not need to be modal. 

Menu Design

 

n/a 

 

 

Recommended 

ce: 

If the selection of a menu item will result in the user being queried for more information, such as through the posting of a file selection dialog, the menu item should be followed by an ellipsis ("..."). This requirement does not apply to menu items that will result in a simple warning or confirmation dialog being displayed. 

The use of an ellipsis helps set the user's expectation for the behavior of the interface. When they select an item without an ellipsis, they know that they can expect an immediate result.  

Recommended 

cf: 

Menus accessed from within your application contain at least two menu items. 

No menu should contain only one item. If your application provides a menu with only one item, you should look at moving that item into another menu or making it a button within the window. The longer the menu, the more effort is needed for the user to access choices near the bottom. If your menu has a lot of choices, break it up into two or more menus, or group some items into submenus. 

Optional 

cg: 

Submenus accessed from within your application contain at least three menu items. 

Submenus may be used to group like items into a single secondary cascading menu where putting the items into the primary cascading menu would make it too long. However, if your submenu contains only two options, you should strongly look at removing the secondary cascading menu and putting the options into the primary cascading menu since it takes more effort for the user to access options located in a submenu. 

Recommended 

ch: 

No menu in your application contains more than 15 choices. 

The longer the menu the more effort is needed for the user to access choices near the bottom. If your menu has a lot of choices, you should look at breaking it up into two or more menus, or grouping some items into submenus. 

Optional 

ci: 

If your application contains a menu that is expected to be accessed frequently, then a tear-off menu option is provided in that menu. 

The user should be able to tear-off frequently accessed menus so that these can remain posted on the desktop as the user uses your application. 

Optional 

cj: 

Provide keyboard accelerators where appropriate. 

If specific menu items within a menu are expected to be used frequently, not the menu as a whole, then your application provides keyboard accelerators for these items and displays the keyboard accelerators in the associated menu to the right of the item to which they relate. 

Recommended 

ck: 

The labels used for items in the menu bar do not appear as options within the menus themselves. 

The names of items in the menu bar serve as titles for the options the menu contains. The name of the menu bar item should provide a term that accurately describes the concept of the category relating all of the menu items and should not be used as the name of any item within the menu itself. 

Required 

cl: 

Any menu choice that is not currently an appropriate selection is dimmed (insensitive). 

Dimmed controls cannot be activated by the user and should appear only when the inactive state is short-term (that is, there is something the user can do within the application or the desktop environment to make the control become active). When the control is persistently inactive (because of the current configuration of the application or system, or a particular set of companion software is not currently installed), the control should be removed rather than dimmed. 

Recommended 

cm: 

If a menu item is used to indicate a selection state, use a checkbox or radio button to indicate the state of the item. Use a checkbox if a single item is used to represent on or off states, and use radio buttons for multiple adjacent menu items in which only one of the items may be selected. 

Required 

cn: 

If radio buttons are used in a menu, use separators between each set of radio buttons and other menu items. 

Recommended 

co: 

If a checkbox or radio button is used on a menu item, it should always be shown as either selected or not selected, and should not dissappear when in the unselected state. 

Required 

6-14: 

If your application uses a tear-off button in a menu, the tear-off button is the first element in the menu. 

When a tear-off button is activated, the menu changes into a dialog box. The tear-off button needs to be the first item in the menu so that the entire contents of the menu are torn off. 

Required 

6-15: 

All menus are wide enough to accommodate their widest elements. 

The ability to see the full label of each menu element allows the user to browse through a menu. 

Dialog Box Design


Note -

These requirements apply only in a left-to-right language environment in an English-language locale. You must make the appropriate changes for other locales.


 

n/a 

 

 

Recommended 

cp: 

The title of dialog boxes used within your application adheres to the conventions listed in Table 10-3

.

Table 10-3 Dialog Box Title Conventions

Window Usage 

Window Title Format 

Message 

<app or object name> : <action or situation> 

Progress 

<app or object name> : <action> in Progress 

Action (Command) 

<app name> : <action> 

Object Properties 

<app name> : <object-type> Properties 

Application Options 

<app name> : <type> Options 

 

n/a 

 

 

 

Required 

cq: 

Every dialog box in your application has at least one button that either performs the dialog box action and dismisses it or dismisses the dialog box without taking any action. 

 

6-16: 

This item has been replaced by item cr.

Recommended 

cr: 

If your application uses common dialog box actions, the actions have the following specified functionality and labels: 

Optional 

 

Yes 

Indicates an affirmative response to a question posed in the dialog box. 

Optional 

 

No 

Indicates a negative response to a question posed in the dialog box. 

Optional 

 

OK 

Applies any changes made to components in the dialog box and dismisses the dialog box. 

Optional 

 

<command> 

Applies any changes made to components in the dialog box, performs the action associated with the <command>, and dismisses the dialog box. 

Should be used in lieu of OK, Yes, or No as a button label when it provides more meaning to the user as to the action that will be performed when that button is clicked. 

Optional 

 

Apply 

Applies any changes made to components in the dialog box and does not dismiss it. 

Optional 

 

Retry 

Causes the task in progress to be attempted again. 

Optional 

 

Stop 

Ends the task in progress at the next possible break point. 

Optional 

 

Pause 

Causes the task in progress to pause. 

Optional 

 

Resume 

Causes a task that has paused to resume. 

Optional 

 

Save As Defaults 

Saves the current settings as the default settings that will appear the next time the window is displayed. The settings are not applied to any selected object and the dialog box is not dismissed. 

A Save As Defaults button should be provided if it is expected that a user would want to use different default values for a set of controls within a dialog box than those that you provide as the factory settings. For example, a Save As Defaults button might be provided in a "New <object-type>" window, allowing the user to indicate that whenever a new instance of that object-type is created, the current values should be displayed as the default settings instead of the values given by the application. 

Optional 

 

Reset 

Cancels any changes that have not yet been applied by your application. The controls within the dialog box are reset to their state since the last time the dialog box action was applied. If no changes have been applied within the current invocation of the dialog box, the controls are reset to the state when the dialog box was first displayed. 

Optional 

 

Reset to Factory 

Cancels any changes that have not yet been applied. Components in the dialog box are reset to their default state and value as specified by the vendor that delivered the application (that is, the controls are restored to the original factory settings). 

Optional 

 

Cancel 

Dismisses the dialog box without performing any actions not yet applied. 

Recommended 

 

Help 

Provides help for the dialog box. 

Recommended 

cs: 

Any visible control that is not currently active or whose setting is currently invalid is dimmed. 

Dimmed controls cannot be activated by the user and should appear only when the inactive state is short-term (that is, there is something the user can do within the application or the desktop environment to make the control become active). When the control is persistently inactive (because of the current configuration of the application or system, or a particular set of companion software is not currently installed), the control should be removed rather than dimmed. 

Optional 

ct: 

Keep the size of your dialog boxes to a minimum. Remember that on low-resolution displays, dialogs may take up most of the screen real estate, and may even run off the edge of the screen if not designed correctly. 

Optional 

cu: 

Avoid complexity in your dialog boxes. If your dialog box must support many functions, consider using an expandable dialog box (see "Expandable Windows"), or use more than one dialog in a nested fashion.

Optional 

cv: 

Avoid the use of resize handles in your dialog box. However, you may use resize handles when resizing is useful in allowing users to see more information; for example, when your dialog contains a scrolling list that is likely to be quite long, and users will frequently need to search the list. 

Optional 

cw: 

Every dialog box in your application has exactly one default button that is activated when the Return key is pressed. 

The default button should be associated with the most likely response from the user and should not be potentially destructive or irreversible. Some applications may have dialog boxes that do not reveal a default button until a specific set of fields has been filled out or otherwise manipulated. 

Optional 

cx: 

If a dialog box displayed by your application has controls that are considered to be advanced features, use an expandable dialog box, or use a multiple page dialog box that provides a <category> option menu that allows a user to navigate to each page.  

Controls that relate to advanced features should not be displayed with the set of options initially displayed to the user. The typical user should be presented with only those options that are necessary to use the basic functionality of the application. Users looking to access advanced functionality within the dialog box may use the <Category> option button (see Figure 7-1). If the number of advanced controls is few, or the settings for these controls are highly related to the settings of basic controls displayed in the dialog box (that is, the settings of the advanced controls change when the user changes settings for basic controls), you might choose to provide an expandable dialog box (see the section on Expandable Windows and Dialog Boxes). 

Property Windows

 

n/a 

 

 

 

Required 

cy: 

If your application provides settings that control the behavior of the application, these settings are displayed in an application properties window that is accessible from an Options menu. 

Recommended 

cz: 

If your application manages objects and allows the user to see or modify settings for these objects, these settings are displayed in an object properties window that is accessible from a Properties ... choice in the Edit, <object-type>, or Selected menus, as well as from the pop-up menu associated with the object. 

Recommended 

da: 

If your application provides access to a Properties or Options window, this window includes the following set of buttons in the order listed, with the specified functionality, when supported by your application. 

Required 

 

OK 

Applies any changes made to components in the dialog box and dismisses it. OK may be replaced by a more appropriate label; for example, Add. The alternate label should be a verb phrase. 

Optional 

 

Apply 

Applies any changes made to components in the dialog box and does not dismiss it. 

Required 

 

Reset 

Cancels any changes that have not yet been applied by your application. The controls within the dialog box are reset to their state since the last time the dialog box action was applied. If no changes have been applied within the current invocation of the dialog box, the controls are reset to the state when the dialog box was first displayed. 

Optional 

 

Reset to Factory 

Cancels any changes that have not yet been applied. Components in the dialog box are reset to their default state or value as specified by the vendor that delivered the application (that is, the controls are restored to the original factory settings). 

Required 

 

Cancel 

Dismisses the dialog box without performing any actions not yet applied. 

Required 

 

Help 

Provides help for the dialog box. 

Recommended 

db: 

If your application provides a Properties window that displays settings for a selected object, the Properties window tracks the current selection and modifies the state of any controls to accurately reflect the properties of the currently selected object. 

File Selection Dialog Box

 

n/a 

 

 

Optional 

dc: 

If your application allows the user to open or save files, then it uses the standard Common Desktop Environment file selection dialog box to allow the user to select specific files and directories. 

All user interactions with the file system should be facilitated by providing a point-and-click style of choosing files and directories. The user should never be forced to memorize and type in file paths. The user must be able to explore the contents and structure of the file system using scrolling lists. The expert user, however, should be able to directly enter a complete file path, as well as be able to use relative paths and environment variables such as $HOME.

The labels and contents of the standard file selection dialog box may be modified as appropriate to make clear the particular context in which it is being used within your application. 

Recommended 

dd: 

If your application allows the objects it manages to exist as separate entities within folders or toolboxes within the desktop environment, a Copy To menu option or button is provided that displays a file selection dialog box that allows the user to select the desired folder in which an icon for the object should be placed. 

Recommended 

de: 

The file selection dialog box should not display hidden (dot) directories or files, unless your users depend on using these types of files. If your application does support displaying hidden files, you should supply a check box allowing users to toggle between showing and not showing hidden files, or else allow users to toggle between showing and hiding files at a global level in your application. 

Recommended 

df: 

The file selection dialog box should not show the full path names for files and directories, but should only show the relative names, except for the directory text field  

The global Common Desktop Environment setting should be: 

XmFileSelectionBox.fullPathMode: false

Unless your application overrides this behavior, your file selection dialog box should not show full path names in the list boxes. 

Required 

dg: 

In general, the file selection dialog box should recall the directory location that was previously set by the user. 

For example, if the user brings up Save As and navigates to /users/jay/letters to save the file, the next time the user brings up Save As, the file selection box should be in the directory /users/jay/letters. This information, however, should not be recalled once the user has closed the primary window, but should resort to the default directory.

About Dialog Box

 

n/a 

 

 

Optional 

dh: 

The About dialog box should contain a minimum set of information about the application that is visible in a single text pane. 

That minimum set should be: 

  • Application name

  • Version number

  • Release date

  • Copyright

Required 

di: 

The About dialog box should contain a Close button. Other buttons are optional, such as Help and More. 

Other information contained in the about box might be:

 

n/a 

 

 

Recommended 

dj: 

Information about the operating system or other aspects required to run the application, for example, Common Desktop Environment 1.0. 

Optional 

dk: 

A More Information dialog box for additional information such as development team credits, licensing, client or xhost information. 

Dialog Box Layout

 

n/a 

 

 

Optional 

dl: 

Controls within your dialog box are placed in a left-right, top-down layout based on the order in which the user is expected to fill out or choose options within the dialog box. 


Note -

This assumes that your application is being designed for a left-to-right language environment. Alternative design approaches may be necessary for other locales.


Required 

dm: 

Push buttons that affect the dialog box as a whole, either by modifying its contents or layout, invoking the action of the dialog box, or dismissing the dialog box, are located at the bottom of the dialog box. 

In general, there should only be one row of buttons at the bottom of a dialog box. If your application has dialog boxes that contain several global buttons, it may be necessary to create two or more rows of buttons at the bottom of the dialog box. The last row should contain the standard dialog box buttons (OK, Reset, Cancel, and Help). If a dialog box contains buttons that are not related to the dialog box as a whole, but relate to a specific control within the dialog box, the buttons should be located with the control to which they relate. 

Required 

dn: 

If your application provides an Apply button within a dialog box, it also provides an OK button or command button that performs the dialog box action then dismisses it. 

Optional 

do: 

Your application does not use cascading buttons within dialog boxes unless there is absolutely no other design alternative that can be used without a negative impact on the layout of your dialog box. 

In general, cascading buttons should only be used within menus and menu bars. You should avoid their use in all other locations unless absolutely necessary. 

Recommended 

dp: 

If your application needs to use cascading buttons outside of a menu pane, you should use the DtMenuButton widget.

Designing Drag and Drop

 

n/a 

 

 

Recommended 

dq: 

You should provide a drag-and-drop (DND) method for all objects represented as icons. Provide a DND method for all elements that the user can directly manipulate. 

Recommended 

dr: 

Any basic function that your application supports through drag and drop is also supported through menus, buttons, or dialog boxes. 

Drag and drop is considered an accelerator to functionality that is accessible through other user interface controls supported within your application. There should be no basic operation that is supported solely through drag and drop. 

Recommended 

ds: 

Use an icon graphic in a dialog box or window to indicate that objects within the dialog box or window can be dragged. Use the same icon graphic used to represent the draggable object in File Manager. Place the icon adjacent to any display of the contents of the object, if such display exists. If there is no such display, place the icon in the upper right corner of the dialog box or window, unless a more suitable placement is determined. The icon should be 32x32 in size and have a label under it. The label should indicate what kind of object the icon graphic represents. The icon graphic should also be used as the source indicator in the drag icon. 

Required 

dt: 

During a drag operation, your application changes the current pointer to a drag icon. 

A drag icon provides visual feedback that a drag operation is in progress. 

Recommended 

du: 

During a drag operation, your application changes the current drag cursor to include a source indicator. 

A source indicator gives a visual representation of the elements being dragged. 

Recommended 

dv: 

During a drag operation, your application changes the current drag cursor to indicate invalid drop zones. It uses the standard Common Desktop Environment cannot pointer. 

The user must receive feedback as to where an object can and cannot be dropped. Minimally, feedback should be provided as to what are invalid drop zones. Preferably, feedback for valid drop zones is enhanced by use of animation, recessing of the target drop zone, and other such drag-over effects. 

Recommended 

dw: 

During a drag operation, your application changes the drop zone feedback to indicate a valid drop zone. 

Preferably, feedback for valid drop zones is enhanced by use of animation, recessing of the target drop zone, and other such drag-over effects. 

Required 

dx: 

Pressing Cancel ends a drag-and-drop operation by canceling the drag in progress. 

Cancel provides a consistent way for the user to cancel a drag operation. 

Required 

dy: 

Releasing BTransfer (or BSelect) when not over a drop target ends a drag-and-drop operation. 

Releasing BTransfer (or BSelect) offers a consistent means of ending a drag operation. 

Optional 

dz: 

Any cursor change or drag-over effect your application uses occurs within .2 seconds of the mouse pointer reaching the target area and does not interfere, in any noticeable way, with the interactive performance of the drag operation. 

Recommended 

ea: 

In a collection that supports copy, move, or link operations that can be performed by dragging, the feedback presented to the user during the drag operation indicates whether a single object or multiple objects are being manipulated. 

Feedback provided during the drag operation should ensure that the user feels confident that the desired set of objects is being dragged. The drag icon used for multi-object drag operations should integrate the feedback used to indicate whether the operation is a move, copy, or link. 

Required 

eb: 

After a successful transfer, the data is placed in the drop zone, and any transfer icon used by your application is removed. 

A transfer icon can be used to represent the type of data being transferred during a drop operation. A successful drop operation results in the transfer of data. 

Required 

ec: 

If your application removes data upon the completion of a drag and drop, it does so only if the drag-and-drop transfer has completed successfully. 

If a drag-and-drop operation has been canceled or failed, the data or object that was the source of the drag must not be removed. 

Required 

ed: 

After a failed transfer, the data remains at the drag source and is not placed in the drop zone. Any transfer icon used by your application is removed. 

A failed drop operation does not result in the transfer of data. 

Recommended 

ee: 

If the user drops an object at an inappropriate drop zone within your application's window, your application participates in the display of a snap back effect and also posts an error dialog box indicating the reason the drop was disallowed. 

The error message should state the context (for example, running action A on object B), what happened (for example, could not connect to system X), and how to correct the problem (for example, press the Help button to obtain information on diagnosing remote execution problems). 

Recommended 

ef: 

Applications that accept only single items should reject all multiple-item drops. 

There is no consistent method to determine which of the selected items the user really wants to drop. 

Recommended 

eg: 

If your application supports drag and drop as a means of loading a file into the application, the application responds to this operation in a manner similar to when the file is loaded through more conventional means such as choosing Open from the File menu. 

As an accelerator, drag-and-drop loading of files should provide the same kind of feedback and behavior as choosing Open from the File menu. For example, if changes to a currently loaded file have not yet been saved, your application should display a message dialog box asking whether the changes should first be saved before loading the new file. 

Required 

6-17: 

If your application provides any drag-and-drop help dialog boxes, they contain a Cancel button for canceling the drag-and-drop operation in progress. 

The Cancel button in the help dialog box provides a convenient way for the user to cancel a drag-and-drop operation.