Content area shortcut menus

Maintained by Matthew Thomas
Exhaustive sanity checking done by fantasai
CSS help and testcases supplied by Ian Hickson
Status: Final specification
Last modified: 2002-03-04

Contents

Objectives

  1. To make Mozilla’s content area shortcut menus suck less. Content areas here are the viewport of a Navigator window, and the message, thread, and folder panes of a mail/news window. Shortcut menus for other areas — such as the Bookmarks window, or the Address Book — do not need to be so consistent with each other, and are covered in the specifications for the relevant windows.
  2. To provide quick and consistent access to extremely common functions for each context, and (where applicable) mnemonic access to the function which would be carried out by clicking the primary mouse button on the item.
  3. After that, to provide access to contextual functions which are impractical to provide in a non-contextual fashion.
  4. To avoid, on pain of death, the use of submenus or menus longer than 13 items.
  5. To maximize consistency of position of menu items and access keys between contexts.
  6. To make users as productive as possible, by providing shortcut menus for Navigator and Messenger which are more consistent with each other than in any other combination of Web browser and e-mail program on the planet.

The menus

Navigator
Text field Page content area Frame content area Image Text in internal link Image in internal link Text in mailto: link Image in mailto: link Text in news: link Image in news: link Text in miscellanous external link Image in miscellaneous external link
  • Undo
  • Cut
  • Copy
  • Paste
  • Delete
  • Select All
  • Left to Right
  • Right to Left
  • Insert Character…
  • Back
  • Forward
  • Copy
  • Copy Page Address
  • Save As…
  • File Bookmark…
  • Reload
  • View Background Image
  • Page Source
  • Page Properties
  • Back
  • Forward
  • Copy
  • Copy Frame Address
  • Save Frame As…
  • File Bookmark for Frame…
  • Reload Frame
  • View Background Image
  • View Only this Frame
  • Open Frame in New {Window | Tab}
  • Frame Source
  • Frame Properties
  • Back
  • Forward
  • Copy {Image | Selection }
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • {Open Link | Submit Form}
  • {Open | Submit} in New {Window | Tab}
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • {Open Link | Submit Form}
  • {Open | Submit} in New {Window | Tab}
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Send E-mail…
  • Add to Address Book…
  • Copy
  • Copy Link Address
  • Copy E-mail Address
  • File Bookmark for Link…
  • Link Properties
  • Send E-mail…
  • Add to Address Book…
  • Copy {Image | Selection}
  • Copy Link Address
  • Copy E-mail Address
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Open Discussion
  • Subscribe to Group
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • Open Discussion
  • Subscribe to Group
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Open Link
  • Open in New {Window | Tab}
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • Open Link
  • Open in New {Window | Tab}
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
Test Test
Test Test Test
Messenger
Folder/Group Thread pane Message content area Image Text in internal link Image in internal link Text in mailto: link Image in mailto: link Text in news: link Image in news: link Text in external link Image in external link
  • Open {Folder | Group}
  • Open in New Window
  • New Folder…
  • Rename Folder…
  • Compact Folder
  • {folder-specific action}*
  • {Folder | Group} Properties

folder-specific action is one of the following:

  • Delete
  • Unsubscribe
  • Send Unsent Messages
  • Empty Trash
  • Open Message
  • Open in New Window
  • Reply…
  • Reply to All…
  • Forward…
  • {Delete | Cancel}
  • Filter Messages Like This…
  • Message Source
  • Message Properties
  • Next Unread Message
  • Previous Message
  • Reply…
  • Reply to All…
  • Forward…
  • {Delete | Cancel}
  • Open Message in New Window
  • View Background Image
  • Copy Selection
  • Filter Messages Like This…
  • Message Source
  • Message Properties
  • Next Unread Message
  • Previous Message
  • Copy {Image | Selection }
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • {Open Link | Submit Form}
  • {Open | Submit} in New Window
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • {Open Link | Submit Form}
  • {Open | Submit} in New Window
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Send E-mail…
  • Add to Address Book…
  • Copy
  • Copy Link Address
  • Copy E-mail Address
  • File Bookmark for Link…
  • Link Properties
  • Send E-mail…
  • Add to Address Book…
  • Copy {Image | Selection}
  • Copy Link Address
  • Copy E-mail Address
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Open Discussion
  • Subscribe to Group
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • Open Discussion
  • Subscribe to Group
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
  • Open Link
  • Open in New Window
  • Copy
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • Open Link
  • Open in New Window
  • Copy {Image | Selection}
  • Copy Link Address
  • Save Link As…
  • File Bookmark for Link…
  • Link Properties
  • View Only this Image
  • Copy Image Address
  • Save Image (blarg_01.png) As…
  • {Block | Unblock} Image…
  • {Load | Reload} Image
  • Image Properties {and Description}
