I1.01.3direct manipulation latency requirement设计研究

直接操纵依赖该阈值成立

别名: 直接操纵时延 · 操纵感崩溃 · DM latency

概念解释

把文件拖进文件夹、把滑块拉到新值、在画布上挪一个锚点——这些交互被叫做直接操纵(direct manipulation),前提是对象看起来在手的控制下连续变化。这个前提卡在即时阈值上:阈值成立,对象像被手拿着;阈值失守,同一套手势就退化成「发出一条移动命令,然后等画面追上」。直接操纵不是一种视觉风格,它是一种时延契约:对象必须在即时窗口内跟着走,契约才有效。

这条不谈拖动要比点击更跟手——那是跟踪精度的问题。这里只谈:一旦即时绑定保不住,直接操纵作为交互范式就站不住。

机制

直接操纵靠的是对象常在、操作可逆、变化增量可见这几条,每一条都把反馈绑在手的时间上。手还在动,对象必须已经在动,内部模型才能把屏幕坐标当成手的延伸。延迟把延伸切断:手走到了,对象还在上一帧,大脑被迫改用预测——「我大概移到了那里」。预测误差一积累,人就会改策略:少动、分段点、干脆改用输入框。交互从操纵退回成指令。

Shneiderman 当初列直接操纵的条件时,把「快速、增量、可逆的操作,对象可见」写在一起。少了「快速」,增量和可逆都还在,但人已经不再觉得对象在自己手里。界面可以看起来完全像直接操纵——大图标、可拖图层——只要时延跨出窗口,体验上就是一台延迟的命令行。

怎么研究

比较同一任务在「对象即时跟随」和「手势先被采样、松手后对象跳到终点」两种实现上的策略。经典指标是操作被拆成多少段、是否放弃拖动改用数值输入、以及被试是否仍用「我把它放在…」而不是「我让它去…」来描述。

自变量:对象跟随是否落在即时窗口内、是否仅在手势结束时提交一次、对象在手势中途是否可见。 因变量:连续拖动时长、中途改用间接控件的比例、语言里操纵动词对命令动词的比例。

实验室里的拖放靶往往很大、试次很多。真实画布上对象小、对齐有吸附,延迟会被吸附掩盖或放大,不能只在大靶上宣称「直接操纵还成立」。

边界

菜单选择、对话框确认、一次性提交本来就不是直接操纵,即时阈值对它们是加分项而不是成立条件。触控笔绘图、拖动排序、窗口缩放这类持续耦合的任务,对契约最苛刻;点一下选中一个复选框,要求低得多。远程桌面和云端渲染把像素放在远端,契约几乎无法对真实对象成立,只能对本地代理(预览框、影子)成立——用户操纵的是代理,不是服务器上的真物。无指针、纯语音的界面没有「手的延伸」,谈不上这条契约。

怎么落地

  • 凡是卖「对象在手里」的交互(画布、时间线、图层、拖排序),把对象位移的计算放在本地,手势过程中不要等服务器确认每一帧。
  • 服务器可以在松手后校验并回滚,但手势进行中必须有一个即时的本地对象。没有本地对象,就不要做成拖动,改成选择加确认。
  • 若架构做不到即时跟随,不要用直接操纵的视觉语言(抓手、实时预览、对象附着手指)。改用明确的「移动到此处」指令,免得契约被假装还在。
  • 验证:在目标设备上拖一个对象穿过屏幕。若手指与对象之间出现稳定的空间缝,或人开始改用点选,直接操纵已经在这台设备上不成立。

延伸

  • 同组I1.01.1 极短延迟内的反馈被感知为直接因果 · I1.01.2 超过该阈值后操作与结果被感知为两件事
  • 相邻I1.04 输入延迟与跟手性 · I4.09 节奏与操作韵律
  • 站内检索direct manipulation · latency requirement · object tracking

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/I1.01.3