5568 sujets

Sémantique web et HTML

Bonjour à tous,

ma question est peut être bête mais je me demande si il est correct de ne pas mettre du texte dans une balise <p>.

Si je prends comme exemple le forum phpbb les messages des membres sont directement dans des <div>.

Merci pour vos réponses.
Modifié par korigan (05 Oct 2007 - 17:30)
La balise p introduit un paragraphe, elle donne un sens à l'information balisée (peu dans ce cas-ci, mais tout de même…). L'élément div n'a aucun sens, il n'est là que pour créer des "divisions" permettant de nous faciliter la tâche au niveau des styles css.
korigan a écrit :
ma question est peut être bête mais je me demande si il est correct de ne pas mettre du texte dans une balise <p>.

Rien n'oblige à utiliser des éléments p. Les éléments div, li, blockquote et bien d'autres peuvent tout à fait accueillir du texte directement.

L'utilisation des paragraphes est par contre plutôt pratique pour la mise en page: on peut influer beaucoup plus facilement et efficacement sur une série de paragraphes que sur un bloc de texte parsemé de br simples ou doubles. Retrait de première ligne, marges entre les paragraphes, etc.
Benjamin D.C. a écrit :
La balise p introduit un paragraphe, elle donne un sens à l'information balisée (peu dans ce cas-ci, mais tout de même…). L'élément div n'a aucun sens, il n'est là que pour créer des "divisions" permettant de nous faciliter la tâche au niveau des styles css.


Pas nécessairement, rien ne t'empêche de lui donner du sens avec l'attribut title, et puis il sert aussi quand aucune autre balise n'est appropriée ou pour grouper des éléments ce qui n'a pas forcément comme unique but de faciliter la tache au niveau mise en page.

Par exemple tu as une série de paragraphe, qui sont en langues différentes :

<div lang="en">
<p>this boy is really crazy</p>
<p>this girl is really happy</p>
</div>
<div lang="fr">Traduction :
<p>Ce monsieur est vraiment fou</p>
<p>Cette fille est vraiment contente</p>
</div>
JyuniX a écrit :
Par exemple tu as une série de paragraphe, qui sont en langues différentes

Cette utilisation de l'élément div comme support d'information sur la langue du contenu est une des deux utilisations-type de cet élément présentées dans la spécification HTML 4.01. Je cite:
a écrit :
les auteurs peuvent utiliser ceux-ci [DIV et SPAN] en conjonction avec les feuilles de style, l'attribut lang, etc., pour exploiter HTML selon leurs besoins et leurs goûts propres.

Vous remarquerez: gouts et besoins.
Il faudrait utiliser cette citation plus souvent, ça décomplexerait certains acharnés de la sémantique. Smiley cligne

D'ailleurs, en parlant de sémantique (ou plutôt d'absence de...),
Benjamin D.C. a écrit :

La balise p introduit un paragraphe, elle donne un sens à l'information balisée (peu dans ce cas-ci, mais tout de même…). L'élément div n'a aucun sens, il n'est là que pour créer des "divisions" permettant de nous faciliter la tâche au niveau des styles css.

La différence entre les deux n'est pas si marquée. Il est déjà abusif de dire que p désigne un «paragraphe», si on entend ce mot au sens littéraire du terme (la spécification du «paragraphe», mais pour ma part j'estime qu'il s'agit d'un raccourci pédagogique sans conséquences et sur lequel il ne faut surtout pas se focaliser). Si je veux placer juste un ou deux liens tout en haut à droite de ma page, est-ce que c'est un paragraphe, une division, une liste (pour le cas où il y en aurait deux, voire trois)? À vrai dire, on s'en fout royalement, et on utilisera celui que l'on préfère sans préjudice à une quelconque sémantique (pas vraiment en jeu ici).

La seule règle vraiment précise, c'est celle des imbrications possibles:
- div peut contenir tout et n'importe quoi ou presque, ce qui en fait un bon candidat pour contenir... tout et n'importe quoi (des blocs de contenu entiers, des «paragraphes» au sens littéraire du terme, des liens qui trainent en dehors de tout «menu de navigation», etc.);
- p ne peut contenir que des éléments de type en-ligne, c'est à dire du texte, des images, des éléments tels que span ou em, etc. C'est donc un mauvais candidat pour jouer les conteneurs, mais un bon candidat pour apparaitre en bout de chaine, pour structurer par exemple nos «paragraphes», «bouts de textes ou liens qui trainent», etc.

On pourrait utiliser div tout le temps sans faire injure à la sémantique. Pour ma part, dès que je suis en fin de course, j'utilise p plutôt que div, pour garder ce dernier comme conteneur. Mais il s'agit plus d'une question de méthodologie (ça facilite la relecture du code et la gestion des styles de texte) que d'une question de sémantique. Smiley smile