E3.13.4cascade blocks cross-level comparison设计
级联结构不适合需要跨层级比较的场景
别名: 跨级比较 · cascade versus compare · 不能比兄弟
概念解释
级联一次只打开一条路径,兄弟节点和旁支默认看不见。需要把不同父级下的项放在一起比较时——几个城市的房价、几个类目下的相似型号、两个部门的编制——级联会把比较对象锁进必须先改父再看子的串行里。跨层级比较(cross-level comparison)要求并行看见不同分支上的叶子。级联提供的是导航,不是对照表。任务是对照,就不要用级联当选择器。
机制
比较依赖同时在视野里的几个对象。级联的子级名单每次只属于当前父级,换父级会换掉整份名单,刚才看见的叶子消失。工作记忆要扛起「上一个市的那个值」,还要在新名单里找对应项,负荷随要比较的分支数上升。人会用笔记、多开窗口或放弃比较,直接凭印象选。级联越深,能同时看见的跨支信息越少。
树形多选、双列、表格可以把不同分支的叶子钉在同一视图里。级联做不到钉住,因为它的子级视图是父值的函数,函数一变,视图就撤。
边界
用户已经知道唯一目标、只需沿路径定位时,不需要比较,级联合适。比较发生在同一父级内部(同一省的市)时,子级名单本身就是对照表,级联无妨。需要跨支比较但最终仍只选一条路径的,可先用可多开的浏览(表、地图、搜索结果)完成比较,再把选中项写回级联字段,而不是在级联里完成比较。屏幕阅读器用户的比较成本更高,因为串行听名单无法扫一眼旁支,更不应把对照任务放进级联。
怎么落地
- 任务包含「这几个叶子谁更好」时,改用表、可展开树或搜索结果来陈列,不要用级联当对照工具。
- 级联只承担「我已决定,帮我落到合法路径」。
- 必须保留级联录入时,在旁边提供可跨支浏览的只读对照,选中后再回填。
- 验证:给一个必须比较两个不同父级下叶子的任务。若用户不停改父级、还用纸记刚才看到的值,结构就选错了。