【注意】menu要素は、HTML5.2の仕様では削除されましたが、HTML Living Standardの仕様には残されています。
<menu>タグは、操作メニューを作成する際に使用します。サブメニューをメインメニューで入れ子にして、階層メニューにすることもできます。
<menu>は HTML 4では非推奨でしたが、HTML5ではコマンドのリストを示すという役割があり、
<command>タグとの組み合わせによるユーザーメニューの作成など、使用範囲も広がるようです。
type属性は、宣言するメニューの種類を指定します。指定できるメニューの種類は、context(コンテキストメニュー)、toolbar(ツールバー)です。
また、type属性を省略した場合にはlist(リスト状態)となり、<menu>要素がコマンドの単なるリストに過ぎないことを示します。
label属性は、メニューにラベル(項目名)を付けます。
このラベルは、例えば、入れ子にされた階層メニューを、ブラウザがユーザーインターフェースとして表示する場合などに、サブメニューのラベルとして使用されます。
menu要素は、HTML5から新たに追加された要素です。
以下のサンプルでは、<li>タグを使用して操作メニューの項目を示していますが、より詳細にコマンドの種類などを指定する場合には、<command>タグを使用します。
<menu type=”toolbar”>
<li>
<menu label=”ファイル”>
<button type=”button” onclick=”fnew()”>新規作成</button>
<button type=”button” onclick=”fopen()”>開く</button>
<button type=”button” onclick=”fsave()”>上書き保存</button>
<button type=”button” onclick=”fsaveas()”>名前を付けて保存</button>
</menu>
</li>
<li>
<menu label=”編集”>
<button type=”button” onclick=”ecopy()”>コピー</button>
<button type=”button” onclick=”ecut()”>切り取り</button>
<button type=”button” onclick=”epaste()”>貼り付け</button>
</menu>
</li>
<li>
<menu label=”ヘルプ”>
<li><a href=”help “>ヘルプ</a></li>
<li><a href=”about “>このウェブサイトについて</a></li>
</menu>
</li>
</menu>
まだ、<menu>をHTML5の仕様通りに表示するブラウザは無いようですが、サポートされたブラウザでは上記のサンプルは、例えば以下のように表示されるかもしれません。