WEB表单设计学习心得
1 前言
多数人不喜欢表单,因为填写表单是件麻烦的事。我们想做的是投票、申请或者购买打折的商品。表单是电子商务、社交互动和大多数基于生产力应用类型网站(例如银行)的关键。在我们的系统中,有着各式表单,我们的日常工作也和表单分不开……
WEB表单对于关键互动(比如注册和支付)起着至关重要的中介作用。据统计,经过重新设计的表单,完成率往往能提高10%~40%。这意味着完成新销售或者获得新客户。
eBay是个成功的案例,其用户体验和设计团队通过搜集可用性数据、客户支持记录、网站日志和网络习惯,重新设计了表单,产生了非常积极的影响,带来了巨大的效益。在一家大型电子商务网站,设计师只更改了一个按钮,便给公司带来了3亿美元的年收入。
我们的系统虽然不可能出现用户因为无法忍受繁杂的表单而拒绝填写的情况,但如果将表单精心设计,会使用户更快的完成工作,减少出错率,并拥有良好的心情。可见表单还是值得学习研究一下的,于是我就从网上看了些资料,和大家分享下学习体会。
2 输入框
输入框是表单的关键元素之一,是系统获得用户信息的重要途径。
2.1 输入框长度
输入框的长度可以给用户进行暗示而不需要文字提示。
图2.1 通过输入框长度暗示用户填写信息
如果输入框长度不同,用户思考如何填写输入框时自然会考虑为什么会这样。如果长度合适,就可以避免使用文字说明填写要求。比如上例的工作证号比身份证号的输入框短,用户就会考虑“是不是工作证号要比身份证号的位数少?”当输入框很长时,用户的回答却很短,这时用户就会考虑是否自己误解了问题。如果输入框无法受益于暗示,就应当采用一致的长度。
2.2 必填项
标明必填项可以引导用户填写表单,特别是有很多输入框,但只有一部分是必填的时候。表明必须回答的问题有助于用户判断,减少出错的可能。
图2.2 标明必填项
但当必填项很多时,可以只标识可选项,因为标明主要情况会增加表单的信息量。
图2.3 必填项相比选填项过多,可只标明选填项
如果想通过视觉系统来标明必填项,应当考虑表单中的标识位置。标签旁的标识能指引用户迅速浏览表格,并判断出必填项。而标识与输入框对齐会导致难以判断。
2.3 输入组
当输入表单太多时或者较复杂,可以考虑将表单分组或分布到多个页面中。
图2.4 将填写信息分为两部分
采用这种方式,人们可以轻松浏览必填部分,了解需要提供哪些信息。如果把表单看成对话,适当地按主题分成若干个部分,这样的对话更容易让人接受。
但是内容组之间不要设置大量的视觉差异(比如背景色、分割线、字体等),否则会造成过多视觉污染,阻碍浏览。
2.4 输入状态
当用户焦点落在输入框时,可以通过更改背景色、边框颜色的方式提示用户当前所填写的位置,当焦点失去时,回复样式。
图2.5 用户输入焦点在“密码”一项中
如上图,用户可以清楚识别自己正在填写“密码”一项,当因事中断填写表单时,不用担心无法确认目前的进度。而且用户可以确定当前是否处于输入状态。
3 标签
不同的表单对齐方式给用户带来的感觉是不一样的。大多数时候,可能希望人们尽快填完表单。但有时会希望降低人们的速度,使用户有时间进行深思熟虑。也可能会受到屏幕显示的限制。也可能由于本地化需要,表单要适应不同长度的多种语言。置于哪种对齐方式好,只能说依情况而定。
马泰奥·彭佐在2006年进行的眼部研究发现,顶对齐方式注意力从标签移动到输入框只要50毫秒,比左对齐方式快了10倍,比右对齐方式快了两倍。
3.1 顶对齐标签
顶对齐方式可以加快浏览速度。由于标签和输入框的位置非常接近,浏览起来毫不费力。填写表单很快,因为用户的视线只需向下运动,向用户提供了清晰的完成路径。顶对齐方式提供了很大的横向空间,页面较窄时适合使用。而且对于需要多种语言时,也不会因为文本变长而影响了布局(法语、德语要比英语长两倍,英语又比中文长)。
图3.1 顶对齐标签
上面的表单由上到下一目了然,浏览速度较快。但是这种方式占用了较多的垂直空间。表单输入框之间的垂直空间太少或太多都会阻碍移动,一般使用输入框50%~75%的高度作为间距。
3.2 左对齐标签
如果人们不熟悉表单要收集的数据,左对齐表单会更合适。人们往往只是上上下下阅读标签栏,而不会被输入框打断(在我们的系统中,用户往往是熟悉表单的,不会特别注意文字,所以感觉左对齐方式不是非常适合使用)。
图3.2 左对齐标签
与顶对齐方式相比,左对齐较少地占用垂直空间。但是当文字过长时,用户水平移动视线,对齐输入框会花费更多的时间。
3.3 右对齐标签
右对齐方式同样具有输入框与标签相邻的优点,因此也能快速完成,但右对齐布局造成左侧不齐,会降低快速浏览表单问题的效率(人们习惯由左往右阅读)。
图3.3 右对齐标签
上面示例采用了右对齐方式,熟悉表单的用户和新手扫视右对齐标签和输入框的平均时间分别为170毫秒和240毫秒。但是如果文字过长或者需要两行文字,会给表单增加很多困难。
4 按钮
完成表单的最后一步就是提交,这个关键动作由按钮来完成。
4.1 主次关系
WEB表单通常包括若干动作,例如提交、保存、继续或者取消、重置、返回等。这些动作存在着主次关系。对于完成表单的重要动作可视为主动做。
差异化的按钮就是为了让用户区分主次关系,减少次动作的视觉展现,避免误操作。比如用户在填写了十几项表单之后,不小心点击了取消按钮,或者不小心点了上一步,就会导致用户需要重新填写表单,用户会感到十分不爽。
图4.1 三组按钮
上面的三组按钮中,第一组比较容易出现误操作,第二、第三组使用了差异化的视觉元素,不容易误操作。第三组突出了主动做(确定),这可以使用户较顺利地将表单进行下去。第二组用红色标识了取消按钮,警示用户小心点击该按钮。所以如果想让用户快速填完表单,可以使用第三组按钮;如果想提醒用户点击取消会造成损失(比如表单清空),可以使用第二组按钮。
4.2 动作顺序
按钮的顺序也很重要,一般我们习惯确定按钮出现在取消前面。
图4.3 确定按钮在取消前面
图4.4 确定按钮在取消后面
有一项测试显示,26%的测试者完成第二个表单时,错误的点击了取消按钮,而更多的人会犹豫不决。这是由于第二组按钮违反了常规,并且将次要动作放在了前面。
4.3 按钮位置
用户都希望尽快完成表单,所以为了加快速度,按钮应尽量与上方输入框和标签对齐。
图4.5 按钮与上部标签左对齐
图4.6 按钮未和上部标签左对齐
在上面第一个表单中,用户填写完密码之后,视线下移很容易就发现了确定按钮,并且鼠标移动位移小;上面第二个表单的按钮由于未和上面的输入框对齐,用户不得不四处寻找确定按钮,减慢了完成速度。
5 帮助文字
用户填写表单是可能无法理解表单的问题,特别对于较复杂的表单,这时就需要帮助提示。通过帮助来引导用户正确填写,这样来提高表单填写速度和准确性。
5.1 直接显示
帮助文字可以指导用户填写表单,提高准确性,减少用户修改的次数,但同时也会带来一些问题。
图5.1 较简洁的帮助文字
图5.2 较复杂的帮助文字
上面两个表单都使用了帮助文字,但第二个由于文字过多,会给用户带来不舒服的感觉,认为填写表单很麻烦。所以,帮助文字尽量简单。
5.2 自动显示
自动帮助可以在用户最需要的时候显示帮助信息。比如当输入光标移到输入框时,才显示帮助信息。这样就可以屏蔽其他信息,使页面的信息量减小。
图5.3 某宝网注册页面
某宝网的注册页面就采用了这种方式,只显示当前输入框的帮助信息,而且在输入框右边显示,这样稍长的文字也能不引起用户的反感。
5.3 自助显示
有时候并不是所有的用户都需要帮助,比如有些熟练的用户知道每个输入项应输入什么内容。这时可以通过一个“问号”标识放在文字旁边,只有鼠标悬停或者点击时才显示帮助文字。
图5.4themeforest自助帮助信息
上面是themeforest网站上的截图,经常访问该网站的用户不需要该帮助,只有新用户才可能需要帮助,所以将其隐藏是合适的。
6 错误与成功
错误与成功的提示消息比帮助文字重要的多,因为错误消息告诉用户无法继续进行,成功消息告诉用户表单终于填写完了。
6.1 错误消息
即便通过帮助文字或者输入框长度等手段告诉用户如何填写表单,仍然可能出现错误的情况。错误是阻碍表单完成的重要信息,所以需要直观地提示用户哪里出现了错误。单独或者组合使用不同的尺寸、形状、位置、质地或颜色(比如红色)都能产生强调的效果。
图6.1 输入框旁显示错误信息
通过上面这种方式,错误信息显示在出错的输入框旁边,可以让用户明确知道自己哪里填写错误,以便改正。如果认为红色的字体不足以引起用户的注意,可以将输入框的背景色改变或者将输入框的边框也置为红色。
图6.2 采用错误框的方式显示错误信息
在系统出错或者出错信息比较复杂时,不便于在输入框旁边显示,这时可以采用错误提示框的形式。特别对于系统出错的提示,这样会比较友好。
图6.3 某网站的错误提示
上图采用了以上两种方式提示错误信息,错误信息很突出,但稍显复杂(用户需要从上边的错误提示与下边的错误的输入框对应)。
图6.4 弹出式错误提示
还有一些网站采用弹出窗口的方式提示用户填写错误,但这种方式用户需要多一次点击确定才能继续修改表单,而且用户很难知道自己哪里填写出错。这种方式目前已经越来越少的使用了。
6.2 成功消息
表单终于填写完了,应该庆祝一下。如果说错误消息让用户解决错误,继续完成表单,那么成功消息就是让用户知道已完成表单,并鼓励用户采取更多的行动。
图6.5 某易注册成功页面
某易的用户注册成功之后,左侧显示了注册信息,在右侧鼓励用户将邮箱与手机绑定。同样,在某宝网上完成订单之后会给用户推荐其他商品。
6.3 验证消息出现的时机
表单验证出现的时机也很重要。有的网站是在用户将所有表单都填写完点击提交之后才做验证,有的是只要用户更改内容就会做验证。对于第一种情况,用户可能会重复多次填写提交才能完成表单,使用户不愿继续填写;而第二种方式,用户可能刚开始输入第一个字符时就出现了提示信息,打断了思路。比较合适的做法是在输入框失去焦点时(表示已经填写完该输入框)进行验证。
7 其他细节
一些细节也会影响用户的感受,或者说用户体验设计中大多都是细节的设计。让用户感受舒服的网站都会花费心思在这些细节当中。而且这些细节会给系统增光添彩。
7.1 当前位置
提示用户当前位置,可以帮助用户确定目前所进行的工作。
比如某行网银页面上的提示,可以帮助用户区分相似页面(确实很多页面看上去很像)。如果没有提示,用户会很难确定当前处于哪个功能模块中,不知道填写的是什么表单。
图7.2 某行网银的当前位置提示
7.2 当前进度
当步骤比较多时,或者表单问题分散在多个网页时,可以考虑使用进度条提示用户当前进展情况。用户对于自己如何完成表单有了大体了解,更容易完成表单。
图7.3 进度条提示
如果表单较长,提供保存功能或者系统自动保存是保证人们填写表单的好方法。
图7.4 某行网银中在线申请信用卡的继续填写功能
某行网银在线申请信用卡提供了保存表单功能。由于表单内容较多,用户可能无法一次填写完成,该功能可以使用户通过多次补充完成申请。
图7.5 某宝网购买商品的流程
从某宝网购买商品的进度条提示中可以看出,购买一件商品需要四个步骤。但其实每个步骤都可能是1个或者2个页面才能完成。比如“付款到支付宝”步骤,如果选择网银付款,页面将跳转到银行页面,输入账号、密码(或U盾)等信息才能支付成功,期间可能跳转了3、4次页面。但如果进度条将这些都显示的话,用户会觉得支付步骤过于繁琐而不愿继续进行。所以进度条可以对步骤进行抽象和提取,只显示比较重要的步骤或者将类似的步骤进行汇总。
7.3 提供邀请
易发现性也是WEB交互中需要考虑的问题。再好的功能,如果用户发现不了,结果仍然等于零。所以就需要向用户提供邀请。
7.4 考虑Tab键
利用Tab键移动输入光标是个很方便的填写表单方式,因为填写表单时无需在键盘和鼠标之间切换,速度得到了提升。一份对于每日都要填写表单的人的调查显示,一半以上的人都会使用Tab键。
图7.8 通过HTML的tabindex属性设置Tab键顺序
其实现只要在HTML中input的标签中加入tabindex属性(HTML标准属性)并设置顺序即可。当不输入tabindex属性时,会按照页面代码中出现的前后顺序由前到后跳转。如果考虑用户使用Tab键,就要考虑表单横向不要过于分散,避免Tab跳转时页面横向大幅移动给用户带来的不适。
7.5 尽量少的使用视觉元素
过多的使用视觉元素会分散用户的注意力。“任何无助于布局的视觉元素都会损害布局”。
图7.9 某网站的登录页面
上面的表单出现了过多的广告,用户会觉得很不舒服,并且不愿填写表单。在淘宝网中,商品页面中充斥着大量广告,但交易页面却没有任何广告,页面很简单。可见,在关键表单页面要尽量少的使用视觉元素。
7.6 默认值
提供默认值有三种作用。第一种是作为填写说明,不用在输入框外边再出现帮助文字,使页面更加简洁;第二种是由于某输入项很大的几率都会出现某个值,将该值作为默认值,用户一般无需更改,提高填写速度;第三种是出于商业或其它利益,将有利于利益的选项或内容作为默认值(用户不知该)。
图7.10 通过默认值提示用户输入
上图在输入框显示了填写示例,提示用户完成表单。
图7.11 通过默认值减少用户操作
上图将出现几率比较大的选项作为了默认值,提高表单填写速度。
图7.12 通过默认值达到某种目的
上图将EMS方式置为默认值,有商业利益元素在里面。
7.7 开关
在iphone中较为流行的开关很受用户欢迎,以至于在一些网站已经开始使用(其实就是两个单选框)。目前JQuery已经有了这种开关的插件。
图7.13 某网站使用了开关
7.8 去除无用表单
2002年,eBay重新设计了注册表单,仔细考虑了每一个问题,找出了可有可无、无关紧要的问题。效果非常好,因为有更多的人注册并开始使用eBay,而且居然有很多用户在注册完之后又回答了那些可选题。可能是由于可选问题相比必填问题不具侵略性。
8 总结
有人可能会问:什么是优秀的表单?答案是:视情况而定。因为没有一种形式可以适应所用的情况:有时我们希望用户尽快填完表单;有时希望用户仔细考虑再填写表单;有时因为特殊情况不得不在页面显示很多的内容……