CSS Portal

HTML <menu> Tag

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!

In HTML4, the <menu> element has become obsolete; it is recommended that you use <ul> instead. In HTML5, the <menu> element is again included, but in a different quality. Now it acts as a container for the <command> element and the creation of the menu.

Description

The <menu> element in HTML represents a list of commands or actions that a user can perform. It is conceptually similar to menus in desktop applications, providing a container for a set of interactive items. Each item inside a <menu> is typically a command or option, often represented using the <li> element or, in some cases, <menuitem> (though <menuitem> is not widely supported and is considered obsolete in practice).

Historically, the <menu> element was introduced to provide semantic structure for context menus, toolbars, and lists of actions, distinguishing them from ordinary lists. It allows developers to group related commands in a way that is meaningful to both users and assistive technologies, which can improve accessibility when used appropriately.

By default, a <menu> may be rendered similarly to an unordered list, but it is intended for actionable items rather than mere navigation links. This makes it suitable for toolbars, context menus, or a set of options like “Save,” “Print,” or “Delete.” Modern web developers often use <menu> in combination with JavaScript to create dynamic interactive menus that respond to user input, such as right-click context menus or command palettes.

While the <menu> tag has semantic value, it is not as commonly used as <ul> or <nav> due to limited styling support and inconsistent rendering across browsers. Nonetheless, it remains part of the HTML specification as a semantic way to represent a collection of commands.

Properties

Permitted Parents
Any element that accepts flow content
Content
Flow content. If the element's children include at least one <li> element: Palpable content.
Start/End Tags
Start tag: required, End tag: required

Example

<menu>
<li>CSS</li>
<li>PHP</li>
<li>ASP</li>
</menu>

Attributes

label
Specifies the label of the menu. It is used by the browser/user agent to display nested menus.
type
Specifies the kind of menu being declared.

Possible Values:
  • popup
  • toolbar
  • list

Global Attributes

The <menu> tag also supports the Global Attributes in HTML5

Event Attributes

The <menu> tag also supports the Event Attributes in HTML5

Browser Support

The following information will show you the current browser support for the HTML <menu> tag. Hover over a browser icon to see the version that first introduced support for this HTML tag.

This tag is supported by all modern browsers.
Desktop
Chrome
Edge
Firefox
Opera
Safari
Tablets & Mobile
Chrome Android
Firefox Android
Opera Android
Safari iOS
Samsung Internet
Android WebView
-

Last updated by CSSPortal on: 26th December 2025

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!