5568 sujets

Sémantique web et HTML

Bonjour à vous,

J'emploie depuis longtemps le terme de balise unique ou auto-fermante pour désigner les balises vides telles que hr, br, input, etc.

Or, récemment, je découvre en parcourant l'ancien site du zero que le terme de balise orpheline est employé pour désigner ces balises ne s’utilisant pas par paire.

C'est sans doute une question étrange, mais quelle est au final la bonne terminologie pour ce type de balise ? Unique, orpheline, auto-fermante, autre ?

Merci et bonne journée !
Philos
Administrateur
Bonjour,

On retrouve ce terme de temps en temps en effet pour désigner les éléments auto-fermants (une seule balise donc et non deux).

Pour ma part, je n'ai jamais rencontré ce terme dans les spécifications et je préfère parler d'éléments auto-fermants.
Monsieur Goetter, merci !

Je trouve d'autant moins pertinent cet usage d'orpheline qu'il y a référence à l'absence de parent et non pas à l'unicité.

Merci pour cette précision et confirmation.

Bonne semaine !
Philos
ON rencontre effectivement parfois le terme d'orpheline, mais comme déjà dit, ça me paraît être un plutôt mauvais choix.

Balise unique pour moi ça ne colle pas non plus; instinctivement, une balise unique pour moi c'est une balise qui ne doit se trouver qu'en un seul exemplaire dans le document, p.ex. head, body.

C'est peut-être une conséquence du zèle de l'académie française ou d'autres anti langue de Shakespeare. Autofermante n'est peut-être pas très français mais au moins c'est clair et tout le monde comprend.
Bonsoir,

Je comprends bien la notion d'unicité dans le contexte que tu évoques, mais je trouve qu'en s'accordant sur le fait que certaines s'écrivent par paires (ouvrante et fermante), celles s'écrivant sans paire s'expriment donc pas une seule et unique balise indépendamment de sa répétition dans le document.

Je l'ai toujours perçu ainsi (lu sans doute même) et enseigné de cette manière.

L'emploi du terme "orpheline" me parait bien plus éloigné d'un nommage acceptable que "unique" au final.

D'ailleurs quel terme est employé par le W3C dans les spécifications et an anglais ? J'ai déjà vu du "void" pour certaines de ces balises, donc "vide". Mais cela désigne plus la situation que la solution.
Modérateur
J'aime bien ce débat tatillon.
Je voudrais préciser: en anglais: self-closing tag (balise auto-fermante) a été introduit pour parler de la forme particulière de balise suivante:
<hr/>

C'est à dire en fermant la balise à la fin dans la balise elle-même (d'où le terme auto-fermant), par contre les formes suivantes
(valide en XHTML):
<hr></hr>

(valide en HTML5):
<hr>

Ce ne sont pas des balises auto-fermantes. Mais on parle bien du même élément. Le terme de balise auto-fermante est donc un terme précis concernant la syntaxe et la manière d'écrire la balise.

Dans les normes, à propos de l'élément lui-même, on parle en XHTML de «empty element»(élément vide) et en HTML5 de «void element»(élément néant? néantique? néantifère? ^^). Il s'agit d'éléments qui ne peuvent avoir de contenus. Éléments vides me paraît le plus logique à employer, quoique ça n'évoque pas assez l'interdiction, sans doute pour cette raison que HTML5 utilise void. Si quelqu'un a un meilleur terme…

Notons que un terme concerne la nature de l'élément, et l'autre sa forme. Il est important de les différencier pour la raison suivante:
valide en XHTML:
<div id="foo"/>

On a bien une balise auto-fermante, mais l'élément div n'est pas un élément vide. (c'est pour cette raison que le terme n'est pas parfait, en l'état cette div n'a bien aucun contenu et est vide, mais ce n'est pas un élément interdisant le contenu)

Bon ça ne va pas fondamentalement changer notre vie, mais bien différencier les conventions d'écriture et la nature des éléments est importante.
Modifié par kustolovic (11 Nov 2014 - 23:35)
Bonjour Kustolovic,

Merci pour ces précisions, j'en partage totalement l'idée.

Il y a un point important à mon sens qui est que "valide" ne signifie pas forcement "bonne pratique" et qu'il est donc important (du moins dans un cadre d'enseignement) d'utiliser une convention qui couvre à la fois la notion de respect des normes et de mise en pratique dans un cadre métier.

Si j'essaye de synthétiser tout ça, en XHTML (car c'est là le fond du problème que je rencontre) peut-on estimer acceptable de désigner la balise "hr" comme une balise vide s'écrivant sous une forme auto-fermante ?

Mais je trouve que cela reste éloigné des bonnes pratiques, car finalement on n'emploie jamais cette forme qui fait justement référence à la notion de vide :
<hr></hr>


C'est couillon, mais je trouve que c'est pas si simple que ça de trouver comment exprimer de manière claire et évidente (et conventionnée) cette situation.
Modérateur
Philos95 a écrit :

Il y a un point important à mon sens qui est que &quot;valide&quot; ne signifie pas forcement &quot;bonne pratique&quot;

Absolument, mais en même temps «bonne pratique» est lié à l'application de la norme dans un contexte particulier. Ce qui est vrai dans un contexte particulier ne l'est pas forcément dans un autre. Le HTML ne se limite pas forcément au web.

Il faut aussi savoir d'où viennent les bonnes pratiques:
en XHTML la forme suivante:
<hr />

a été préférée aux formes suivantes:
<hr/> <hr></hr>

Pour la compatibilité avec les navigateurs ne supportant pas le XHTML. On parle donc de Internet Explorer 5 et autres navigateurs disparus. Cette «bonne pratique» est aujourd'hui bien plus un vieux réflexe qu'une bonne pratique. Si on a une raison de préférer une autre forme (compatibilité ou simplicité avec un parseur quelconque) il ne faut pas s'en empêcher aujourd'hui.

a écrit :
Si j'essaye de synthétiser tout ça, en XHTML (car c'est là le fond du problème que je rencontre) peut-on estimer acceptable de désigner la balise "hr" comme une balise vide s'écrivant sous une forme auto-fermante ?

«pouvant s'écrire» ^^.
Particulièrement dans un cadre d'enseignement, il est important de bien différencier la notion de balise et d'élément.

Balise
elles existent sous trois formes: balise ouvrante, balise fermante, balise auto-fermante. Autrement dit:
<p> est une balise, </p> est une balise et <br/> est une balise.

Elément
Un élément est par exemple un paragraphe, on utilise des balises et du texte pour déclarer des éléments:
<p>Ceci est la déclaration d'un paragraphe en HTML</p>

Dans le DOM, il n'y a plus de balises. juste des éléments.

Cette différence est importante, car elle permet de mieux comprendre et introduire le DOM.