【问题标题】:W3C validation with AngularJS directives使用 AngularJS 指令进行 W3C 验证
【发布时间】:2013-06-01 17:50:30
【问题描述】:

我们如何使用 Angular 应用程序进行 W3C 验证?

由于自定义指令导致无效的 HTML 验证,我们通常会看到很多 W3C 验证错误。对此有什么策略吗?

【问题讨论】:

    标签: html angularjs w3c w3c-validation


    【解决方案1】:

    严格的 w3c 验证允许任何 data-* 属性和任何类。

    指令可以通过以下任何方式应用于 DOM 元素:

    1. <tag directive-name>
    2. <tag data-directive-name> (*)
    3. <tag x-directive-name>
    4. <tag directive_name>
    5. <tag x_directive_name>
    6. <tag data_directive_name>

    至少data- 完全符合 W3C 标准(前提是您声明了 HTML5 文档类型)。所以下面的代码验证(属性名称,当然它会因为缺少标题,缺少编码等而失败):

    <!DOCTYPE html>
    <html>
     <body data-ng-app="MyApp">
     </body>
    </html>
    

    【讨论】:

    • 我想这个优秀的视频中也提到了这一点:youtube.com/watch?v=WqmeI5fZcho
    • 答案仅适用于根据 HTML5 进行的实验验证,该验证正在进行中。 HTML5 不接受字面上的 any data-* 属性(本质上,: 不允许在名称中),并且 x-* 属性 not 有效(它们会导致验证器错误消息):“以两个字符“x-”开头的属性名称保留给用户代理使用,并保证永远不会正式添加到 HTML 语言中。”
    • 在属性前面加上data- 并声明它是HTML5。
    • 后续,data-prefix 与 Tidy 算法验证器配合得很好,显然也可以与自定义指令配合使用!
    • @wbyoung,HTML5 CR 中的Extensibility 部分提到了x-* 属性:“注意: 使用此类属性的页面在定义上是不合格的。”
    【解决方案2】:

    W3 在线验证 Angular 代码

    如果您尝试使用 http://validator.w3.org/ 验证您的 AngularJS 代码,您一定注意到它不允许 AngularJS ng-* 属性。

    验证 (as @rewritten explained) 的一种方法是在您的 ng-* 前加上 data-x-

    我确实想对我的应用程序的 800 个属性执行此操作。在我看来,它降低了代码的清晰度,尤其是当我们大量使用这些属性时。


    W3C HTML5 验证团队开发了一个工具,可以在验证期间过滤错误,并接受ng-* 属性

    你可以在这个网址试试:http://validator.w3.org/nu/

    在您提交文件进行检查后,您将在结果页面上 看到一个消息过滤按钮,如果你按下它,你会得到一个 分组为集合的所有错误消息的列表,显示/隐藏 复选框。


    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 2014-02-18
      • 2017-05-26
      • 2014-03-07
      • 2014-01-14
      • 2023-03-15
      相关资源
      最近更新 更多