2017-02-21 53 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. ALT属性成为描述 3.标题属性变成名称 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

这是不可能使用的alttitle属性值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> 

如果不将img元素需要property(例如,用于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

谢谢你的回答。我选择不使用“meta”元素解决方案,因为搜索引擎不鼓励将重要内容放置在隐藏元素中。我最终选择使用JSON-LD,因为这可以更好地控制元数据。 – Bintz

+0

@Bintz:好吧,但这并不需要这样。由于使用JSON-LD隐藏了*所有内容,并且搜索引擎能够处理这些内容,因此使用RDFa的预期(!)功能应该没有问题。一些官方的例子(来自Schema.org以及Google等)使用Schema.org和隐藏的'meta' /'link'元素。这个想法并不是用来“垃圾”,但是有很多有效的情况你应该(甚至在你必须的情况下)在RDFa中使用'meta' /'link'。由于您的案例中的内容实际上存在于标记中,因此使用隐藏元素非常合适。 – unor

+0

是的,理解并感谢您在本主题中提出这些要点。选择JSON-LD的决定性因素是我更喜欢它。我发现它更清洁,更合理,更易于调试。我认为RDFa在我所处理的特定情况下会更容易使用,但最终额外工作的数量证明是相当的,所以我选择之前使用过的JSON-LD。 – Bintz