menu要素は、操作メニューを作成する際に使用します。サブメニューをメインメニューで入れ子にして、階層メニューにすることもできます。
menu要素は HTML4では非推奨でしたが、HTML5ではコマンドのリストを示すという役割があり、command要素との組み合わせによるユーザーメニューの作成など、使用範囲も広がるようです。
type属性は、宣言するメニューの種類を指定します。指定できるメニューの種類は、context(コンテキストメニュー)、toolbar(ツールバー)です。また、type属性を省略した場合には list(リスト状態)となり、menu要素がコマンドの単なるリストに過ぎないことを示します。
label属性は、メニューにラベル(項目名)を付けます。このラベルは、例えば、入れ子にされた階層メニューを、ブラウザがユーザーインターフェースとして表示する場合などに、サブメニューのラベルとして使用されます。
menu要素は、HTML5から新たに追加された要素です。
以下のサンプルでは、li要素を使用して操作メニューの項目を示していますが、より詳細にコマンドの種類などを指定する場合には、command要素を使用します。
使用例
HTML source
<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.html">ヘルプ</a></li>
<li><a href="about.html">このウェブサイトについて</a></li>
</menu>
</li>
</menu>