E3.03.2switch state label设计
开关文案应描述状态而非动作
别名: 开关文案 · toggle label · 状态标签
概念解释
开关旁边的文字应命名当前所控的状态(state label),而不是命名「拨一下会去做的动作」。正确的是「无线局域网」「通知」「位置信息」——滑块在开或关,句子仍然成立。错误的是「开启通知」「点击以禁用」:滑块在开时,动作文案会变成「现在去开启一个已经开着的东西」,或让人搞不清拨向另一端是完成文案里的动作还是取消它。
状态文案是名词或名词短语,指向那个被开关的对象;动作文案是动词,指向一次尚未发生的操作。开关已经把操作做完了,句子里不该再出现一个悬空的动词。
机制
人把标签读成对当前世界的描述,再把滑块位置当作该描述的真值。标签若是动词,真值便套不上去:「开启蓝牙」在开的位置像还没做,在关的位置又像在命令你去开启。双重否定更糟:「关闭勿扰」开着到底是勿扰在工作还是已经关掉。
两端再各写一个「开 / 关」小字,并不能拯救动词标签,因为小字和动词会抢解释权。屏幕阅读器通常读「某某,开关,打开/关闭」;若某某已经是「打开某某」,播报会叠成「打开某某,开关,打开」。状态名让角色和值分开,动作名把两者揉在一句里。
边界
两个互斥模式若不得不用开关外观,标签仍应是模式名(「省电模式」),不要写成「切换到省电」。语言里没有稳定名词的功能(「把已读标为未读」这类一次性动作)根本不该用开关,应改用按钮。品牌词或缩写当标签可以,只要它指对象而不是指操作。对端状态由别人改写时(会议室灯被另一块面板关掉),标签仍描述对象,变化走滑块位置和旁注,不要把标签临时改成「正在关闭」。
怎么落地
- 把开关标签改写成在开和关两种位置都读得通的对象名,去掉「开启」「关闭」「点击」这类动词。
- 需要补充说明时,把说明放在标签下的辅助行,不要写进滑块两端。
- 用屏幕阅读器听一遍:播报应是对象名加打开或关闭,而不是动词套动词。
- 验证:遮住滑块,只留文字,问「现在是什么样」。若回答是「它在让我去做某事」而不是「某功能处于某状态」,文案就是动作而不是状态。