A contextual menu gives people access to frequently used commands related to the current context. A contextual menu is revealed by Control-clicking a view or selected element in an app. For example, Control-clicking selected text in TextEdit displays a contextual menu containing text-specific menu items for initiating actions like changing the font and checking spelling.
Always follow menu design best practices. In general, all menus and menu items should be consistently arranged and titled. See Menu Anatomy.
Include only the most commonly used commands that are appropriate in the current context. For example, in the contextual menu for selected text, it makes sense to include editing commands but it doesn’t make sense to include a Save or Print command.
Limit the hierarchical depth of contextual menus to one or two levels. Submenus in contextual menus can be difficult to navigate without accidentally dismissing the contextual menu. If you must include submenus, restrict them to a single level.
Don’t set a default item in a contextual menu. If the user opens the menu and closes it without selecting anything, no action should occur.
Always make contextual menu items available in the menu bar too. A contextual menu is hidden by default and a user might not know it exists, so it should never be the only way to access a command. In particular, avoid using a contextual menu as the only way to access an advanced feature. See Menu Bar Menus.
Show keyboard shortcuts in menu bar menus, not contextual menus. Contextual menus are already shortcuts to task-specific commands and it's redundant to display keyboard shortcuts too.
Use an Action pop-up button to elevate contextual menu functionality. You can use an Action pop-up button to provide app-wide contextual menu functionality in a toolbar. The toolbar of a Finder window, for example, includes an Action pop-up button that gives people access to the same commands that are displayed in a contextual menu when control-clicking the selected item. See Action Pop-Up Buttons.
For developer guidance, see Application Menu and Pop-up List Programming Topics.