做无障碍检测时,人工核对费时,孤立脚本又难复用。开源项目 AccessBuild 近期的改进提供了参考,直接解析 Android UI tree XML,让审查融入常规开发。但这不等于自动化能解决一切,理解其边界同样关键。
把界面树扫描接进日常开发
依赖手动粘贴组件列表在复杂页面中难以为继。AccessBuild 的 /scan 接口接收原始 Android UI tree XML,自动提取 button 与 input,以及 icon 和 link,比对标签并给出 A 到 F 评级。
在项目的银行登录测试页面中,5 个交互组件只有 2 个带有标签,按该项目的规则得到 40% 和 D 级评分。这是标签检查结果,不能直接当作整款应用的无障碍合规结论。挑选此类工具应看其能否直接解析树结构,免除人工录入的重复劳动。
持久化存储才能让审查结果沉淀为质量资产
没有存盘的工具跑完即丢,无法追踪演进。该方案挂接 Supabase PostgreSQL,配合 /audits/recent 与 /stats 接口,使单次扫描留痕并支持统计分析。
有人认为控制台打印日志便已足够,但无障碍是长期工作。缺乏归档容易修旧致新,选用方案时应挑具备审计留痕能力的架构,以持续量化质量提升。
自动化落地需警惕环境联调的隐形成本
环境联调往往比编写逻辑更耗时。该项目在 Render 部署时接连遇到 $PORT 缺失与 models.py 遗漏,又被构建缓存干扰,排障3小时才换来功能就绪。
在将扫描接入 Phone Agent 之前,需预留充足的部署适配成本。想参考实现可查阅仓库 https://github.com/Dexter2344/accessbuild-api,先在测试环境跑通闭环。
摆脱繁琐的人工核验,核心在于把界面解析与审计存盘嵌入现有工程。不必等待万能方案,不妨先在构建中接入 UI 树自动扫描,提早暴露不可见组件。