【发布时间】:2013-06-01 17:50:30
【问题描述】:
我们如何使用 Angular 应用程序进行 W3C 验证?
由于自定义指令导致无效的 HTML 验证,我们通常会看到很多 W3C 验证错误。对此有什么策略吗?
【问题讨论】:
标签: html angularjs w3c w3c-validation
我们如何使用 Angular 应用程序进行 W3C 验证?
由于自定义指令导致无效的 HTML 验证,我们通常会看到很多 W3C 验证错误。对此有什么策略吗?
【问题讨论】:
标签: html angularjs w3c w3c-validation
严格的 w3c 验证允许任何 data-* 属性和任何类。
指令可以通过以下任何方式应用于 DOM 元素:
<tag directive-name><tag data-directive-name> (*)<tag x-directive-name><tag directive_name><tag x_directive_name><tag data_directive_name>至少data- 完全符合 W3C 标准(前提是您声明了 HTML5 文档类型)。所以下面的代码验证(属性名称,当然它会因为缺少标题,缺少编码等而失败):
<!DOCTYPE html>
<html>
<body data-ng-app="MyApp">
</body>
</html>
【讨论】:
data-* 属性(本质上,: 不允许在名称中),并且 x-* 属性 not 有效(它们会导致验证器错误消息):“以两个字符“x-”开头的属性名称保留给用户代理使用,并保证永远不会正式添加到 HTML 语言中。”
data- 并声明它是HTML5。
x-* 属性:“注意: 使用此类属性的页面在定义上是不合格的。”
如果您尝试使用 http://validator.w3.org/ 验证您的 AngularJS 代码,您一定注意到它不允许 AngularJS ng-* 属性。
验证 (as @rewritten explained) 的一种方法是在您的 ng-* 前加上 data- 或 x-。
我确实不想对我的应用程序的 800 个属性执行此操作。在我看来,它降低了代码的清晰度,尤其是当我们大量使用这些属性时。
W3C HTML5 验证团队开发了一个工具,可以在验证期间过滤错误,并接受ng-* 属性。
你可以在这个网址试试:http://validator.w3.org/nu/
在您提交文件进行检查后,您将在结果页面上 看到一个消息过滤按钮,如果你按下它,你会得到一个 分组为集合的所有错误消息的列表,显示/隐藏 复选框。
【讨论】: