移动设备无障碍清单
本文档为移动应用开发者提供了一份简洁的辅助功能要求清单。随着新模式的出现,本文档将不断演进。
颜色
-
颜色对比度必须符合 WCAG 2.2 AA 级要求
- 普通文本(小于 18pt 或 14pt 粗体)的对比度为 4.5:1。
- 大号文本(至少 18pt 或 14pt 粗体)的对比度为 3:1。
-
通过颜色传达的信息也必须通过其他方式提供(例如,链接使用下划线文本等)。
可见性
- 不得仅使用零不透明度、z 轴顺序和屏幕外定位等内容隐藏技术来处理可见性。
- 当前屏幕上除了可见内容以外的所有内容都必须是真正不可见的(对于具有多个卡片的单页应用尤其重要)。
- 使用
hidden
属性或visibility
或display
样式属性。 - 除非绝对不可避免,否则不应使用
aria-hidden
属性。
- 使用
焦点
-
所有可激活的元素都必须可获得焦点。
- 链接、按钮和表单字段等标准控件默认即可获得焦点。
- 非标准控件必须为其分配适当的 ARIA 角色,例如
button
、link
或checkbox
。
-
焦点应以逻辑且一致的方式进行处理。
文本等效项
-
对于应用中所有非纯粹表现性的非文本元素,都必须提供文本等效项。
- 在适当的地方使用 alt 和 title 属性(阅读 Steve Faulkner 关于使用 HTML title 属性的文章,获取一份不错的指南)。
- 如果上述属性不适用,请使用适当的 ARIA 状态和属性,例如
aria-label
、aria-labelledby
或aria-describedby
。
-
必须避免使用文本图片。
-
所有具有可见文本(或文本图片)作为标签的用户界面组件,必须在组件的程序化 名称 中提供相同的文本。WCAG 2.1: 名称中的标签。
-
所有表单控件都必须有标签(
<label>
元素),以方便屏幕阅读器用户使用。
处理状态
- 单选按钮和复选框等标准控件由操作系统处理。但是,对于其他自定义控件,必须通过 ARIA 状态(如
aria-checked
、aria-disabled
、aria-selected
、aria-expanded
和aria-pressed
)来提供状态更改。
方向
- 除非必要,否则内容不应仅限于单一方向(如纵向或横向)。WCAG 2.1: 方向
- 例如,钢琴应用或银行支票是方向至关重要的场景。
一般准则
-
必须提供应用标题。
-
标题不得破坏层级结构。
html<h1>Top level heading</h1> <h2>Secondary heading</h2> <h2>Another secondary heading</h2> <h3>Low level heading</h3>
-
应使用 ARIA 地标角色来描述应用或文档结构,例如
banner
、complementary
、contentinfo
、main
、navigation
、search
。 -
对于触摸事件,请确保以下几点(WCAG 2.1: 指针取消)
- 不应使用按下事件来执行功能的任何部分;
- 如果上述条件不满足,功能的完成应在抬起事件上触发,并且需要有机制可以在完成前中止操作或在完成后撤销操作;
- 如果上述条件不满足,抬起事件应能够撤销由按下事件触发的任何操作;
- 如果必须在按下事件上触发操作,以上所有规则都可能被违反,通常是为了模拟真实世界的体验或提供实时反馈。例如,游戏控件、钢琴键盘或虚拟键盘。
-
触摸目标必须足够大,以便用户能够与之交互(请参阅 BBC 移动辅助功能指南,了解有用的触摸目标尺寸指南)。
注意:本文档的原始版本由 Yura Zenevich 撰写。