HTML menu Tag in 2025 – Complete Guide with Examples & Best Practices
What is the menu Tag?
The <menu>
tag in HTML is used to define a list of commands or menu items. It was initially introduced for context menus or toolbar menus, but its usage and support are limited.
⚠️ Important:
<menu>
was redefined in HTML5 to represent interactive command lists, but browser support is very limited and inconsistent. For navigation menus, use<nav>
and<ul>
.
Step-by-Step Usage of menu
Step 1: Basic Syntax
<menu>
<li>Copy</li>
<li>Paste</li>
<li>Delete</li>
</menu>
This creates a basic unordered list — similar to <ul>
.
Step 2: Use with <menuitem>
(Deprecated)
HTML5 briefly allowed <menuitem>
for defining interactive commands, but this tag is now deprecated and not supported in major browsers like Chrome.
<!-- Deprecated, no longer recommended -->
<menu type="context">
<menuitem label="Refresh" onclick="location.reload();"></menuitem>
<menuitem label="Help" onclick="alert('Help!');"></menuitem>
</menu>
When to Use menu
Use Case | Recommended? | Alternative |
---|---|---|
Navigation menu | ❌ | <nav> + <ul> |
Command list (custom UI) | ❌ (unsupported) | JavaScript dropdown |
Context menu (right-click) | ❌ | JavaScript / ARIA |
Correct Modern Alternative
<nav>
<ul>
<li><a href="/home">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
menu tag vs ul
Feature | <menu> | <ul> |
---|---|---|
Browser Support | 🚫 Poor | ✅ Excellent |
Semantic Use | ⚠️ Limited | ✅ Clear |
Interactive Commands | ❌ Deprecated | ❌ Not intended |
Recommended in 2025 | ❌ No | ✅ Yes |
Best Practices
Use
<ul>
or<ol>
for listing items.Use
<nav>
for semantic navigation blocks.Avoid
<menu>
and<menuitem>
for new projects.Use ARIA roles and JavaScript for accessible menus.
Only use
<menu>
in legacy code if necessary.