我读过了HTML5 规范 http://www.w3.org/TR/2014/REC-html5-20141028/single-page.html, 微观数据规范 http://www.w3.org/TR/2013/NOTE-microdata-20131029/, and WHATWG HTML5(带有微数据)规范 https://html.spec.whatwg.org/。这些写得很好并且很容易理解。
但现在我读到了schema.org 图书规范 http://schema.org/Book,并遇到如下片段:
<span itemprop="price" content="6.99">$6.99</span>
<span itemprop="inLanguage" content="en">English-language</span>
<span itemprop="name" content="Tolkien, J. R. R. (John Ronald Reuel)">
J. R. R. Tolkien</span>
显然(与 JSON 版本相比),这些微数据属性的值是content
的属性span
元素。 (当然,如果没有content
属性,其值为textContents
of the span
元素。)
但我在 HTML 和微数据规范中找不到对这种做法的任何支持。事实上,我什至找不到任何证据表明存在content
属性上span
元素全都有!
微观数据规范没有提及任何关于span
content
属性,当它给出规则时values http://www.w3.org/TR/2013/NOTE-microdata-20131029/#values。 [除非“元素的文本内容”被content
属性,但我也找不到对此的任何支持。]
甚至完整的 WHATWG HTML5+微数据规范也不支持以下说法:content
属性上span
(see The span element https://html.spec.whatwg.org/#the-span-element and 全局属性 https://html.spec.whatwg.org/#global-attributes).
所以,我认为 schema.org 示例是不合格的。但这也是完全错误的吗?如果不是,这种做法从何而来?人们的接受程度如何?
是的,这是错误的。 Microdata 和 HTML5 都没有定义content
属性为span
元素。
有几个人想使用它,例如查看这些问题中的代码:
- 隐藏“内容”属性中的微数据属性值? https://stackoverflow.com/questions/18873095/hide-microdata-property-value-in-content-attribute
- schema.org 中的产品类别? https://stackoverflow.com/questions/19031818/categories-for-product-in-schema-org
- “content”属性对于 标记是否有效 > 如果是,这是一个很好的做法吗? https://stackoverflow.com/questions/25134818/is-the-content-attribute-valid-for-the-span-tag-if-so-is-it-a-good-practic
- schema.org 产品可用性标签标记 https://stackoverflow.com/questions/25148439/schema-org-product-availability-tags-markup
我不确定这种混乱到底从何而来。
(谷歌的结构化数据测试工具错误地使用了content
属性而不是元素内容;但至少所有其他微数据解析器 https://softwarerecs.stackexchange.com/questions/13674/online-microdata-parser似乎做得正确。)
也许有些人感到困惑,因为 RDFa(而不是 Microdata)定义并允许content属性 http://www.w3.org/TR/2013/REC-rdfa-core-20130822/#A-content for span
。参见 HTML+RDFaHTML5 语法的扩展 http://www.w3.org/TR/2013/REC-html-rdfa-20130822/#extensions-to-the-html5-syntax:
为避免疑义,HTML5 内容模型中的所有元素都允许使用以下 RDFa 属性:@vocab
, @typeof
, @property
, @resource
, @prefix
, @content
, @about
, @rel
, @rev
, @datatype
, and @inlist
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)