helly a écrit :
enfin, pour les <li>, je comprend plus car on m'a dit que c'etait mieux semantiquement que d'ecrire ds un <p> ou un <div> ... ?
S.F. a tout à fait raison. Et toi, tu as effectivement de quoi ne plus rien y comprendre.
<attention, coup de gueule>
Une petite astuce préalable : les gens qui ont la bouche pleine de
Sémantique (avec une grosse majuscule) et de
pas bien sémantiquement, sont en règle générale très sympathiques, bien intentionnés... et complètement ignorants sur ce sujet.
La "sémantique" HTML est trop souvent vue comme une somme de principes absolus,
éthiques, que chacun peut d'ailleurs inventer à plaisir puisqu'ils ne sont écrits nulle part noir sur blanc. Cela permet d'asséner des péremptoires
C'est pas sémantique, ça au pauvre gars qui cherche simplement à obtenir tel résultat, avec pour seul conséquence de lui compliquer la vie. C'est très valorisant pour le sémantiseur.
Mais la "sémantique Web" n'a rien d'éthique. Ce n'est pas une religion, une philosophie, une sorte de principe vague et éthéré pour les purs. Elle n'est surtout pas destiné à définir ce qu'un code doit ou ne doit pas être dans l'absolu, pour... pour quoi au fait ? Pour faire joli, se faire plaisir ou se gargariser ?
C'est bête, la sémantique. Très bête. Et très concret. D'où la question à poser systématiquement au sémantiseur pour le faire taire à coup sûr :
Oui... Mais ça va servir à quoi, concrètement, ton truc ?
<exemple entre parenthèses>
C'est la vieille histoire des sémantiseurs qui vous disent de mettre vos citations dans des <q>. Comme ça, pour le principe. Parce que
<q>, c'est sémantique, na!.
Ce qui ne sert strictement à rien, en l'absence du principal apport de l'élément <q>, qui est son attribut cite servant à indiquer l'URI de la source de la citation. L'attribut, lui, est exploitable (sauf que nos navigateurs actuels ne savent pas le faire
). Le <q>, en lui-même, n'aura comme conséquence éventuelle qu'une différence de présentation (des guillemets, un changement de voix) parfaitement possibles avec d'autres balisages. En d'autres termes, <q> n'est pas spécialement sémantique. Ce qui est sémantique, c'est son attribut cite et la métadonnée qu'il permet d'exploiter. Mais le sémantiseur est ignare. Il ignore en général tout de l'attribut cite. Il met juste ses citation entre deux <q> et il est content.
</exemple>
Alors,
sémantique, c'est quoi ? Tout simplement "Comment faire en sorte que ceci puisse être compris de telle manière
par telle machine afin
qu'elle puisse l'exploiter et en faire quelque-chose d'utile pour l'utilisateur" (sic).
Ce "quelque-chose" est très souvent, au plus simple, un rendu affiché dans un navigateur, puisque nous en sommes à peine aux premiers vagissements du Web sémantique (on ne peut encore même pas parler de balbutiements). Avec plus d'ambition, il s'agit d'autres types de traitement du contenu (indexation, réutilisation, traduction, extraction d'une catégorie donnée d'infos, etc.)
Revenons à nos moutons et à ces liens. Ici, quel est le traitement attendu ? Grosso modo, produire un menu linéaire ressemblant à un fil d'ariane. Les aspects concrets sont :
- les liens doivent s'afficher en ligne
- un séparateur > doit apparaître entre chaque lien
- cela doit être également bien rendu dans d'autres medias que le media screen, en particulier quand la page est lue par une synthèse vocale.
Pour le reste de la pseudo-sémantique :
- que ce soit un <ul>, un <p>, une <div> ou des cacahuètes ne changera rien, puisque
sémantiquement la notion de menu n'existe pas en HTML. Pour le plaisir illusoire d'être "sémantique", on pourrait mettre un élément <map> (quoi que, sur le fond, ça se discute ici...), mais cela n'a aucun intérêt étant donné l'implémentation nulle de cet élément, et son absence d'avenir dans les implémentations prévues.
- Que le séparateur > soit inséré ou non dans le contenu, soit généré ou non par CSS... n'a rien de sémantique ou de pas sémantique. C'est un choix à faire sur le degré d'abstraction du code HTML, c'est tout. Et ce choix est fonction de l'interopérabilité recherchée. Pour que ce séparateur passe dans le plus grand nombre de navigateurs possibles, il faut qu'il soit dans le contenu. Dans l'idéal, il faudrait pouvoir l'abstraire du rendu vocal de la page, car il est désagréable à entendre, mais ce n'est pas vital.
Donc, on a,
sémantiquement :
- trois liens
- deux >
- une ligne.
<p>
<a href="...">Accueil du costa</a>
>
<a href="...">Le récit</a>
>
<a href="...">Aller à la page 1</a>
</p>
Simple, direct, et basta !
Déçus ? Vous attendiez la révélation sémantique du siècle sur les fils d'ariane ? Ben non. C'est tout con, la sémantique, on vous dit.
Allez, quand même : remplacez <p> par <div> si ça vous gratouille, ça ne fera pas un pet de différence sémantique, mais ça ne coûtera rien et si ça vous fait plaisir, c'est très bien.
Mais le gugusse qui t'a convaincu d'utiliser une liste qu'il faut linéariser en CSS, qui aura des rendus grotesque hors CSS ou hors media visuel, et qui t'a compliqué la vie pour ça... j'aimerais bien l'avoir sous la main, tiens
Modifié par Laurent Denis (28 Mar 2005 - 10:57)