E4.16.1overlay stack depth cap设计研究

叠加层数需要上限

别名: 浮层层数 · 叠加深度 · 层叠上限 · overlay depth

概念解释

抽屉、对话框、弹出层、动作表都可以叠在主表面之上。每加一层,人就要多记一个「先关掉什么才能回到正事」。叠加深度上限(stack depth cap)是说同一时刻不该让这些临时层无限往上加:主表面之上有一层已经在用临时性换注意力,两层开始说不清回到哪,三层通常已经迷路。这条限制的是同时存在的层数,不是某一种层能不能套自己——那种嵌套是另一条规则。

机制

每一层都在声称「先处理我」。一层时,返回路径是清楚的:关掉它即主表面。两层时,返回路径分叉:关顶层是回到下一层还是穿透到主表面?工作记忆要维护一个层栈,而日常界面并不把栈画出来,人只能靠变暗程度和尺寸去猜。层数增加,变暗叠变暗,尺寸差被压缩,栈不可读。临时层本该短命,深度一高,短命的东西开始像导航结构,却没有导航该有的路径展示。上限不是审美,是在层栈还读得懂的时候停手。实现上的 z-index 可以无限涨,知觉上的「我在第几层」涨不动。

怎么研究

让人从主任务出发,分别经过 1、2、3 层临时层再执行顶层动作,然后回到主任务。记录能否说出下面还有几层、关一层之后以为已经回到主表面的次数。自变量:层类型组合(弹出层上再加对话框等)、各层变暗是否可分。因变量:层数估计、关错层、放弃。三层条件下「以为已经回去」应显著上升。

边界

系统权限框盖在应用对话框上,应用无法计入自己的上限,但应用不要再往上加。向导换页不是加层,是同一层换内容。主从分栏、非模态检查器常驻时不算临时层,不进这个栈。动画过程中的过渡帧看起来像两层,停留态才计数。

怎么落地

  • 打开新层前先数已经在场的临时层;已经有一层,优先关旧开新或把内容放进当前层。
  • 不要用「再弹一层」去补当前层没说完的话。
  • 需要深度时改用页内结构或导航栈,那些会显示路径。
  • 验证:走到顶层动作时问「关掉会回到哪」。答不出或答错,深度已经超了。

延伸

  • 同组E4.16.2 每一层都需要独立的关闭路径 · E4.16.3 返回手势与逐层关闭的语义需一致
  • 相邻E4.10 模态对话框 · E4.12 弹出层 · E4.09 抽屉
  • 站内检索overlay stack · z-index · layer depth

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/E4.16.1