J5.02.2accessibility role设计研究
角色决定用户可预期的操作方式
别名: 无障碍角色 · ARIA role · 控件角色
概念解释
听到「按钮」,手指会去按;听到「标题」,手指会拿它当目录。角色(role)是辅助技术告诉用户「这是哪一类东西」的合同,合同一旦宣布,用户就按该类东西的惯例去操作。角色不是外观分类,是可预期操作的分类。
机制
每一种角色绑定一套用户已经学会的动作:按钮可激活,复选框可切换并有开合,链接会跳走,选项卡会换面板,标题用来跳转而不是被「点」。阅读器把角色读进那句话里,用户据此选择下一条命令,而不是先试探像素上像不像能点。
合同说错,操作就会按错的脚本去演。看起来像选项卡的一组字如果报成普通文字,用户会跳过它去找真正的控件;报成按钮,用户会去激活,却得不到换页。角色决定的是「我会试哪套键 / 哪条手势」,不是控件画成什么样。
怎么研究
把同一套视觉控件做成三种树:正确角色、无角色、错误角色。让熟练阅读器用户完成「选中 / 展开 / 切换」任务,看第一次尝试用的命令是不是该类角色的惯例。
自变量:角色是否声明、角色是否与真实行为一致。 因变量:首次命令是否命中预期操作、尝试次数、用户是否把对象当静态文字跳过。
不要问「你觉得这是什么」;问「你刚才按了什么、指望发生什么」。
边界
对完全不使用辅助技术的鼠标用户,角色不进入决策,这条不成立——他们读的是外观和光标。新角色或平台尚未映射的角色会被降成「组」或「文字」,合同失效。角色对了但按上去没反应,是行为没跟上合同,不能用「用户不熟悉角色」开脱。
怎么落地
- 每种可操作对象使用与其真实行为一致的角色:能按的是按钮,能勾的是复选框,能跳的是链接。
- 不要让纯展示的文字顶着控件角色,也不要让真正的控件以无角色的文字出现在树上。
- 验证:听阅读器报出的类型,按该类型的惯例操作一次。报成按钮却无法激活、报成文字却能按,都是合同破了。