表单设计的最佳体验
(转载,来自吾凡)为什么表单设计非常重要?一些不错的方法我给变红了。
- 表单是用户与网站之间进行“对话”的方式
- 从商业上
– 使用户能够实现购买行为
– 使商家实现销售利润最大化
- 从交互的角度
– 使用户能够参与
– 使商家能够增加用户并形成社区
- 从参与角度
– 使用户能够操作和贡献内容
– 使商家可以积累内容和数据
设计原则
– 使痛苦减少到最小
– 没有人喜欢填写表单
– 聪明的默认值,在线校验,输入的容错性
– 清晰的完成路径
– 考虑用户的背景和使用情景
– 用户的熟练程度
– 用户使用的频繁度
– 确保交流的连续性
– 错误,帮助和成功
– 单一声音,减少噪音
对效果的分析
– 易用性测试
– 错误,提示,帮助,完成率,每次任务花费时间,满意度分值
– 眼球跟踪
– 完成时间,关注点,扫视路径
– 用户帮助
– 最重要的问题,事故次数
– 最好的体验
– 常用解决方案,独特的方法
– 在线跟踪
– 完成率,进入点,退出点,页面元素的使用,输入的数据
设计模式
信息+互动+反馈
信息
– 布局
– 标签位置
– 内容分组
– 输入
– 格式,必填项目
– 动作
– 首要动作和次要动作
– 帮助和提示
– 视觉层级
标签顶端对齐方式
– 当被收集的数据是熟悉的
– 最少的完成时间
– 需要更大的垂直空间
– 间距和对比对于有效的视觉扫描很关键
– 对于本地化和复杂的输入有更高的灵活性
标签右对齐方式
– 标签和输入框有清晰的联系
– 需要较少的垂直空间
– 由于左侧的不对齐,快速扫描所有标签变得比较困难
– 很快的完成时间
标签左对齐方式
– 当需要的数据不熟悉时
– 标签的扫描比较容易
– 标签与输入框的联系不紧密
– 改变标签长度可能对布局产生破坏和削弱
眼球跟踪
– 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
thx u for sharing.
不错 CDC部门的人有两下子 欢迎指教~
学习了,谢谢楽。