滥用 <A> 标签
Abuse of <A> tag
据我了解,< A >
标签就是"anchor"标签,它有三个用途:
1) 描述并命名页面上的项目 <a name="foo"/>
2) 单击时将用户转到另一个页面 <a href="http://www.yahoo.com">Yahoo!</a>
3) 单击时将用户转到同一页面中的另一个位置 <a href="#foo">Foo!</a>
有人向我解释说 < a >
标签是唯一一个跨浏览器普遍处理的 touch/click 事件,我们需要劫持它以实现这种兼容性。我对此表示怀疑 - 如果浏览器能够显示使用 JQuery(和 CSS2/3!)的网站,则浏览器还应该能够处理自定义 onclick()
事件而不需要锚点标签。
目前,使用<A>
标签处理所有可点击事件已成为项目的标准操作流程。在代码中,我们必须防止默认(否则页面跳转到顶部),然后处理我们愉快的事情。我强烈认为这是在滥用标签的用途,就像某些框架如何劫持 <i>
标签来显示图标一样。
IMO,如果你想要一个可选的 LI 列表,你可以为每个 LI 项目分配一个 "onclick" 事件处理程序。由于没有默认操作,因此无需担心防止默认操作。
由于这是 Whosebug,我需要回答一个问题:当前规定的这种行为是否滥用了 < A >
标签的用途?
编辑:出于可访问性的目的(能够通过对象切换,A 允许但 LI 不允许),在 LI 上设置 TabIndex 的 Whosebug post 似乎很有希望:
What is the HTML tabindex attribute?
使用 jQuery 你可以 on('click',callback)
任何元素。
仅使用 a
元素可能是出于可访问性目的(例如,告诉屏幕阅读器该元素将执行一些有趣的操作)。
是的,这是一种滥用。
我会向他们解释 Semantic HTML。每个标签都有其用途和使用环境。
顺便说一下,使用 <i>
图标不一定是滥用。 CSS 强烈建议使用 italic 样式。
据我了解,< A >
标签就是"anchor"标签,它有三个用途:
1) 描述并命名页面上的项目 <a name="foo"/>
2) 单击时将用户转到另一个页面 <a href="http://www.yahoo.com">Yahoo!</a>
3) 单击时将用户转到同一页面中的另一个位置 <a href="#foo">Foo!</a>
有人向我解释说 < a >
标签是唯一一个跨浏览器普遍处理的 touch/click 事件,我们需要劫持它以实现这种兼容性。我对此表示怀疑 - 如果浏览器能够显示使用 JQuery(和 CSS2/3!)的网站,则浏览器还应该能够处理自定义 onclick()
事件而不需要锚点标签。
目前,使用<A>
标签处理所有可点击事件已成为项目的标准操作流程。在代码中,我们必须防止默认(否则页面跳转到顶部),然后处理我们愉快的事情。我强烈认为这是在滥用标签的用途,就像某些框架如何劫持 <i>
标签来显示图标一样。
IMO,如果你想要一个可选的 LI 列表,你可以为每个 LI 项目分配一个 "onclick" 事件处理程序。由于没有默认操作,因此无需担心防止默认操作。
由于这是 Whosebug,我需要回答一个问题:当前规定的这种行为是否滥用了 < A >
标签的用途?
编辑:出于可访问性的目的(能够通过对象切换,A 允许但 LI 不允许),在 LI 上设置 TabIndex 的 Whosebug post 似乎很有希望:
What is the HTML tabindex attribute?
使用 jQuery 你可以 on('click',callback)
任何元素。
仅使用 a
元素可能是出于可访问性目的(例如,告诉屏幕阅读器该元素将执行一些有趣的操作)。
是的,这是一种滥用。
我会向他们解释 Semantic HTML。每个标签都有其用途和使用环境。
顺便说一下,使用 <i>
图标不一定是滥用。 CSS 强烈建议使用 italic 样式。