E2.09.2password reveal control设计
显示切换应为默认提供的能力
别名: 显示密码按钮 · show password · 眼睛图标
概念解释
人要不要看自己正在打的密码,应当是当场可做的选择,而不是产品替所有场合做的一次性决定。显示切换(password reveal control)是密码格上的显式控件,把圆点和明文在用户手中换来换去。缺了它,私密环境下也无法校对,公开环境下也无法迅速盖回去。它管的是控制权是否在用户手里,不是遮蔽本身会不会增加错误,也不是能不能从剪贴板贴入。
机制
遮蔽与明文的收益随环境翻面:家里需要看,咖啡馆需要盖。把选择做成格内控件,切换成本是一次点击,人可以按当前肩窥风险自己调。若只能靠系统级「显示密码」或根本不能显示,环境一变就要整段重打,或接受盲打。控件还要自己可被发现、可被辅助技术识别为「显示 / 隐藏」,否则等于没有。按住才显示、松开就盖上的瞬时揭示,适合快速扫一眼,不适合校对整串;点击切换保持状态,适合改错。两种按法服务的是不同的核对时长。
边界
企业策略禁止明文显示时,控件会与合规冲突,需要在策略层而不是在控件层硬扛。移动端键盘上方的系统「显示」与格内按钮可能重复,两个开关状态不一致时人会以为坏了。公开演示、投屏时默认应落在遮蔽,切换仍要在;不要因为演示风险就删掉控件。读屏器用户开启明文会把密码读出,切换的可访问名称必须把这个后果说清。
怎么落地
- 每个密码格都提供可发现的显示 / 隐藏,默认遮蔽,点击后保持明文直到再点回去或失焦(按产品风险二选一,但要可预期)。
- 给控件无障碍名称「显示密码 / 隐藏密码」,不要只放一颗无名称的眼睛图标。
- 让切换只改可视性,不改已经打进去的值,也不清空槽。
- 验证:在无旁人条件下打开明文改一个字符,再在有人经过时盖回去。找不到按钮、点了槽被清空、或读屏器不报这颗按钮,切换就还没做成能力。