去年我提了一嘴,现在在做一个客服的工作。不做不知道,电脑常识的下限真的让我永远想不到。
对方的提问常常让我反思,为什么会造成这种情况。作为一个技术员,换个角度看看普通人的操作,其实对更友好的工程设计还是挺有帮助的。
这一篇,来看个似乎简单、但不少人会有奇奇怪怪的问题的业务:「重设密码」。以下提到的虚构问题,基本上都有真实案例支撑,毕竟生活比故事更精彩。
前情提要
简单介绍一下业务的背景。这是“我的大学”的统一账号登录系统,同一个系统支持三个账号来源:普通师生、访客系统、校友系统。
师生自然会有学工号,这个学工号是由一串乱序数字组成的(然而其实是有校验规则的),大家平时都记不住,都是看校园卡才知道号码,而用户名还是记得很清楚的。
而很多人不知道的顶层设计是,学工号是相对比较保密的信息,不应该同时跟姓名等信息发布出来。比如朱八杰同学的学号是 S19002459,他平时只记得自己的邮箱 zhubj@daxue.edu.cn,反正邮箱账号密码也可以用来登录校园网 Wi-Fi。
我的用户名是什么
朱同学忘记密码了,在登录页面上挣扎了一会看到了重置密码链接,结果看得有点懵:
这个页面的字也太多了吧,太长不看。我忘记密码了,点忘记密码。结果提示“请完成必填项”。哦这个表单是要填的啊。
看这个意思,输自己的邮箱就行了?于是他输入 zhubj@daxue.edu.cn,看着下面两个按钮还想了想该按哪个按钮,应该还是忘记密码吧。结果系统提示,找不到用户名。朱同学急了,我这账号难不成是被销户了?
欸页面上有个电话可以问问,一问,人家说输入 zhubj 就行了,他哦了一声,输入进去,成功了。他还有点懵懵的。
从开发者的角度来看,这个分流页面显然是在帮用户跳转到三个账号系统中,正确的那一个密码找回页面。但他们优化也做了一半,一输入完整学校邮箱,就直接被送到访客系统去查询了,自然是惊人的无结果。
当然你会说,不是页面上有说明吗,实际上还是有不少人又不看字、试错能力也不强,遇到错误就觉得自己很无辜那样子。
我觉着这个页面比较理想的设计,除了更好的容错,还可以直接做一个选项让用户选择自己的账户类型。比如这里有三个系统,就列出三个选项解释,让用户选。然后到底是忘记用户还是忘记密码,应该做成选框而不是按钮,更好地表示这是个选项,不是表单外的链接按钮。
其实比较贼的做法是,三个系统的选项实际上不会起作用,最后还是目前这个匹配的逻辑。但多了一个选项,用户要做选择,字会看得更细一些,也会更有针对性地去看说明。
当然选择多了,另一种用户就出现了:什么都不想看、看到选择就困难。来看下一个页面。
学号怎么错了
朱同学被送到了普通师生密码找回页面,要求输入基本信息。朱同学开心地填写了姓名,看到学工号就愣了,靠我不知道学号怎么办,没人告诉我我的学号是什么啊。
不要忘了朱同学刚在打电话,他问了问对方能不能查学号这个问题,人家告诉他校园卡上有。哦!朱同学这才急着把卡拿出来,输入了 19002459,结果系统提示,学号错误。
他又急了,电话那边也一头雾水,于是问了问他学号是什么,结果朱同学刚读出 1,对面就说“学号前面有个 S”。哦!改了改果然通过了。
关于不知道学工号这个问题,不要笑,很多新师生跟校友都是这样的,其实还算可以理解吧。但他们甚至会指望只用姓名就能查到学工号,拜托,人口爆炸的年代,重名可多了去了。而且前面也提到,学工号算是比较私密的信息,真要查询的话,需要多重身份验证。
以及你也会发现,这个页面问的问题的确多了些,但是很多人在不知道怎么填学工号之后就慌了,就很完美地把下一行字忽略了:
“如果你不知道学工号”
所以想把表单设计得可用,真的是一个在简单及复杂之间平衡的过程。另外你也注意到了那个 S 的问题,一个好的办法是判断到错误的时候,给错误信息,然后给一个示例。给 HTML5 表单独有的占位符是没有用的,来举个让人吐血的例子:
在我的大学网络服务的另一个表单里,有一个位置要求填写“我的大学邮箱”,输入框也有占位符“用户名@daxue.edu.cn”,结果三天两头还是有人输各种第三方的邮箱。因为那个表单没有实时校验,到最后都得人工发邮件去让提供一个符合要求的邮箱(然后还有些明显有学校邮箱的人根本不回复)。
选个密码
这个页面吐槽的点嘛,只有用户会被要求再输入一次当前用户名(但如果选的密码不符合要求的话,如上图,已经输入的用户名会被保存下来)。你会注意到,整个流程里会让用户输入三次用户名,反正很让普通人费解的设计。
别的都还挺好的。尤其是错误提示会告诉你密码有哪一条规则没有满足。这个页面其实比较老,没有用上各种实时前端检查,但总体而言还行。这里要严重批评微软的一款叫做 Microsoft Identity Manager 的垃圾体验,同一个流程位置的密码不符合要求,只会提示错误“你的密码没有满足机构设置的规则”,根本不告诉你为什么,自己琢磨去吧。尤其是如果有些规则页面上漏写了的话(比如不能用之前用过的密码),分分钟客诉。
最后的身份验证
朱同学千辛万苦地完成了前面哪些步骤,但实际上验证身份这件事并没有完成。别的朱同学都还是能记得的,但看着那个密保问题他有点懵。
他试了好几次,都是提示错误。幸亏他还没挂电话,一问,还是可以在通过电话进一步验证身份之后,清除密保问题的。
这个地方可能唯一值得吐槽的是没有提示信息错误的解决方法。不过每个页面下方最醒目的位置都注明了客服电话,应该也足够了。
其实这个客服电话的位置真的太难得了,没有用链接,也不会隔着一段空白放在很多用户看也不看的页面最底部,简单直接,没毛病。
顺便我的大学有一个设计得很抓人的下拉菜单设计,把占位符在菜单中的位置放在最中间,真的让人感动。
后话:账号服务藏得深
朱同学终于把密码重设完了,那我最后提一点跟重置密码并不是很有关的、深一点的话题,很多人不想看的那种。
对于使用单点登录来连接多个服务的组织来说,“单点登录”这件看起来理所应当的事情,有时候还是需要多一些宣传的。一个例子,用户在搜索引擎上搜索“我的大学 登录”,要不就打开了“单点登录已失效”的页面,要不就找到了跟自己的身份一点关系都没有的系统(然后搜索结果的标题还真是单点登录的“我的大学登录系统”)。然后就产生了“为什么我一个学生登录(工资)系统失败”这样的问题——因为他们并不会去看登录页面一行小字写的其实是在登录工资系统。这时候 SEO 怎么做,似乎就变得有点意思了。
还有一个难题是,每个服务里的账号设置的“修改”并没有跟单点登录对接,所以用户通常会找不到在哪里改密码等等。登录的时候能看到“账号服务”链接,但登录完成之后就无感跳转、什么都看不到了。比如我的大学,还在单点登录系统上对部分服务做了二次验证的保护。然而很糟糕的是,这个二次验证的自服务入口只在登录时才能看到。用户一旦问到如何在已登录状态下进入二次验证的自服务页面,客服通常只能说“请开隐身窗口再登录一次”。
所以看起来很安全、很基础、很无味的一个基础服务,想做到体验好真的是需要功夫的。