Тег <menu>
Описание
Тег <menu> создает семантический контейнер для списка команд/пунктов меню. В HTML5 был переопределен для создания как контекстных меню, так и панелей инструментов.
<menu type="context" id="file-menu">
<menuitem label="Открыть" onclick="openFile()"></menuitem>
<menuitem label="Сохранить" onclick="saveFile()"></menuitem>
<hr>
<menuitem label="Выход" onclick="closeApp()"></menuitem>
</menu>
<div contextmenu="file-menu">
Правый клик для меню
</div>
<menu type="toolbar">
<li><button onclick="cut()">Вырезать</button></li>
<li><button onclick="copy()">Копировать</button></li>
<li><button onclick="paste()">Вставить</button></li>
</menu>
<nav class="toolbar" role="toolbar">
<ul>
<li><button aria-label="Вырезать"><svg>...</svg></button></li>
<li><button aria-label="Копировать"><svg>...</svg></button></li>
</ul>
</nav>
Особенности:
- Поддержка браузерами ограничена (особенно
<menuitem>) - Для веб-приложений лучше использовать кастомные решения
- Семантически заменяет
<ul>для списков команд - Может содержать
<li>,<menuitem>,<hr>
Современный пример с ARIA:
<div class="dropdown">
<button aria-expanded="false" aria-controls="dropdown-menu">
Меню
</button>
<ul id="dropdown-menu" role="menu" hidden>
<li role="menuitem">Пункт 1</li>
<li role="menuitem">Пункт 2</li>
</ul>
</div>
<style>
[role="menu"] {
/* Стили меню */
}
</style>
Тег <menu> имеет ограниченную поддержку, и для создания меню чаще используют комбинацию <nav>, <ul> и ARIA-ролей.
Атрибуты
| label | Метка для меню |
| type | Тип меню (toolbar|context) |
| class | CSS-классы для стилизации элемента |
| data-* | Пользовательские данные элемента |
| dir | Направление текста (ltr|rtl) |
| hidden | Скрывает элемент от отображения |
| id | Уникальный идентификатор элемента |
| lang | Язык содержимого элемента |
| style | Инлайновые CSS-стили элемента |
| title | Всплывающая подсказка для элемента |
| translate | Определяет возможность перевода содержимого |
| compact | Компактный вид меню (устарел) |
Поддержка браузерами
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| 3.0 | 1.0 | 3.5 | 1.0 | 1.0 |




