原生无障碍
用同一棵言界控件树接入 Windows UIA、macOS NSAccessibility 与 Linux AT-SPI。
言界 1.0 把控件树转换为言台无障碍协议 1.0 的纯言序语义树。言台再把同一模型注册到 Windows UIA、macOS NSAccessibility 或 Linux AT-SPI;应用不接触系统对象、原始指针或 平台条件分支。
内置控件语义
每个控件存活期间拥有稳定正整数编号,并公开角色、逻辑像素边界、名称、描述、状态、值、 动作和子节点。应用应为没有充分可见文字的控件设置名称:
定 姓名 为 表单.输入框({「占位」:「姓名」});
姓名.可访问名称(「账户姓名」);
姓名.必填(真);
定 保存 为 表单.按钮(「保存」);
保存.可访问描述(「保存当前账户设置」);显示、启用、可聚焦、只读、必填、无效、焦点、选择和忙碌状态会按角色映射。
值只允许空、逻辑值、有限数或有界文字;集合数量、加载错误和其他诊断不应塞进值字段。
焦点与动作
内置控件把辅助技术请求复用到已有交互路径:
| 控件 | 主要动作 |
|---|---|
| 按钮、复选框、单选框、切换 | 点击、选择 |
| 下拉选择、滑块、输入框 | 设置值;按控件支持展开、折叠、增加、减少或选择 |
| 滚动、列表项 | 滚动、选择、滚动到 |
| 标签、分割面板 | 选择或调整比例 |
| 菜单、菜单项、弹出层 | 点击、展开、折叠 |
请求携带窗口、当前树修订和节点编号。言界先同步尚未提交的语义变化,再重新查找当前控件, 核对可见、启用、可聚焦状态和参数;旧修订、离开可见范围的列表项、已关闭控件或未声明动作 都会被拒绝,不会转成普通事件。
同步与检查
通常由窗口在显示、布局、重绘和状态变化时自动同步。测试和诊断可以显式读取:
定 摘要 为 窗口.同步无障碍();
定 快照 为 窗口.无障碍快照();快照包含修订、节点数、文字字节、焦点和规范化树。单窗口最多 16384 个节点、深度 64、
总文字 4 MiB;普通列表和虚拟列表只为当前可见范围生成最多 256 个列表项节点。密码框
不把值或文字运行交给系统桥,内容安全诊断也不复制语义文字树。
自定义控件覆写语义时应保留父实现的编号、边界和通用状态,只声明已经实现的动作,并在 执行动作时再次校验当前状态和参数。完整角色、状态、动作组合与限制见 言台协议和 言界接入指南。
上线验收
六目标 CI 验证适配器创建、树同步、焦点/动作回传和关闭收敛,但不能替代实际辅助技术的
播报。发布前应分别使用 Windows Narrator、macOS VoiceOver 和 Linux Orca 检查名称、焦点
顺序、必填/无效状态、表单改值、菜单层级、列表项和窗口关闭。运行时还应确认言台能力
查询报告原生无障碍桥 = 真及预期的 UIA、NSAccessibility 或 AT-SPI 后端。