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 элементы вообще!

  • Спецификация микроданных ничего не говорит о spancontent атрибут, когда он дает правила для значений. [Если 'textContent элемента' не переопределено content атрибут, но я не могу найти никакой поддержки для этого.]

  • Даже полная спецификация WHATWG HTML5+ для микроданных не подтверждает, что существует content атрибут на span (см . span элемент и глобальные атрибуты).

Итак, я полагаю, пример schema.org не соответствует. Но так ли это неправильно? Если нет, откуда взялась эта практика и насколько она принята?

2 ответа

Решение

Да, это неправильно. Ни Микроданные, ни HTML5 не определяют content атрибут для span элемент.

Несколько человек хотели его использовать, см., Например, код в этих вопросах:

Я не уверен, откуда именно эта путаница.

(Это не помогает, что Инструмент тестирования структурированных данных 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 не примет это.

Другие вопросы по тегам