¿Puedo usar etiquetas <link> en el cuerpo de un documento HTML?

20

¿Puedo usar <link>etiquetas en el cuerpo de una página HTML? Traté de encontrar la respuesta a esta pregunta, pero encontré información contradictoria.

Al agregar el marcado de microdatos de Schema.org a una página HTML, quiero agregar información canónica en una etiqueta de enlace como esta:

<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>

Obtuve el código de ejemplo anterior de Schema.org . Según ellos, este es el camino a seguir para las personas que desean agregar una referencia canónica a un itemprop, pero no quieren colocar un hipervínculo en su sitio web.

Sin embargo, W3 establece claramente que las <link>etiquetas solo deben colocarse dentro de la sección de cabecera, lo que invalida el ejemplo de Schema.org.

Si quiero seguir con el marcado correcto, ¿qué consejo debo seguir?

Edward Touw
fuente
Está vinculando a w3schools.com (que no tiene nada que ver con el W3C), no a w3.org .
hasta el
Ah, sí, por supuesto, tienes razón. Se eliminó el enlace a W3schools. Gracias.
Edward Touw
Esto es lo que le sucede al SEO: webmasters.googleblog.com/2013/04/…
Faiz

Respuestas:

23

Los microdatos extienden HTML5 de una manera que linky los metaelementos pueden usarse en el body, si contienen un itempropatributo.

Si el itempropatributo está presente en linko meta, son contenido de flujo y contenido de fraseo. Los elementos linky metapueden usarse cuando se espera contenido de fraseo si el itempropatributo está presente.

Esta extensión también se incluye actualmente en HTML 5.1 Nightly (Borrador del editor) (ver linkelemento y metaelemento ). Pero a medida que la especificación Microdata se convirtió en una Nota W3C recientemente, tendremos que ver qué sucede con esta referencia.

RDFa 1.1 extiende HTML5 de una manera que linky los metaelementos pueden usarse en el body, si contienen un propertỳatributo.

Si el @propertyatributo RDFa está presente en los elementos linko meta, DEBEN verse como conformes si se usan en bodyel documento. Más específicamente, cuando linko los metaelementos contienen el @propertyatributo RDFa y se usan en bodyun documento HTML5, DEBEN considerarse contenido de flujo.


Por lo que son no puede usar ningún link elemento (p. Ej. <link href="" rel="" />) En el body, sino solo aquellos con un itempropatributo (para Microdatos) resp. un propertyatributo (para RDFa).

Por lo tanto, su linkelemento puede usarse en body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
unor
fuente
¡Gracias! Entonces, si entiendo correctamente, ¿puedo usar la <link>etiqueta en el cuerpo siempre que contenga un atributo itemprop? Y siempre que se incluya el atributo itemprop, ¿también puedo incluirlo hrefcomo se usa en mi pregunta original?
Edward Touw
@EdwardTouw: Sí; DEBE dar el hrefatributo en cualquier caso. Por lo tanto, siempre que el linkelemento tenga un itempropatributo, puede usarlo en el body. Entonces ya no son metadatos para todo el documento (como sería el caso de los linkelementos habituales en el head), sino un elemento "oculto" para Microdata.
hasta el
11

W3Schools no establece los estándares de la industria en la codificación HTML. Son simplemente un sitio de referencia de terceros que no está afiliado de ninguna manera con el W3C . W3Schools y otros sitios a menudo se equivocan al usar tecnologías de codificación de vanguardia como el esquema y el diseño receptivo . Cuando use un código bastante nuevo, su ventanilla única debería ser W3C, ya que establece los estándares de cumplimiento, y tal vez HTML5 Doctor si necesita ayuda para comprender HTML5 a través de ellos, no son oficiales pero son muy respetados.

Al mirar su código, pasa la validación W3C sin ningún problema con el elemento de enlace contenido en el<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>

RESPUESTA CORTA: Sí, puede usar<LINK>dentro,<body> </body>pero como Unor ha mencionado en su respuesta, debe incluir itemprop.

Simon Hayter
fuente
Tenga en cuenta que está vinculando a un borrador HTML5 desde 2009. En el actual HTML5 CR no se incluye la definición relevante.
hasta el
0

El elemento de enlace se puede agregar al cuerpo de un documento HTML si el itempropatributo está presente. Aquí hay una demostración .

También aquí hay un ejemplo de atributo itemprop de enlace .

Daniel
fuente
2
Si se trata de enlaces a su sitio, agregue un descargo de responsabilidad como "Cubrí esto en mi blog aquí ...".
dan