微数据itemprop引起W3C验证器错误

8
在我的页面中添加了微数据后,我从W3C验证器那里得到了许多错误信息,抱怨itemprop未被识别:

没有 "itemprop" 属性。

代码示例:
<p itemprop="description">...</p>

这是我的DOCTYPE和html标签。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:fb="http://www.facebook.com/2008/fbml">

如何修复验证器错误?

附:之前也有关于itemscope的验证器错误。但是我将其更改为itemscope="itemscope"后,该错误被修复了。

4个回答

15

文档使用HTML 5和Microdata进行验证成功,但由于Bug #14020,验证器在声明文档为“有效”时变得更加严格。您的文档是有效的HTML 5 + Microdata,但不是严格的HTML 5文档。

您可以使用http://Validator.nu/来验证HTML 5 + Microdata。

Fabian答案中链接的网站不是他提到的W3C网站,因此我对HTML 5的信任程度可能不如之前(2000年之前)的HTML版本

你需要将itemscope更改为itemscope="itemscope"的原因是,先前的浏览器和规范对代码(如itemscope(无值),itemscope = ""(XPath将空字符串解释为false)和itemscope =“false”(任何非空字符串有时被解释为true))定义了不兼容的解释。因此规范中声明:“布尔属性上不允许使用'true'和'false'值。”但是,“true”和“false”可以出现在某些属性值中,因为它们在draggable等枚举属性上是允许的。请参见关于编码布尔值的第4个项目。
在其他地方插入无效代码的解决方法可能会隐藏来自验证器的代码,但这样做不会创建比使用静态HTML代码更有效的文档,因为HTML 5规范是基于内部文档模型而不是外部表示形式定义的。请参见HTML 5规范专注于DOM

4

好的,以下是我做的使此与验证器一起工作的方法:

参考此页面:http://www.w3.org/TR/2011/WD-microdata-20110525/

我在我的页面中将主要内容(如果您愿意,可以称之为“包装器”)用以下方式包含:

<div id="layout" itemscope>

如果您在页面的div标签或包含微数据的div中使用itemscope,则W3C验证器会对其进行良好的评价。

1

0
如果您只想删除此标签,可以通过从位于主根文件夹中的文件中删除标签来实现。
在“wp-includes/general-template.php”文件的891行处,
您可以直接删除多余的标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接