HTML <menu> Tag
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
Attributes
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
Tablets & Mobile
Last updated by CSSPortal on: 26th December 2025
