C3.25.1Long-press versus double-tap timing设计研究
长按阈值通常设定在数百毫秒量级,短于双击间隔避免语义冲突
别名: 长按阈值 · 双击间隔 · timeout nesting
概念解释
长按的默认时钟落在约 400–600 ms 这一档,并且应短于同一热区上等待第二次点按的双击窗口。按住是连续接触,双击是抬起再按下;若长按被排到双击窗口耗尽之后才允许成功,一次有意的按住会先被当成“第二次点按还在路上”,菜单像失灵。两个超时必须错开,这条讲的是错开的方向,不是长按原语本身。
机制
按下之后,若识别器把“尚未抬起”和“也许会抬起再点”放进同一条等待队列,双击窗口会挡住长按。窗口常见 300–500 ms 量级;把长按放到更长,按住的人要先熬完别人的第二次点按,语义就被嵌套错了。正确的拆法是:只要接触没有抬起,就不要为双击留位子——双击在第一次抬起之后才开始计间隙。长按用自己的数百毫秒时钟在未抬起的接触上开火,并且这个时钟仍短于双击间隙,避免“慢双击的第一下”和“短长按”抢同一段时间。数量级停在数百毫秒,是因为再长就变成明确的等待任务,再短就变成略慢的点按。
怎么研究
在同时挂了单击、双击、长按的热区上,扫描两个超时的相对值。任务混合三种意图,记录长按被当成未完成双击的比例、双击第一下被升级成长按的比例、以及单击被拖慢的时间。画出二维冲突带,而不是只报一个“最佳毫秒数”。被试点按节奏要实测。
边界
关掉双击的普通按钮不必迁就双击窗口,长按可以更早。辅助技术改写双击为激活之后,应用可能收不到这两条时钟。触控笔的双击间隙通常更短,相对关系要按笔重做。错开时钟解决的是分类打架,不回答“等多久才会烦”,那是等待感知。
怎么落地
- 长按只在未抬起的接触上计时,不要
require双击失败才开始;数值留在数百毫秒,并短于该视图的双击间隙。 - 不需要双击的控件关掉双击识别器。
- 用脚本分别在 200/400/600 ms 抬起或第二次按下,核对按住是否在双击窗口耗尽前就能弹出菜单,且短点按不会先弹出。