是否可以使用锚标记而不包括href属性,而是使用JavaScript单击事件处理程序?因此我将完全省略href,甚至不让它为空(href="")。
当前回答
简单的回答:不。
长一点的回答:
首先,如果没有href属性,它就不是链接。如果它不是一个链接,那么它就不会是键盘(或呼吸开关,或各种其他不是基于指针的输入设备)可访问的(除非你使用HTML 5的tabindex功能,这不是普遍支持的)。控件不具有键盘访问权限是非常罕见的。
第二。当JavaScript无法运行时(因为从服务器加载很慢,Internet连接中断(例如移动火车上的移动信号),JS被关闭,等等),你应该有一个替代方案。
通过不引人注目的JS使用渐进增强。
其他回答
只需在您的工作组件中添加波纹管代码以删除此警告,就是这样。
/* eslint-disable jsx-a11y/anchor-is-valid */
如果没有href属性,标记也可以使用。与这里的许多答案相反,当没有href时,实际上有创建锚的标准原因。从语义上讲,“a”意味着锚或链接。如果你把它用在任何跟这个意思一样的地方,那就没问题。
不带href的a标记的一个标准用法是创建命名链接。这允许你使用一个带有name=blah的锚,稍后你可以创建一个带有href=#blah的锚来链接到当前页面的指定部分。但是,这已经被弃用了,因为您也可以以相同的方式使用id。举个例子,你可以使用id=header的header标签,然后你可以使用指向href=#header的锚。
然而,我的观点并不是建议使用name属性。只提供一个不需要href的用例,并解释为什么不需要href。
简单的回答:不。
长一点的回答:
首先,如果没有href属性,它就不是链接。如果它不是一个链接,那么它就不会是键盘(或呼吸开关,或各种其他不是基于指针的输入设备)可访问的(除非你使用HTML 5的tabindex功能,这不是普遍支持的)。控件不具有键盘访问权限是非常罕见的。
第二。当JavaScript无法运行时(因为从服务器加载很慢,Internet连接中断(例如移动火车上的移动信号),JS被关闭,等等),你应该有一个替代方案。
通过不引人注目的JS使用渐进增强。
从可访问性的角度来看,<没有href的>不是可选项卡的,所有链接都应该是可选项卡的,所以如果你没有href,添加一个tabindex='0"。
在某些浏览器中,如果你没有给出href属性,你会遇到问题。我建议你这样写代码:
<a href="#" onclick="yourcode();return false;">Link</a>
你可以用你自己的函数或逻辑替换code(),但记得添加return false;最后的声明。
推荐文章
- CSS/HTML:什么是使文本斜体的正确方法?
- 我如何才能在表中应用边界?
- 如何使一个DIV不包装?
- CSS div元素-如何显示水平滚动条只?
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 为什么标准迭代器范围是[begin, end]而不是[begin, end]?
- 使用“!”的含义是什么?重要的”?
- 资源解释为样式表,但以MIME类型text/html传输(似乎与web服务器无关)
- 复选框输入是否只在被选中时才发布数据?
- 是类型="文本/css"必须在<链接>标签?
- 如何将LaTeX与Markdown混合?
- 如何使<div>总是全屏?
- extern关键字对C函数的影响
- 如何中心div垂直内绝对定位的父div
- 创建一个可变长度的字符串,用重复字符填充