5568 sujets

Sémantique web et HTML

Salut,

Je n'arrive pas à trouver sur le net quand utiliser <br /> et <p>. Je parle purement sémantique et non simple mise en forme.

Par exemple, dans la mise en forme d'un formulaire lequel faut-il utiliser pour un "retour à la ligne"?

Pourriez-vous m'aider sur le sujet?

Merci par avance.
Modifié par bbp (30 Oct 2005 - 14:36)
mmm...

J'aurais tendance à dire qu'il faut utiliser br quand tu as des paragraphes qui ont un rapport direct entre eux, que ce soit au sein d'une balise de type bloc p ou pas (li, blockquote, etc.).

Lorsque tu restes dans la même thématique, mais que tu veux souligner une respiration plus importante dans ton texte, je mettrais alors un p.

Je vois ça de façon un peu empirique, il y a peut-être bien des règles plus strictes dans la syntaxe française.

Ça peut être un débat intéressant. Smiley smile
Les balises <p>...</p> permettent de créer des paragraphes et donc de réellement structurer un document. Leur sémantique est donc très importante. La balise <p> crée par défaut des marges, rend possible l'indentation, etc.

La balise <br /> a, quant à elle, une sémantique moins forte. Son rôle est d'imposer un retour-chariot, comme la touche entrée dans un traitement de texte. Un paragraphe peut très bien contenir des retours à la ligne marqués par <br />.

Néanmoins, on voit trop fréquemment des titres, des paragraphes ou encore des listes dénués de sémantique en raison d'un usage exagéré de la balise <br />. Cette dernière est utile, mais elle ne doit pas être utilisée, par exemple, pour revenir à la ligne après chaque élément d'une liste alors que des balises comme <li> permettent de réaliser cela !

<br /> constitue donc un retour à la ligne, certes utile, mais dont l'usage doit être modéré. Quant aux formulaires, <br /> peut là aussi trouver sa place, bien que des éléments tels que <input> ou <label> peuvent être configurés adroitement pour que son usage ne soit pas indispensable.
Modifié par Romain H. (29 Oct 2005 - 22:17)
Hum...

Juste pour pinailler un peu.
La définition du paragraphe que j'ai pu lire le décrivait comme un bloc de texte délimité par deux retours à la ligne.

Dans ce sens, un br définit bien un paragraphe.
Si l'on élude ce fait, alors oui, p doit servir à délimiter un paragraphe.

...ou alors mon dico est trop vieux ? Smiley cligne
Je règle le cas, la balise <br /> n'est pas censé être utilisé pour délémiter des paragraphes. La balise <p></p> devrais être priorisé en tout temps pour les paragraphes.
On pourrait peut-être résumer en disant que le <br /> sert à partout sauf dans le cas précis du paragraphe, non? C'est peut-être réducteur de dire ça.
Romain H. a écrit :
Quant aux formulaires, <br /> peut là aussi trouver sa place, bien que des éléments tels que <input> ou <label> peuvent être configurés adroitement pour que son usage ne soit pas indispensable.

Aurais-tu un exmple ou plus de précisions? Je me frotte actuellement à ce problème.

Merci.
Modifié par bbp (30 Oct 2005 - 08:54)
Bonjour,

an.archi a écrit :
J'aurais tendance à dire qu'il faut utiliser br quand tu as des paragraphes qui ont un rapport direct entre eux, que ce soit au sein d'une balise de type bloc p ou pas (li, blockquote, etc.).


Enalung a écrit :
Je règle le cas, la balise <br /> n'est pas censé être utilisé pour délémiter des paragraphes. La balise <p></p> devrais être priorisé en tout temps pour les paragraphes.


Chose très amusante et peut-être un peu déroutante pour qui a tant d'assurance sur ce sujet : dans le premier embryon d'HTML dont on ait la trace, <p>...</p> n'existait pas en tant que délimiteur structurant. Ce qui existait, c'était un élément vide <p>, c'est à dire un simple séparateur :

Tim Berners-Lee a écrit :

L'élément vide P indique une séparation de paragraphes.

(...)

<P> est utilisé entre deux parties de textes qui seraient, sinon, rendues indistinctement.

(...)

EXEMPLES D'UTILISATION

<h1>Ce qu'il faut faire</h1>
Ceci est un premier paragraphe< p >Ceci en est un second
< P >
Ceci en est un troisième.


Autrement dit, quelque-chose qui ressemble furieusement à <br>. Comme quoi, certaines tentations ne datent pas d'hier, et ont été partagées par des gens a priori respectables Smiley cligne

Certes, HTML2.0 a rapidement rectifié le tir, car cette notion de séparateur-élément vide avait quelque-chose d'étranger à la logique SGML. Mais la raison n'était pas tant conceptuelle que technique. D'où finalement la merveilleuse définition tautologique du <p> dans HTML4.01, et partant dans XHTML1.0 :

HTML4.01 a écrit :
The P element represents a paragraph.


Ah ah Smiley eek

