W3Schools.com y estoy bastante seguro de que recuerdo haber visto el estado de W3C.org que <menu>debería usarse para los menús de la barra de herramientas y enumerar los comandos de control de formularios.
Entonces, ¿cuál debo usar para mi menú principal? Nav, o Menu? ¿Importa?

Respuestas:
navse utiliza para grupos de enlaces internos (aelementos). Generalmente, esto significa que los enlaces deben viajar a páginas separadas o cambiar el contenido en el caso de una página AJAX. Espere algún tipo de cambio de contenido al hacer clic en unnavelemento.menuse utiliza para grupos de controles (a,input,button). Generalmente, esto significa que las entradas deben realizar una función dentro de la página. Espere algún tipo de interacción javascript al hacer clic en unmenuelemento.nav: la navegación del sitio.menu: el menú de una aplicación web.fuente
<li>elementos directamente debajo de una<menu>etiqueta, sin la necesidad de una<ul>lista. El requisito es que se omita el atributo<menu>'typeo se establezca en"toolbar". Consulte la especificación del<li>elemento y el<menu>elemento .<menu>una de las especificaciones HTML5 de W3C? Lo encuentro en la versión WHAT WG , pero no en el último borrador de W3C HTML 5.3 .Aquí hay una publicación de HTML5Doctor
navcon una sección sobre en qué se diferencia demenu(básicamente, úsela en aplicaciones reales). Parece que quieresnav.fuente
Con el
<menu>se usa generalmente para menús contextuales.MDN tiene buena documentación al respecto: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
fuente
El mejor lugar para obtener esta respuesta son los estándares HTML 5.
El menú está definido en HTML 5.1 2nd Edition .
Nav se define en HTML 5 .
Hay notas para la navegación que no incluí, pero creo que son importantes, pero creo que es mejor que obtenga la definición usted mismo de los estándares.
Las definiciones marcadas en esta publicación como la respuesta están cerca de ser correctas, pero tienen declaraciones extrañas que hacen que la respuesta sea incorrecta.
fuente
<nav>es una sección (como<section>o<article>) por lo que aparecerá en el esquema de su documento HTML. Debido a esto, usaría el<menu>99% del tiempo. Para mí,<nav>es una mezcla entre<section>y<menu>, con la restricción adicional que<nav>debería usarse específicamente para la navegación, mientras que<menu>puede ser para cualquier cosa que pueda llamarse menú (incluida una barra de navegación). Por tanto, la mayoría de las barras de navegación, a pesar de que son barras de navegación, no cumplen los estrictos requisitos de<nav>, y<menu>son más apropiadas.Nunca en mi carrera de desarrollo web encontré una situación en la que quisiera que mi barra de navegación fuera parte del esquema del documento.
fuente
<menu>de un sitio web que no es una aplicación web - 99% de las veces, el 'menú' de navegación será enlaces estáticos a otras páginas u otras secciones de la página, que es lo que<nav>es para, de acuerdo a la especificación.navno es una buena opción de etiqueta porquenaves un elemento de sección, por lo que se convertirá en parte del esquema del documento como si fuera una sección con un encabezado y contenido. De hecho, este es un escenario poco común en el que deseanavque actúe como una sección.menufue solo una sugerencia como reemplazo semántico. No veo nada en la especificación que diga que no se puede usar de esta manera. Parece encajar. Pero si por alguna razón cree que el menú es solo para lo que define como una aplicación web, lo recomiendooloulcomo un reemplazo.<menu>todavía tiene un soporte deficiente en este momento. (¿Es realmente cierto que Chrome no tiene soporte para él?) Además, puede lograr exactamente la misma semántica proporcionando elrole="menu"atributo a otro elemento (por ejemplo, un div o nav). El atributo de rol anula la semántica predeterminada de cualquier elemento.