A2.07.3Excessive container nesting depth设计研究

容器嵌套过深会失去分组意义

别名: 容器嵌套上限 · nested containment legibility

概念解释

一层容器能清楚地表达"这些是一组",但把容器嵌套到三四层甚至更深(框里套框,框里再套框),用户很快就分不清自己现在看到的是第几层容器、这一层和上一层之间到底是什么关系。容器本该省掉逐一比对的力气,嵌套过深之后,用户反而要靠数边框、顺着描边一层层往外找才能确定归属,等于把力气又要回来了。

机制

每一层容器要被单独认出来,必须有和相邻层明显不同的视觉标记(描边粗细、底色深浅、圆角大小)。人在不做直接对比的情况下,能一眼分辨的这类差异档位很有限——超过两三档,相邻层级的边框看起来就很接近,必须把两层拿到一起比较才能分清谁在里面、谁在外面。

更根本的是,共同区域给出的是"这个元素属于哪块区域"这种即时判断,但"这块区域又属于哪块更大的区域"是一个需要顺着边界逐层往外追溯的关系,不是一眼能读出来的。嵌套层数越多,需要追溯的层数就越多,分组线索本来要省掉的认知成本,在追溯这一步又被加了回去。

怎么研究

信息可视化领域对嵌套容纳类图形(树图、嵌套的欧拉图/维恩图)的可读性做过专门研究:让被试判断某个元素属于哪个上级分组、或者比较两个元素是否同属一个上级分组,随着嵌套层数增加,判断的错误率和用时都明显上升,超过三到四层后错误率上升尤其明显。这类研究通常固定图形的其余属性(元素数量、整体尺寸),只改变嵌套深度这一个变量,从而把可读性下降单独归因于层数本身。

边界

这个上限是针对"只靠边框本身的样式差异来区分层级"这种做法说的;如果在边框之外再加上缩进、连接线或者显式的层级标签,能容忍的嵌套深度会更高,因为用户不再单靠边框样式去判断归属。

触屏和小屏场景下这个上限会更低:每一层边框要保持可见、可点击,粗细不能无限压缩,可用的层级样式档位比大屏更少,实际能撑住的嵌套深度往往到不了两三层就已经模糊。

怎么落地

  • 纯靠边框样式表达层级时,把嵌套深度控制在两层以内;确实需要表达更深的层级关系,改用缩进、连接线或者直接加文字标签,而不是继续叠加新的边框样式去区分第三层、第四层。
  • 每加一层边框,检查它和相邻层级的差异是不是"不用对比就能一眼分辨",而不是"放在一起看能分辨"——后者说明这一层边框已经超出了独立可辨的档位。
  • 验证办法:找没见过这个版式的人,随手指一个元素,让他们说出它属于哪一层的哪个分组,不许用手指顺着边框描——如果到某一层开始频繁答错,那就是这套视觉样式实际能撑住的嵌套上限。

延伸

  • 同组A2.07.1 同一封闭区域内的元素被感知为一组 · A2.07.2 容器分组强于接近性分组
  • 相邻A2.08 连接性 · A2.10 格式塔原则的冲突与优先级
  • 站内检索nested containment · container nesting depth · hierarchical grouping legibility

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/A2.07.3