content als Universalattribut?
fnord2000
- html
Moin,
ich habe zufällig auf der Google-Seite ein bisschen über Richsnippets und Mikroformate gelesen. Unter anderem werden da Daten mit Hilfe der Attribute itemprop, itemtype und content in beliebigen HTML-Elementen untergebracht.
Jetzt bin ich allerdings ein wenig irritiert: In der HTML5-spec beim W3C kann ich die item*-Attribute in der Liste der Universalattribute finden. Von einem Universalattribut namens content sehe ich da aber nichts.
Ich habe auch mal den HTML-Validator dort ausprobiert, aber der hat keine Probleme damit, wenn irgendein HTML-Tag ein Attribut namens content hat.
Ist dieses Attribut nun zulässig oder nicht? Falls ja: Wieso steht es nicht in der Spec? Falls nein: Wieso beschwert der Validator sich nicht darüber?
Hallo,
Für Elemente mit itemprop-Attributen gibt es diesen Algorithmus, um den Wert herauszufinden:
http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#values
Siehe auch http://diveintohtml5.info/extensibility.html#property-values
Das content-Attribute gibt es nur bei meta-Elementen. Dort war es schon immer erlaubt. Nur dort wird es im Kontext von Microdata als Quelle des Wertes angesehen.
Hast du ein Beispiel für Rich Snippets, wo das content-Attribut nicht für ein meta-Element gesetzt wird?
Dass der Validator das akzeptiert, kann ich anhand der Spezifikation nur als Fehler ansehen.
Übrigens: Microdata ist nicht Teil von W3C HTML5, nur Teil von WHATWG HTML5.
Mathias
Das content-Attribute gibt es nur bei meta-Elementen. Dort war es schon immer erlaubt. Nur dort wird es im Kontext von Microdata als Quelle des Wertes angesehen.
Dort habe ich es auch gesehen. Das verwundert mich auch nicht.
Hast du ein Beispiel für Rich Snippets, wo das content-Attribut nicht für ein meta-Element gesetzt wird?
Meinst du jetzt ein konkretes Beispiel aus produktivem Umfeld? Da fällt mir auf die Schnelle nichts ein. Aber auf den Google-Seiten zu dem Thema habe ich hier zum Beispiel ein Beispiel gefunden:
https://support.google.com/webmasters/answer/146750#offer-aggregate_properties
Da wird content für ein span-Tag gesetzt.
Ich meine auch irgendwo das gleiche für div-Tags gesehen zu haben, kann es aber gerade nicht finden.
Dass der Validator das akzeptiert, kann ich anhand der Spezifikation nur als Fehler ansehen.
Das verwirrt mich nämlich auch. Von einem Validator erwarte ich schon, dass er sich an die Spezifikation hält, aber ich habe es mit ein paar unterschiedlichen Tags ausprobiert und über content als Attribut beschwert er sich nicht.
Hallo,
Die Idee von Microdata war halt, dass man so wenig versteckte Metadaten wie möglich hat. Schwierig wird das bei Daten, die einmal menschen- und einmal maschinenlesbar vorliegen. Beispiel aus der Spec:
<ins datetime="2008-07-20 21:00:00+01:00">
<meta itemprop="rev" content="2008-07-20 21:00:00+01:00">
<p itemprop="tel" itemscope><strong>Update!</strong>
My new <span itemprop="type">home</span> phone number is
<span itemprop="value">01632 960 123</span>.</p>
</ins>
Hier sieht man schon, dass Informationen redundant angegeben sind und ein zusätzliches meta-Element nötig ist.
Beispiel Rich Snippets:
Produkt-Nr.: <span itemprop="identifier" content="mpn:925872">925872</span>
Kategorie: <span itemprop="category" content="Handwerk > Werkzeuge > Ambosse">Ambosse</span>
Zustand: <span itemprop="condition" content="used">Gebraucht, in ausgezeichnetem Zustand</span>
Hier hat man jeweils das maschinenlesbare Datum im content-Attribut untergebracht, während das menschenlesbare als Textknoten vorliegt.
Das ergibt durchaus Sinn von meiner Warte aus, sonst müsste man hier mit drei meta-Elementen arbeiten. Es ist nur nicht in Microdata vorgesehen, zumindest nicht explizit. Oder ich finde es einfach nicht.
Mathias