标签<a>的最佳实践

什么是标签 <a>

官方定义是这样的:

The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.

也就是 <a></a>, 我们需要关注的就是<a>中的属性,以及标签之间的内容(content).

例子

我们先观察以下看起来没啥问题的例子:

<p>
  <a href="https://www.self.com/report/sale.pdf">
    点击链接
  </a>
  下载销售报告
</p>

探讨之前

在分析以上例子之前,我想先探讨一下我们的目的

前端的一个关键目的就是,尽可能满足不同用户的需求。这里的用户不光指人类,还包括各种搜索引擎,各种辅助设备(比如给视障人士的读屏器等)。

具体分析

那么我们试着从不同的“用户”角度来分析上面例子存在的问题

对于搜索引擎来说,会着重分析标签<a>中的content,也就是例子1中的“点击链接”这个文本,和明显“点击链接”并没有包含对链接的描述,那么搜索引擎也就不明白这个链接的意义。

对于使用屏幕阅读器的用户来说,会偏向于在不看链接周围的上下文的情况下,在链接之间跳来跳去。也就是说,在大多数情况下,他们只关注标签<a>中的content,而忽略标签周围的上下文。在例子1中,他们也很容易只看的到“点击链接”这个文本,不明白这个链接到底指向何处。

就算对于大多数正常使用浏览器的用户来说,人们也容易只被标签<a>中的内容吸引,而忽略上下文。

那么我们要注意的是:要尽量在标签content中放入有意义的关键字

第一次改善

<p>
  <a href="https://www.self.com/report/sale.pdf">
    点击链接下载销售报告
  </a>
</p>

改善之后,将关键字都放到了标签<a>之内,解决了上面提出来的问题,那么我们再继续分析剩下的问题

改善后的问题在于标签<a>中的内容太多,用户通过标签<a>已经知道这是一个链接,所以就不要再出现“链接”之类的关键字。用户也知道链接是用来点击的,所以也不需要“点击”这个关键字。总之,保持标签<a>中的关键字简洁是非常重要的。

第二次改善

<p>
  <a href="https://www.self.com/report/sale.pdf">
    销售报告
  </a>
</p>

如上的例子中,精简了content,只剩下了“销售报告”四个字,貌似非常完美了。但是,我们知道通过点击链接之后,可能打开一个新的页面直接查看报告,也有可能是开始下载报告,有各种各样的可能性。 所以,我们在关键字中不能忽略掉点击链接之后的行为描述,告诉用户点击这个链接之后会发生的动作。

第三次改善

<p>
  <a href="https://www.self.com/report/sale.pdf">
    下载销售报告
  </a>
</p>

改善后的链接已经相对不错了,但是还是存在问题。就是URL是绝对地址,我们应该将它改成相对地址

第四次改善

<p>
  <a href="report/sale.pdf">
    下载销售报告
  </a>
</p>

采用相对地址有如下好处:

  1. 代码更加容易阅读
  2. 相对地址更加高效,如果采用绝对地址,浏览器会去查找DNS服务器,然后产生了一系列不必要的流程消耗。

最后,让我们再针对下载的链接,做一次优化,那就是添加 download 属性。

第五次改善

<p>
  <a href="report/sale.pdf" download="销售报告.pdf">
    下载销售报告
  </a>
</p>

在这里,download属性指定了下载时的默认文件名。

总结

综上所述,标签<a>的最佳实践要注意以下几点:

  1. 在标签<a>的content中,写上清晰易懂的关键字描述
  2. 尽可能使用相对地址
  3. 对于点击链接后的动作,给出清晰的提示
  4. 对于下载链接,添加download属性 (PS:download属性并没有被浏览器广泛支持,使用須谨慎)

参考

HTML element referenc
Creating hyperlinks

笔者博客

原文地址:https://www.cnblogs.com/homehtml/p/12200528.html

时间: 2024-10-05 01:38:01

标签<a>的最佳实践的相关文章

最佳实践:head里面标签的顺序

渲染页面时为了保证最佳效果和可靠性,你应该小心放置head里面的元素.首先,我来解释下最佳顺序,然后解释为什么. 最佳head顺序 <doctype> <html> <head> <meta http-equiv content-type charset> <meta http-equiv x-ua-compatible> <base> <title, favicon, comments, script blocks, etc&

OSGi原理与最佳实践:第一章 OSGi框架简介(2)

