M2.09.2undo instead of pre-confirmation设计研究

可撤销的操作可用事后撤销替代事前确认

别名: 事后撤销 · post-hoc undo · 确认替代

概念解释

动作若能在用户还听得见结果的窗口里完整滚回,先做、说出做了什么、听撤销可以替换执行前的那一轮是/否。「正在厨房放爵士,说取消就停」比每次「要在厨房放爵士吗」少一轮,错误只在真错时才付费。前提是撤销是真的,而且错误能被听见。可逆性不够,或错了用户听不出来,事前确认就不能卸。

机制

事前确认的成本打在每一次尝试上,包括那 99% 正确的次。事后撤销的成本打在出错的次上,外加用户必须注意到错。GUI 用视觉变化当注意钩子;语音的结果转瞬即逝,钩子只能是那句结果播报本身。播报太短、被噪声盖住、或说的是套话,用户注意不到,撤销窗口会在无人使用中过期——看起来可逆,操作上等于不可逆。

窗口长度要覆盖「听完结果 + 决定说取消 + 说完」的时间,还要在这段时间里把撤销词保持在识别范围里。窗口太短,等于没有替代;窗口太长,世界可能已被第三人看到(消息已读)。所以「可撤销」不是属性开关,是窗口、可察觉性、识别范围三条一起成立。

怎么研究

同一可逆动作比较两种流程:每次执行前确认,对执行后播报并开启撤销。因变量是任务总时长、未被纠正的错误数、撤销实际被说出口的比例。再改窗口(两秒对十秒)和是否有屏幕。占用手眼的现场比实验室更伤可察觉性:人在开车时可能听漏结果播报。

日志里看撤销词出现时窗口是否已关。关了之后的「不对」会变成下一轮新命令,看起来像识别失败,其实是替代方案的时间设计失败。

边界

钱已清算、邮件已到达对方收件箱,撤销对说话人成立、对世界不成立,不能替代。错成了发音相近的另一个联系人,播报「已发给妈妈」而用户听不出号码已变,可察觉性失败。多用户设备上,执行人离开房间,撤销权落在别人身上。撤销自己还要再确认一次,摩擦叠回去,替代就没了。不可逆格与高代价格本来就不是这条的适用范围。

怎么落地

  • 仅对表上可逆且代价可承受的动作启用:执行 → 用一句具体结果播报(含设备、对象)→ 明确可以说的撤销词 → 窗口内保持对该词的监听。
  • 撤销词要好说、好猜(「取消」「停下」),不要藏在「还可以说撤销上一步」。
  • 结果播报必须能暴露错误:说「已发给张经理」而不是「已发送」。听不出错,就不能卸确认。
  • 验证:人为制造一次错误执行。用户在窗口内说撤销,世界应回到执行前。把播报静音再试一次——若错误开始漏网,说明替代依赖那句播报,播报不能再被当成可删的客套。

延伸

  • 同组M2.09.1 后果等级由可逆性与代价共同决定 · M2.09.3 高频低风险动作上的确认会被养成盲目应答 · M2.09.4 影响他人的动作需要单独提级
  • 相邻M2.03 确认策略 · M3.04 打断 · M1.06 修复策略
  • 站内检索undo window · post-hoc undo · speak-back then undo

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/M2.09.2