移动端下拉表单的最佳替代方案

2,434 阅读5分钟
简评:移动端下拉表单非常常见,但是你有注意过实际上有更好的替代选项吗?

表单中的下拉菜单大家可能早就司空见惯了:它们在用户界面中占的空间不大,能够自动验证输入,还支持所有的浏览器和平台。实现起来简单方便,用户也非常熟悉。

但是呢,Luke Wroblewski 以及其他大佬都表示过,下拉菜单「should be the UI of last resort」,它们太容易被误用了,应该是设计师的最后选择。

让我们看看它的局限性:

  • 在下拉列表中,只有点击或按键才能打开它,可用选项是不可见。此外,表单长度默认隐藏,也就是说,用户无法预知下拉菜单里面到底包含了多少个选项
  • 从下拉列表中选择一个选项(特别是在移动设备上)很繁琐:用户必须先打开选项列表,然后滚动并浏览项目,最后选择一个,然后才能合上下拉列表
  • 下拉菜单又会让设计师变得慵懒:将所有可能的选项添加到下拉列表中是没有任何优先级可言(这与汉堡包菜单类似),这都根本不用动脑
  • 较长的下拉列表(比如国家或地区选择)对于用户来讲简直就是噩梦,特别是在一些无法使用键盘搜索的设备上
  • 在一些移动屏幕可见和可滚动列表区域很小的时候,这个滚动体验非常糟糕:
在 iOS 上,可视选项的数量乍一看可能会出奇地少(其实很多)

其实在许多情况下,有很多替代输入控件会更好地帮你完成工作。

考虑选项的数量

  • 对于二选一的选项,别用下拉菜单。你需要的是一个复选框或者开关切换控件:
  • 对于少数互斥选项,建议使用单选按钮或分段控件。无需打开列表,所有可用的选项都可以看到:
▼ 可视选项的数量取决于屏幕宽度和选项标签的长度,超过 5 个项目时不建议使用
  • 对于大量指明的选项,当用户知道他们正在寻找什么时,考虑「开始输入……」解决方案,其中过滤选项列表显示在第一个或两个字母之后。
  • 对于大型和多样化的列表,尝试使用现有的用户数据来排列优先级,先列出用户最常用的选项。这样一来,90% 的用户会立即找到自己的偏好,只有 10% 必须选择「其他」,然后再跳到下一个问题。优先级排序会很大改善用户体验:

考虑预期的输入

  • 下拉列表的优点之一是用户不用输入很多内容。但如果预期的输入不是太长,并且经常被询问(例如个人数据),那么用输入的方式是比较有效的,而非从列表中选择它:

总之,在移动设备的数字键盘上输入数字值通常会更有效:

  • 如果验证用户输入是非常重要,「开始输入……」的方法对使用输入字段来筛选选项是很有用的:
  • 当元素的排序顺序不清晰时,在选项列表中的搜索能力就很有帮助了:
不清楚货币代码排列顺序的用户,也能确保他们能在名称和货币代码间进行搜索
  • 同样的技术也应该应用于国家列表中:让用户开始输入并尽快筛选结果,而非给出 200 多个国家选项:
  • 对于表示数量(如乘客人数或购物车中的物品数量)的预估值,步进器(stepper)允许用户通过一次点击或按键即可快速增加或减少数量:
  • 对于位于数字范围内的的非预估值和预估值,或许可以考虑使用滑块:
  • 多个下拉菜单选择日期的体验肯定不好,不如进入就近日期,使用日期选择器(date picker)。(输入出生日期时不要用这个!)

考虑设计更智能的下拉列表

下拉菜单并非一无是处,它当然也有用武之地。当你认为选择菜单是最合适的输入控件时,务必要注意用户体验:

  • 使用有意义的标签:列表打开时,菜单标签的描述也应该是清晰可见的。在选择菜单中,使用描述性标签,告诉用户他们正在选择什么(即「选择类型」而非「请选择」)
  • 合理分配排序条目:基于用户数据,将最常点选的选项放在列表前面,合理安排选项优先级
  • 使用智能默认值:根据用户的位置,日期和其他信息。利用该数据为每个用户预先选择最可能的选项
  • 减少字段的数量 让计算机辅助选择:如果用户输入邮政编码,则计算机就知道对应的城市;如果用户输入信用卡卡号,则计算机就知道它来自哪家银行
  • 考虑使用 API:使用第三方社交网络登录比填写注册表更容易。使用支付宝或者微信付款也比绑定信用卡更方便
原文链接:Dropdown alternatives for better (mobile) forms

推荐阅读:极简主义设计的最佳实践