重复锚点ID和W3约定

时间:2013-05-20 23:56:09

标签: html asp.net vb.net xhtml w3c

我正在将具有一些过时属性的页面转换为今天更加友好的XHTML,并且遇到了锚标记的主题。特别: <a name="someName"></a>

将锚标签转换为<a id="someName"></a>后,我的IDE给了我一些关于不在我的锚标签中使用重复ID的友好建议。事实证明,so does W3

  

id和name属性共享相同的名称空间。这意味着它们不能在同一文档中定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A,APPLET,FORM,FRAME,IFRAME,IMG和MAP。当两个属性用于单个元素时,它们的值必须相同。

该网页叛逆地工作,没有任何行为异常,尽管有重复。

页面逻辑保证只使用给定的名称或ID呈现单个HTML元素,因此不存在重复的href #someName

考虑到这一点:

以上使用案例是否仍违反使用重复名称/ ID的W3C指南?

将页面转换为使用唯一ID需要花费很多精力,但这样做可能有所值。我是新手,如果我遗漏了一些纯粹哲学或明显的东西,那么道歉。

1 个答案:

答案 0 :(得分:2)

ID在DOM中是唯一的。这会对JavaScript产生明显的影响:document.getElementById('someName')只会选择可能可用的多个id="someName"元素的一个。它可能是第一个,但没有办法保证哪一个。