E3.04.3no overlapping switch checkbox semantics设计
同一页面内不应两者语义重叠
别名: 开关复选框重复 · duplicate binary control · 语义重叠
概念解释
同一页里不要让开关和复选框去表达同一件二值事实,也不要让它们用近义文案各说各的。语义重叠(semantic overlap)指两个控件抢同一个命题:一个滑块叫「启用双因素」,下面一个方框又叫「登录时需要验证码」。用户无法判断该拨哪一个、改一个另一个会不会跟着动、以及以哪一个为准。重叠比混用时钟更窄:即使两个都立即生效,抢命题本身就会让人不敢动。
机制
人假设一页里每个可点物对应一个独特后果。两个控件指向同一后果时,这个假设碎了,决策从「改状态」变成「猜映射」。常见的碎法有三种:同一字段被画了两次;子选项与总开关命题等价(总开关关掉通知,子项又是「接收通知」);主开关和底部「同意以上设置」复选框在提交时写同一位。
重叠还会诱发同步幻觉。用户拨了滑块,以为方框会自己勾上;方框没动,就认为操作失败。反过来,两个控件若真的双向绑定,一方的动画会变成噪音:人不知道是自己点的还是系统抢的。无论是否绑定,两个入口都在抢解释权。
边界
总开关加细分项不是重叠,前提是命题真的分层:总开关管「这一类是否存在」,细分项管「这一类里哪些通道」。文案必须把层次说开,且关总开关时细分项要禁用而不是继续可勾。权限矩阵里每行一个复选框、页头一个「全选」,全选是集合操作不是第二个命题。只读回显旁边再放一个可编辑开关,若回显不是控件,也不算重叠;若回显仍可点,就是两个入口。翻译把不同字段译成近义词时,重叠会在语言层出现,源文案不重叠也不安全。
怎么落地
- 列出本页每一个二值命题,保证每个命题只有一个控件。近义的两句文案先合并再画。
- 总开关与子项用缩进和禁用表达层次,不要让子项在总开关关闭后仍像一个独立命题。
- 全选放在集合工具位,不要做成与第一行同级的普通项。
- 验证:遮住控件外形,只留文案,请人把「说的是同一件事」的句子配对。每一对都是要删掉或改层的重叠。