ARIA 实践指南(1)

本文是ARIA实践指南系列的第一篇,重点介绍了如何使用ARIA增强链接和按钮的可访问性。ARIA的roles、states和properties有助于屏幕阅读器理解页面元素,例如通过role="button"使模拟的按钮被识别。文章提供两个例子,展示了普通按钮和切换按钮的实现,强调了键盘交互和焦点管理的重要性。同时,强调了在使用ARIA时,需要关注可访问性语义和键盘可访问性。
摘要由CSDN通过智能技术生成

编者按:本文作者:安佳,360 搜索事业部的前端开发工程师,W3C CSS 工作组成员。

ARIA

ARIA,Accessible Rich Internet Applications,可访问的富 Internet 应用程序。

ARIA 属于可访问性语义的范畴。从功能上来说,ARIA 的 roles、states 和 properties 类似于辅助技术的 CSS。对屏幕阅读器而言,ARIA 控制着它们的非视觉体验的渲染。

举个例子:这段 HTML 代码

<button>保存</button>

屏幕阅读器会读成:

640?wx_fmt=jpeg

如果按钮是用<span>标签模拟的,即:

 
  

<span>保存</span>

此时,屏幕阅读器就不认识它了。若想告诉屏幕阅读器这个 HTML 元素也是一个“按钮”,则需要指定元素的 ARIA role。如下:

<span tabindex="0"

      role="button">保存</span>

此时,屏幕阅读器也会读成:

640?wx_fmt=jpeg

我们注意到,HTML 代码里还有一个属性tabindex="0",它表示该元素是可聚焦的,是可以通过键盘访问到的(更多内容请查阅 tabindex)。

与此相比,<button>保存</button>没写tabindex="0"却可以被键盘访问到,也可以被屏幕阅读器识别,这是因为 HTML 内置了这些功能。自带键盘可访问性的标签有<a><button><label>以及表单元素。键盘可访问包括按 tab 键能让页面中的元素获得焦点、按 Return/Enter 键能激活该元素、表单元素<select>在获得焦点时按方向键可以上下切换选项。

我们要做的

所以,在使用 ARIA 时,我们要做的就是:

  • 确保可访问性语义,让屏幕阅读器能认识该元素,即给 HTML 标签指定合适的 ARIA 的 role、state 及相关的 properties。这部分是纯 HTML 的

  • 确保键盘可访问性,为每个 ARIA role 定义预期的行为,即管理键盘焦点、提供键盘交互。这部分是 JS 和 HTML 的

作为《ARIA 实践指南》系列文章的第一篇,本文就先介绍两种最基本的控件:链接和按钮。

链接

role="link" 提供一个超链接,可以是其它页面、网页内锚点、文件、邮箱、电话等。

键盘交互:

  • enter:链接跳转,并将焦点移到链接目标处

在日常开发中,一般不用其它 HTML 标签去模拟超链接,而是直接使用原生的<a>,这是因为浏览器一般都会自带一些有价值的功能,比如在新窗口中打开目标、将目标URL复制到系统剪贴板等。

考虑到使用 ARIA 模拟链接的场景少之又少,此处就不展开介绍了。

按钮

role="button" 允许用户触发一个事件或者操作,比如提交表单、打开对话框、执行删除操作。如果激活按钮是打开对话框,那按照惯例,按钮的文案后面常跟着“...”,比如“另存为...”,文件的“浏览...”。

除了普通按钮之外,ARIA 还支持另外两种类型的按钮:

  • 切换按钮:它有两种状态“开启-关闭”。若按钮设置了状态 aria-pressed,那么辅助技术会视此按钮为切换按钮。当切换按钮的状态发生变化时,建议按钮对应的 label 别变;如果 label 会发生变化,那就可以不写aria-pressed

  • 菜单按钮:如果按钮的 aria-haspopup 属性设置成了menu或者true,那么辅助技术会视此按钮为菜单按钮(会在后续章节里介绍)

ARIA 相关:

  • role=

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值