--- title: slug: Web/HTML/Element/menu tags: - Element - HTML - Reference - Web translation_of: Web/HTML/Element/menu ---
{{HTMLRef}}{{SeeCompatTable}}

L'élément HTML <menu> représente un groupe de commandes que l'utilisateur peut utiliser ou activer. Il peut être utilisé afin de créer des menus (affichés en haut d'un écran par exemple) et des menus contextuels (qui apparaissent au clic-droit ou après avoir cliqué sur un bouton).

Attributs

Comme pour tous les autres éléments, on peut utiliser les attributs universels sur <menu>.

{{htmlattrdef("label")}} {{Deprecated_inline}}
Le nom du menu qui est affiché pour l'utilisateur. Lorsque cet attribut est utilisé dans un menu imbriqué, c'est le nom affiché pour le sous-menu. Cet attribut doit uniquement être utilisé lorsque l'élément parent est un élément {{HTMLElement("menu")}}.
{{htmlattrdef("type")}}
Cet attribut indique le type de menu qui est déclaré. C'est un attribut à valeur contrainte qui peut prendre l'une des valeurs suivantes :
  • context {{Deprecated_inline}} : Cette valeur indique que le menu est dans un état de popup et qu'il contient des commandes relatives à un autre élément. Ce menu peut être référencé via l'attribut {{htmlattrxref("menu", "button")}} d'un élément {{HTMLElement("button")}} ou via l'attribut contextmenu d'un élément. Cette valeur est la valeur par défaut de l'attribut lorsque l'élément parent est également un élément <menu>.
  • toolbar : Cette valeur indique que le menu est une barre d'outils qui contient différentes commandes disponibles. Ces commandes peuvent être construites avec plusieurs éléments {{HTMLElement("li")}} ou avec du contenu de flux qui décrit les commandes disponibles. Cette valeur est la valeur par défaut de l'attribut.

Notes d'utilisation

Exemples

{{Deprecated_header}}

HTML

<!-- Un élément <div> avec un menu contextuel -->
<div contextmenu="popup-menu">
  Vous pouvez effectuer un clic-droit pour voir le menu.
</div>

<menu type="context" id="popup-menu">
  <menuitem>Action</menuitem>
  <menuitem>Une autre action</menuitem>
  <hr>
  <menuitem>Une action après un séparateur</menuitem>
</menu>

CSS

div {
  width: 300px;
  height: 80px;
  background-color: lightgreen;
}

Résultat

{{EmbedLiveSample('Menu_contextuel', '100%', '80')}}

Bouton de menu

Attention : Les boutons de menu n'ont pas encore été implémentés dans les navigateurs et {{HTMLElement("menuitem")}} est désormais obsolète.

HTML

<!-- Un bouton qui affiche un menu lorsqu'on clique dessus. -->
<button type="menu" menu="popup-menu">
  Dérouler
</button>

<menu type="context" id="popup-menu">
  <menuitem>Action</menuitem>
  <menuitem>Une autre action</menuitem>
  <hr>
  <menuitem>Une action après un séparateur</menuitem>
</menu>

Résultat

{{EmbedLiveSample('Bouton_de_menu', '100%', '50')}}

Barre d’outils {{experimental_inline}}

Attention : Les menus sous forme de barres d'outils n'ont pas encore été implémentés dans les navigateurs.

HTML

<!-- Un menu pour un éditeur basique
     avec deux boutons de menu. -->
<menu type="toolbar">
  <li>
    <button type="menu" menu="file-menu">Fichier</button>
    <menu type="context" id="file-menu">
      <menuitem label="Nouveau" onclick="newFile()">
      <menuitem label="Enregistrer" onclick="saveFile()">
    </menu>
  </li>
  <li>
    <button type="menu" menu="edit-menu">Éditer</button>
    <menu type="context" id="edit-menu">
      <menuitem label="Couper" onclick="cutEdit()">
      <menuitem label="Copier" onclick="copyEdit()">
      <menuitem label="Coller" onclick="pasteEdit()">
    </menu>
  </li>
</menu>

Résultat

{{EmbedLiveSample("Barre_d’outils", '100%', '100')}}

Résumé technique

Catégories de contenu Contenu de flux et contenu tangible si le menu est une liste (l'état par défaut, sauf si l'élément parent est lui-même un élément <menu> auquel cas le menu est dans un état contextuel).
Contenu autorisé Si le menu est une liste : du contenu de flux ou zéro ou plusieurs éléments {{HTMLElement("li")}}, {{HTMLElement("script")}} et {{HTMLElement("template")}}.
Si le menu est dans un menu contextuel : zéro ou plusieurs éléments {{HTMLElement("menu")}}, {{HTMLElement("menuitem")}}, {{HTMLElement("hr")}}, {{HTMLElement("script")}} et {{HTMLElement("template")}}.
Omission de balises {{no_tag_omission}}
Parents autorisés Tout élément qui accepte du contenu de flux.
Rôles ARIA autorisés Aucun.
Interface DOM {{domxref("HTMLMenuElement")}}

Spécifications

Spécification État Commentaires
{{SpecName("HTML WHATWG", "grouping-content.html#the-menu-element", "<menu>")}} {{Spec2("HTML WHATWG")}} Aucune modification depuis la dernière dérivation, {{SpecName("HTML5.3")}}
{{SpecName("HTML5.3", "grouping-content.html#the-menu-element", "<menu>")}} {{Spec2("HTML5.3")}} Aucune modification.
{{SpecName("HTML5.2", "grouping-content.html#the-menu-element", "<menu>")}} {{Spec2("HTML5.2")}} Dérivation {{SpecName("HTML WHATWG")}}, suppression du type context.
{{SpecName("HTML5.1", "interactive-elements.html#the-menu-element", "<menu>")}} {{Spec2("HTML5.1")}} Dérivation de {{SpecName("HTML WHATWG")}}, définition initiale.

Compatibilité des navigateurs

{{Compat("html.elements.menu")}}

Voir aussi