5568 sujets

Sémantique web et HTML

J'utilise un outil open source plutôt réputé dans l'e-commerce (source journal du net) et je m'interroge sur le balisage. Ainsi dans le code, j'ai trouvé ça :

<h2><p>Du texte</p></h2>


et ensuite ça :

<h2><b>Du texte</b></h2>


et pourtant la validation w3c ne remarque rien. J'aimerais une analyse "scientifique" : le <b> à la rigueur pourquoi pas bien que ça fasse double emploi mais le p... je ne suis pas d'accord.
Modifié par Newzic (16 Sep 2009 - 02:41)
Heyoan a écrit :
je ne vois pas comment il serait possible que le validateur du w3c ne remarque rien. Smiley confuse


oui moi aussi cela m'a étonné, c'est pour cela que je suis venu poster ici pour confirmation parce que je n'ai pas pu parler de la validation à la communauté du coup (certainement un script qui dérange la validation ou alors je ne l'ai pas vu dans les 143 erreurs détectées...) En tout cas merci pour le site de hiérarchie, il me manquait celui-là. C'est la réponse que je vais pouvoir leur soumettre.
Modifié par Newzic (16 Sep 2009 - 10:25)
Cet ensemble de fiches est très intéressant. Est-ce qu'il existe quelque part la même chose pour le strict et le html 4 ?
Newzic a écrit :
Cet ensemble de fiches est très intéressant. Est-ce qu'il existe quelque part la même chose pour le strict et le html 4 ?


Ce serait un doublon ;p

Les balises et leurs propriété étant les mêmes pour xhtml et html (à part la fermeture de certaines). Pour ce qui est du strict, le xhtml 1.1 est toujours scrict.
Modifié par Laurie-Anne (17 Sep 2009 - 10:10)
oui, je parlais du strict 1.0 (et j'oubliais le 1.0 transitionnel). Parce que je sens bien que ceux à qui je vais rapporter l'info pour qu'ls corrigent leur outil vont peut-être me dire "oui mais notre outil c'est pas du strict 1.1, c'est du transitional 1.0 donc ça vaut pas ta fiche !". Mais bon, si ça existe pas, ça existe pas ! J'aurais pensé trouvé ce genre de fiches spécifiques à toutes les versions html et xhtml sur le site de la w3c. Peut-être même qu'il existe un "livre blanc" sur le sujet, comme ça se fait souvent pour les normes informatiques.
Newzic a écrit :
Peut-être même qu'il existe un "livre blanc" sur le sujet, comme ça se fait souvent pour les normes informatiques.

Y'a la recommandation officielle (recommandation étant ici synonyme de norme) :
HTML 4.01 Specification et XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition).

Maintenant c'est pas ce qu'il y a de plus facile à lire au premier abord, y'a plein de trucs dépréciés qui y traînent encore.

Et pour finir si t'es du genre hardcore, tu peux lire la DTD XHTML 1.0 Strict directement Smiley lol
Newzic a écrit :
Peut-être même qu'il existe un "livre blanc" sur le sujet

Une spécification:
http://www.w3.org/TR/html4/

Pour XHTML 1.0 c'est strictement la même chose, mais avec une syntaxe XML et quelques règles obscures dont on tient rarement compte. (De toute façon XHTML 1.0 c'est has been. Ha.)
Newzic a écrit :
le <b> à la rigueur pourquoi pas bien que ça fasse double emploi

Ça ne fait pas double emploi. Le H2 indique un titre de section. Le B indique qu'on veut une mise en forme en gras. Ainsi si les styles par défaut du navigateur n'utilisent pas de gras pour les H2, on aura bien le gras souhaité quand même. De même, si une feuille de styles définit les H2 en font-weight:normal, le B permet d'avoir du gras malgré tout.

C'est d'ailleurs là qu'est le problème: il est probable que les auteurs de feuilles de styles CSS -- parmi eux des utilisateurs du logiciel en question qui veulent l'adapter à leur besoin -- seront gênés par cette mise en forme placée dans le code HTML. Soit gênés, soit complètement bloqués s'ils ne savent pas qu'ils peuvent passer outre en utilisant un code CSS plus lourd pour cela.

Si le but de ce code HTML est de fournir un support à la mise en forme des titres (on a parfois besoin d'éléments HTML imbriqués pour créer un effet de cadre ou de boite...), le code HTML adapté est le suivant:
<h2><span>Titre</span></h2>

Dans les cas extrêmes où on cherche à couvrir des besoins particuliers, on peut avoir un code comme ceci:
<h2><span class="inner1"><span class="inner2"><span class="inner3">Titre</span></span></span></h2>

Même si ce type de structure très chargée peut être utile ponctuellement, je n'en recommande pas l'utilisation. En général, pour les besoins de mise en forme «au cas où», un seul conteneur neutre (ici un SPAN) en doublon de l'élément lui-même (H2) est largement suffisant
Merci pour tous ces liens (à ne pas lire après une choucroute, pas très digeste tout ça !)

Pour le b dans le h2 : le gras apporte t'il une valeur sémantique dans un texte (mise en valeur) ? Un titre de section est déjà mis en valeur puisque c'est un titre. Donc un titre + du gras... à part apporter une mise en forme grasse parce qu'ils ont du indiquer en css que le h2 ne soit pas gras... et là, ils n'ont pas vraiment séparés le fond de la forme. C'est plus rapide de mettre <b></b> plutôt que d'inclure du span avec du css
h2 span{font-weight:700}
par exemple, dans la feuille de style. Mais bon, la norme dit que c'est autorisé de toute façon, le b dans le h, alors soit ! (Mais c'est pas cool Smiley langue )
Modifié par Newzic (19 Sep 2009 - 00:03)
Newzic a écrit :
Pour le b dans le h2 : le gras apporte t'il une valeur sémantique dans un texte (mise en valeur) ?

En HTML4, non, pas le moins du monde.
En HTML5, l'élément B est redéfini avec une valeur sémantique (en gros, on l'utilise pour transcrire une mise en forme utilisée par convention dans l'imprimé), mais l'utilisation qui en est faite ici ne correspond pas à cette valeur sémantique.

Newzic a écrit :
C'est plus rapide de mettre <b></b> plutôt que d'inclure du span avec du css
h2 span{font-weight:700}
par exemple, dans la feuille de style.

La solution serait plutôt d'avoir une classe sur le H2, ou de le cibler en fonction de son contexte. Exemple fictif pour ce deuxième cas:
h2 {
  font-weight: normal;
}
#sidebar h2 {
  font-weight: bold;
}


Newzic a écrit :
Mais bon, la norme dit que c'est autorisé de toute façon, le b dans le h, alors soit ! (Mais c'est pas cool Smiley langue )

Oui, on peut parfaitement faire des pages au code horrible, mais valide. HTML4 ou même XHTML 1.0 ne dictent pas toutes les bonnes pratiques à suivre.
Florent V. a écrit :
Oui, on peut parfaitement faire des pages au code horrible, mais valide. HTML4 ou même XHTML 1.0 ne dictent pas toutes les bonnes pratiques à suivre.


Voilà qui résume bien la discussion et le fond de ma pensée !