Является <link> (не rel= "stylesheet" ), разрешенным для использования в <body>?

Новый schema.org Google, Yahoo и MS рекомендует использовать атрибут <link> для отображения состояния продуктов в онлайн-режиме магазин:

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <link itemprop="availability" href="#" onclick="location.href='http://schema.org/InStock'; return false;"/>Available today!
</div>

Тем не менее согласно w3schools.org <link> разрешено только в разделах заголовка:

Примечание. Этот элемент находится только в разделе главы, но может появляться любое количество раз.

Я не привык к стилю W3C, поэтому я не смог понять точное определение W3C. Может ли кто-нибудь мне помочь: действительно ли разрешено использовать <link> внутри тела (в HTML5, поскольку schema.org использует теги HTML5), или Google, Yahoo и MS нарушают стандарт?

Ответ 1

В спецификации HTML WHATWG упоминается, что элемент LINK может иметь либо атрибут rel:

<link rel="…" />

или itemprop -attribute

<link itemprop="…" />

но не оба.

rel -версия ограничена элементом HEAD, тогда как itemprop -версия может появляться как в HEAD, так и BODY -элементах.

http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-link-element

Что это за спецификация WHATWG:

whatwg.org/specs/web-apps/current-work/multipage/introduction.html#is-this-html5?

Ответ 2

Ссылка разрешена в BODY. У меня была такая же проблема с проверкой тега ссылки в HTML5, и я решил это с помощью этого

<link rel="stylesheet" property="stylesheet" href="css/homepage.css">

Необходимо иметь теги property и rel

ОБНОВЛЕНИЕ 2016 (спасибо yuyokk ниже): Недавно было изменено спецификацию HTML5, которая позволяет иметь ссылки в теле

Ответ 3

Недавно было изменено на спецификацию HTML5, которая позволяет иметь ссылки в теле

Ответ 4

Я хотел бы добавить к ответам выше, короче

<body>
    <link rel="stylesheet" property="stylesheet" href="pathto.css">
</body>

делает ошибку валидации. Достаточно просто добавить атрибут property="" (синтаксис RDFa или itemprop="" (синтаксис микроформата). @Jukka K. Korpela и @sideshowbarker объясняют в своих ответах, причина кроется в HTML5 + RDFa 1.1 spec.

Вышеприведенное решение в основном является обходным путем, позволяющим валидатору игнорировать встроенные таблицы стилей по мере необходимости в реализации критического пути. В будущих версиях валидаторов он, надеюсь, устарел.

Кстати, в HTML5 вам не нужен атрибут type и самозакрывающийся тег синтаксис.