E4.16.1overlay stack depth cap设计研究
叠加层数需要上限
别名: 浮层层数 · 叠加深度 · 层叠上限 · overlay depth
概念解释
抽屉、对话框、弹出层、动作表都可以叠在主表面之上。每加一层,人就要多记一个「先关掉什么才能回到正事」。叠加深度上限(stack depth cap)是说同一时刻不该让这些临时层无限往上加:主表面之上有一层已经在用临时性换注意力,两层开始说不清回到哪,三层通常已经迷路。这条限制的是同时存在的层数,不是某一种层能不能套自己——那种嵌套是另一条规则。
机制
每一层都在声称「先处理我」。一层时,返回路径是清楚的:关掉它即主表面。两层时,返回路径分叉:关顶层是回到下一层还是穿透到主表面?工作记忆要维护一个层栈,而日常界面并不把栈画出来,人只能靠变暗程度和尺寸去猜。层数增加,变暗叠变暗,尺寸差被压缩,栈不可读。临时层本该短命,深度一高,短命的东西开始像导航结构,却没有导航该有的路径展示。上限不是审美,是在层栈还读得懂的时候停手。实现上的 z-index 可以无限涨,知觉上的「我在第几层」涨不动。
怎么研究
让人从主任务出发,分别经过 1、2、3 层临时层再执行顶层动作,然后回到主任务。记录能否说出下面还有几层、关一层之后以为已经回到主表面的次数。自变量:层类型组合(弹出层上再加对话框等)、各层变暗是否可分。因变量:层数估计、关错层、放弃。三层条件下「以为已经回去」应显著上升。
边界
系统权限框盖在应用对话框上,应用无法计入自己的上限,但应用不要再往上加。向导换页不是加层,是同一层换内容。主从分栏、非模态检查器常驻时不算临时层,不进这个栈。动画过程中的过渡帧看起来像两层,停留态才计数。
怎么落地
- 打开新层前先数已经在场的临时层;已经有一层,优先关旧开新或把内容放进当前层。
- 不要用「再弹一层」去补当前层没说完的话。
- 需要深度时改用页内结构或导航栈,那些会显示路径。
- 验证:走到顶层动作时问「关掉会回到哪」。答不出或答错,深度已经超了。