<menu>: MENU 要素
最終更新:2026-10-13
<menu>MENU 要素
コマンドやメニュー項目のリストを表します。ツールバーやコンテキストメニューに使われ、<li> や <button> を含められます。
| カテゴリ | フォーム |
|---|---|
| コンテンツモデル | フローコンテンツ |
| 許可される親要素 | フローコンテンツを受け入れる要素 |
| 閉じタグ | 必要 </menu> タグ |
| ステータス | 標準 |
📝 構文
<menu>
<li><button>コピー</button></li>
<li><button>貼り付け</button></li>
</menu>
⚙️ 属性
この要素はグローバル属性に加え、以下の属性をサポートします:
| 属性 | 値 | 説明 |
|---|---|---|
type | Menu type: toolbar (default) or context. | |
label | A human-readable label, often for context menus. |
▶ サンプル
下のコードを編集して、playground でリアルタイム結果を確認:
🌐 ブラウザサポート
| ブラウザ | |||||
|---|---|---|---|---|---|
| <menu> | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| すべての主要ブラウザでサポート | |||||
ヒント: menu は <ul> に似ていますがコマンドリストを意味します。レンダリング対応はブラウザーによって異なるため、単純なリストには <ul> を使いましょう。
❓ よくある質問
Qmenu と nav の違いは何ですか?
A意味が近く、歴史も絡み合っています。HTML5 は最終的に
<menu> を「ツールバー/コマンドメニュー」と定義し、<ul> と意味的に同等にしました。サイトのナビゲーションは <nav>、アプリ内のツールバーやショートカットコマンドのリストには <menu> を使えます。実務では menu の使用率はかなり低いです。Qmenu で右クリックメニューは作れますか?
Aかつては作れました。旧仕様には
contextmenu 属性と menu/menuitem の方式がありましたが、完全に廃止され、主要ブラウザはどこも実装していません。独自の右クリックメニューは現在、JS とカスタム DOM で実装するしかありません。Qmenu の中の項目はどう書きますか?
A
<ul> と同じく、子項目は <li> です。コマンド系のメニューでは各 li の中に <button> を置くのが最もおすすめです(元々フォーカスとキーボード操作に対応)。メニューのコンテナには role と aria-label を加えると、アクセシビリティがさらに良くなります。🏷️ 関連タグ
💡 関連ケース
今後さらにケーススタディを追加予定です。