Microdata itemprop导致W3C验证器错误

时间:2011-09-28 09:46:18

标签: w3c-validation microdata xhtml-1.0-strict

在我的网页上添加微数据之后,我从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">

如何修复验证程序错误?

P.S。以前我也有itemscope的验证码错误。但在我将其更改为itemscope="itemscope"之后,错误就修复了。

4 个答案:

答案 0 :(得分:15)

带有HTML 5加Microdata的文档用于验证成功,但由于Bug #14020验证程序在将文档声明为“有效”时变得更加严格。您的文档是有效的HTML 5 + Microdata,但不是严格意义上的HTML 5文档。

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

在Fabian的回答中链接的网站是他提及的 W3C 网站,所以我不相信HTML 5对于早先可能有的(2000年以前)versions of HTML

你必须将itemscope更改为itemscope =“itemscope”的原因是以前的浏览器和规范定义了代码的不兼容解释(有时是真的,有时是假的),例如itemscope(没有值),itemscope =“”(空string被XPath解释为false并且itemscope =“false”(任何非空字符串有时被解释为true)。因此,规范中的声明“布尔属性上不允许使用值'true'和'false'。”但是,“true”和“false”可以出现在某些属性值中,因为它们 允许枚举属性,例如draggable。有关coding boolean values的内容,请参阅第4章。

使用脚本编写插入无效代码的解决方法(其他地方)可能会隐藏验证程序中的代码,但它不会创建比使用静态HTML代码更有效的文档,因为HTML 5规范是根据内部文档模型,而不是外部表示。请参阅HTML 5 Specifications focus on the DOM

答案 1 :(得分:4)

好的,以下是我使用Validator进行此操作的方法:

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

我将主要内容包含在我的页面中(如果你愿意,请将“包装”)包含在内:

<div id="layout" itemscope>

如果你的页面的div标签或包含微数据的div有itemcope,那么W3C Validtor会很喜欢它。

答案 2 :(得分:1)

DOCTYPE需要是HTML5才能验证微数据。

<!DOCTYPE html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
.....

它适用于段落标记:

http://www.w3.org/TR/2011/WD-microdata-20110525/

答案 3 :(得分:0)

如果您只想删除此标记,可以通过从位于主根文件夹中的文件中删除标记来实现此目的

891行

wp-includes / general-template.php

你可以删除额外的标签。