<a href=“#”>链接</a>是断开的链接吗?


12

使用空的URL片段链接时,要将用户发送到页面顶部(例如<a href="#">return to top</a>),这些链接是否被视为损坏或无效?我的工具之一是将它们全部作为断开的链接返回。


哪些“工具”正在考虑将其损坏?
MrWhite 2013年

我用来生成站点地图的PHP程序。
弥敦道

@Su':为什么删除我的感谢?我很真诚!
内森

4
@Nathan我确定你是。但是SE网站并不是真正的讨论论坛,基本上是在浪费时间和空间。只是问一个问题。通过投票/接受答案来表达您的赞赏。杰夫的答案有一个“规范”的答案,但另一些答案则有所不同。
Su

Answers:


11

从技术上讲,“#”是一个定义良好的URL引用,它指向当前文档的开始,因此在形式上不被“破坏”。但是,它被认为对可访问性不利,它也是“伪”链接的常见症状,即a假想链接到外部但依赖JavaScript的元素。(在过去,它<a href="..." onclick="...">是唯一支持该onclick属性的元素,因此人们编写了“虚拟” href="#"属性,这并不是真正的虚拟对象。)

因此,您可以将其视为不正确的错误消息,或者是有用的警告消息,可能编写得有些不正确。


1
您是否有明确定义#并指向文档开头的来源(即w3c规范)?
DisgruntledGoat 2013年

2
@DisgruntledGoat,它在Internet标准STD 66“统一资源标识符(URI):通用语法”的第4.4节中指定。相同文档参考,请参见例如tools.ietf.org/html/std66#section-4.4
Jukka K.

1
提供资源的荣誉,尽管我看不到任何单独指定#的内容都指向文档的开头。
DisgruntledGoat

1
嗯,是的,标准不太明确,但是很自然地假设引用的文档最初位于开始位置。其前身RFC 2396更明确:“ 4.2。相同文档参考。不包含URI的URI引用是对当前文档的引用。换句话说,文档中的空URI引用被解释为对该文档开头的引用,而仅包含片段标识符的引用就是对该文档已标识片段的引用。”
Jukka K. Korpela

3

我不认为这是断开的链接。

断开的链接是指向资源不存在的链接(404 HTTP响应)。


1
不要用“我认为”来对冲这个答案。这不是意见问题,而是事实问题(您是正确的)。
msanford

1
@msanford:对,我编辑了答案。
Zistoloen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.