Posso usar <link>
tags no corpo de uma página HTML? Tentei encontrar a resposta para essa pergunta, mas encontrei informações contraditórias.
Ao adicionar a marcação de microdados do Schema.org a uma página HTML, quero adicionar informações canônicas em uma tag de link 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>
Eu peguei o código de exemplo acima no Schema.org . Segundo eles, este é o caminho a seguir para as pessoas que desejam adicionar uma referência canônica a um itemprop, mas não desejam colocar um hiperlink em seu site.
No entanto, W3 afirma claramente que as <link>
tags devem ser colocadas apenas na seção head, tornando assim o exemplo Schema.org inválido.
Se eu quiser manter a marcação correta, que conselho devo seguir?
Respostas:
Os microdados estendem o HTML5 de uma maneira que
link
emeta
elementos podem ser usados nobody
, se eles contiverem umitemprop
atributo.Atualmente, esta extensão também está incluída no HTML 5.1 Nightly (rascunho do editor) (consulte o
link
elemento e ometa
elemento ). Porém, quando a especificação Microdata se tornou uma Nota do W3C recentemente, teremos que ver o que acontece com essa referência.O RDFa 1.1 estende o HTML5 de uma maneira que
link
emeta
elementos podem ser usados nobody
, se eles contiverem umpropertỳ
atributo.Portanto, você não tem permissão para usar nenhum
link
elemento (por exemplo,<link href="" rel="" />
) nobody
, mas somente aqueles com umitemprop
atributo (para Microdata) resp. umproperty
atributo (para RDFa).Assim, seu
link
elemento pode ser usado nobody
:fonte
<link>
tag no corpo desde que contenha um atributo itemprop? E enquanto o atributo itemprop estiver incluído, também posso incluirhref
conforme usado na minha pergunta original?href
atributo em qualquer caso. Portanto, desde que olink
elemento tenha umitemprop
atributo, você pode usá-lo nobody
. Então, não são mais metadados para todo o documento (como seria o caso delink
elementos comuns nohead
), mas um elemento "oculto" para Microdados.O W3Schools não define os padrões da indústria na codificação HTML. Eles são simplesmente um site de referência de terceiros que não é afiliado ao W3C de qualquer maneira. O W3Schools e outros sites geralmente estão errados ao usar tecnologias de codificação de ponta, como esquema e design responsivo . Ao usar um código relativamente novo, seu balcão único deve ser o W3C, conforme definido os padrões de conformidade e, talvez, o HTML5 Doctor, se você precisar de ajuda para entender o HTML5 por meio deles, não é oficial, mas é altamente respeitado.
Observando seu código, ele passa na validação do W3C sem nenhum problema com o elemento de link contido no diretório
<body> </body>
RESPOSTA CURTA: Sim, você pode usar
<LINK>
dentro,<body> </body>
mas como Unor mencionou em sua resposta, deve incluir itemprop.fonte
O elemento de link pode ser adicionado ao corpo de um documento HTML se o
itemprop
atributo estiver presente. Aqui está uma demonstração .Aqui também está um exemplo de atributo itemprop do link .
fonte