HTML5 микроданные: охват контента?
Я прочитал спецификацию HTML5, спецификацию микроданных и спецификацию WHATWG HTML5 (с микроданными). Это хорошо написано и легко понять.
Но теперь я прочитал спецификацию книги schema.org и наткнулся на следующие фрагменты:
<span itemprop="price" content="6.99">$6.99</span>
<span itemprop="inLanguage" content="en">English-language</span>
<span itemprop="name" content="Tolkien, J. R. R. (John Ronald Reuel)">
J. R. R. Tolkien</span>
Очевидно (сравните с версией JSON), значения этих свойств микроданных являются значениями content
атрибуты span
элементы. (Конечно, если нет content
атрибут, значение вместо textContents
из span
элемент.)
Но я не могу найти никакой поддержки для этой практики в спецификациях HTML и микроданных. На самом деле, я даже не могу найти никаких доказательств того, что существует content
атрибут на span
элементы вообще!
Спецификация микроданных ничего не говорит о
span
content
атрибут, когда он дает правила для значений. [Если 'textContent элемента' не переопределеноcontent
атрибут, но я не могу найти никакой поддержки для этого.]Даже полная спецификация WHATWG HTML5+ для микроданных не подтверждает, что существует
content
атрибут наspan
(см .span
элемент и глобальные атрибуты).
Итак, я полагаю, пример schema.org не соответствует. Но так ли это неправильно? Если нет, откуда взялась эта практика и насколько она принята?
2 ответа
Да, это неправильно. Ни Микроданные, ни HTML5 не определяют content
атрибут для span
элемент.
Несколько человек хотели его использовать, см., Например, код в этих вопросах:
- Скрыть значение свойства микроданных в атрибуте содержимого?
- Категории для продукта в schema.org?
- Является ли атрибут "content" допустимым для тега >, если это так, то является ли это хорошей практикой?
- разметка доступности товара schema.org
Я не уверен, откуда именно эта путаница.
(Это не помогает, что Инструмент тестирования структурированных данных Google неправильно использует content
атрибут вместо содержимого элемента; но, по крайней мере, все другие парсеры микроданных, кажется, делают это правильно.)
Может быть, некоторые люди запутались, потому что RDFa (но не Microdata) определяет и позволяет content
атрибут для span
, Посмотрите Расширения HTML+RDFa к синтаксису HTML5:
Во избежание сомнений, следующие атрибуты RDFa разрешены для всех элементов в модели содержимого HTML5:
@vocab
,@typeof
,@property
,@resource
,@prefix
,@content
,@about
,@rel
,@rev
,@datatype
, а также@inlist
,
(Извините, у меня недостаточно репутации, чтобы оставить комментарий.)
Мы находимся в конце 2017 года. Так или иначе, веб-документы MDN ( https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemprop) и документы схемы ( http://schema.org/telephone) по-прежнему предлагают использовать content
атрибут на span
используя микроданные. Конечно, никакой валидатор html5 не примет это.