直接操作与实时反馈被当作默认预期
别名: 直接操作 · live feedback · 实时反馈预期
概念解释
在苹果的触摸惯例里,对象就是界面。手指拖一张照片、捏一张地图、滑一个开关,动作应当马上变成对象上看得见的变化,中间不插「应用」按钮。直接操作预期(direct-manipulation expectation)把这件事当成默认:用户假定手在操作物体本身,而不是在给远处的系统下命令。实时反馈是这份假定的证据——列表跟着指尖走,开关的拇指跟着滑动走。反馈一晚,物体感就变成遥控器。
它不规定哪些手势被系统占用,也不讨论返回层级。它规定的是时间关系:输入与对象变化之间,应当短到被当成同一件事。
机制
直接操作能成立,靠的是感知上的因果闭合:手一动,对象一动,大脑把它编成「我在动这个东西」。延迟、批处理、先提交再刷新,会把闭合拆开,人就改用「发指令—等结果」的模型。后一种模型在命令行和老式桌面对话框里合法,在以手指为指针的平台上却违反默认预期。
实时反馈不是装饰性动效。动效可以在操作结束之后播放;实时反馈必须在接触尚未离开时就开始。列表的橡皮筋、拖放时的占位、滑块上的数值跟着走,都是在接触窗口内证明「对象已被抓住」。接触结束后才跳变的界面,即使用户最终得到正确状态,也已经付过一次「我点了吗?」的确认成本。
边界
需要精确提交的事务(转账金额、删除资料库、发送不可撤回的消息)必须在直接操作之外另给确认,不能把「滑一下就发出」当成默认。网络往返不可能零延迟的操作,预期退化为立即的进行中反馈(占位、进度、可取消),而不是假装结果已写入。键盘输入、搜索查询这类以符号为对象的任务,直接操作的对象是插入符与列表,不是远程文档本身。指针设备上的悬停预览是另一条通道,不要和触摸上的接触反馈混成同一条要求。
怎么落地
- 拖、滑、捏这些连续手势,在手指未离开时就改变对象的位置、值或预览,而不是等到 touch up 再跳变。
- 不能当场完成的动作,在按下的那一帧给出进行中状态,并允许在结果返回前取消或撤销。
- 把「应用」「保存」留在真正需要提交边界的地方;列表排序、开关、缩放默认不要这道门。
- 验证:对着设备录屏,放慢回放每一个连续手势。手指还在屏幕上时对象没有任何变化的片段,都是预期被打破的点。再找一台刻意制造延迟的调试构建,看进行中反馈是否在接触窗口内出现。