OSGi原理与最佳实践:第一章 OSGi框架简介(2) 由  ValRay 发布 已被浏览4884次 共有3条评论 已被3个人收藏 2013-08-16 21:23 顶(0) 踩(0) osgi原理与最佳实践 1.1.4 开发传统类型的应用 1.1.4.1 B/S 我们首先来看一下,如何基于 OSGi 来开发 B/S 结构的应用.B/S 结构应用程序的开发,可有两个选择:一个是在 OSGi 的框架中嵌入 Http 服务器,另外一个是在 Servlet 容器中嵌入 OSGi 框架.下面分别介绍这两

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM 由  ValRay 发布 已被浏览8409次 共有3条评论 已被2个人收藏 2013-08-16 21:29 顶(1) 踩(0) osgi原理与最佳实践 1.3 Spring-DM 1.3.1 简介 Spring-DM 指的是 Spring Dynamic Modules.Spring-DM 的主要目的是能够方便地将 Spring 框架 和OSGi框架结合在一起,使得使用Spring的应用程序可以方便简单地部署在OSGi环

Ionic最佳实践-了解Action Sheets

原文地址:北云软件-Ionic最佳实践-了解Action Sheets Action Sheets简介 Action Sheets是为组件提供上下文动作的一种很有用的方式.通过Ionic提供的$ionicActionSheet服务来提供上下文动作是简单的.在Ionic中,Action Sheets通过简单接口支持多动作按钮,包括销毁和取消操作. 本文我们将展示如何呈现Action Sheet.通过on-hold标记,当长按列表项几秒钟之后,出现Action Sheet. 打开一个Action S

Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践

Atitit. js mvc 总结(2)----angular  跟 Knockout o99 最佳实践 1. 框架 angular 跟Knockout 1 2. 2. 简单的列表绑定:Knockout 1 3. foreach绑定 3 4. Sumup:hesh angular simply 3 1. Mvc优点 angular 功能包括 3 2. 2.1 数据绑定 就是MVVM 结构, 3 3. 2.10 动画效果, ng-animate 4 5. 参考 5 1. 框架 angular 跟K

Dockerfile 最佳实践

之前 一篇文章介绍 docker 的镜像基本原理和概念 ,主要介绍在编写 docker 镜像的时候一些需要注意的事项和推荐的做法. 虽然 Dockerfile 简化了镜像构建的过程,并且把这个过程可以进行版本控制,但是不正当的 Dockerfile 使用也会导致很多问题: docker 镜像太大.如果你经常使用镜像或者构建镜像,一定会遇到那种很大的镜像,甚至有些能达到 2G 以上 docker 镜像的构建时间过长.每个 build 都会耗费很长时间,对于需要经常构建镜像(比如单元测试)的地方这可

Web前端优化最佳实践及工具集锦

前端的性能对于一个Web应用来说非常重要,如果一个Web应用的页面加载速度非常快.对于用户的操作可以及时响应,那么产品的用户体验将会极大地提升.下图显示了页面加载速度对于用户体验的影响. 你的Web页面的速度是否已经足够快了?其实可能还有很多可以提升的地方.Google和雅虎也提出了一些Web应用的前端优化建议,并发布了一些工具,你可以逐一检验你的Web应用,以便达到更高的性能. 这些优化不仅仅可以给用户提供更好的体验,从开发者角度来说,进行优化还可以减少页面的请求数.降低请求所占的带宽.减少资

atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践

atitit.Atitit.  Gui控件and面板-----服务端控件 java struts的实现最佳实践 1. 服务器控件的类别 1 1.1. 数据控件:该类控件可细分为两种类型:数据源控件和数据绑定控件. 1 1.2. 站点导航控件: 1 1.3. WebParts控件: 1 1.4. 登录控件: 1 1.5. Ajax 控件 1 2. jsf 2 3. Apache  ecs 2 4. Custom ui control... 2 5. Struts UI Tags display d

移动端WEB前端开发最佳实践

移动端WEB前端开发最佳实践 Safari,Android Browser,Chrome都是以WebKit为核心的 移动设备和PC之间的页面现实存在差异(Safari中定义了viewport) 在移动设备和桌面端WEB前端开发中,事件绑定存在差异(移动触点) 页面控件设计存差异(点触不灵敏,虚拟键盘弹出框) 移动设备的网络带宽普遍比PC慢,移动页面要设置更简洁 PC页面兼容移动设备 使用流式布局 借助CSS Media queries(媒体查询)技术 使用合适的图片显示兼容方案 保持页面简洁,不