Hail2u

head要素以下でのitemprop属性

Microdataではitemprop属性を使ってプロパティーを追加する。HTML標準仕様の変更によってbody要素以下でもlinkmeta要素を使えるようになったので、どうでも良いマークアップを追加してCSSで隠して誤魔化すとかしなくても大体なんとかなるようになった。しかしその一方でlinkmeta要素はitemprop属性と同時にrel属性やname属性を使うことはできない。そのため例えば<meta name="description">タグにitemprop="description"を追加してWebPageスキーマのプロパティーとして追加するなどということは無理。

<html lang="ja-JP" itemscope itemtype="http://schema.org/WebPage">
  <head>
    <meta content="This is a foo." name="description" itemprop="description">
    <link href="/foo" rel="canonical" itemprop="url">
  </head>
</html>

つまりこう書くことができないので、descriptionurlプロパティーの追加のためには別に改めて書く必要がある。もちろん概要がbody要素以下にあったり自身へのリンクがあったりするならそれにitemprop属性を付ければ良いのだけど、無いことも当然あるだろうし。

<html lang="ja-JP" itemscope itemtype="http://schema.org/WebPage">
  <head>
    <meta content="This is a foo." name="description">
    <meta content="This is a foo." itemprop="description">
    <link href="/foo" rel="canonical">
    <link href="/foo" itemprop="url">
  </head>
</html>

うっ……。大雑把に言うとhead要素内に書いたメタデータをMicrodataのプロパティーとして追加することはできないということのような気がする。id属性を使ってitemrefで参照すればいいのかなぁとかちょっと思ったけど全然違う。そのうちなんとかなるんだろか。