被大多数开发人员忽略的Web Accessibility是什么?

最近项目需要,研究了一下Accessibility,在这之前,作为一个前端开发,我对这个几乎是不了解的,为此感到十分惭愧。所以Web Accessibility到底是什么呢?

首先我们先来了解一下 Accessibility,又简称为A11y(A-y中间一共11个字母),翻译为中文又叫“无障碍访问”,是指产品、设备、服务以及环境等也能够被残疾人使用。所以Web Accessibility 我们就不难理解了,在W3C上对这个词语有着更加准确的定义:

Web accessibility means that websites, tools, and technologies are designed and developed so that people with disabilities can use them. More specifically, people can:
- perceive, understand, navigate, and interact with the Web
- contribute to the Web

Web无障碍是指设计和开发网站、工具和技术,使残疾人能够使用它们。更具体地说,所有人可以:
- 感知、理解、导航和与Web交互
- 为Web做贡献

Disabilities 又指的是哪些人呢?同样在W3C上有着明确的定义:

Web accessibility encompasses all disabilities that affect access to the Web, including:
Web无障碍包括所有影响浏览网页的障碍,包括:
- auditory (听觉)
- cognitive (认知能力)
- neurological (神经损伤)
- physical (身体上的)
- speech (语言)
- visual (视觉)

Web无障碍对无残疾人士亦有好处,例如:
- 人们使用手机、智能手表、智能电视等具有小屏幕、不同输入模式的设备等
- 随着年龄的增长能力发生变化的老年人
- 有“暂时性残疾”的人,如手臂骨折或眼镜丢失
- 有“情境限制”的人,例如在明亮的阳光下或在无法听音频的环境中
- 使用慢速互联网连接,或带宽有限或昂贵的人

简而言之,这里所指的有障碍的一类人包括失明或低视力、耳聋或听力低下、行动受限、语言障碍、感光性以及这些障碍的组合,以及有学习障碍或认知限制的一类人。

据公开数据统计,全球大概有76亿人,而使用互联网的达到了44.3亿。联合国残联通过调查得出数据,全球大约有10%(约7亿6千万)的人是残疾人。所以这个渺小而又庞大的群里我们软件开发的目标用户吗?他们能够是我们的目标用户吗?虽然我不能感动深受,但是我想他们肯定希望自己能够随心所欲的访问互联网,能够像一个正常人一样去体验科技给人们带来的便捷与快乐。所以,如果我们能够让他们的期望变为现实,那又为什么不尽力去实现呢?

为了使我们的web应用能够被所有的人使用,比较重要的几点包括:
1. 对于所有的鼠标操作,应用程序应该有相应的键盘。
2. 选项卡必须按逻辑顺序排列,以确保导航顺畅。
3. 需要为菜单提供快捷键。
4. 应用程序中的所有标签应准确和易于理解。
5. 应用程序中的颜色需要对所有用户都是可区分的。
6. 图像和图标应该容易被所有终端用户理解。
7. 用户应该能够调整或禁用闪烁、旋转或移动元素。

为了支持无障碍访问,W3C(Wide Word Web Consortium)制定了一系列的标准,这就是WCAG(Web Content Accessibility Guidelines)。WCAG基于可感知、可操作、可理解和健壮性 四个基本原则定义了如何使残障人士更容易访问网站内容的准则。WCAG进行了3次主要修订,即:
- 版本1.0发布于1999年
- 版本2.0,发布于2008年
- 2018年出版的2.1版。

1.0 和 2.0版本主要是针对四项基本原则制定了一些标准,所以在这之前大多数组织使用的是2.0版本。但是大家都有目共睹,从2008年到现在,这十多年来网络技术的发展是突飞猛进的, 例如HTML5的发布使前端技术不再局限于简单网页的编写。所以针对最新的web技术,W3C 在2018年发布了2.1版本。2.1版本的更想主要是以下几点:
    1. 提供触摸设备手势的替代品。如缩放或滑动必须使用替代手势,可以使用单点、双点或长点来代替执行。
    2. 针对组件的标签和可感知的名称应该是相同的。如一个按钮在屏幕上显示为“搜寻”,则该按钮的标签亦应是“搜寻”。这样,如果用户说“搜索”。然后语音识别软件将识别并触发搜索行动。
    3. 网页在纵向和横向模式下应该具有同等的功能。缩放应该是比例的,平滑的,不应该导致功能的损失。
    4. 悬停或焦点内容,因为在没有鼠标的情况下,这些小部件是不容易访问的。指南建议用户应该能够停留在这个内容上(例如表单模式),并使用键盘导航,而不失去对背景页面的关注。用户应该能够使用ESC键关闭这样的内容。
    5. 应该清楚地通知用户超时。一个常见的用例是用户将从经过身份验证的站点被注销。应该有非常明确的通知,以便在此类事件发生时清楚地通知所有用户——包括残疾用户

其实早在1973年,国会通过了一项以帮助所有人,包括残疾人的名为《康复法案》的法案。在1998年和1999年,该法案进行了修订,以使电子信息技术更容易访问,该修正案叫做 Section 508。Section 508 主要是针对一个非营利组织,这个组织可能从政府那里得到钱来为其成员建立一个网站,那么这个网站必须符合Section 508标准。在2018年WCAG2.1发布时,国会修改Section 508的指导准则,加入了WCAG关于A和AA符合性的指导方针。

所以在我们的项目中,比较常见的例子和实践:
1. 使用语义化的HTML标签
2. 实现无障碍表单
    · 所有的 HTML 表单控制,例如 <input> 和 <textarea> ,都需要被标注来实现无障碍辅助功能。(WAI-ARIA)
    · 再出现任何错误时,所有用户都应该知情
3. 控制焦点-确保你的网络应用在即使只拥有键盘的环境下正常运作。不要使用css移除input、a等标签的默认outline样式
4. 使用WebAIM技术实现跳过内容机制
5. 使用程序管理焦点,例如:在一个弹窗被关闭的时候,重新设置键盘焦点到弹窗的打开按钮上。
6. 确保任何可以使用鼠标和指针完成的功能也可以只通过键盘完成。
7. ......

在上面我们提到了一个提高我们无障碍访问的web技术叫做 Accessible Rich Internet Applications (ARIA),  那么什么又是ARIA呢?  ARIA是能够让残障人士更加便利的访问 Web 内容和使用 Web 应用(特别是那些由JavaScript 开发的)的一套机制。ARIA是对超文本标记语言(HTML )的补充,以便在没有其他机制的情况下,使得应用程序中常用的交互和小部件可以传递给辅助交互技术。ARIA 是一组特殊的易用性属性,可以添加到任意HTML标签上.

如果是用react 开发web应用,推荐以下几个工具:

Eslint-plugin-jsx-a11y  : Lint tool in editor

React-axe

The Accessibility Engine (Chrome plugin)

Wave (Chrome plugin)

Pa11y :  CI/CD

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359