web-dev-qa-db-fra.com

Les titres de menu (h1, h2, h3 ...) doivent-ils figurer à l'intérieur ou à l'extérieur de la balise <nav>?


Disons que je veux écrire un menu simple en HTML5.

Devrais-je écrire comme ceci:

<h1>My Menu</h1>
<h2>Submenu 1</h2>
<nav>
    <ul>
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        ...
    </ul>
</nav>
<h2>Submenu 2</h2>
<nav>
    <ul>
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        ...
    </ul>
</nav>

Ou comme ceci:

<nav>
    <h1>My Menu</h1>
    <h2>Submenu 1</h2>
    <ul>
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        ...
    </ul>
    <h2>Submenu 2</h2>
    <ul>
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        ...
    </ul>
</nav>

En d'autres termes, les titres doivent-ils être à l'intérieur ou à l'extérieur de la balise <nav>?

Merci.

5
Marc-François

Selon les spécifications HTML5, "nav" est une "section" et une section "est un contenu qui définit la portée des en-têtes et des pieds de page". L'exemple du W3C pour la section de navigation montre h tags dans le nav.

http://www.w3.org/TR/html5/sections.html#the-nav-element

12
bogeymin

les balises h correspondent à la structure du contenu de la page. Je ne dirais pas que la navigation fait partie du contenu de la page. Il n’est donc pas logique pour moi d’avoir des balises h dans la navigation.

2
Piers Karsenbarg