Show Menu Bar item

When the menu bar has been hidden by a page author for a particular window, the following should be added to the bottom of all shortcut menus in the content area of that window:

  • Show Menu Bar

Q & A

What are internal and external links?

An internal link is one where the linked resource can be opened in the same window as the link — for example, a link from a Web page to a gopher: URI, or a link from an e-mail message to another message ID. An external link is one where the linked resource must open in a different window — for example, a link from a Web page to a telnet: URI, or a link from an e-mail message to a Web page.

What’s the deal with keeping the menus short?

Firstly, unlike a main menu, which is practically guaranteed to come down from near the top of the screen, a shortcut menu can be opened from anywhere. The longer the menu is, the more likely it is to appear in a direction other than in its expected place to the southeast of the cursor. When that happens, the user’s muscle memory is broken and she is slower at finding the item she wants. This makes the menu less useful overall, even when it does appear to the southeast — because the user had to pause to make sure it would.

And secondly, shortcut menus are less visible and therefore less familiar than main menus. So they need to be shorter to be memorable.

A good length for a shortcut menu is about six items; the longest ones in this spec are thirteen items, which is really far too long, but there isn’t any obvious way to make them shorter without dropping features.

Why not use submenus?

That would make the problem much worse, not better. Even if the bugs in Mozilla's shortcut menu placement were fixed, there would be four different places a shortcut menu could open relative to the initial position of the cursor; if a submenu was used, there would be sixteen different places the submenu could open relative to the initial position of the cursor.

Why aren’t items arranged by verb, and then by noun?

Firstly, because that would make it much more difficult to scan the menu to find the item you wanted — you’d have to read more than one word in most of the items, to distinguish it from the items before and after. And secondly, because it would make the position of items completely inconsistent between contexts.

What’s the Left to Right, Right to Left and Insert Character stuff?

It’s a compulsory part of supporting bi-di and Unicode text input. This is nothing special; similar items are included in the shortcut menu for every native text field in Windows 2000 and later.

How come you can’t save or bookmark the whole page from the frame shortcut menu?

Those shortcut menu items are for saving or bookmarking the current frame, not the page — they just happen to save or bookmark the whole page if you’re on a page which only has one frame. If you want to save or bookmark the whole page consistently, use the File or Bookmarks menu.

Where’s Send Page?

In the File menu. It’s not contextual, and it's not used nearly often enough to deserve placement in the shortcut menu on frequency grounds either.

Where’s Edit Page?

See the answer to the previous question.

Where’s Encoding?

In the View menu.

But what about popup windows that don’t have a menu bar?

If a page doesn’t have a menu bar, changing the encoding is only one of dozens of things which you might want or need to do to it. But that doesn’t mean the shortcut menu for a page or frame should be made unusably long by duplicating all those items. That’s what the Show Menu Bar item is for.

Where’s Set as Wallpaper?

In the Tools menu. This item should open a dialog (which defaults to the selected image, if there is one), so you can:

Where’s Search for {selected text}?

In the Tools menu.

Why so many unavailable items?

Because when you hover over an item for a fraction of a second before opening its context menu, it’s often not obvious whether the image you’re hovering over is a link or not, or whether the link you’re hovering over is a mailto: one or not. Including inactive items from the other context prevents you from getting hurt by assuming the wrong context and choosing the wrong item as a result. It also allows for greater consistency of position of items between contexts.

Future work


This document is valid XHTML 1.0.