Schema.org SiteNavigationElement
をこのように構成する必要がありますか
<div itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<ul>
<li itemprop="url"><a href="#" itemprop="name">Link 1</a>
</ul>
</div>
またはこのような?
<div itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<ul>
<li>
<a href="#" itemprop="url"><span itemprop="name">Link 1</span></a>
</li>
</ul>
</div>
あなたの質問は次のようです:
li
でitemprop="url"
を指定できますか?a
でitemprop="name"
を指定できますか?これらの質問の両方に対する答えは、いいえ、そうすべきではありません。 Microdataはa
などの要素の特別な解析ルールを定義します
Schema.orgの url
property は、値としてURLを想定しています。 Microdataでは、a
/area
/link
/などの要素を使用する必要があることを定義しています。 ( 必須src
またはhref
属性を持つ任意の要素)URLを指定します。最初の例では、url
プロパティの値はnotではなく、「Link 1」というテキストになります。
a
要素のプロパティ(href
属性がある場合)は常にhref
コンテンツ(要素コンテンツではなく)を値として取るため、最初の例ではURLを値として使用します name
property (ただし、もちろんURLではなくテキストが必要です)。
そのため、最初の例では間違った結果が生成されます。 2番目の例は問題ありません。
span
要素を省略することも可能であることに注意してください。の代わりに
<li>
<a href="#" itemprop="url"><span itemprop="name">Link 1</span></a>
</li>
あなたが使うことができます
<li itemprop="name">
<a href="#" itemprop="url">Link 1</a>
</li>
(スタックオーバーフローに関する質問の 私の同様の回答 も参照してください。)
Search Engine Land によると、次のようになります。
<ul itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<li itemprop="name">
<a itemprop="url" href="#">Link 1</a>
</li>
<li itemprop="name">
<a itemprop="url" href="#">Link 2</a>
</li>
<li itemprop="name">
<a itemprop="url" href="#">Travel Resources</a>
</li>
</ul>
SiteNavigationElementには私にとって問題があり、他の一部の人々にとっても同様です。@ bybeがコメントで投稿した質問でわかるように。問題は範囲の不足であると言えます。
SiteNavigationElementはナビゲーションシステムの単一の項目を参照しているため、サイトのナビゲーションの要素として読み取られます。または、ナビゲーションシステム全体を指すため、サイトのナビゲーション要素
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div itemscope itemtype="http://schema.org/WebPageElement">
<link itemprop="additionalType" href="http://schema.org/ItemList" />
<meta itemprop="name" content="navigation_menu" />
<ul>
<li itemprop="additionalType" itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<span itemprop="itemListElement">
<a href="http://www.example.com/link_1" itemprop="url"><span itemprop="name">Link 1</span></a>
</span>
</li>
<li itemprop="additionalType" itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<span itemprop="itemListElement">
<a href="http://www.example.com/link_2" itemprop="url"><span itemprop="name">Link 2</span></a>
</span>
</li>
</ul>
</div>
</body>
</html>
これはもう少し複雑です。ナビゲーションシステムの各メンバーをタグに値する要素と見なすだけでなく、additionalTypeを使用してアイデアを伝える複合構文も必要です。それらのリンクは何かに属するアイテムのリストであること。
更新
この回答のコードを上記のバージョンに変更し、microdataおよびHTMLとして機能し、検証する方法に適合させました。質問の編集履歴では、私が初期に使用したオプションを見ることができます。それらのコードを置き換えたのは