HTML 5 <menu> Tag

This tag has now been removed from the HTML5 specification (which is still in draft status at time of writing). Rather than remove this article altogether, I have decided to keep it here for reference.

Photo of resort on Boracay Island, Philippines

Right click on the image to invoke the context menu. Note: Only supported in Firefox at time of writing.

The HTML <menu> tag is used for specifying a list of commands. It can be used to create menus such as popup menus and context menus.

The <menu> tag is not included in the W3C HTML5 specification. However, it is included in the HTML 5.1 draft specification, as well as the WHATWG HTML Living Specification.

Also note that the <menu> was included in earlier versions of HTML and deprecated in HTML 4. However, it has now returned in the HTML 5.1 draft and the HTML Living Standard.

Also see <menuitem> tag.


HTML tags can contain one or more attributes. Attributes are added to a tag to provide the browser with more information about how the tag should appear or behave. Attributes consist of a name and a value separated by an equals (=) sign, with the value surrounded by double quotes. Here's an example, style="color:black;".

There are 3 kinds of attributes that you can add to your HTML tags: Element-specific, global, and event handler content attributes.

The attributes that you can add to this tag are listed below.

Element-Specific Attributes

The following table shows the attributes that are specific to this tag/element.

typeSpecifies the kind of menu being declared.

Possible values:

  • popup
  • toolbar
  • list (default)
labelSpecifies the label of the menu. It is used by the browser/user agent to to display nested menus.

Global Attributes

The following attributes are standard across all HTML 5 tags (although the tabindex attribute does not apply to dialog elements).

For a full explanation of these attributes, see HTML 5 global attributes.

Event Handler Content Attributes

Event handler content attributes enable you to invoke a script from within your HTML. The script is invoked when a certain "event" occurs. Each event handler content attribute deals with a different event.

For a full list of event handlers, see HTML 5 event handler content attributes.