5568 sujets

Sémantique web et HTML

Bonjour à tous,

Pourquoi la plupart des menus horyiontaux sont-ils construits avec une liste et affichés inline plutôt que construits avec des span ?

Est-ce une convention plus ou moins tacite ou cela apporte-t-il réellement un plus ?
Modifié par Lord_Jago (28 Nov 2009 - 02:33)
Il n'y a pas de convention tacite à proprement parler, mais un point essentiel qui s'appelle le balisage sémantique, qui consiste à utiliser les éléments HTML pour leur sens, et non pour la manière dont ils sont affichés par défaut (par exemple, utiliser l'élément blockquote pour baliser un bloc de citation, et non pour appliquer une marge à gauche).

Autrement dit, qu'est-ce qu'un menu ? Une liste de liens menant vers des rubriques, catégorie et autres pages importantes, l'ordre des liens n'ayant aucune importance. Or, pour définir en (X)HTML une liste non ordonnée, il y a l'élément ul.

Il est d'autant plus important de respecter la sémantique des éléments HTML que certains agents utilisateurs, comme les lecteurs d'écran (utilisés par les internautes aveugles et malvoyants), signalent clairement de quel type d'élément il s'agit lorsqu'ils le parcourent : par exemple, un lecteur d'écran en mode synthèse vocale indiquera un élément ul en disant « liste de x éléments » (de la même façon qu'il dira d'un h1 « titre de niveau 1 »). Bref, ça apporte réellement un plus, comme tu dis.

J'ai parlé de l'élément ul : il est, à l'heure actuelle, c'est-à-dire en HTML 4 et en XHTML, l'élément le plus approprié pour structurer un menu (peu importe sa disposition, qui est gérée en CSS de toute façon) ; mais, sache qu'en HTML 5, il y aura un élément nav pour baliser les liens de navigation.