Microdata itemprop导致W3C验证器错误

Laz*_*iko 8 xhtml-1.0-strict w3c-validation microdata

将Microdata添加到我的页面后,我从W3C验证器那里得到了很多错误,抱怨itemprop:

没有属性" itemprop"

从这样的代码:

<p itemprop="description">...</p>
Run Code Online (Sandbox Code Playgroud)

这是我的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">
Run Code Online (Sandbox Code Playgroud)

如何修复验证器错误?

ps以前我也有验证器错误itemscope.但在我将其更改为itemscope="itemscope"之后,错误得到修复.

Rob*_*com 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)和itemscope ="false"(任何非空字符串有时被解释为true).因此,规范中的声明"布尔属性上不允许使用值'true'和'false'." 但是,"true"和"false" 可以出现在某些属性值中,因为它们在枚举属性(如draggable)允许的.有关编码布尔值,请参阅第4章.

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