<menu> în HTML

Text și formatare HTML 2.0+ (redefinit în HTML5)

Listă de comenzi pe care utilizatorul le poate executa, de exemplu butoanele unei bare de unelte; se comportă ca o listă ul.

Sintaxă tag
<menu>
  <li><button>Copiază</button></li>
  <li><button>Lipește</button></li>
</menu>

Ce face <menu>

În standardul actual WHATWG, <menu> este o alternativă semantică la <ul>: o listă neordonată de elemente <li>, în care fiecare element este o comandă (de obicei un buton).

Browserele îl afișează exact ca pe un <ul>, cu buline și spațiere, și îl anunță cititoarelor de ecran tot ca listă. Diferența este de sens: <menu> spune că elementele sunt acțiuni, nu informații.

Vechile meniuri contextuale (type="context") și elementul <menuitem> au fost scoase din standard și nu mai funcționează în browsere.

Exemple

Exemplul 1: Bară de unelte a unui editor de text

Cu puțin CSS, lista devine o bară orizontală de butoane.

<style>
  menu { display: flex; gap: 8px; list-style: none; padding: 0; }
</style>
<menu>
  <li><button type="button">Salvează</button></li>
  <li><button type="button">Anulează</button></li>
  <li><button type="button">Trimite profesorului</button></li>
</menu>

Ce afișează browserul

[Salvează] [Anulează] [Trimite profesorului] (trei butoane pe un rând, fără buline)

Exemplul 2: Fără CSS, <menu> arată ca <ul>

Stilul implicit este identic cu al listei neordonate.

<menu>
  <li><button type="button">Adaugă în coș</button></li>
  <li><button type="button">Adaugă la favorite</button></li>
</menu>

Ce afișează browserul

• [Adaugă în coș]
• [Adaugă la favorite]

Greșeli frecvente

  • Folosirea <menu> pentru meniul de navigare al site-ului: linkurile spre pagini merg în <nav> cu <ul>.
  • Folosirea elementului <menuitem> sau a atributului type="context" din tutoriale vechi: au fost eliminate din standard.
  • Adăugarea role="menu" fără tot comportamentul de tastatură cerut de ARIA (săgeți, focus); pentru o simplă bară de butoane nu ai nevoie de el.

Comenzi înrudite

  • <ul>: Creează o listă neordonată, în care elementele sunt marcate prin buline (puncte), fără o ordine numerică specifică.
  • <li>: Reprezintă un element individual într-o listă ordonată (ol) sau neordonată (ul).
  • <button>: Element clicabil pentru declanșarea trimiterii formularelor sau a unor acțiuni JavaScript în pagină.
  • <nav>: Marchează o secțiune dedicată navigației principale pe site sau a unui cuprins de capitole.