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 atributuluitype="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.