Was die Spezifikation sagt
Ja, dieses Verhalten ist korrekt. In Abschnitt 5.4 der W3C-Mikrodatenspezifikation wird beschrieben, welcher Wert verwendet wird.
In den meisten Fällen wird der Inhalt des Elements als itempropWert verwendet, in einigen Fällen wird der Wert eines Attributs als Wert verwendet itemprop.
Dies ist der Fall für diese sechs attributes¹: content², src, href, data, value, datetime.
Was dies in der Praxis bedeutet
Wenn Sie den Inhalt eines aElements (anstelle der URL in seinem hrefAttribut) als Eigenschaftswert verwenden möchten , müssen Sie ein geeignetes übergeordnetes oder untergeordnetes Element verwenden / hinzufügen:
<a href="ignored-url"><span itemprop="property">property value</span></a>
<span itemprop="property"><a href="ignored-url">property value</a></span>
Wenn Sie eine URL als Eigenschaftswert zur Verfügung stellen möchten, verwenden Sie müssen itempropauf einer der URL - Eigenschaft Elemente (dh Elemente , die can³ haben href, srcoder dataAttribut). Dies wäre also ungültig (es sei denn, Sie möchten eine Zeichenfolge als Wert angeben, der nur wie eine URL aussieht):
<!-- INVALID --> <span itemprop="property">http://example.com/foo</span>
¹ Es muss gültig sein, damit das Element dieses Attribut hat. Für ein (ungültig!) Wird also <div href="" itemprop=""></div>der Elementinhalt verwendet, nicht der hrefWert.
² In der alten Mikrodaten-Spezifikation von WHATWG und W3C kann nur das metaElement das contentAttribut haben , aber die neue Mikrodaten-Spezifikation von W3C (derzeit ein Arbeitsentwurf) erlaubt contentjedes Element. Wenn ein Element ein contentAttribut und auch eines der anderen aufgelisteten Attribute hat, contentwird es verwendet.
³ Mikrodaten macht es ungültig eines der haben URL - Eigenschaft Elemente ohne ihre jeweiligen URL - Attribut (dh href, src, data), mit Ausnahme des linkElements (aber es ist bereits von HTML erforderlich , um das haben , hrefAttribut).