Menus present the whole range of an application's commands to the user, and often a subset of its preferences. When designing a new application, place common menu items in the same locations as they appear in other applications, as this makes it much easier for the user to learn.
In most applications, only primary windows should have a menubar. Utility windows and dialogs should be simple enough that their functions can be provided by controls such as buttons placed within the window.
Occasionally, however, a utility window or dialog is so complex that there would be too many such controls. In this case, you may use a menubar provided that:
the menus follow the same standard layout as described in the section called “Standard Menus”
the window does not include a dialog button area or any buttons that dismiss it, such as
, or . Place these commands on the menu or equivalent instead.Guidelines
Label menu items with verbs for commands and adjectives for settings, according to the rules in the section called “Capitalization”.
Make a menu item insensitive when its command is unavailable. For example, the
-> item, which issues the command to copy selected data to the clipboard, should not be active when there is no data selected.Provide an access key for every menu item. You may use the same access key on different menus in your application, but avoid duplicating access keys on the same menu. Note that unlike other controls, once a menu is displayed, its access keys may be used by just typing the letter; it is not necessary to press the Alt key at the same time.
Design your menu structure to avoid more than one level of submenus. Deep menu hierarchies are harder to memorize and physically difficult to navigate.
Do not have menus with less than three items on them (except the standard
menu, which has only two items by default). If you have a submenu with fewer than three items on it, move them into their parent menu. If you have a top-level menu with fewer than three items on it, find another suitable menu to add them to, or find suitable items from other menus to add to it.The menubar provides a number of drop-down menus. Only the menu titles are displayed, until the user clicks on one of them.
The menubar is normally visible at all times and is always accessible from the keyboard, so make all the commands available in your application available on the menubar.
![]() | Full screen mode |
---|---|
When your application is running in full screen mode, hide the menubar by default. However, make its menus and items accessible from the keyboard as usual. Pressing ESC should cause the application to leave full screen mode. A button should be placed in the upper right hand corner of the window. The button should disappear after the mouse is unused for 5 seconds, and should appear again when the moused is moved. Alternately, in applications where the mouse is used frequently in full screen mode, all but a two pixel row of the button may be slid off the top of the screen. The button should slide back on the screen when the mouse moves near it. |
Guidelines
Provide a menubar in each primary application window, containing at least a
and a menu.Organize menu titles in the standard order— see the section called “Standard Menus”
Do not disable menu titles. Allow the user to explore the menu, even though there might be no available items on it at that time.
Menu titles on a menubar are single words with their first letter capitalized. Do not use spaces in menu titles, as this makes them easily-mistaken for two separate menu titles. Do not use compound words (such as
) or hyphens (such as ) to circumvent this guideline.Do not provide a mechanism for hiding the menubar, as this may be activated accidentally. Some users will not be able to figure out how to get the menu bar back in this case.