J3.12.3voice control number disambiguation设计研究
屏幕上同名的多个控件需要编号或序号供语音消歧
别名: 语音编号 · 同名消歧 · show numbers
概念解释
一屏上三个「删除」、一列表里二十个「播放」,可见标签彼此相同。即使用户说对了词,系统也不知道指哪一个。语音控制用编号叠加(show numbers)来消歧:人改说「点击 7」。界面必须让这些控件作为分开的可命名对象出现,编号才能落在每一块上;否则同名不是文案问题,是选不中的问题。
机制
名称匹配在同名集合上是一对多。没有第二键(序号、相对位置口令),匹配只能拒绝或误选第一个。编号把「哪一个」从语义里抽出来,改成空间索引。这要求每个目标在无障碍树上是独立节点,并且占一块可指的屏上区域。自定义列表若把整表画成一块、行只是像素,编号会落在整表上,行内按钮无法被点名。
更稳的消歧是先减少同名:第二、第三个「删除」改成「删除草稿」「删除账号」。编号是同名无法避免时(重复行、重复卡片)的通道,不是鼓励所有按钮都叫同一个词。
怎么研究
构造一屏多个可见标签相同的控件,打开语音控制编号。记录:编号是否出现在每一个实例上、说编号是否命中预期那一个、说标签是否误中另一个。
自变量:同名实例数、是否暴露为独立可访问对象、列表是否虚拟化回收节点。 因变量:编号覆盖率、说编号的正确命中、说标签时的误选。
虚拟化列表在滚动后编号重排,要测「滚完再说」:用户记住的旧号会失效。
边界
一屏只有一个该名称时,编号不是必经之路,说出标签即可。网格选点(没有名称的画布坐标)是另一条叠加,不要和控件编号混成同一次验收。编号本身若画在控件正中且不透明,会挡住判断——那是遮挡问题,不要在消歧里展开。语音识别把两个近音词听成同一个,是识别错误,不是同名消歧。
怎么落地
- 能区分的就改可见名称;无法区分的重复行,确保每一行、每一个行内动作都是独立可访问对象,系统编号能分别落上。
- 不要用一张大海报式的点击层吞掉整列重复按钮。
- 验证:对三个同名「购买」分别说编号。有一个没有号、或号点到了整张卡片而不是按钮,消歧失败。