2017-02-21 12 views
1

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

<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. Свойство альта становится описанием 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> 

ответ

1

Это не представляется возможным использовать значения alt или title атрибутов в RDFa.

Вы можете дублировать их «скрытых» 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 , Но я думаю, что яснее перейти к первому фрагменту.

+0

Благодарим вас за ответ. Я решил не использовать элемент «мета», поскольку поисковые системы препятствуют размещению важного контента в скрытых элементах. В конечном итоге я решил использовать JSON-LD, поскольку это дает лучший контроль над метаданными. – Bintz

+0

@Bintz: Хорошо, но это действительно не нужно идти этим путем. Поскольку * все * скрыто с JSON-LD, и поисковые системы способны справиться с этим, не должно быть никаких проблем с использованием намеченных (!) Функций RDFa. Несколько официальных примеров (от Schema.org, а также Google и т. Д.) Используют Schema.org со скрытыми элементами 'meta' /' link'. Идея заключается не в том, чтобы использовать это для «спама», но есть много действительных случаев, когда вы должны (и даже случаи, когда вам нужно) использовать «meta' /' link »в RDFa. Поскольку контент в вашем случае действительно существует в разметке, использование скрытых элементов отлично. – unor

+0

Да, понял, и спасибо за то, что вы сделали эти пункты в этой теме. Решающими факторами при выборе JSON-LD является то, что я предпочитаю это. Я считаю, что это чище, логичнее и легче отлаживать. Я думал, что RDFa будет проще использовать в конкретной ситуации, над которой я работал, но в конечном итоге объем дополнительной работы оказался эквивалентным, поэтому я выбираю JSON-LD, с которым я работал ранее. – Bintz