是否弃用了HTML5 W3规范的3.2.5.9?

时间:2017-11-10 00:47:05

标签: html

我最近收到了以下评论:

  

这些自定义属性(dw-filter等)是否适用于所有浏览器?违反data-*惯例。

可以说,现在角度在网络上变得越来越普遍,找到类似的东西是相当普遍的:

<a _ngcontent-c2 class="col-1-4" ng-reflect-router-link="/detail/13" href="/preview/cj9t4xj0v00113c5sw2c8s6w8/detail/13">
    <div _ngcontent-c2 class="module">
      <h4 _ngcontent-c2>Bombasto</h4>
    </div>
</a>

W3 HTML5规范明确指出:

  

https://www.w3.org/TR/html5/dom.html#custom-data-attribute:自定义数据属性是no namespace中的一个属性,其名称以字符串“data-”开头

由于非常简单的任意自定义属性(some-attr="1")仍然适用于所有HTML5浏览器而没有抱怨/错误,因此Angular应用程序始终无法通过验证进行验证。

使用此类自定义属性的网站(有角度或无角度)是否真的需要遵守规范的这一部分?

1 个答案:

答案 0 :(得分:0)

ng-属性不是HTML规范的一部分。因此,它们是无效的标记。正确的自定义属性应以当前HTML5规范中指定的data-开头。如果不是所有验证器,Angular属性不会这样做并且大多数失败。

未遵循网络标准是过去和现在都会引发问题的风险。如果某个属性受到其他一些群体的欢迎,或者甚至成为未来的标准,那么任何想要建立自己的人都会遇到问题。无论出于何种原因,WHATWG或W3C决定将ng-作为安全属性的属性,每个Angular应用程序都将面临不确定的未来。

更不用说这个问题所见到的网络混乱。

始终,始终写有效的标记。

<强>评论:

为什么Angular故意违反HTML标准,我不知道。 (注意:请参阅评论中@angular的回复。)不幸的是,我看到网上的文章,开发人员说,“那又怎么样?”,对我而言,微软浏览器在与Firefox竞争之前的日子,然后来自谷歌的Chrome,Angular的开发者,他们吹嘘标准合规。