7. 无障碍性
最佳实践
核心模块
访问公共服务、教育、电子商务网站和娱乐等 Web 内容是人权。任何人都不应该因残疾、种族、地理位置或其他人类特征而被排除在外。本模块讨论了您应该学习的最佳实践和技术,以使您的网站尽可能地可访问。
一般资源
- 让我们学习如何使 Web 可访问,Scrimba 课程合作伙伴
7.1 无障碍性基础
学习成果
- 了解无障碍性的目的——提高所有人的可用性、改善 SEO 和更广泛的目标受众。此外,还要了解法律要求。
- 了解无障碍性应该从项目的开始就考虑,而不是在最后才添加。
- 了解 Web 内容无障碍指南 (WCAG) 符合性标准。
- 使用语义化 HTML,即“为正确的工作使用正确的元素”,因为浏览器提供了许多内置的无障碍性挂钩。良好的示例是
<a>
和<input>
元素。 - 无障碍性最佳实践
- 替代文本(另请参见 2.6 媒体)。
- 良好的链接文本(另请参见 2.5 链接)。
- 表单元素的
<label>
(另请参见 2.7 其他交互式元素)。 - 提供特定可用性优势的移动浏览器,例如
number
或tel
等特定<input>
类型。 - 使用
<th>
、<thead>
、<tbody>
、<tfoot>
、<caption>
和scope
属性使表格可访问(另请参见 2.8 HTML 表格)。 - 使用简单的普通语言,尽可能避免使用俚语和缩写,并在无法避免的情况下提供定义。
- 了解音频转录本和文本轨道(字幕、旁白等)在使音频和视频内容可访问方面的作用(我们并不期望您精通如何创建它们;这本身就是一个高级主题)。
- 键盘可访问性
- 了解为什么应用程序需要是键盘可访问的——许多人难以使用鼠标或其他指向设备。
- 了解内置的浏览器键盘控件。
- 了解何时使用
accesskey
和tabindex
是合适的。
资源
7.2 可访问的样式
学习成果
- 文本大小和布局
- 确保您的文本布局良好、一致且易读。
- 考虑为视力障碍者提供大字体界面。
- 另请参见 4.1 文本和字体样式。
- 颜色对比度
- 使用在线工具,例如 WebAIM 的 颜色对比度检查器 或 TPGi 颜色对比度分析器 来检查您的颜色对比度是否符合相关的 WCAG 符合性标准。
- 注意色盲或视力障碍者;提供适合他们的高对比度模式。
:focus
和:hover
样式- 这些对于鼠标和键盘用户来说是重要的提示。
- 另请参见 4.2 样式化列表和链接。
- 明智的动画使用——以微妙的方式使用动画并提供关闭它的控件
- 考虑患有某些认知障碍者的需求。
prefers-reduced-motion
媒体查询专门用于帮助解决此问题。
- 隐藏内容以防止其变得不可访问的最佳实践。例如,
display: none
使内容无法被屏幕阅读器读取,因此需要谨慎使用。
资源
- CSS 和 JavaScript 无障碍性最佳实践 > CSS
- 包容性设计原则,inclusivedesignprinciples.org
- 无障碍性设计指南,wiki.mozilla.org (2023)
7.3 可访问的 JavaScript
学习成果
- 了解过多的 JavaScript 也会造成问题。更简单的方法通常更容易访问,而且通常对每个人来说都更好。
- 了解非侵入式 JavaScript 的价值
- 如果可能,将 JavaScript 作为可用性增强,这对于应用程序的功能并不是必需的。
- 一个很好的例子是表单输入的客户端验证。
- 明智地使用事件,这样您就不会锁定特定的控件类型。例如,鼠标特定事件,如
mouseover
和mouseout
,可能会锁定键盘或触摸屏用户。
资源
- CSS 和 JavaScript 无障碍性最佳实践 > JavaScript
- 移动无障碍性
- 验证输入,W3C (2019)
7.4 辅助技术
学习成果
- 屏幕阅读器和其他辅助技术 (AT) 类型
- 它们的使用目的以及谁使用它们。
注意事项:
- 这里的目标不是精通所有辅助技术类型的用法(还有很多我们没有列出在下面),而是要了解它们的存在以及使用它们的人,并了解无障碍性最佳实践是如何以及为什么有效的。
- Web 开发人员使用屏幕阅读器或其他类型的辅助技术也是一个好主意,以了解使用这些技术的用户的 Web 体验。
- 源代码顺序的重要性。
- 浏览器中的无障碍性层以及辅助技术如何接入它。
- 设置屏幕阅读器并在桌面和移动设备上使用它们测试网站。
- 其他辅助技术,例如
- 大字体或盲文键盘。
- 替代指向设备,例如轨迹球、操纵杆和触摸板。
- 屏幕放大器。
- 语音识别软件。
- 开关控制。
- 审核工具,例如 Firefox 无障碍性检查器、ANDI 书签、Wave 和 Google Lighthouse 无障碍性审核。
资源
- 处理常见的无障碍性问题 > 无障碍性工具
- 移动无障碍性
- 残疾人如何使用 Web,W3C (2017)
- WebAIM 无障碍性工具文章,WebAIM
7.5 WAI-ARIA
学习成果
- 了解 WAI-ARIA 的目的——为原本没有语义的 HTML 提供语义,以便 AT 用户能够理解向他们呈现的界面
- ARIA 的第一条规则:“如果您可以使用带有您需要的语义和行为的原生 HTML 元素或属性,而不是重新使用元素并添加 ARIA 角色、状态或属性使其可访问,那么就使用它。”
- 换句话说,使用语义化 HTML 是理想选择,但并非所有时候都可行。WAI-ARIA 是一种针对此类情况的桥接技术。
- 基本语法——角色、属性和状态。
- 地标和指路。
- 增强键盘可访问性。
- 使用动态区域宣布动态内容更新。
资源
- ARIA,Scrimba 课程合作伙伴
- WAI-ARIA 基础
- ARIA 作者实践指南 (APG). W3C