E3.17.3empty filter results explained设计
过滤结果为空时需给出明确提示而非空白
别名: 无匹配 · empty filter · 搜索无结果
概念解释
关键字把名单滤成零条时,面板不能只剩一片空白,像还在加载或像控件坏了。要有一句明确的空结果(empty-result message):没有匹配「某某」、当前过滤下没有选项,并最好带一条下一步——改关键字、清过滤、看看是否要换一种拼法。空白会让人在「没有这项」和「搜索没工作」之间无法抉择,于是反复提交同一个词,或放弃选择。
空是过滤的空,不是集合真的空。集合真空是另一句(还没有任何角色可授),两句不能混用。
机制
人把列表区域当数据存在的证据。数据被滤光之后,区域若也空了,证据变成「这里没有列表」。加载中的空白、错误的空白、零命中的空白在外形上接近,归因于是乱的。一句含有用户刚才键入的词的句子,把归因钉在查询上:系统看见了你的词,只是没有对象认领它。下一步则阻止原地打转——清过滤能立刻证明名单还在,改拼法对应匹配规则,申请新项对应真的缺对象。
空结果还要保留搜索框本身。有的实现在零命中时拆掉整块面板,关键字跟着消失,用户无法改词。保留输入、替换的是名单区域。
边界
网络失败的空和零命中的空必须分开:失败带重试,零命中带改查询。权限把某些项藏掉时,空可能是「你看不见」,文案不能说「不存在」,否则用户会去错误的地方建一份。树在过滤下零命中,提示应说明是整棵树没有匹配,而不是当前展开节点没有。输入过程中的短暂空(还没敲完)不要闪出「无匹配」,应等短暂停顿,以免每个字母都吓一跳。
怎么落地
- 零命中时在名单位置写含有当前关键字的句子,并提供清除过滤。
- 区分「集合为空」「查询无匹配」「加载失败」三种空。
- 空的时候搜索框仍在,焦点仍在,用户能直接改词。
- 验证:键入一个保证不存在的词。若只看到空白面板或面板关掉,空结果就没被当作一种状态来设计。