Nous voici bien avancés. On comprend que les utilisateurs ne puissent s'empêcher, à tort, de se précipiter sur leur dictionnaire pour savoir ce qu'un un paragraphe, en oubliant que le terme pourrait très bien avoir, comme c'est souvent le cas, une signification spécifique dans le cadre d'une norme définissant un format technique. La notion de paragraphe est tout sauf définie en HTML-XHTML. Plus encore que le pauvre div si décrié, c'est, dans les usages, un élément fourre-tout, brumeux, douteux, complètement impalpable.

Un paragraphe est-il une unité de sens ? La plus petite unité de sens de niveau bloc ? Est-il une unité de présentation ? Est-il un élément générique (applicable à des contrôles de formulaires ou à une image) ou spécifique (appliquable uniquement à une série de phases, elles-mêmes définies par les éléments de phrase) ? Faut-il ou ne faut-il pas s'en servir dans un formulaire ? Peut-on le découper en tronçons avec des <br> ?

Autant d'excellentes questions dont les réponses soit-disant sémantiques ne pourront en aucun cas régler le cas autrement que de manière subjective.

A part tous ceux qui ont des idées personnelles et contradictoires sur la question, personne ne peut répondre en se basant sur les normes.

Tout ce que l'on sait, c'est ce que définit la DTD : un paragraphe ne peut pas contenir d'élément de type bloc ( http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 ). Au moins, voilà un petit bout qui est clair: je ne peux pas faire de paragraphe contenant une liste, ce qui serait pourtant conceptuellement logique et pratiquement très souvent nécessaire...

Les normes ont-elles mieux dans leur panier ? Pas vraiment, mêm avec indulgence. Un paragraphe peut contenir des éléments de phrase ( http://www.w3.org/TR/html401/struct/text.html#h-9.2.1 ), mais tout aussi bien n'importe quel autre élément de type en ligne (contrôles de formulaire, images, etc: http://www.w3.org/TR/html401/sgml/dtd.html#inline ). Est-ce un élément textuel ? Au fait, qu'est qu'un élément textuel ?

Le plus amusant, c'est que tout cela n'empêche aucunement le Web de tourner.

Bref, en l'absence totale de réflexion sur le sujet depuis belle lurette, un paragraphe... c'est tout et n'importe quoi tant que ça ne nuit pas à l'utilisateur et que ça sert à quelque-chose, c'est à dire faire en sorte que ce soit aisément stylable par l'auteur et utilisable par l'agent utilisateur, quelque-soient les conditions de rendu (avec/sans CSS screen, en particulier).

Pssst ! Et le <br>, M'sieur, dans tout ça ?

Sa définition est plus claire : c'est un retour à la ligne visuel (non graphique, à la différence de ses lourdes alternatives CSS), interprété comme un espace par les media n'ayant pas de ligne (media oral, par exemple. Même remarque sur les limites de CSS).

Son usage est largement inoffensif pour l'utilisateur. Il peut cependant compliquer redoutablement les choses pour l'auteur, qui aurait peut-être préféré pouvoir styles ses paragraphes individuellement plutôt que de laisser couler des blocs de texte séparés par des retours à la ligne. Ou qui, à l'occasion de sa prochaine refonte structurelle ou stylistique, râlera comme un pou de devoir reprendre XXX pages HTML pour en virer les br qui l'empêche d'utiliser sa nouvelle CSS, ou son XSLT...


Se demander simplement : aurai-je besoin, demain, d'agir sur chaque bloc de texte sans avoir à modifier la structure ? Si oui, <br> est mal avisé. Si non, <br> est un excellent outil de présentation dans un (X)HTML 4.01-1.x conforme qui se souvient de ses origines et de sa structure essentiellement visuelles.
Modifié par Laurent Denis (30 Oct 2005 - 12:22)
Viendra un jour ou faire appel à son Laurent Denis passera dans le langage courant, au même titre qu'ouvrir son Robert.
J'attendais cette réponse avec impatience. Smiley ravi

Laurent Denis, le Quid des standards web. Smiley langue
hum... bon, ben... euh... résolu? (intéressant tout de même)
Modifié par bbp (30 Oct 2005 - 14:36)
[mode hs on]
a écrit :

Viendra un jour ou faire appel à son Laurent Denis passera dans le langage courant, au même titre qu'ouvrir son Robert.

Le pauvre Robert, ça doit lui faire mal quand on l'ouvre en deux...

Tu peux enlever le "son" dans "faire appel à son Laurent Denis" parce qu'il n'y en a qu'un en tout et pour tout.
A moins qu'il ne sorte un bouquin ?
Smiley smile Smiley lol
[mode hs off]
Pour poursuivre un peu la réflexion de Laurent Denis, sachez que le W3C continue de ce poser des questions sur la valeur des paragraphes. En effet, le dernier draft de la future norme XHTML 2 change un peut la donne pour cet élément :

a écrit :
The p element represents a paragraph.

In comparison with earlier versions of HTML, where a paragraph could only contain inline text, XHTML2's paragraphs represent the conceptual idea of a paragraph, and so may contain lists, blockquotes, pre's and tables as well as inline text. Note however that they may not contain directly nested p elements.


> XHTML 2.0 (Mai 2005 WD7)

Smiley cligne