C3.30.2Selection-handle hit priority over scroll设计研究

拖动选区手柄与页面滚动共用触摸移动,需要手柄命中优先

别名: 选区手柄 · 拖动手柄滚动 · grabber priority

概念解释

选区两端的圆形手柄是小目标。手指按下手柄再移动时,事件流与页面滚动同形。若滚动容器先认领,手柄会从指下溜走,选区被整页带走。正确的规则是:命中手柄则手柄独占移动,直到抬手;只有按在手柄热区之外,才把移动交给滚动。这是命中优先,不是嵌套滚动的交棒。

机制

手柄的视觉半径常小于手指接触,命中要靠扩大的热区。热区仍落在可滚父视图里,于是两只识别器同时看到 moved。若滚动不失败依赖手柄拖动,父视图会把选区滚出屏幕,用户以为自己在拉选区。放大镜、偏移拖动(把点画在指尖上方)是为了解决遮挡,不能代替命中优先:没有优先,放大镜跟着滚走。手柄拖到视口边缘时,应在选区态内自动滚文档,而不是把触摸交还外层去滚整页导航。

怎么研究

在已有选区的长文里,从手柄中心、手柄边缘、手柄外数毫米起手拖。记录所有者(手柄 / 滚动)和选区端点是否跟着走。扩大或缩小热区作为自变量。因变量:失手滚动次数、端点像素误差。任务必须是“把选区拖到某词”,不要只点手柄不移动。

边界

鼠标拖选没有圆形手柄,走的是按下即选的另一套。只读短文一屏能显示完,滚动竞争弱。手柄被做成与系统不一致的自定义绘图时,系统命中测试可能根本看不到它。这条不处理长按如何进入选区,只处理进入之后谁吃 moved

怎么落地

  • 给手柄大于视觉的热区,并使滚动识别器在手柄拖动时失败。
  • 手柄拖到边缘时滚动的是文档以露出后续文字,而不是整页容器的导航滚动。
  • 从手柄边缘向外 2–3 mm 起拖:选区端点应移动;从热区外起拖:页面才可滚。两者对调即优先写反。

延伸

  • 同组C3.30.1 长按选中文本与长按呼出菜单的起始动作相同 · C3.30.3 双击选词与双击缩放在文本类内容中语义互斥,需按上下文关闭其一 · C3.30.4 文本选择态激活期间,其余手势应暂时让位于选区操作
  • 相邻C3.23 嵌套滚动的触点抢夺 · C6.13 文本选择与光标放置
  • 站内检索selection handle · hit testing · scroll steal

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C3.30.2