web-dev-qa-db-fra.com

<nav> ou <menu> (HTML5)

W3Schools.com et je suis sûr que je me souviens avoir vu W3C.org indiquer que <menu> devrait être utilisé pour les menus de la barre d’outils et la liste des commandes de contrôle de formulaire.

Alors, lequel devrais-je utiliser pour mon menu principal? Nav ou Menu? Est-ce que ça importe?

100
anon271334

nav est utilisé pour les groupes de liens internes (a éléments). Cela signifie généralement que les liens doivent se déplacer vers des pages séparées ou modifier le contenu dans le cas d'une page AJAX. Attendez-vous à une sorte de changement de contenu lorsque vous cliquez sur un élément nav.

menu est utilisé pour les groupes de contrôles (a, input, button). Généralement, cela signifie que les entrées doivent exécuter une fonction dans la page. Attendez-vous à une sorte d'interaction javascript lorsque vous cliquez sur un élément menu.

nav: le navigation pour le site.

menu: le men pour une application Web.

160
zzzzBov

Voici un message HTML5Doctor sur nav avec une section expliquant en quoi il diffère de menu (en gros, utilisez-le dans les applications réelles). On dirait que vous voulez nav.

10
Su'

Le meilleur endroit pour obtenir cette réponse est le standard HTML 5.

Le menu est défini dans HTML 5.1 2e édition .

Cela, "... représente un groupe de commandes."


Nav est défini dans HTML 5 .

C'est "... une section d'une page qui renvoie à d'autres pages ou à des parties de cette page: une section avec des liens de navigation".

Il y a des notes pour la navigation que je n'ai pas incluses mais que je considère importantes, mais je pense qu'il est préférable que vous obteniez la définition vous-même à partir des normes.

Les définitions marquées dans ce message comme réponse sont presque correctes, mais contiennent des déclarations superflues qui rendent la réponse fausse.

1
kevin

Avec le <menu> il est généralement utilisé pour les menus contextuels.

MDN a une bonne documentation à ce sujet: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/men

1
Jack

<nav> est une section (comme <section> ou <article>) il apparaîtra donc dans le plan de votre document HTML. Pour cette raison, je voudrais utiliser <menu> 99% du temps. Pour moi, <nav> est un mélange de <section> et <menu>, avec la constriction ajoutée que <nav> devrait être utilisé spécifiquement pour la navigation, alors que <menu> peut être utilisé pour tout ce qui peut s'appeler un menu (y compris une barre de navigation). Ainsi, la plupart des barres de navigation, bien qu’il s’agisse de barres de navigation, ne répondent pas aux exigences strictes de <nav>, et <menu> est plus approprié.

Au cours de ma carrière dans le développement Web, je n'ai jamais trouvé de situation où je souhaitais que ma barre de navigation fasse partie du plan du document.

0
Nick Manning