Schema.org RDFa: разметка ‹img› как ImageObject?

Я использую Schema.org и RDFa для разметки HTML-страницы. У меня есть изображение следующим образом:

<div class="image_container">
    <a href="big_whatever.jpg">
        <img src="whatever.jpg" alt="A picture of Whatever" title="Whatever">
    </a>
</div>

Как правильно это разметить, чтобы: 1. big_whatever.jpg (href ссылки) стал contentUrl 2. Свойство alt стало описанием 3. Свойство title стало именем 4. В идеале я бы тоже хотел свойство alt также должно быть заголовком.

Теперь это достаточно просто с JSON-LD, но я предпочитаю использовать RDFa для этого конкретного случая. Это то, что у меня есть до сих пор:

<div class="image_container" vocab="http://schema.org/" typeof="ImageObject">
    <a href="big_whatever.jpg">
        <img src="whatever.jpg" alt="A picture of Whatever" title="Whatever">
    </a>
</div>

person Bintz    schedule 21.02.2017    source источник


Ответы (1)


В RDFa нельзя использовать значения атрибутов alt или title.

Вы можете продублировать их со «скрытыми» meta элементами:

<div vocab="http://schema.org/" typeof="ImageObject">
  <a property="contentUrl" href="big_whatever.jpg">
    <img src="whatever.jpg" alt="A picture of Whatever" title="Whatever" />
    </a>
  <meta property="description caption" content="A picture of Whatever" />
  <meta property="name" content="Whatever" />
</div>

Если вам не нужен property в элементе img (например, для thumbnailUrl), вы можете использовать property+ content для сохранения одного элемента meta:

<div vocab="http://schema.org/" typeof="ImageObject">
  <a property="contentUrl" href="big_whatever.jpg">
    <img src="whatever.jpg" alt="A picture of Whatever" title="Whatever" property="name" content="Whatever" />
    </a>
  <meta property="description caption" content="A picture of Whatever" />
</div>

Благодаря атрибуту content RDFa не будет использовать значение src. Но я думаю, что понятнее будет использовать первый фрагмент.

person unor    schedule 21.02.2017
comment
Спасибо за ответ. Я решил не использовать решение с метаэлементами, так как поисковые системы не одобряют размещение важного контента в скрытых элементах. В конечном итоге я решил использовать JSON-LD, так как это дает лучший контроль над метаданными. - person Bintz; 23.02.2017
comment
@Bintz: Хорошо, но на самом деле не нужно идти по этому пути. Поскольку всё скрыто с помощью JSON-LD, и поисковые системы способны с этим справиться, проблем с использованием предполагаемых (!) функций RDFa быть не должно. Несколько официальных примеров (от Schema.org, а также от Google и т. д.) используют Schema.org со скрытыми элементами meta/link. Идея состоит не в том, чтобы использовать это для рассылки спама, но есть много допустимых случаев, когда вы должны (и даже должны) использовать meta/link в RDFa. Поскольку контент в вашем случае действительно существует в разметке, использование скрытых элементов совершенно нормально. - person unor; 23.02.2017
comment
Да, понял, и спасибо, что обратили внимание на эти моменты в этой теме. Решающим фактором при выборе JSON-LD является то, что на самом деле я предпочитаю его. Я считаю, что это чище, логичнее и проще в отладке. Я думал, что RDFa будет проще использовать в конкретной ситуации, над которой я работал, но в конечном итоге объем дополнительной работы оказался эквивалентным, поэтому я выбрал JSON-LD, с которым работал ранее. - person Bintz; 23.02.2017