命中区域可大于视觉区域
别名: 热区大于外观 · 点击扩大 · hit slop
概念解释
按钮画出来的胶囊、矩形是视觉区域;真正接受指针或触点的是命中区域(hit target / hit slop)。两者不必重合。命中区域可以大于视觉区域:24 像素高的文字按钮,四周各伸出看不见的 10 像素,手指仍算点中。这不是在骗人,是把菲茨定律要的终点宽度给运动系统,同时把视觉密度留给排版。
机制
指向终点有散布。增大目标的有效宽度能缩短运动时间、降低滑点,但这宽度不必画出来——画出来会让工具栏变成一排胖子,挤掉相邻控件。把不可见的命中区垫在视觉轮廓之外,等于只对运动系统加宽、不对视觉层级加宽。触摸尤其依赖这一招:推荐的最小触达往往大于设计师想要的视觉尺寸。鼠标同样受益,只是散布更小,外扩可以更薄。命中区与视觉区分离之后,用户看见的仍是小按钮,成功点中的经验却像点中了大按钮。失败模式是反过来:视觉很大、命中贴着字框,人以为点中了边缘,事件却没触发。
怎么研究
用菲茨式指向任务,固定视觉尺寸,操纵不可见外扩量,记录运动时间和错误。触屏要记录触点质心落在视觉外、命中内的比例——那一圈正是外扩在起作用的证据。
自变量:视觉尺寸、外扩像素、输入通道、目标间距。 因变量:运动时间、漏点率、落在外扩带上的成功次数。
只测「点中视觉中心」会得出外扩无用。必须把起点放在真实任务会来的方向(底栏从下往上点),散布才是偏的。
边界
外扩不能穿过相邻可点对象,否则只是把错误从漏点换成点错。桌面精密绘图工具有时需要命中贴齐视觉,外扩会干扰对齐。缩放界面里按 CSS 像素外扩,在系统字体放大后可能不够,应按物理毫米或平台最小触达来。游戏里的「判定框」大于精灵是同一逻辑,但玩家会研究判定,UI 按钮通常不应让外扩可被看见或被教学。
怎么落地
- 把平台最小触达(约 44–48 CSS 像素或 7–9 mm)设为命中区下限,视觉可以更小。
- 在调试时画出命中矩形,确认它比描边更大,且没有伸进别的控件。
- 不要靠把整行做成按钮却只在字上给反馈,让人误以为只有字能点。
- 验证:在真机上点视觉边缘外侧几个像素,事件应触发;再点更远直到相邻控件,事件不应串到邻居。外扩带上的成功点击比例应明显大于零。