以下のスニペットのHTML rel
部分を保持する方法はありますか:
<body vocab="http://schema.org/" typeof="AboutPage">
<address property="author" typeof="person">Contact <a rel="author" href="mailto:[email protected]" property="name">My Name</a></address>
</body>
この警告を受けずに:
AboutPage 0 ERRORS 1 WARNINGS
@type AboutPage
author
@type Person
name My Name
! author The property author is not recognized by Google for an object of type Person.
@type Unspecified Type
ただrel
:
<body vocab="http://schema.org/" typeof="AboutPage">
<address>Contact <a rel="author" href="mailto:[email protected]" >My Name</a></address>
</body>
与える
AboutPage 0 ERRORS 0 WARNINGS
@type AboutPage
author
@type Unspecified Type
私はrel
にtype
をproperty="author"
なしで与えることはできません。これにより、さまざまなタイプの奇妙なauthor
複製が発生します。
rel
を完全に削除したり、meta
データに移動したりできることは承知していますが、構造化データテストツールがrel="author"
の認識を要求する場合は、 type
を与える方法はありませんか?
rel
属性には、競合する可能性のある2つの異なる目的があります。
property
属性と同様ですが、いくつかの技術的な違いがあります)どちらのスニペットでも、 リンクタイプauthor
ではなく Schema.orgプロパティauthor
と解釈されます。
このような取り違えを防ぐ最も一般的な方法は、vocab
を使用しないことです。代わりにprefix
を使用してください(または RDFa Core Initial Context に依存してください):
<!-- using 'prefix' -->
<body prefix="s: http://schema.org/" typeof="s:AboutPage">
<address property="s:author" typeof="s:Person">
Contact <a rel="author" href="mailto:[email protected]" property="s:name">My Name</a>
</address>
</body>
<!-- rely on the RDFa Core Initial Context, which defines 'schema' -->
<body typeof="schema:AboutPage">
<address property="schema:author" typeof="schema:Person">
Contact <a rel="author" href="mailto:[email protected]" property="schema:name">My Name</a>
</address>
</body>
Googleがエラーを報告することに注意してください。
プロパティ
http://www.w3.org/TR/html5/links.html#link-type-author
は、タイプPerson
のオブジェクトではGoogleによって認識されません。
これは問題ありません。無視してかまいません。生成されたURIは、GoogleのSDTTがrel
の値がリンクタイプ(RDFプロパティとしても使用される可能性がある)であることを正しく理解していることを示し、それを解釈しなくなったためです。 Schema.orgプロパティである。また、Schema.org以外のボキャブラリのプロパティを使用すると、このエラーが発生します。これは、完全に細かくて便利なことです。
¹補足: リスト項目7 を正しく理解している場合、同じ要素にrel
属性があり、property
に含まれていないため、RDFaパーサーは特定のケースでrel
属性を無視する必要がありますCURIE/URI値。