ARIA无障碍

860 阅读3分钟

本文主要讲的WAI-ARIA指无障碍网页应用。ARIA全称“Accessible Rich Internet Applications(可访问的富互联网应用)”,在当下讨论ARIA基本上都是为读屏设备或软件,而读屏设备或软件的使用者多是视力障碍人员,因此,ARIA约定俗成就成了对视障用户的无障碍访问支持技术的代称了。

WAI-ARIA指无障碍网页应用。主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员。尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏幕阅读器,屏幕阅读机可以大声朗读或者输出盲文。 而ARIA就是可以让屏幕阅读器准确识别网页中的内容,变化,状态的技术规范,可以让盲人这类用户也能无障碍阅读!为满足残障人士的使用要求,希望在页面中的按钮、图片、文字上增加焦点和描述,增加内容的可访问性。

首先,了解下移动端常见的读屏软件,如下列表:
  • Android: TalkBack
  • Android: Funtouch
  • iPhone: VoiceOver

开启读屏服务的方法步骤(不同手机型号可能存在差异):

  • Android: 设置 -> 智能辅助 -> 无障碍 -> 屏幕阅读器(开启)
  • iPhone: 设置 -> 辅助功能 -> 旁白(开启)

开启读屏功能后,便不能像之前那样使用手机了,操作手势如下图所示:

image.png

仅通过手机自带的屏幕阅读器有时候并不能准确的读出屏幕中的内容, 因此,需要添加无障碍属性辅助屏幕阅读器,那就需要在使用的组件中中,支持role属性、aria属性、aria状态属性的透传,使业务方能直接使用这些属性,为页面上的元素自定义无障碍属性,使得屏幕阅读更加准确。

ARIA中role属性值,根据不同的功能给元素设置相应的无障碍角色,让屏幕阅读器准确识别,下面列出常用role属性值

ARIA Roles值示意及说明表
Role属性值含义
alert表示警告
textbox表示文本输入框
alertdialog表示警告弹出框
button表示按钮
radio表示单选
checkbox表示复选框
tab表示标签
tabpanel表示标签面板
timer表示计数
tooltip表示提示文本
ARIA 属性值示意及说明表
属性名属性值说明
aria-label字符串定义一个字符串值标记当前元素。
aria-hidden字符串。可选值为truefalsetrue表示元素隐藏(不可见),false表示元素可见。该属性使用非常普遍。几乎所有涉及到显示与隐藏这类交互或没有交互的地方都可以应用该属性。
aria-haspopup字符串。true表示点击的时候会出现菜单或是浮动元素;false表示没有pop-up效果。该属性定义了元素点击后是否会出现菜单或浮动元素
aria-disabled字符串。表禁用状态,true表示当前是非激活状态;false表示清除非激活状态。表禁用状态
aria-checked字符串。表示检查的状态。true表示元素被选择;false表示元素未被选择;mixed表示元素同时有选择和为选择状态。表示选中的状态,常用于radio的选中状态
aria-required字符串。元素值是否必需。默认为false, 表示元素值可以为空;true表示元素值是必需的。多半用在表单控件中。对应HTML5中required属性。
aria-selected字符串。表示选择状态。可选值有:true, false, undefined. 默认为undefined,表示元素选择状态未知。true表示元素已选择;false表示未被选中。表示选择状态,常用于tab的选中状态

参考文章:

WAI-ARIA无障碍网页应用属性完全展示

React官方-无障碍辅助功能

无障碍开发(二)之ARIA role属性)

【译】开发无障碍的Web组件 - 简介