tag:forum.selfhtml.org,2005:/self content als Universalattribut? – SELFHTML-Forum 2014-04-14T11:24:58Z https://forum.selfhtml.org/self/2014/apr/14/content-als-universalattribut/1608303#m1608303 fnord2000 2014-04-13T23:20:29Z 2014-04-13T23:20:29Z content als Universalattribut? <p>Moin,</p> <p>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.<br> 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.<br> Ich habe auch mal den HTML-Validator dort ausprobiert, aber der hat keine Probleme damit, wenn irgendein HTML-Tag ein Attribut namens content hat.</p> <p>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?</p> https://forum.selfhtml.org/self/2014/apr/14/content-als-universalattribut/1608304#m1608304 molily zapperlott@gmail.com http://molily.de 2014-04-14T07:58:05Z 2014-04-14T07:58:05Z Microdata <p>Hallo,</p> <p>Für Elemente mit itemprop-Attributen gibt es diesen Algorithmus, um den Wert herauszufinden:</p> <p><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#values" rel="nofollow noopener noreferrer">http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#values</a><br> Siehe auch <a href="http://diveintohtml5.info/extensibility.html#property-values" rel="nofollow noopener noreferrer">http://diveintohtml5.info/extensibility.html#property-values</a></p> <p>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.</p> <p>Hast du ein Beispiel für Rich Snippets, wo das content-Attribut nicht für ein meta-Element gesetzt wird?</p> <p>Dass der Validator das akzeptiert, kann ich anhand der Spezifikation nur als Fehler ansehen.</p> <p>Übrigens: Microdata ist nicht Teil von W3C HTML5, nur Teil von WHATWG HTML5.</p> <p>Mathias</p> <div class="signature">-- <br> <a href="http://chaplinjs.org/" rel="nofollow noopener noreferrer">Chaplin.js - JavaScript application architecture on top of Backbone.js</a> </div> https://forum.selfhtml.org/self/2014/apr/14/content-als-universalattribut/1608305#m1608305 fnord2000 2014-04-14T08:14:46Z 2014-04-14T08:14:46Z Microdata <blockquote> <p>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.</p> </blockquote> <p>Dort habe ich es auch gesehen. Das verwundert mich auch nicht.</p> <blockquote> <p>Hast du ein Beispiel für Rich Snippets, wo das content-Attribut nicht für ein meta-Element gesetzt wird?</p> </blockquote> <p>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:<br> <a href="https://support.google.com/webmasters/answer/146750#offer-aggregate_properties" rel="nofollow noopener noreferrer">https://support.google.com/webmasters/answer/146750#offer-aggregate_properties</a></p> <p>Da wird content für ein span-Tag gesetzt.<br> Ich meine auch irgendwo das gleiche für div-Tags gesehen zu haben, kann es aber gerade nicht finden.</p> <blockquote> <p>Dass der Validator das akzeptiert, kann ich anhand der Spezifikation nur als Fehler ansehen.</p> </blockquote> <p>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.</p> https://forum.selfhtml.org/self/2014/apr/14/content-als-universalattribut/1608306#m1608306 molily zapperlott@gmail.com http://molily.de 2014-04-14T11:24:58Z 2014-04-14T11:24:58Z Microdata <p>Hallo,</p> <p>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:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ins</span> <span class="token attr-name">datetime</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2008-07-20 21:00:00+01:00<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>rev<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2008-07-20 21:00:00+01:00<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tel<span class="token punctuation">"</span></span> <span class="token attr-name">itemscope</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>strong</span><span class="token punctuation">></span></span>Update!<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>strong</span><span class="token punctuation">></span></span> My new <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>home<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> phone number is <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>value<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>01632 960 123<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ins</span><span class="token punctuation">></span></span> </code></pre> <p>Hier sieht man schon, dass Informationen redundant angegeben sind und ein zusätzliches meta-Element nötig ist.</p> <p>Beispiel Rich Snippets:</p> <pre><code class="block language-html">Produkt-Nr.: <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>identifier<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>mpn:925872<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>925872<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> Kategorie: <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>category<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Handwerk > Werkzeuge > Ambosse<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Ambosse<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> Zustand: <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token attr-name">itemprop</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>condition<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>used<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Gebraucht, in ausgezeichnetem Zustand<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> </code></pre> <p>Hier hat man jeweils das maschinenlesbare Datum im content-Attribut untergebracht, während das menschenlesbare als Textknoten vorliegt.</p> <p>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.</p> <p>Mathias</p> <div class="signature">-- <br> <a href="http://chaplinjs.org/" rel="nofollow noopener noreferrer">Chaplin.js - JavaScript application architecture on top of Backbone.js</a> </div>