Common Desktop Environment: Style Guide and Certification Checklist

Menu Design







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.  



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. 



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. 



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. 



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. 



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. 



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. 



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. 



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. 



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



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 disappear when in the unselected state. 



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. 



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.