HTML2.0 や HTML4.01 では、<li> と組み合わせてリストメニューを生成するものと定義されていました。HTML4.01 では将来廃止要諦の非推奨(deprecated)な要素として定義されていました。
HTML Living Standard でも、<li> と組み合わせてコンテキストメニューを実現するものとして定義されています。
HTML5 では一度仕様から削除されましたが、HTML5.1 では <menu type="context"> の形式で使用し、<menuitem> などと組み合わせて、ポップアップメニュー(コンテキストメニュー)を定義するものとして再定義されています。<menu type="toolbar"> でツールバーの実装も検討されていましたが、今現在ではまだ仕様に取り込まれていません。
HTML 5.2 では再度廃止されました。
HTML 4.01 では下記の様に使用して、メニューリストを表示するものとして定義されていました。
<menu> <li>ファイルA</li> <li>ファイルB</li> </menu>
HTML Living Standard では、下記の様に用いて、コマンドリストからなるツールバーを定義します。
<menu> <li><button onclick="alert('Copy')">Copy</button></li> <li><button onclick="alert('Cut')">Cur</button></li> <li><button onclick="alert('Paste')">Paste</button></li> </menu>
HTML 5.1 では下記の様に <menuitem> や contextmenu 属性と組み合わせて、マウスを右クリックした際に表示されるコンテキストメニューを定義します。ただし、この機能は HTML 5.2 で廃止されました。Firefox のみでサポートされていますが、HTML 5.1 の仕様では、</menuitem> の閉じタグは不要とされていますが、Firefox の実装では必須となっているようです。<hr> はセパレータを表示します。
<div contextmenu="menu1">Menu</div> <menu type="context" id="menu1"> <menuitem type="command" label="Copy" onclick="alert('Copy')"></menuitem> <menuitem type="command" label="Cut" onclick="alert('Cut')"></menuitem> <hr> <menuitem type="command" label="Paste" onclick="alert('Paste')"></menuitem> </menu>