Puis-je utiliser des balises <link> dans le corps d'un document HTML?


20

Puis-je utiliser des <link>balises 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 d'un balisage 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 obtenu 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.

W3 indique cependant clairement que les <link>balises ne doivent être placées que dans la section head, rendant ainsi l'exemple Schema.org invalide.

Si je veux m'en tenir à un balisage correct, quels conseils dois-je suivre?


Vous vous connectez à w3schools.com (qui n'a rien à voir avec le W3C), pas à w3.org .
unor

Ah, oui bien sûr, vous avez raison. Suppression du lien vers W3schools. Merci.
Edward Touw

Voici ce qui arrive au référencement: webmasters.googleblog.com/2013/04/…
Faiz

Réponses:


23

Microdata étend HTML5 d'une manière qui linket des metaéléments peuvent être utilisés dans le body, si elles contiennent un itempropattribut.

Si l' itempropattribut est présent sur linkou meta, il s'agit de contenu de flux et de contenu de phrasé. Les éléments linket metapeuvent être utilisés lorsqu'un contenu de phrasé est attendu si l' itempropattribut est présent.

Cette extension est actuellement également incluse dans le HTML 5.1 Nightly (Editor's Draft) (voir linkélément et metaélément ). Mais comme la spécification des microdonnées est récemment devenue une note du W3C , 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 linket metapuissent être utilisés dans le body, s'ils contiennent un propertỳattribut.

Si l' @propertyattribut RDFa est présent sur les éléments linkou meta, ils DOIVENT être considérés comme conformes s'ils sont utilisés dans bodyle document. Plus précisément, lorsque les éléments linkou metacontiennent l' @propertyattribut RDFa et sont utilisés dans bodyun document HTML5, ils DOIVENT être considérés comme du contenu de flux.


Vous n'êtes donc pas autorisé à utiliser n'importe quel link élément (par exemple, <link href="" rel="" />) dans le body, mais uniquement ceux avec un itempropattribut (pour les microdonnées) resp. un propertyattribut (pour RDFa).

Ainsi, votre linkélément peut être utilisé dans body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>

Merci! Donc, si je comprends bien, je suis autorisé à utiliser la <link>balise dans le corps tant qu'elle contient un attribut itemprop? Et tant que l'attribut itemprop est inclus, je peux également inclure hreftel qu'utilisé dans ma question d'origine?
Edward Touw

@EdwardTouw: Oui; vous DEVEZ donner l' hrefattribut dans tous les cas. Aussi longtemps que l' linkélément a un itempropattribut, vous pouvez l'utiliser dans le body. Il ne s'agit alors plus de métadonnées pour l'ensemble du document (comme ce serait le cas pour les linkéléments habituels dans le head), mais d'un élément "caché" pour les microdonnées.
unor

11

W3Schools ne définit pas les normes de l'industrie sur le codage HTML. Il s'agit simplement d'un site de référence tiers qui n'est en aucun cas affilié au W3C . W3Schools et d'autres sites ont souvent tort lorsqu'ils utilisent des technologies de codage de pointe telles que Schema et Responsive design . Lorsque vous utilisez un code assez nouveau, votre guichet unique devrait être le W3C, conformément aux normes de conformité, et peut-être HTML5 Doctor si vous avez besoin d'aide pour comprendre HTML5, car ils ne sont pas officiels mais très respectés.

En regardant votre code, il passe la validation W3C sans aucun problème avec l'élément de lien 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>

RÉPONSE COURTE: Oui, vous pouvez utiliser à l'<LINK>intérieur<body> </body>mais comme Unor l'a mentionné dans sa réponse doit inclure itemprop.


Notez que vous créez un lien vers un brouillon HTML5 de 2009. Dans le CR HTML5 actuel, la définition pertinente n'est pas incluse.
unor

0

L'élément link peut être ajouté au corps d'un document HTML si l' itempropattribut est présent. Voici une démo .

Voici également un exemple d'attribut link itemprop .


2
S'il s'agit de liens vers votre site, veuillez ajouter une clause de non-responsabilité du type "J'ai couvert cela dans mon blog ici ...".
dan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.