Android 无障碍测试框架
为了帮助残障人士使用 Android 应用,这些应用的开发者需要考虑他们的应用如何向无障碍服务呈现。一些良好实践可以通过自动化工具检查,例如检查视图是否有 contentDescription。其他规则则需要人工判断,比如 contentDescription 是否对所有用户都有意义。
有关移动无障碍的更多信息,请参见 http://www.w3.org/WAI/mobile/。
该库收集了针对 View 对象和 AccessibilityNodeInfo 对象(Android 框架从 View 派生并发送给 AccessibilityServices)的各种与无障碍相关的检查。
构建库
提供的 gradle wrapper 和 build.gradle 文件可用于构建无障碍测试框架或将项目导入 Android Studio。
$ ./gradlew build
使用示例
给定一个视图,以下代码对该视图为根的层次结构中的所有视图运行所有无障碍检查,如果发现任何错误,则抛出异常:
ImmutableSet<AccessibilityHierarchyCheck> checks =
AccessibilityCheckPreset.getAccessibilityHierarchyChecksForPreset(
AccessibilityCheckPreset.LATEST);
AccessibilityHierarchyAndroid hierarchy = AccessibilityHierarchyAndroid.newBuilder(view).build();
List<AccessibilityHierarchyCheckResult> results = new ArrayList<>();
for (AccessibilityHierarchyCheck check : checks) {
results.addAll(check.runCheckOnHierarchy(hierarchy));
}
List<AccessibilityHierarchyCheckResult> errors =
AccessibilityCheckResultUtils.getResultsForType(
results, AccessibilityCheckResultType.ERROR);
if (!errors.isEmpty()) {
throw new RuntimeException(errors.get(0).getMessage().toString());
}