5568 sujets

Sémantique web et HTML

Bonjour à tous,

Dans la plupart des exemples (W3C & co.) la balise <nav> est placé à l'intérieur de la balise <header>.
Est-il pour autant aberrant de structurer sa page ainsi?

<body>
  <header>En-tête</header>
  <nav>Navigation</nav>
  <main>Contenu</main>
  <footer>Pied-de-page</footer>
</body>
Bonjour,

non rien ne t'empêche de le placer ainsi. Théoriquement tu peux même avoir plusieurs <nav> dans ta page, mais personnellement je préfère n'en avoir qu'un afin qu'il conserve une valeur sémantique importante.

Tu peux jeter un œil à l'excellent html5doctor, qui est vraiment complet sur le sujet.
Administrateur
Bonjour,

je confirme que c'est valide, sémantique, etc Smiley smile
Il est fortement recommandé de se limiter à un seul élément nav : LA navigation du site voire 2 s'il y a également s'il y a en plus une navigation "interne" à une collection de documents (les 8 articles d'un dossier thématique par exemple) mais c'est à peu près tout.

Tu peux également ajouter des landmark roles ARIA pour ne laisser aucun doute sur la nature de tes éléments : quel est le header qui est LA bannière du site, quel formulaire est LE moteur de recherche (pas forcément le premier de la page) ? On lève toute ambiguïté en ajoutant ces attributs et ça prend quelques minutes à faire Smiley smile
http://qelios.net/demo_aria/landmark.php
http://www.anysurfer.be/fr/blog/detail/support-des-roles-aria-et-elements-html5-par-les-lecteurs-decran
Bon avec un élément main dans ton code, tu lèves toute ambiguïté mais ce n'est pas le cas des autres éléments : la bannière du site n'est pas forcément un élément header enfant direct de l'élément body et il peut y en avoir 50... Toutes ces choses ne peuvent pas être devinées par les navigateurs et pire ils peuvent se tromper.
Modifié par Felipe (19 Oct 2013 - 09:58)