外部嵌入内容不可用时,替代说明应让用户知道这里原本有什么、为什么暂时看不到、能否做点什么,而不是只留一块空白。选择“隐藏整块”还是“保留占位并给出解释”,取决于该内容对页面任务是否关键:关键内容应保留占位并说明状态,非关键内容可以折叠或移除。
假设一个场景:你正在制作一个活动报名页,页面中间嵌入第三方地图,用来显示线下场地位置。上线前测试时发现地图脚本被拦截,区域变成空白。此时不要急着删掉整段,而要先判断:地图是用户完成报名必须依赖的信息,还是辅助信息。
判断依据可以分成三类:
角色不同,替代说明的写法也不同。任务关键型不能只写“加载失败”,而要给出可操作的下一步;决策辅助型可以保留简短说明并附上替代路径;氛围补充型可以直接隐藏,避免干扰。
隐藏整块的做法,是把嵌入容器连同标题一起移除,页面看起来更干净,但用户不知道这里少了什么。保留占位的做法,是留下一个带说明的区域,告诉用户内容暂时不可用,并给出替代动作。两者没有绝对优劣,关键是看代价。
如果选择隐藏,代价是信息缺口被掩盖,用户可能以为页面本来就没有这项内容。适合氛围补充型内容,因为它的缺失不影响用户完成任务。实际动作可以是给容器加一个状态判断:加载失败时直接收起,不占高度。
如果选择保留占位,代价是页面多出一块非内容区域,可能影响阅读节奏。适合任务关键型和决策辅助型内容。实际动作是保留标题和一句说明,再附一个替代入口,例如“查看文字地址”或“刷新后重试”。这个动作的结果是用户仍能继续,而不是卡在空白处。
一个可执行的判断规则是:问自己“如果用户看不到这块内容,他还能不能完成本页面的主要动作”。能完成,就倾向隐藏;不能完成,就保留占位并给出替代路径。
替代说明不是道歉模板,而是状态说明加下一步。它至少应回答三个问题:这里原本是什么、为什么现在看不到、用户可以做什么。写法上要短,避免把技术错误直接暴露给用户。
可以按下面的顺序组织:
如果嵌入内容有明确的数据来源,还可以在替代说明中保留关键信息的文字版本。例如地图不可用时,直接写出地址和交通提示;视频不可用时,写出视频主题和时长。这样即使用户看不到嵌入内容,也不会失去核心信息。
替代说明不应该一直显示,也不应该在所有失败情况下都显示同一句话。可以在页面制作时设置几种状态:加载中、加载成功、加载失败、超时。加载中显示占位骨架,加载成功显示嵌入内容,加载失败或超时显示替代说明。
具体动作可以这样设计:给嵌入容器设置一个超时时间,超时后切换到替代说明;如果嵌入内容返回错误,也切换到替代说明。这个动作的结果是用户不会无限等待,页面也不会一直停在空白状态。
需要注意的是,请求量或加载量归零不能单独证明替代说明设计正确。它可能只是用户没有触发该区域,或者统计本身被拦截。要结合用户是否继续完成下一步来判断,例如是否点击了替代入口、是否提交了表单。
继续前面的活动报名页假设。地图嵌入失败后,你有两个选择:隐藏地图区域,或者保留区域并写替代说明。因为地图影响用户判断是否到场,属于决策辅助型,所以选择保留占位。
替代说明写成:“场地地图暂时无法显示。地址:某某路 1 号;地铁 2 号线某某站步行约 8 分钟。”同时保留一个“重新加载地图”的按钮。用户如果不需要地图,可以直接看文字地址;如果需要地图,可以尝试重新加载。这个动作的结果是页面没有因为外部内容不可用而中断报名流程。
如果换成装饰性视频,选择就不同:直接隐藏视频区域,不写替代说明,页面反而更干净。所以决策条件不是“嵌入内容重要不重要”这一句空话,而是“缺失后用户还能不能完成本页任务”。能完成就隐藏,不能完成就保留说明和替代路径。