筛选结果数应在应用前预示
别名: 筛选件数预告 · N remaining · 应用前计数
概念解释
勾选还没有生效、列表还没有重算之前,界面就要说出「若应用这一刀,还剩几条」。应用前预示结果数,让人在提交筛选之前看见交集的大小,而不是点完「确定」才面对 0 或面对猛然变短的列表。Flamenco 一类分面界面在每个取值旁显示当前约束下的件数,正是把「再加这一刀会怎样」做成勾选前的属性。
预示的是即将发生的计数,不是已经空了之后的解释,也不是把将空的取值提前禁用。预示可以是 0——0 作为警告出现在应用前,人还可以改主意。禁用是不让人组成空集。两件事对象不同。
机制
筛选面板,尤其是移动端「勾一批再按应用」,把反馈推迟到确认之后。推迟期间,人对交集大小的估计来自想象:觉得「红色」还有很多,实际与「XL + 本店」合取后是 2。估计偏差在确认时才爆开,回溯要重新打开面板、逐枚猜。把件数写在取值旁边,合取的结果成为当前决策的可见属性,工作记忆不必模拟整条链。
预示必须跟着已选约束重算。静态的全库库存数会骗人:全库有 40 件红,当前查询下只有 3 件,旁边还写 40,等于用另一个集合的数字给这一刀背书。算得慢时,过期数字比没有数字更危险,因为人会把它当成承诺。预示还要标明单位是「当前查询+已选筛选下的剩余」,不是「全站有多少」。
怎么研究
比较「应用后才看见计数」和「勾选前看见剩余件数」对空集和回溯的影响。
- 范式:同一筛选项,一种条件按应用后才刷新列表,一种在选项旁显示将得到的 N;第三种把 N=0 的项禁用。Hearst 的分面检索把 count 当作分面值的一部分来评估。
- 自变量:预示是否出现在应用前、数字是当前交集还是全库、数字过期时是否有占位。
- 因变量:走入空集的次数、打开面板回溯的次数、因数字不准而误以为某类不存在的比例。
- 方法论注意点:实验室若瞬间返回精确 N,会高估生产可行性。要插入与真服务相当的延迟,并观察过期数字被当成承诺的情况。预示 0 与禁用 0 必须分开报:前者仍允许组成空集,后者不允许。不要用零结果页的质量为缺少预示辩护。
边界
取值空间极大、无法对每个未选项做一步前瞻时,至少对焦点所在的那一枚或已露出的那一屏做预示,不要声称「全部取值都有准数」。实时库存剧烈抖动时,预示是快照,应避免写成「保证有 N 件」。无查询、无已选、第一次打开筛选时,预示退化为全库分布,仍有用,但要标明这是未约束的底数。屏幕阅读器需要能读到「若选择红色,剩 12 件」,只把数字视觉贴在右侧不够。
怎么落地
- 每个可勾选值旁边显示若加上它、在当前查询和已选筛选下将剩下的件数;数字随已选变化重算。
- 移动端「应用」按钮上同步写将得到的 N(「查看 12 件」),避免面板内看见数字、确认后却是另一回事。
- 数字尚未返回时用明确占位,不沿用上一次的过期 N;探得将为 0 时仍可显示 0,让人在应用前改主意。
- 验证:在已有两枚筛选的情况下悬停或聚焦第三枚,应用前就应看见交集大小。数字是全库库存而非当前交集,预示在说谎。应用后才从 200 变成 0,预示没有发生在应用前。