[html5] microdata itemref

Brian Tremblay webmaster at tsmchughs.com
Mon Dec 10 11:57:19 PST 2012


On 12/10/12 11:07 AM, Ian Hickson wrote:
> On Mon, 10 Dec 2012, Brian Tremblay wrote:
>>
>> What I'm trying to do is associate "Napa Valley" in the <p> element with
>> the winery in the header, as that winery's addressRegion.
>
> If you mean the text, you need some additional markup because the <a>
> element in microdata only ever represents its URL, so e.g.:
>
>    <article itemscope itemtype="http://schema.org/FoodEvent">
>     <header>
>       <h1 itemprop="name">Franciscan Estate tasting</h1>
>
>       hosted by
>       <div itemprop="performer" itemscope itemtype="http://schema.org/Person">
>         <span itemprop="name">J. Kounellas</span>,
>         <span itemprop="worksFor" itemscope itemtype="http://schema.org/Winery"
>               itemref="wineryLocation">
>           <span itemprop="name">Franciscan Estate Winery</span>
>         </span>
>       </div>
>     </header>
>
>     <p itemprop="description">Join us for a special wine event featuring
>     <a href="http://en.wikipedia.org/wiki/Napa_Valley_AVA"
>      ><span id="wineryLocation" itemprop="addressRegion">Napa
>      Valley</span></a>'s Franciscan Estate Winery.
>     </p>
>    </article>


That generates an error from Google's rich snippet testing tool:

"Warning: Page contains property "addressregion" which is not part of 
the schema."

The microdata food event does not contain an addressRegion property.

I could change the markup so that the <span id="wineryRegion"> is a 
nested postalAddress itemtype, but that would associate the *event* with 
that address, which is wrong. "Napa Valley" is the location of the 
winery, not the event.

These are the problems I always run into.

> Basically, though, you just put the itemref="" on the element with
> itemscope="" and give it IDs of elements to include as if they were
> children of the element with itemscope="".

That is indeed what the spec says, but I can not get it to work. :-(

-- 
Brian Tremblay



More information about the Help mailing list