T2.05.1Evidence-backed empty-result state taxonomy设计研究

需区分无数据、无匹配与出错

别名: 空状态分类 · 零结果 · 权限空状态 · loading versus empty

概念解释

有证据支撑的空结果状态分类(evidence-backed empty-result state taxonomy)根据系统实际知道的事实区分页面为何没有呈现条目:数据源成功返回且确实为空、已有数据但当前查询/筛选无匹配、请求失败而内容未知、用户没有查看权限,以及请求仍在加载而尚无结论。它们可能视觉上都是空白,却对应不同事实、责任和下一步。文案不能在证据不足时把“未确认”写成“没有”。

机制

渲染层只观察到 items 数组为空时,网络错误、权限过滤、未完成请求和真实零条目会坍缩成同一状态。可靠分类还需要请求生命周期、HTTP/领域结果、认证与 entitlement、查询条件、未筛选总量或可验证的基准,以及数据新鲜度。无数据是成功读取后的数据事实;无匹配是查询关系;错误表示读取未成功;权限拒绝表示存在访问边界但不应泄漏对象是否存在;loading 是非终态。只有先固定状态证据,文案才能诚实说明已知、未知及用户能做什么。

怎么研究

建立 source state × query × permission × request lifecycle 的故障注入矩阵,分别制造首次空库、清空后的库、零匹配、超时、离线、部分失败、会话过期、权限拒绝、慢响应和旧缓存。检查最终文案、动作和数据是否一致,并测用户对“是否存在数据、系统是否失败、我是否有权限”的判断、首个动作与恢复。日志应记录状态原因码、证据来源和转换,而非仅记录“empty shown”。避免用真实敏感对象验证权限态,以免研究界面本身泄漏存在性。

边界

系统可能只能确认当前页为空,不能确认整个集合为空;分片、分页、同步延迟和离线缓存都需要限定范围与时点。权限态应说明当前角色无法查看或完成动作,而不是暗示受保护资源存在。部分成功应保留可用内容并标记未加载范围,不宜把整页改写为全空或全错。错误消息的原因、责任与恢复措辞属于错误文案;加载进度和动画属于反馈组件,这里的任务只是避免把这些状态误命名为空。

怎么落地

  • 建立互斥状态机:loadingloaded_emptyno_matchforbiddenfailedpartialloaded_nonempty,为每个终态记录证据和允许转换,不用 items.length === 0 单独裁决。
  • 为状态提供独立消息和原因码:真实无数据说明范围,无匹配回显查询条件,失败承认无法确认,权限态避免对象存在性泄漏,加载态不提前下零结果结论。
  • 将客户端、API、缓存、搜索与权限服务的状态契约版本化;未知或冲突结果采用“暂时无法确认”及安全恢复路径,不猜测无数据。
  • 用慢网、断网、空库、过滤、分页、过期身份和部分响应做端到端回归,并核对可见文案、读屏状态更新、动作和遥测都指向同一分类。

延伸

  • 同组T2.05.2 需给出明确的下一步动作 · T2.05.3 需说明填充后会得到什么
  • 相邻T2.04.1 说明发生了什么、为什么、怎么办 · T2.07.3 需说明拒绝后会失去什么
  • 站内检索empty state taxonomy · zero results · loading versus empty

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/T2.05.1