MODULE 08 / LESSON 02
反馈、撤销与错误恢复
让用户知道动作已发生,也有机会改变主意。
先理解这个概念
用户操作后需要及时得到可感知的响应。乐观更新可以提高感知速度,但失败时必须回滚或明确标记未同步。撤销通常比反复确认更顺畅,但只有真正可逆的动作才适合这样处理。
反馈需要回答是否收到动作、正在发生什么、最后结果如何。恢复则需要让用户保住已投入的时间与数据。撤销适合可逆操作,确认适合高后果且难以恢复的操作;两者不能简单互换。网络超时等不确定结果应明确表达不确定,而不是虚构成功或失败。
像事务提交与回滚:界面不能宣称成功,却让真实数据停在失败状态。
记住这三个原则
- 01
反馈尽量靠近触发动作的位置。
- 02
区分已保存在本地、同步中与已同步。
- 03
可恢复的错误保留上下文,避免让用户重做所有步骤。
实际设计时,分三步做
- STEP 01
按动作持续时间安排反馈:立即体现已接收,必要时显示处理中,结束后给出与实际结果一致的状态。
- STEP 02
为每种错误说明用户能采取的动作,区分输入错误、权限问题、服务不可用和结果未知。
- STEP 03
定义撤销范围和时限,以及错过轻提示后的恢复入口。重要恢复能力不应只存在于短暂提示里。
一个容易理解的例子
点收藏后图标变亮,请求失败却完全没有提示。
先响应点击,失败后恢复原状态并提供重试说明。
速度与真实性可以兼顾,但不能隐藏失败。
展开看:从场景到设计决定
归档任务后可以立即从当前列表移除,同时显示撤销。用户错过提示时,仍可到归档列表恢复。批量归档部分失败则应明确成功数量和失败对象,而不是把全部任务重新出现。当请求结果未知时,先同步状态再重试,可以降低重复执行造成的混乱。
适用边界与取舍
乐观更新适合成功率高、可逆且后果可控的操作。付款、授权等高影响动作应慎重,不能因为想让界面快就提前宣告最终成功。
把这个原则用一次
先做一个小判断
离线编辑一条笔记,状态应该怎么写?
再完成一份设计练习
为移动十个文件设计全部成功、部分失败和结果未知三种反馈与恢复入口。
付款、权限变更等关键操作不应轻率地假定已经成功。
继续查阅
本课为原创教学解释。具体平台规则与标准可查阅官方资料。
WAI-ARIA Authoring PracticesMaterial Design 3