C1.05.4Hit-test precedence设计研究
命中区域重叠时需要显式的优先级规则
别名: 命中优先级 · hit-test order · 重叠控件
概念解释
命中优先级(hit-test precedence)规定一个输入点落入多个交互区域时,系统应把事件交给哪一个对象。视觉上重叠的浮层、嵌套控件和为容错扩大的透明命中区都会造成这种歧义;没有明确规则,结果会依赖渲染顺序或实现细节。
机制
命中测试通常从视觉最上层向下遍历,或按树的捕获与冒泡规则分派事件。优先级把一个坐标映射到唯一动作,防止一次点击触发多个对象。若视觉层级、事件层级和扩展命中区的层级不一致,用户看到的前景对象可能被背景对象抢走输入。
怎么研究
构造浮层、相邻扩展区、嵌套按钮和动态出现对象,记录同一点的目标、事件路径与是否发生穿透。测试应覆盖不同缩放、触控与鼠标、动画中间帧;静态单元测试不足以发现层级变化时的歧义。
边界
“最上层优先”不是唯一规则:组合控件可能需要让父对象先处理,模态层应阻断背景,画布编辑器可按对象选择策略处理。关键在于规则与视觉和任务语义一致,而非机械使用 DOM 或绘制顺序。
怎么落地
- 为每类重叠明确可测试的优先级:模态阻断、前景优先、父级捕获或显式选择。
- 让不可点的视觉层不参与命中,避免透明装饰吞掉事件。
- 对重叠边界建立自动化点击与触摸测试,断言唯一目标和预期事件路径。