开宗明义,我个人比较倾向于在移动端明文显示密码,尤其在注册新用户时,但并非简单粗暴的明文显示(我所说的都是错的,嘿),欢迎拍砖,具体理由见下。 移动端和PC端从体验设计上有本质的不同,移动设备有自身的特点及限制,需要我们重新思考一下原有PC端形成的一些设计标准(不断的质疑和否定才能成长嘛),比如:密码输入区域的设计 先从PC端说起,密码输入是我们日常上网或操作电脑最常接触到,PC端常规的设计思路是对用户输入的每个密码进行遮掩,用户输入一个字符,密码输入区域就显示一个替换符 "*" 或 "•"(图1) 。 图1 为什么这样进行设计呢?先从PC本身的属性谈起,1. PC具有公共属性,可能在多种场所甚至被多人使用,但你输入密码是私密性的。2. PC固定在特定的位置,无法随意移动(早期PC时代,非笔记本横行的现在)。 3. PC显示区域足够大,光用脑袋是不能够完全挡住偷窥者的。鉴于以上这些属性,PC端在用户输入密码时应给予适当的保护。当然也有过份保护的例子,如下图2,命令行时代的产物,用户输入密码时,没有任何反馈以提示用户(现在每天还要使用到,唉!)。 图2 另外一个重要的原因,由于长时间敲击键盘进行输入练习,键盘的物感形成了肌肉记忆,输入密码(敲击键盘)的过程成为一种条件反射(知觉-行动链),用户在输入时更多的是依靠手指上的感觉,而非有意识的去关注(所以,也就不存在识别了),人体肌肉获得记忆的速度十分缓慢,但一旦获得,其遗忘的速度也十分缓慢,并且肌肉记忆的精确度均很高,用户在PC上输入密码的错误率也很低。 在PC端这样的设计没有太大问题,只是偶尔在知觉-行动链被打断时会想不起来输入到什么位置了,因为不过脑嘛 ^_^,绝大多数用户在遇到这种情况时,会选择将已输入的密码全部删除重新开始输入,纠错成本PC端用户可以接受,所以对这样的设计PC端用户也就接受并习惯了。 再来看看移动端,大部分的移动设备(如,手机)属于个人私密性较高的设备,并且显示区域均较小,用户在进行输入时,可对输入密码进行有效的保护(或者找个僻静的地方进行输入)。或许有同学会认为移动用户的使用场景多样,更需要对密码进行保护,但只要窥视者有心,不管密码是否被保护均可能会被其获知,见图3,大多数移动OS用户的每次输入均出现键位提示!移动端想防窥还是得找僻静小角落啊。 图3 现在移动端大多数均以触屏为主要交互手段,在触屏虚拟键盘进行输入操作缺少以往实体键盘的物感,需要用户在输入过程中对虚拟键位及手指的位置进行认知,手指很难形成肌肉记忆(黑莓Storm的Clickable技术就是模拟实体按键触感的技术),借用一下surface的眼动研究(图4),可以发现用户的视线会在虚拟键盘及输入区域之间进行切换,思考一下,你在PC端进行输入一般字符时会盯着键盘看吗?在移动端进行输入操作时成本比PC端高出了许多,并且错误率随之也放大了,大部分的用户已经能够很明显的感觉到在移动端输入之困难,再让用户进行纠错操作,成本就可想而知了! 图4 移动端的设计者其实早已察觉到了上述的问题,并对移动端的密码输入区域进行了重新设计,以iOS的解决方案为例子,用户当前输入的密码以明文显示,在继续输入下一位时将上一位密码转换为替换符(图5)。 图5 这样的设计一定程度上规避了上述的问题,方便了用户,但也存在一些问题,只有当前的输入为明文,之前的密码依旧是替换符,用户在对密码的认知上无法存在连续性,另外,当用户在虚拟键盘寻找需要输入的字符花费较长时间,原来的明文会自动转换为替换符号,这样易导致用户忘记之前的输入。 另一个解决方案,在输入区域附近放置一个密码显示的开关,当开关打开时,密码以明文的方式进行显示,当开关关闭时,密码以"*" 或 "•" 替换符显示(图6),用户可在输入过程中很轻松的切换密码显示模式,当用户确认周边环境安全,并希望提高输入体验时,可选择明文显示,反之选择替换符显示。 图6 但这种方案涉及到另一个问题–默认选项,用户一般较少主动去设置某些选项,并依照默认选项使用下去,所以,上面方案默认选项如果采用隐藏密码的设计,那这个设计的效果及优势就没有得到体现。采用明文密码显示会使其更具有意义。 采用明文显示密码能够提高用户体验,有助于用户进行输入,注册及登录流程会更易用,隐藏密码可提高安全性,并与目前用户习惯相符,但降低了输入效率,如何在两者之前进行平衡?是否有其它解决方案?这些是设计者需要花时间思考的问题。 还是以iOS平台为例子,再来一个解决方案,用户在密码输入区域进行输入时,还是依照现有iOS的交互逻辑执行,但是当用户感觉自己输入错误了,按退格键试图删除错误输入时,将隐藏密码以明文显示出来,方便用户查看自己的输入,并确定需要进行修改的位置(图7)。这样的设计保留了原来用户的使用习惯,却又考虑到用户在出错后的行为模式,为退格键附加了一个切换明文模式的功能。 图7