0.png
用户在使用产品时,经常会遇到的一种对话框,就是“取消”选项。这种对话框通常出现在用户填写表格或编辑数据时(比如抽屉、详情页或弹窗)。比较常见的形式是在主要按钮旁边出现一个链接操作,但现在越来越多的“取消”功能被做成了按钮的形式,这种做法好不好呢,为什么?

导航与功能

通常在数字产品中,用户有两类常见的操作:导航和操作。这两种方式以不同的交互方式呈现。

  1. 导航是一个链接。
  2. 操作是一个按钮。

这是为什么呢?链接出现在互联网早期,正因为有链接,才有了网络世界。按钮是一种拟态组件,它将现实世界中的开关和按钮投射到了数字世界中。因此两者的使用方式完全不同。
操作是指用户通过界面管理数据的一种行为,而导航则是用户浏览界面时的状态变化。换句话说,链接(或导航)不会导致底层数据的改变,但可以引出新页面,或改变视图。因此,如果按照这个解释,我们可以说导航是用户界面的状态变化,而操作是改变数据。从一个状态到另一个状态,等同于从一个状态导航到另一个状态。而操作可能会导致状态变化,也可能不会导致状态变化。
1.png

UI设计

如何呈现链接和导航是设计风格决定的,一般情况下,链接是带下划线的蓝色文本,按钮是有文字的矩形。链接和按钮都可以包含图标,以强调预期动作或导航目标(不鼓励只放图标,这可能会导致用户的认知负荷)。

信息架构

你的产品遵循某类信息架构,这类规则有助于提升用户体验。也就是说,理解产品传递数据的规则,才能理解数据操作和界面状态变化之间的差异。
举个例子,一个卖水果的商店,它的网站有一个所有出售水果的列表页面:
2.png
顾客可以做以下事情:

  • 向列表中添加新的水果。
  • 对水果列表进行筛选或排序。
  • 从列表页跳转到特定水果详情页。
  • 从列表页跳转到特定产地详情页。

我们来看看这些交互如果沿用我们刚才讨论的逻辑,会变成什么样子。

将上面的交互逻辑应用于这个页面

新增水果

如果想要添加一个新的水果,用户可以点击“新增水果”链接,这就导致了界面状态的改变(出现一个新增表单)。
当下行业中经常会看到一个FAB按钮来代替“新增水果”的操作。然而这种交互本身并不是一个操作。它只是状态的变化,显示一个新增水果的视图。所以它是导航,传递了这样的信息给用户:当点击“新增水果”时,页面并没有修改任何数据,而是让一个新的窗口来继续完成这个操作。因此我建议尽量不要用FAB或其他类型的按钮。
3.png
用户一旦看到这个抽屉,就能确定该做什么。因此用户希望能有一个按钮说明自己真的在列表中“新增了水果”:
4.png
这种交互也会带来一些后续问题:用户在添加了新水果后会看到什么?他们应该回到列表页,还是去看新添加的水果详情?这取决于什么对用户是最重要的,需要通过用户研究来给出答案。这两种做法都是对的,但都属于导航(尽管都是由操作触发的,我说过,操作可以触发导航)。
现在暂时忽略“取消”操作,我们研究一下用户可以做的其他交互,这样我们就能得到最终答案:

筛选和排序

用户浏览水果列表时,可以通过筛选器缩小列表范围。他们决定使用“苹果”作为条件并按照“净含量”排序。这需要数据处理,应该用按钮对吗?我们来看看用户实际在做什么,他们根本没有操作任何数据。列表中的水果全都在,没有一个被删掉。所以用户做的事情就是改变了视图规则,或者说改变了界面状态。因此筛选器和排序也是链接而不是按钮:
5.png

清除筛选条件

因此我们得知,“清除筛选条件”或“重置排序”的交互也不应该是按钮(它不是一个操作),而是一个链接(界面发生状态变化,或导航回到界面初始状态),因为没有数据被改变:
6.png

回到初始页面

前面说过,用户执行完操作后可以自动导航到新水果详情页。但如果用户想回到最初的列表页呢?这在很大程度上取决于界面是如何设计的,一般来说,我更倾向于用户可以自由选择两种处理方式:

  • 返回导航
  • 面包屑

在这两种情况下,用户都返回到界面的上一个状态(不是撤销对数据的操作,也不会做任何新的数据操作),这两个选项都是链接:
7.png
其实还有第三种选择:浏览器的返回按钮。对,这是一个按钮,而不是链接。我将在后文讨论关于房间里的大象的问题。

关闭抽屉

至此,我们离最终答案又近了一步。如果用户想关闭“新增水果”抽屉怎么办?通常用户可以点击抽屉以外的地方来关闭它,或者点击“关闭”来实现。再问一次,当“关闭”抽屉时,用户实际上想做什么?我们知道,他们想要终止进行的操作。换句话说,他们想要导航回到页面的上一个状态。所以它是一个链接,而不是按钮:
8.png
关闭其它类型的视图也是这样:
9.png

取消

无论是在抽屉中,还是在弹窗中,甚至是在一个独立的表单页面上,当用户想要“取消”操作时,本质上在做的事情和“关闭抽屉”一样。由于用户终止了操作,导致页面导航回到前一个状态。因此它需要使用链接,而不是按钮。
10.png

“但取消看起来就是一个操作啊,不是吗?”

可能你会提出这样的疑问,我的回答是:“不是!”用户取消一个动作与执行一个动作完全相反,它是一个动作的“倒退”。上面所有的例子都表示,取消的结果是界面会导航到前一个状态。

“那如果我是取消奈飞的订阅计划呢?”

这是一个例外,在这种情况下,“取消”是一个有效的数据改变。用户依然可以终止“取消”操作。所以最好的方式是,这里不要把“取消”叫“取消”
11.png

“但我看iOS,Windows和MacOS可不是这样的。”

正如我前面所说,操作系统的界面上基本只有按钮,所有的操作系统都是如此,这完全违背了我刚才说的一切。但是你必须明白,网站和应用与操作系统完全不是一回事。最好的办法是避免界面中出现双重否定的文案,操作系统的问题已经足够让用户困惑了,再加上很多人不重视用户习惯,这极大地破坏了产品的可用性。让操作系统和应用程序各尽其职。
这也是为什么响应式网页和原生app不是一回事,它们是两种完全不同的界面。

“主导航算什么?”

是的,主导航是一种导航,只会触发状态变化。所以人们希望看到的是链接而不是按钮。但在实际项目中,主导航设计成一排按钮也很常见。用户可能不会感到困惑,所以我不认为有什么大问题。
但是在之前,主导航都是以链接的形式出现的。直到今天,在很多工程项目中,主导航依然是链接的样式,如果开发代码没写错的话。
12.png
13.png

通过一致的样式告知用户功能

按钮和链接的本质区别是交互方式的不同,这里的按钮意味着直接对项目进行操作:
14.png
如果这样,就意味着在不同页面中导航:
15.png
如果能够在产品中保持规则的一致,用户就会很容易理解交互并预判结果。

结论

取消使用链接还是按钮的问题,之前很多设计师都讨论过。我认为UX Movement的文章观点基本是正确的:取消不是一个有效功能,所以不能使用按钮(我也认为灰色的按钮看起来更像是禁用状态)。Luke Wroblewski的文章基本上也能证明我的结论。

总结一下

取消类似终止某个动作,因此更像是跳转到之前的状态。导航在Web UI中的样式是超链接,所以取消也应该是一个超链接。我明白按钮比链接更有视觉吸引力,和主导航一样,很多事情会随着行业的发展慢慢演变。
如果你有任何疑问,可以随时在Twitter上找到我。