Types of Menu

Drop-down Menus

Figure 4.2. A typical drop-down menu

Screenshot of a typical drop-down menu

A drop-down menu appears when the user clicks on its title in a menubar, or focuses the title and presses Return.

CFB: I've just reworded everything to avoid the use of "post" Guidelines

CB-Ed/Fig: Define "post," as no-brainer-ish as it may seem, and also add a figure to show what it means. A simple menu being shown at the user clicking on a menu title on a menubar, or "posted," makes sense.
  • Only place items on a menu that relate to that menu's title.

  • Organize menu items in the standard order--; see the section called “Standard Menus”. For application-specific items where there is no standard order, arrange in numerical or other logical order (for example, 50%, 100%, 200%), task order (for example, Compile followed by Debug) or by expected frequency of use.

  • Limit top-level menus to a maximum of about 15 items. If you have any more items than this, consider moving a functionally-related subset of the items into a submenu or a new top-level menu.

  • Do not add or remove individual menu items while the application is running, make them insensitive instead. Entire menus may be added or removed from the menubar at runtime, however, for example in component-based applications.

  • Immediately update menu items that are edited directly or indirectly by the user, such as those on the Open Recent submenu and the Bookmarks menu.

CB-Ed: As in JLFDG AT p. 33, perhaps provide a table of common access keys, or "mnemonics."

CFB: the keyboard navigation chapter already does so

Submenus

Figure 4.3. A drop-down menu with a submenu

Screenshot of a drop-down menu with a submenu

A submenu appears when the user clicks its title, which is indicated by a small arrow symbol beside its label. You can save space on long menus by grouping related commands onto a single submenu.

Guidelines

  • Use submenus sparingly, as they are physically difficult to navigate and make it harder to find and reach the items they contain.

  • Do not create submenus with fewer than three items, unless the items are added dynamically (for example the File->New Tab submenu in gnome-terminal).

  • Do not nest submenus within submenus. More than two levels of hierarchy are difficult to memorize and navigate.

CB-Ed/Fig: In JLFDG AT, p. 41, the Most Recently Used (MRU) list is recommended to contain no more than 10 items. Add a figure here, with callouts to point out this rule, among others, if any are developed.

Popup Menus

Figure 4.4. A popup menu for a mail folder

Screenshot of a popup menu for a mail folder, listing the actions that can be performed on that folder

Popup menus provide shortcuts to those menu items that are applicable only to the currently selected object. As such, they are sometimes known as "context menus" or "shortcut menus". A popup menu is shown when the user right-clicks on an object, or selects the object and presses Shift-F10.

Popup menus are used primarily by intermediate and advanced users. Even some users who have used graphical desktops for many years do not know about popup menus until somebody shows them.

Guidelines

Provide an access key for each item. However, to enhance their spatial efficiency and readability, do not show keyboard shortcuts in popup menus.
  • Provide a popup menu for every object, selectable part, and text input target such as entry fields.

  • Provide the same popup menu for all objects of the same type. If the properties of the selected instance make any of an object's popup menu items temporarily inappropriate, make those items insensitive rather than hiding them.

  • Provide an access key for each item. Do not show keyboard shortcuts in popup menus however; doing so decreases their readability and spatial efficiency.

  • Since the user may not be aware of their presence, do not provide functions that are only accessible from popup menus unless you are confident that your target users will know how to use popup menus.

    But see http://bugzilla.mozilla.org/show_bug.cgi?id=34357

  • Order items on a popup menu as follows:

    • the double-click action for object, when it exists

    • other commands and settings in expected frequency-of-use order

    • transfer commands such as Cut, Copy, and Paste

    • Input Methods, where applicable. Input Methods is provided by GTK+ for supporting alternatives to the keyboard for input (such as used for Japanese, Chinese, and some accessibility technologies).

  • Popup menus need to be as simple as possible to maximize their efficiency. Do not place more than about ten items on a popup menu, and do avoid submenus.

CB-Ed: In the previous note, define the Input Methods menu and why it is an exception, for scalability reasons (other items may fall into the same category). It also sounds like a pretty low-level command; should this be exposed to the user?

SN-Ed: No, it should not be exposed to the user. I'm not really sure what possessed the GTK guys to put this in every right click menu for text boxes. I suppose in this case having it be a submenu is good (if they insist on it existing) because it makes it maximally invisible

GJM: To make this worse, they've added "Insert Unicode control character".