C1.05.4Hit-test precedence设计研究

命中区域重叠时需要显式的优先级规则

别名: 命中优先级 · hit-test order · 重叠控件

概念解释

命中优先级(hit-test precedence)规定一个输入点落入多个交互区域时,系统应把事件交给哪一个对象。视觉上重叠的浮层、嵌套控件和为容错扩大的透明命中区都会造成这种歧义;没有明确规则,结果会依赖渲染顺序或实现细节。

机制

命中测试通常从视觉最上层向下遍历,或按树的捕获与冒泡规则分派事件。优先级把一个坐标映射到唯一动作,防止一次点击触发多个对象。若视觉层级、事件层级和扩展命中区的层级不一致,用户看到的前景对象可能被背景对象抢走输入。

怎么研究

构造浮层、相邻扩展区、嵌套按钮和动态出现对象,记录同一点的目标、事件路径与是否发生穿透。测试应覆盖不同缩放、触控与鼠标、动画中间帧;静态单元测试不足以发现层级变化时的歧义。

边界

“最上层优先”不是唯一规则:组合控件可能需要让父对象先处理,模态层应阻断背景,画布编辑器可按对象选择策略处理。关键在于规则与视觉和任务语义一致,而非机械使用 DOM 或绘制顺序。

怎么落地

  • 为每类重叠明确可测试的优先级:模态阻断、前景优先、父级捕获或显式选择。
  • 让不可点的视觉层不参与命中,避免透明装饰吞掉事件。
  • 对重叠边界建立自动化点击与触摸测试,断言唯一目标和预期事件路径。

延伸

  • 同组C1.05.1 热点是光标图形中的单点参考位置 · C1.05.2 光标图形重心与热点不一致会产生系统性偏移 · C1.05.3 命中区域可以大于视觉区域
  • 相邻C1.08 拖放 · E1 界面元素与控件
  • 站内检索hit-test precedence · event dispatch · overlapping targets

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C1.05.4