HTML5:未注册的<meta>标签验证的“正确”行为是什么?

4
以下内容根据W3验证器是符合“HTML 4.01 Transitional”标准的:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or/TR/html4/loose.dtd">
<html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="revisit-after" content="30 days">
  <meta name="DC.Title" content="Website title">
  <title>Website title</title>
</head><body></body></html>

当将此代码转换为HTML5时,meta标签发生了一些变化,如此处所述。因此,以下内容应该是有效的HTML5:
<!DOCTYPE html>
<html><head>
  <meta charset="UTF-8">
  <meta name="revisit-after" content="30 days">
  <meta name="DC.Title" content="Website title">
  <title>Website title</title>
</head><body></body></html>

除了它不再被验证为元标签应该是注册的,没有其他区别。

问题:W3文档没有列出HTML5的新“功能”中对标签的限制,但它们与HTML 4.01 Transitional中之前的验证不同。

更新: 虽然官方HTML4文档确实没有限制name属性的字段值,但HTML5草案提到了新的限制(与“差异”指南不同)。 一些海报建议根据SEO论点根本不使用meta标签,但已经有许多公共和内部使用meta标签进行缓存控制、文档和存储目的。难道不能有一种方法将有效的HTML4代码转换为有效的HTML5代码,而不依赖于数百万元解析器自动重写吗?

问题: 实践中我们应该怎么做?


为什么你不想注册新值? - unor
为什么有人想要在公共数据库中垃圾邮件内部文档/存储标签,这些标签只是为了内部使用的许多公司?除了安全/隐私问题外,我看不出这在任何情况下都有什么优势。 - user8472
出于同样的原因,您不应该发明新的HTML元素:将来可能会有人注册与您内部使用的相同关键字但具有不同含义。当然,如果该值仅对您的站点有用,则可能不应注册。但是,我也不会使用meta(而是使用script作为数据块或现有元素上的data-*属性)。 - unor
我同意你的回答很有道理。但我仍然想知道为什么W3C改变了现有meta标签的语义,而不是引入一个新元素(如你所建议的scriptdata-*属性或其他一些东西)并要求注册它们?这不会影响现有页面的验证,任何需要注册备用标签变体的人都可以自由地这样做。 - user8472
1个回答

1
实际上,只需将元标记保留原样即可。即使验证器发出警告,对于使用您的网站的任何人来说,它也不会造成任何影响。

谢谢您的提议。我不完全满意的原因是验证确实有其作用——我可以依赖于网页在浏览器中被可预测地呈现。我可能会在特定页面上意外引入真正的错误;通过适当的验证,这样的问题更容易被检测到。所以也许您知道是否已经存在以下解决方案:1)过滤w3validator输出中的“无效”错误的解析器,或2)专注于并报告相关信息的替代验证器? - user8472
“我不能依赖于网页在浏览器中的可预测渲染。” - 这绝对不是事实。验证并不能保证这一点,也从来没有。验证只是针对HTML的正式定义对您的页面进行技术检查,它与浏览器的怪癖或错误无关。有些无效的页面可以保证在任何已制作的浏览器中正确显示,而有些有效的页面则存在跨浏览器兼容性问题,从轻微到灾难性不等。 - Matthew Wilson
验证可能与浏览器的怪癖或错误无关,但它确实与正确的浏览器行为有一定关系。虽然我同意说“验证将保护我免受浏览器错误”的说法过于极端,但我不同意相反极端的说法:“验证绝对没有任何有用的目的。”验证过去帮助我发现了HTML代码中的错误(其中一些导致了不正确的渲染),因此节省了我的时间。放弃验证听起来像是最后的选择,而不是我首选的解决方案。 - user8472
我认为验证确实有一定的作用,我并不建议放弃验证。问题在于要认识到验证错误的确切含义,并承认它们在技术上是正确的,但你仍然没有问题。 - Matthew Wilson

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