表单设计的最佳体验

(转载,来自吾凡)为什么表单设计非常重要?一些不错的方法我给变红了。

- 表单是用户与网站之间进行“对话”的方式
- 从商业上
    – 使用户能够实现购买行为
    – 使商家实现销售利润最大化
- 从交互的角度
    – 使用户能够参与
    – 使商家能够增加用户并形成社区
- 从参与角度
    – 使用户能够操作和贡献内容
    – 使商家可以积累内容和数据

设计原则
    – 使痛苦减少到最小
        – 没有人喜欢填写表单
        – 聪明的默认值,在线校验,输入的容错性
    – 清晰的完成路径
    – 考虑用户的背景和使用情景
        – 用户的熟练程度
        – 用户使用的频繁度
    – 确保交流的连续性
        – 错误,帮助和成功
        – 单一声音,减少噪音

对效果的分析
    – 易用性测试
        – 错误,提示,帮助,完成率,每次任务花费时间,满意度分值
    – 眼球跟踪
        – 完成时间,关注点,扫视路径
    – 用户帮助
        – 最重要的问题,事故次数
    – 最好的体验
        – 常用解决方案,独特的方法
    – 在线跟踪
        – 完成率,进入点,退出点,页面元素的使用,输入的数据

设计模式
    信息+互动+反馈
   
信息
    – 布局
        – 标签位置
        – 内容分组
    – 输入
        – 格式,必填项目
    – 动作
        – 首要动作和次要动作
    – 帮助和提示
    – 视觉层级

标签顶端对齐方式
    – 当被收集的数据是熟悉的
    – 最少的完成时间
    – 需要更大的垂直空间
    – 间距和对比对于有效的视觉扫描很关键
    – 对于本地化和复杂的输入有更高的灵活性

标签右对齐方式
    – 标签和输入框有清晰的联系
    – 需要较少的垂直空间
    – 由于左侧的不对齐,快速扫描所有标签变得比较困难
    – 很快的完成时间

标签左对齐方式
    – 当需要的数据不熟悉时
    – 标签的扫描比较容易
    – 标签与输入框的联系不紧密
    – 改变标签长度可能对布局产生破坏和削弱

眼球跟踪
    – 2006年7月matteo panzo的研究
    – 左对齐
        – 容易将标签与输入框联系起来
        – 标签和输入框之间的距离让用户花费更多时间
    – 右对齐
        – 减少了将近一半的注视次数
        – 表单完成时间减少了一半
    – 顶端对齐
        – 让用户一眼捕捉到标签和输入框
        – 最少的完成时间

最好的体验
    – 减少完成时间以及熟悉的数据输入:上对齐
    – 如果希望节省垂直空间:右对齐
    – 对于用户不熟悉或者高级的数据项:左对齐
   
必填项目
    – 必填项的指示在以下情况下最有用:
        – 输入项很多
        – 很少是必填项目
        – 使用户能够通过扫描表单知道什么需要填写
    – 选填项指示在以下情况下最有用:
        – 很少的项目是选填项
    – 当所有项目都是必填项时指示就没有用处

最好的体验
    – 尽量避免选填项
    – 必填项多,则标明选填项目
    – 选填项多,则标明必填项
    – 文字最好,但*经常被用于必填项目
    – 将标识和标签连在一起
   
输入域长度
    – 输入域长度可以提供有价值的affordances
    – 适当的域长度为输入提供足够的空间
    – 混乱的域长度可能给表单增加视觉噪音

最好的体验
    – 如果可能,use field length as an affordance
    – 否则,考虑一个一致的长度提供足够的输入空间
   
内容分组
    – 内容关系提供了结构化组织表单的方式
    – 分组提供了
        – 一种在高层次上扫描必需信息的方式
        – 表单内信息关系的联系

太多的内容分组会导致额外的视觉噪音,降低可读性
最小化分组的好处:减少视觉噪音,更直接的完成路径

最好的体验
    – 将表单内关联的内容进行分组
    – 使用最少数量的视觉元素来表达关系
   
动作
    – 不是所有的表单动作是平等的
        – 重置、取消、返回一般来说是次要的操作,很多时候不是必须的
        – 保存、下一步、提交是首要的操作:对于表单的完成起直接作用
    – 动作的视觉呈现需要与他们的重要性相匹配

最好的体验
    – 如果可能,避免次要动作
    – 否则,用清晰的视觉识别来区分主要和次要动作
   
帮助和提示
    – 在下面的情况下,帮助提示是有用的:
        – 要求用户输入不熟悉的数据时
        – 用户对于为什么数据被要求填写可能有疑问
        – 推荐用户使用某种提供数据的方式
        – 某些数据是选填的
    – 然而,过度使用帮助和提示会很快overwhelm表单
    – 在下面的情况下,你也许需要考虑动态提示
        – 自动的内文提醒
        – 用户触发的内文提醒
        – 用户触发的段落提醒
       
