Микроданные в разметке списка не проверяются валидатором W3C

Я новичок в микроданных, и я медленно получаю это. Но по какой-то причине это не подтверждается валидатором W3C, так как я ставлю <div> в середине <ul>:

<div itemscope itemtype="http://schema.org/BeautySalon">
  <ul>
    <li>
      <b>
        <span itemprop="name">foobar and you</span>
      </b>
    </li>
    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
      <li>
        <span itemprop="streetAddress">6969 foobar</span>
      </li>
      <li>
        <span itemprop="addressLocality">Miami Beach</span>, 
        <span itemprop="addressRegion">FL</span>
        <span itemprop="postalCode">33139</span>
      </li>
    </div>
    <li>
      <span itemprop="telephone">305 691 6969</span>
    </li>
  </ul>
</div>

Как правильно добавить

<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> 

и правильно добавить все itemprop и все еще быть действительным W3C?


person gustavoanalytics    schedule 01.04.2014    source источник


Ответы (1)


ul не позволяет div быть дочерним, поэтому вы не можете использовать его в качестве контейнера для нескольких элементов li. Возможны различные решения.

Я думаю, что использование ul здесь неуместно. Но если вы хотите продолжать использовать ul:

Кажется нелогичным, что почтовый адрес не находится в том же элементе списка, что и населенный пункт/регион/почтовый индекс. Таким образом, вы можете поместить их все в один и тот же элемент списка (и вы также можете использовать br для почтовых адресов).

Если вы хотите использовать b для имени, вы можете опустить span. Либо укажите микроданные в b, либо (для согласованности) в li.

Если вам не нужен отдельный элемент для номера телефона, вы можете указать микроданные в файле li.

Это даст вам:

<div itemscope itemtype="http://schema.org/BeautySalon">
  <ul>
    <li itemprop="name"><b>foobar and you</b></li>
    <li itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
      <span itemprop="streetAddress">6969 foobar</span><br>
      <span itemprop="addressLocality">Miami Beach</span>, 
      <span itemprop="addressRegion">FL</span><br>
      <span itemprop="postalCode">33139</span>
    </li>
    <li itemprop="telephone">305 691 6969</li>
  </ul>
</div>

Вы можете использовать каждый элемент HTML5 для микроданных. Повторно используйте существующую разметку. Только если вам нужны дополнительные элементы для микроданных, добавьте и используйте div/span (и, возможно, meta/link).

person unor    schedule 01.04.2014