一句话定义:可访问性树(Accessibility Tree)是浏览器或操作系统在渲染界面时额外生成的一棵语义树,它把界面元素描述成带角色(role)、名称(name)、状态和层级的节点,原本是给读屏软件用的。
它是怎么长出来的
想象你第一次进一家大商场。只看实景照片,你面对的是一片花花绿绿的色块;但如果手里有一张导览图,写着「3 楼 · 母婴室 · 开放中」,你立刻知道那是什么、能不能用。
界面也一样。浏览器渲染网页时,内部同时维护着 DOM 树(Document Object Model),那是完整的实现细节,塞满只用于排版的 div、span。渲染管线会再走一遍:丢掉纯装饰节点,把剩下的翻译成标准语义——「这是一个按钮,名字叫『提交订单』,当前不可点击」——于是得到一棵干净得多的树。手机 App、桌面软件同样会向系统暴露这样一棵树,读屏软件读的就是它。缺失标注的元素,在这棵树里往往是空的或名字含糊。
和邻近概念的区别
| 对象 | 表达什么 | 噪声 | 典型使用者 |
|---|---|---|---|
| 截图 / 像素 | 视觉外观 | 高 | 需要看布局和图标的人 |
| DOM 树 | 完整实现结构 | 很高 | 前端开发者、爬虫 |
| 可访问性树 | 语义与可操作性 | 低 | 读屏软件、GUI 智能体 |
一句话区分:截图是「看起来像什么」,DOM 是「代码怎么写的」,可访问性树是「这东西是什么、叫什么、能不能点」。
对从业者的实际意义
做 GUI 智能体(GUI Agent)、computer use 这类方向的人,最该盯住这棵树。举例:让智能体点「登录」,走截图路线要先跑视觉模型定位坐标,窗口一缩放坐标就废,还得反复截图烧 token;读可访问性树则可以直接定位到 role=button、name="登录" 的节点,拿到稳定引用,再执行点击或输入。它比截图省、比 DOM 稳,而且跨平台——Web、移动端、桌面端都有对应的树。
局限也要说清:自定义绘制的画布、游戏画面常常没有语义标注,树里可能是空的;树会随界面变化刷新,不能当静态快照用;不同平台字段不完全一致。所以成熟做法通常是「可访问性树优先,截图兜底」,两者互补。具体接口与字段细节,以各平台官方文档为准。