最好的体验
    – 除非必要,尽量少的使用帮助、提示
    – 明显和与数据输入区最相邻的帮助是最有效的
    – 当收集很多用户不熟悉的数据时,考虑使用动态提示系统

交互
    – 用户完成的路径
    – 使用键盘的tab键进行控制
    – 逐步出现
    – 依赖性出现

完成路径
    – 每个表单的首要目标都是希望用户填完
    – 每一个输入项目需要考虑和操作
        – 去掉所有不必要的数据输入要求
        – 提供灵活的数据输入
    – 提供清晰的路径
    – 提供聪明的默认值
   
最好的体验
    – 去掉所有不必要的数据请求
    – 使用聪明的默认值
    – 给用户提供灵活的数据输入选择
    – 清晰的完成路径
    – 对于长表单,提供进度和保存功能

tabbing
    – 许多用户通过tab在表单项目之间跳转
    – 合理的html将保证跳转正确工作
    – 多列式的表单结构可能与tabbing顺序相冲突
   
最好的体验
    – 记得考虑tabbing
    – 使用tabindex属性来控制tabbing顺序
    – 当设计表单布局时考虑tabbing预期

阶段性提醒
    – 不是所有用户一次需要所有可选项
    – 合理使用的阶段性提醒提供了额外的选项
        – 高级选项
        – 进阶操作

最好的体验
    – 根据用户需求的优先级来安排阶段性提醒
    – 最有效的方法是让用户来触发
    – 使用一致的提醒方式
   
依赖性选择输入
    – 有时候一个数据需要与其他的数据输入相关联
        – 某项输入触发更多的选项
        – 某项输入触发更清楚的需求

依赖型显现输入
    – 页面级别
        – 需要额外的步骤
    – 区块标签
        – 通常容易被忽略
        – 默认值很重要
    – 手指区块标签
        – 需要遵循完成路径
    – 区块选择项
        – 有效将信息分组
        – 隐藏了额外的选项
    – 下方暴露和行间暴露
        – 有让用户迷惑的潜在危险
    – 当选择/选中时激活
        – 次要选择的关联性被削弱

最好的体验
    – 在首选项之间保持清晰的关系
    – 将额外输入项与他们的触发器之间保持清晰的关联
    – 避免“跳跃”造成首选项之间关联的减弱
   
反馈
    – 文中校验
        – 一致性
    – 错误
        – 提示形式和解决方案
    – 进度
        – 提示形式
    – 成功
        – 校验
       
文中校验
    – 当数据输入时提供直接的反馈
        – 输入校验
        – 建议正确的输入
        – 帮助用户不超出限制
    – 如:
        – 密码提示
        – 用户名选取
        – 正确输入下拉提示
        – 最大允许字符计算

最佳体验
    – 当输入项的出错率很高时考虑文中校验
    – 使用建议输入来减少歧义
    – 沟通界限
   
报错
    – 错误被用来保证所有数据项被正确提供
        – 清晰的标签,affordances,帮助提示和校验可以帮助减少错误
    – 但一些错误仍然会出现
    – 用尽量少的步骤提供清晰的解决方案

最佳体验
    – 当错误发生时提供清楚地交流:优先的位置和视觉反差
    – 提供修正错误的方法
    – 将错误信息与相关输入项关联起来
    – 当错误发生时用视觉语言来double

进度
    – 一些时候动作需要有执行的时间
        – 表单提交
        – 数据计算
        – 上传
    – 当动作进行中时提供反馈
        – 例如:将提交按钮disable
       
最佳体验
    – 提供任务的进度提示
    – 当用户点击提交后,将其disable以避免重复的提交

成功
    – 当成功完成表单时,在上下文中确认数据输入
        – 在一个新页面中
        – 在一个更新的表单中
    – 通过以下形式提供反馈
        – 消息(可移除)
        – 动画的形式
       
最佳体验
    – 当数据提交成功后给予清晰的交流
    – 在数据提交的情境中提供反馈。
       
额外补充
    – 避免改变用户提供的输入
        – 用后来的输入
        – 当错误发生时
    – 如果获取信息是困难的,那么让用户知道比直接给用户一个表单更优先

可用性和标签形式
    – 使用label标签将数据与标签关联
        – 能够被screen reader正确识别
        – 多数浏览器将带<label>标签的文字处理为可点击:更大的动作
    – 使用tabindex属性提供tabbing路径
        – 提供tabbing顺序的控制
        – 使表单可以通过键盘来导航
    – 考虑为支持键盘输入提供accesskey属性
        – 直接到达相关的输入项
    – 考虑fieldset属性将内容分组

表单创建工具
    – wufoo
    – www.formassembly.com
    – www.icebrrg.com
   
更多信息
    – 功能性表单设计
        – www.lukew.com/ff/
    – site-seeing:A Visual Approach to Web Usability
        – Wiley & Sons
    – luke@lukew.com

3 Responses

  1. thx u for sharing.

  2. 不错 CDC部门的人有两下子 欢迎指教~

  3. 学习了,谢谢楽。

Leave a Reply