打开HTML5的图形验证

有没有什么办法让Facebook的蹩脚的开放图元标记验证,如果我的文档类型是<!DOCTYPE html> (HTML5)?

除了facebook的Open Graph元标记之外,我的文档完美验证。

我真的不想使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">因为这会产生一组全新的问题。

这里是一个有问题的验证错误的例子...

错误行11,列47:在此处元素meta上不允许使用属性属性。

<meta property="og:type" content="website" />

任何帮助将不胜感激......我一直在寻找和关闭几天无济于事。


对于HTML5,将其添加到您的html元素,就像ogp.me中描述的一样,并保留您的og: prefixed属性的:

<!doctype html>
<html prefix="og: http://ogp.me/ns#">
<head>
     <meta property="og:type" content="website" />
     ...

对于XHTML(如OP的问题),使用name属性而不是property属性。 Facebook lint会发出警告,但元值仍会被识别和解析。

<meta name="og:title" content="Hello Facebook" />

简短的答案是否定的,目前还没有。 所有其他答案都是解决方法,黑客或简单的疯狂。 唯一的长期解决方案是Facebook需要创建一个有效的HTML5替代语法。

对于那些建议通过“facebookexternalhit”用户代理来定位Facebook的用户,你必须记住其他公司正在用这些标签跟踪Facebook的领先地位。 例如,如果他们首选的Schema.org标记不存在,Google +会回退到OpenGraph标记。 由于大多数网站都没有使用Schema.org的属性(特别是如果他们花时间正确使用OpenGraph的话),您可以很容易地错过在Google+等网站上加强您的片段,请遵循此建议。

随着Facebook的无处不在,它直接面向他们确实不是一个好的解决方案 - 即使他们的实施选择对开发者来说也是有问题的。 在堆栈溢出等网站上寻找解决方案时,您必须记住,这些方法可能会有不可预见的后果。

对于我们的主要站点,我们坚持使用XHTML + RDFa进行验证,并且运行良好。 我希望随着HTML5的使用量增长,Facebook团队将开始接受这种元数据的有效格式。

至于我们为什么关注验证:我们发现,如有可能,验证有助于通过不让我们忽略它们来提醒我们网页中存在错误。 由于我们都在浏览器中使用验证扩展,因此我们立即知道页面上是否存在验证错误(或警告),并且可以调查是否有可能消除它(其时间为99 +%)。 这节省了我们处理规范限制性实施的时间,特别是在现今的边缘和移动平台上。 我们已经看到了大量的奇怪错误减少,因为我们意识到我们的页面是有效的,并且知道浏览器中发生的事情不需要处理无效的标记,而特定的UA可能不会按预期解释。


是的 。 要验证为HTML5,请从Open Graph文档添加prefix属性:

<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns#">
<head>
<title>Valid HTML5!</title>
<meta charset="utf-8"/>
<meta property="og:title" content="">
</head>
<body></body>
</html>

复制并粘贴上面的w3验证器来检查。

它已准备就绪 - Apple在apple.com上使用此方法。

链接地址: http://www.djcxy.com/p/29263.html

上一篇: Open Graph validation for HTML5

下一篇: Disable validation of HTML5 form elements