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 itemprop
Wert 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 a
Elements (anstelle der URL in seinem href
Attribut) 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 itemprop
auf einer der URL - Eigenschaft Elemente (dh Elemente , die can³ haben href
, src
oder data
Attribut). 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 href
Wert.
² In der alten Mikrodaten-Spezifikation von WHATWG und W3C kann nur das meta
Element das content
Attribut haben , aber die neue Mikrodaten-Spezifikation von W3C (derzeit ein Arbeitsentwurf) erlaubt content
jedes Element. Wenn ein Element ein content
Attribut und auch eines der anderen aufgelisteten Attribute hat, content
wird 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 link
Elements (aber es ist bereits von HTML erforderlich , um das haben , href
Attribut).