2014-11-23 80 views
3

我已閱讀the HTML5 specificationthe microdata specificationthe WHATWG HTML5 (with microdata) specification。這些都寫得很好,很容易理解。HTML5微數據:跨度內容?

但現在我讀了schema.org Book specification,和整個片段來到這樣的:

<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屬性,則該值將代替span元素的textContents。)

但是我無法在HTML和微數據規範中找到對此練習的任何支持。事實上,我甚至找不到任何證據表明span元素上有content屬性!當它給人的規則values

  • 微數據規範不說有關spancontent屬性什麼。 [除非「元素的的textContent」是由content屬性重寫,但我也不能找到這方面的任何支持。]

  • 甚至沒有完整的WHATWG的HTML5 +微數據規範支持的要求,有上span一個content屬性(見The span elementGlobal attributes)。

所以,我想schema.org的例子是不符合。但這是否也是錯誤的?如果不是,這種做法是從哪裏來的,它是如何被接受的?

回答

6

是的,這是錯誤的。 Microdata和HTML5都沒有爲span元素定義content屬性。

幾個人想使用它,請參閱例如代碼這些問題:

我不知道這種混淆來自哪裏。

(這不利於谷歌的結構化數據測試工具不正確地使用content屬性,而不是元素含量;但至少所有other Microdata parsers似乎做是正確的)

也許有些人弄糊塗了,因爲RDFa的(但不是Microdata)定義並允許content attributespan。見HTML + RDFa的的Extensions to the HTML5 Syntax

爲免生疑問,下面的RDFa屬性被允許在HTML5的內容模型的所有元素:@vocab@typeof@property@resource@prefix@content@about@rel@rev@datatype@inlist

+0

我就這個Schema.org示例提交了一個[issue](https://github.com/rvguha/schemaorg/issues/184)。 – unor 2014-11-23 13:13:41

+0

有關解析器行爲和RDFa混淆源假設的信息「Plus one」。 – 2014-11-23 13:14:09

+0

儘管當前標準爲:https://support.google.com/webmasters/answer/146898,但本文檔示例確實顯示了帶''標記的'@ content'屬性。 (其他)微數據(解析器)中是否沒有解決方案? – 2014-12-16 15:39:18