Puis-je utiliser les balises <link>
dans le corps d'une page HTML? J'ai essayé de trouver la réponse à cette question, mais j'ai trouvé des informations contradictoires.
Lors de l'ajout de balises de microdonnées Schema.org à une page HTML, je souhaite ajouter des informations canoniques dans une balise de lien comme celle-ci:
<div itemscope itemtype="http://schema.org/Book">
<span itemprop="name">The Catcher in the Rye</span>—
<link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
by <span itemprop="author">J.D. Salinger</span>
</div>
J'ai eu l'exemple de code ci-dessus de Schema.org . Selon eux, c'est la voie à suivre pour les personnes qui souhaitent ajouter une référence canonique à un itemprop, mais ne veulent pas placer un lien hypertexte sur leur site Web.
Cependant, W3 indique clairement que les balises <link>
ne doivent être placées que dans la section head, rendant ainsi l'exemple Schema.org invalide.
Si je veux m'en tenir à corriger le balisage, quel conseil dois-je suivre?
Microdonnées étend HTML5 de manière à ce que les éléments link
et meta
puissent être utilisés dans l'élément body
, si ils contiennent un attribut itemprop
.
Si l'attribut
itemprop
est présent surlink
oumeta
, il s'agit d'un contenu de flux et d'un contenu de phrasé. Les élémentslink
etmeta
peuvent être utilisés lorsque le contenu doit être reformulé si l'attributitemprop
est présent.
Cette extension est actuellement incluse dans HTML 5.1 Nightly (version de l'éditeur) (voir link
element et meta
element ). Mais comme la spécification des microdonnées est devenue une note du W3C récemment, nous devrons voir ce qui se passe avec cette référence.
RDFa 1.1 étend HTML5 de manière à ce que les éléments link
et meta
puissent être utilisés dans le body
, s'ils contiennent un attribut propertỳ
.
Si l'attribut
@property
RDFa est présent sur les élémentslink
oumeta
, ils DOIVENT être considérés comme conformes s'ils sont utilisés dansbody
du document. Plus spécifiquement, lorsque les élémentslink
oumeta
contiennent l'attribut RDFa@property
et sont utilisés dans lebody
d'un document HTML5, ils DOIVENT être considérés comme un contenu de flux.
Ainsi, vous êtes pas autorisé à utiliser tout élément link
(par exemple, <link href="" rel="" />
) dans body
, mais uniquement ceux avec un attribut itemprop
(pour les microdonnées) resp. un attribut property
(pour RDFa).
Ainsi, votre élément link
peut être utilisé dans le body
:
<body>
<!-- … -->
<link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
W3Schools ne définit pas les normes de l'industrie en matière de codage HTML. Ils sont simplement un site de référence tiers qui est pas affilié au W3C en tout cas. W3Schools et d’autres sites ont souvent tort d’utiliser des technologies de codage avancées telles que Schema et Responsive Design . Lorsque vous utilisez du code relativement nouveau, votre guichet unique devrait être W3C comme défini par les normes de conformité, et peut-être HTML5 Doctor si vous avez besoin d'aide pour comprendre HTML5, il n'est pas officiel mais hautement respecté .
En regardant votre code, il passe validation du W3C sans aucun problème avec l'élément link contenu dans le <body> </body>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Book">
<span itemprop="name">The Catcher in the Rye</span>—
<link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
by <span itemprop="author">J.D. Salinger</span>
</div>
</body>
</html>
REPONSE COURTE: Oui, vous pouvez utiliser <LINK>
dans <body> </body>
mais comme Unor l’a mentionné dans sa réponse, doit inclure itemprop.
L'élément de lien peut être ajouté au corps d'un document HTML si l'attribut itemprop
est présent. Voici une démo .
Voici également un exemple d'attribut link itemprop .