无障碍审查记录
本页记录了 Rung 无障碍声明背后的辅助技术审查:验证了什么、怎么验证的、屏幕阅读器读出了什么,以及还有什么没做完。每一节都标注了验证日期。
审查进展
- 每次改动都跑一遍的自动化规则70 条规则 × 9 个界面
- 每次改动都守住的键盘操作路径持续进行
- TalkBack 实测,每条播报都有记录144 条播报
- WCAG 2.2 新增 A/AA 级标准,人工核查6 项中的 6 项
- 认知无障碍审查(W3C COGA)8 项中的 8 项
- VoiceOver(macOS)实测,每条播报都有记录467 条播报
- 真机测试(iPhone 和 Android 手机),下一步要做的尚未开始
屏幕阅读器审查:TalkBack(Android)
验证于 2026 年 7 月 24 日。TalkBack 按照真实用户的方式走完了正式上线的产品:首页、情况选择器、面谈的最初几个问题、职业搜索、完成的简历、导出步骤,以及西班牙语界面。导航使用 TalkBack 自带的手势,TalkBack 读出的每一条播报都按语音输出逐字记录下来。
| 屏幕阅读器 | TalkBack 15.0(Android Accessibility Suite) |
|---|---|
| 设备 | Android 15 模拟器,Pixel 7 配置 |
| 浏览器 | Android 版 Chrome 124 |
| 测试对象 | 正式上线的应用,没有用测试替身 |
TalkBack 播报了什么,原样记录
面谈的第一个问题,连同它的结构一起被读出:
"main. First, a few questions. heading 1. * marks a question you need to answer before moving on. What's your work situation? heading 2. So I can ask the right questions."
职业搜索,在输入 "cashier" 时:
"Edit box. Job title. A few letters to see matching jobs." … 结果出现后:"8 suggestions, use up and down arrows to choose."
导出步骤:
"Ready to go with you. dialog." … 文件的真实名称 … 完整的确认句,以复选框及其勾选状态播报出来,未勾选时,保存控件自己给出的说明:"Tick the box first, then save your file."
通过语言菜单切换出的西班牙语界面:
"main. El trabajo que ya hiciste es suficiente. heading 1. Nueve situaciones cambian lo que se pregunta." … "¿Qué trabajo buscas? status. Gratis. Sin cuenta. Tu currículum se queda en tu teléfono."
首页上的动态产品演示始终保持静默:它被标记为纯装饰,里面的仿制控件既不会获得焦点,也不会发声。
审查发现了什么,做了哪些改动
- 装饰性分隔符会发声。页脚法律链接之间的圆点,每一个都被单独播报为一次停顿。当天就修复了:现在这些圆点对辅助技术隐藏,页脚读出来就是它的五个链接。
- 两个不可见的控件能获得键盘焦点。在回访用户看到的首页上,Tab 键可能落在一个已淡出、屏幕上看不见的头部控件上。当天就修复了,现在有一个回归测试会用真实的 Tab 按键走一遍这个页面,只要有获得焦点的元素是不可见的就会失败。
- 此前自动化规则标记的三处提示经人工核查,都不是缺陷:主题和语言按钮在获得焦点时是完整可见的,可滑动预览里的控件在通过键盘到达时会自动滚动进入可视范围。
屏幕阅读器审查:VoiceOver(macOS)
验证于 2026 年 7 月 25 日。VoiceOver 在苹果自家的屏幕阅读器上走了同样的流程:首页的初始状态和已作答状态、面谈的最初几个问题、职业搜索、润色后的草稿、完成的简历、包含一次真实保存的导出步骤、样式步骤,以及西班牙语界面。导航使用 VoiceOver 自带的光标和激活命令,VoiceOver 说出的每一句话都按原样记录:共 467 条播报。
| 屏幕阅读器 | VoiceOver,macOS 26.5.1 |
|---|---|
| 浏览器 | Chromium 131 |
| 方法 | VoiceOver 自带的命令表;光标导航和 VO-空格键激活 |
| 测试对象 | 正式上线的应用,没有用测试替身 |
VoiceOver 播报了什么,原样记录
首页的情况选择器,用 VoiceOver 自带的激活方式选择:
"Recently lost a job Laid off, let go, or the work ended toggle button" … 以及读回的完整句子:"I am, recently lost a job, and I want work as, any job."
职业搜索,结果出现时:
"8 suggestions, use up and down arrows to choose"
导出步骤,由 VoiceOver 从头走到尾:
"Ready to go with you. heading level 2"
… 文件的真实名称,完整的确认句作为一个"未勾选的复选框"("unchecked checkbox"),VoiceOver 自己的激活动作将它标记为"已勾选"("checked"),保存控件随即执行真实的保存。
西班牙语界面:
"Nombra el trabajo. Sus tareas ya se conocen." … "Perdí un trabajo hace poco. Recorte, despido, o el trabajo terminó."
VoiceOver 审查发现了什么,做了哪些改动
- 两个孤立的句号会发声。首页的填空句和页脚各自以一个句号结尾,VoiceOver 会把它当成一次独立的停顿播报出来,两种语言都是如此。当天就修复了:现在这两处对辅助技术隐藏,可见的句子保持不变,并且有一个回归测试,只要那里还留有能被读出的孤立标点就会失败。
- 一个控件把自己说明了两遍。悬浮的"和 Rung 对话"控件带有语音说明;VoiceOver 会在读出控件本身时读一遍,又在每个界面的末尾作为单独一次停顿再读一遍。当天就修复了,并在真实的 VoiceOver 环境下重新验证:现在这个控件只播报一次,带着它的说明。
- 另外三处观察经人工核查,都不是缺陷:一个曾被读成空白的输入框实际上一直带着它的语音名称;测试框架寻找的那个独立朗读按钮,在对话朗读模式取代它时本就不存在;一个进入时被整体播报为一个长分组的设置面板,在它自己的界面上是逐个控件读出的。
WCAG 2.2 人工核查
自动扫描工具判断不了的标准,在每个核心界面都做了人工核查:焦点从不会被完全遮挡(上文提到的那一处问题已发现并修复);没有任何操作要求拖动(手机上的滑动面板都配有按钮作为替代方式);帮助信息在每个页面都出现在同一个位置;没有任何地方要求重复填写同一信息;访问密码字段支持粘贴和密码管理器;版面在 320 像素宽度下依然成立,不出现横向滚动。自动化规则(axe-core、WCAG 2.0/2.1 A 级和 AA 级,加上 2.2 版新增的 AA 级规则)在每次改动时都会运行,一旦出现违规就会阻止发布。
认知无障碍
产品对照 W3C 的《Making Content Usable for People with Cognitive and Learning Disabilities》做了审查:用平实的语言一次问一个问题,提供可选项而不是要求手写作答,每个问题都能听到朗读并可用语音作答,错误提示明确,没有时间限制,没有闪烁,答案始终可见、可修改,联系地址背后有真人在处理。
还有什么没做完
- 真机测试。在真实的 iPhone 上跑 VoiceOver,在真实的 Android 手机上跑 TalkBack,走一遍同样的场景。
文档
完整的播报记录和合规报告(采用 VPAT 2.5 模板的 ACR,日期为 2026 年 7 月 25 日,其中把真机测试列为范围限制)可发邮件至 hello@rung.guru 索取。