Je teste Microdata + Schema.org pour un événement, mais le outil de test de Google indique que le location
est manquant bien qu'il ait été fourni.
Une idée de ce que je déconne?
<div itemscope itemtype="http://schema.org/SocialEvent">
<a itemprop="url" href="www.convention-name.org"><div itemprop="name"><strong>Bob's Convention</strong></div>
</a>
<div itemprop="description">blah blah blah blah blah</div>
<div><meta itemprop="startDate" content="2015-05-01:00.000">Starts: 2015-05-01:00.000</div>
<meta itemprop="endDate" content="2015-05-02:00.000">Ends: 2015-05-02:00.000
</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">55 street</div>
<div><span itemprop="addressLocality">Nashville</span>, <span itemprop="addressRegion">TN</span></div><div itemprop="postalCode">37225</div>
<div itemprop="addressCountry">usa</div>
</div>
Il vous manque des balises de fermeture </div>
. Si j'interprète correctement vos intentions, cela devrait ressembler à ceci:
<div itemscope itemtype="http://schema.org/SocialEvent">
<a itemprop="url" href="www.convention-name.org"><div itemprop="name"><strong>Bob's Convention</strong></div></a>
<div itemprop="description">blah blah blah blah blah</div>
<div><meta itemprop="startDate" content="2015-05-01:00.000">Starts: 2015-05-01:00.000</div>
<div><meta itemprop="endDate" content="2015-05-02:00.000">Ends: 2015-05-02:00.000</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">55 street</div>
<div>
<span itemprop="addressLocality">Nashville</span>,
<span itemprop="addressRegion">TN</span>
</div>
<div itemprop="postalCode">37225</div>
<div itemprop="addressCountry">usa</div>
</div> <!-- /PostalAddress -->
</div> <!-- /SocialEvent -->
En vérifiant maintenant cette annotation, l'outil de test de Google signalera différentes erreurs pour PostalAddress
:
address
: manquant et obligatoire
name
: manquant et obligatoireLe champ
location
peut ne pas être vide.
L'ajout d'un name
à l'item PostalAddress
corrige les deux dernières erreurs. Il vous laisse donc cette erreur étrange: "address
: missing and required".
Étrange , car PostalAddress
ne peut pas avoir un address
propriété , comme je l'ai expliqué dans un réponse à une question similaire sur Stack Overflow . Mon hypothèse: l’outil de test de Google est bogué.
D'après ce que j'ai trouvé, l'outil de validation de données structurées de Google ne vous permet pas d'utiliser PostalAddress pour "emplacement", bien que cela soit autorisé par le schéma. Dans ici https://schema.org/location il est spécifiquement indiqué que "emplacement" peut être soit Lieu, soit PostalAddress.
Etant donné que les lieux ont des attributs "adresse" et "nom" et que GSDVT les demande bien que l'emplacement soit de type PostalAddress, je pense qu'il est prudent de dire qu'il s'agit d'un bug Si ce n'est pas autorisé, alors l'erreur devrait être "emplacement ne peut pas être de type PostalAddress". Si vous ajoutez réellement 'adresse' au type d'adresse postale, GSDVT déposera également une plainte à ce sujet.
En outre, il est logique d’avoir des événements qui n’ont pas été nommés.
Bien qu'il soit indiqué sur schema.org que Event.location peut être soit Lieu, soit PostalAddress, le documentation Google indique le contraire.
Event.location est requis et doit être un Place
emplacement: Lie , obligatoire
Schema.org/Place imbriqué (ou un sous-type plus spécifique, tel que schema.org/EventVenue ou schema.org/PerformingArtsTheater ).
Event.location.address est également requis et doit être un PostalAddress
adresse: PostalAddress , obligatoire
L'adresse du lieu. Vous pouvez soit fournir l'adresse complète sous la forme d'une chaîne unique, soit fournir les champs distincts de l'adresse dans un schéma imbriqué schema.org/PostalAddress.
Donc, selon votre exemple, le format approprié devrait être (qui valide actuellement sans texte rouge sur l'outil de test de Google):
<div itemscope itemtype="http://schema.org/SocialEvent">
<a itemprop="url" href="www.convention-name.org">
<div itemprop="name"><strong>Bob's Convention</strong></div>
</a>
<div itemprop="description">blah blah blah blah blah</div>
<div>
<meta itemprop="startDate" content="2015-05-01:00.000">
Starts: 2015-05-01:00.000
</div>
<meta itemprop="endDate" content="2015-05-02:00.000">
Ends: 2015-05-02:00.000
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<div itemprop="name">Unknown Venue</div>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">55 street</div>
<div><span itemprop="addressLocality">Nashville</span>, <span itemprop="addressRegion">TN</span></div>
<div itemprop="postalCode">37225</div>
<div itemprop="addressCountry">usa</div>
</div>
</div>
</div>