Допустимы ли атрибуты микроданных для любого элемента?


Допустимо ли добавлять атрибуты микроданных (например, используя Schema.org словарь), например itemprop="name", к элементам HTML, которые не являются span или div?

Например:

<h2 class="product_name" itemprop="name">Baseball Glove</h2>
Author: unor, 2014-05-25

1 answers

Да, вы можете использовать каждый элемент HTML5 для микроданных...

Микроданные определяют 5 новых атрибутов для HTML5:

  • itemid
  • itemprop
  • itemref
  • itemscope
  • itemtype

Давайте посмотрим, где их можно использовать. Раздел 5.2 гласит:

У каждого элемента HTML может быть указан атрибут itemscope.

Таким образом, каждый элемент может иметь itemscope. Далее об этом говорит:

Элементы с атрибутом itemscope могут иметь указанный атрибут itemtype

Так что, если у него есть itemscope (и мы узнали, что он может быть у каждого элемента), у него тоже может быть itemtype. Далее:

Элементы с атрибутом itemscope и атрибутом itemtype [...] также могут иметь указанный атрибут itemid

Если у него есть itemscope и itemtype, то у него тоже может быть itemid. И:

Элементы с атрибутом itemscope могут иметь атрибут itemref указанный атрибут

Если у него есть itemscope, он может иметь itemref.

Сейчас отсутствует только itemprop. Это определено в разделе 5.3:

У каждого элемента HTML может быть указан атрибут itemprop

Таким образом, itemprop также можно использовать для каждого элемента.

(Обратите внимание, что микроданные (Примечание W3C) относятся к спецификации HTML5 для определения того, что такое "элемент HTML" , поэтому по сути "элемент HTML" означает "элемент HTML5".)

...но некоторые элементы получают другую модель контента (когда используется itemprop)

См. 8.1 Модели контента.

Например:

  • href становится обязательным атрибутом для a и area
  • data становится обязательным атрибутом для iframe
  • атрибуты name, http-equiv и charset больше не допускаются на meta

...и некоторые элементы имеют специальные правила для определения значения свойства (когда itemprop используется)

→ См. 5.4 Значения.

Например:

  • Специальные правила для ссылок. Здесь значение foobar - это URL-адрес http://example.com/, а не строка Link:

    <a href="http://example.com/" itemprop="foobar">Link</a>
    
  • Здесь значение foobar равно 5, а не 10:

    <data value="5" itemprop="foobar">10</data> 
    

(Взято из моего ответа на закрытый вопрос о SO.)

 2
Author: unor, 2017-05-23 12:37:06