2025-01-24 07:00:03

空href是否有效?

我们的一个web开发人员使用下面的html作为样式化下拉列表的占位符。

<a href="" class="arrow"></a>

这被认为是锚标签有效吗?

由于没有href值,它在我们的一些链接检查器报告中显示为broken。


当前回答

试着用<a href="#" class="arrow">代替。(注意尖锐的#字符)。

其他回答

当前的HTML5草案还允许完全省略href属性。

如果a元素没有href属性,则该元素表示一个占位符,表示链接可能被放置的位置(如果它是相关的)。

回答你的问题:是的,这是有效的。

正如其他人所说,这是有道理的。

但每种方法都有一些缺点:

Href ="#"在浏览器历史记录中添加了一个额外的条目(这在后退按钮时很烦人)。

Href =""重新加载页面

Href ="javascript:;"似乎没有任何问题(除了看起来乱七八糟和毫无意义)-有人知道吗?

实际上,您可以让它为空(W3验证器不会抱怨)。

更进一步:去掉=""。这样做的好处是,链接不会被视为当前页面的锚。

<a href>sth</a>

提醒一句:

根据我的经验,忽略href属性会导致可访问性问题,因为键盘导航将忽略它,并且永远不会像href存在时那样给予它焦点。手动在tabindex中包含元素是一种解决方法。

虽然不包含href可能是完全有效的HTML,特别是使用onclick处理程序时,但有一些事情需要考虑:如果没有tabindex值设置,它将不能用于键盘聚焦。此外,使用Internet Explorer的屏幕阅读器软件将无法访问它,因为IE将通过可访问性接口报告任何没有href属性的锚元素为不可聚焦的,无论tabindex是否已设置。

因此,虽然以下说法可能完全正确:

<a class="arrow">Link content</a>

显式地添加一个null-effect href属性要好得多

<a href="javascript:void(0);" class="arrow">Link content</a>

为了完全支持所有用户,如果使用带有CSS的类来呈现图像,还应该包括一些文本内容,例如title属性,以提供对正在发生的事情的文本描述。

<a href="javascript:void(0);" class="arrow" title="Go to linked content">Link content</a>