结论有前提:如果图片属于装饰或氛围图,丢失后不影响用户完成当前任务,页面应继续渲染文字内容,并让图片位置不塌陷、不出现破图图标;如果图片本身就是信息载体(如商品图、证件照、图表、步骤截图),则不能只用文字“兜底”,而应把关键信息以文字或结构化数据的形式放在图片之外,让用户在图片加载失败时仍能读到。反例是:图片由脚本在客户端动态插入,且替代文本、尺寸、说明文字都依赖同一份未返回的数据,这种情况下“保留必要信息”无法靠前端补救,只能先恢复数据或接口。
这个判断决定了保留什么。装饰图的丢失只影响观感,处理目标是稳定布局;信息图的丢失会阻断任务,处理目标是让信息可读。可以按一个简单问题区分:如果这张图被替换成一句等长文字,用户是否还能完成他原本要做的事?能,就是装饰或辅助;不能,就是信息载体。
对信息载体,必要信息通常包括:这张图是什么(名称或用途)、它表达了什么结论(数值、状态、步骤)、用户下一步能做什么(点击、下载、联系、重试)。这三项中缺任何一项,图片丢失后的页面就只剩空壳。
按优先级排列,可以保留的内容是:
其中最容易漏掉的是“核心结论”。很多页面只给图片加了替代文本,但替代文本写的是“销售趋势图”,用户仍然不知道趋势是升是降。必要信息的底线是:即使图片永远不出现,用户也能从文字中得到这张图原本要传达的判断。
假设一个产品详情页的主图因资源路径变更而 404,而你又没有后台权限去改图片地址。此时可执行的最小动作是:在图片容器上设置固定宽高比,避免布局塌陷;在 <img> 上保留描述性 alt;在图片下方补一行文字说明,写清产品名称、关键规格和当前状态。
这个动作的结果是:用户看不到图,但能确认自己打开的是正确产品,并读到决定购买的关键参数。下一步就可以据此判断——如果用户仍能完成加购或咨询,说明文字信息已够用,可以按低优先级排期修图;如果用户卡在“无法确认外观”这一步,说明外观本身就是必要信息,必须优先恢复图片资源或补上多角度文字描述。
反例出现在数据与视图强耦合的页面。比如图表由接口返回的数组直接渲染,接口失败时既没有图,也没有数组,前端拿不到任何可写进文字的值。这时“保留必要信息”不是排版问题,而是数据链路问题,前端只能显示统一的失败提示和重试按钮,不能编造数值。
另一种失效情况是:图片是唯一的信息来源,且文字描述会带来法律或准确性风险,例如证件、票据、医学影像。此时正确的做法不是用文字替代,而是明确提示“该内容需以原图为准”,并提供重新加载或联系人工的路径,避免用概括性文字让用户误判。
可以用一个假设例子来验证:某页面有一张“配送范围示意图”,图中用颜色区分可达与不可达区域。如果只写替代文本“配送范围图”,图片丢失后用户无法判断自己是否在范围内;如果补上“可达区域:A、B、C;不可达区域:D、E”,用户即使看不到图也能得到结论。这里的数字和区域名只是说明比较方法,不是真实数据。
验证时不要只看页面是否还“能打开”。请求量、抓取量或图片加载失败统计归零,都不能单独证明处理正确——它也可能是缓存命中、监控口径变化或页面被整体屏蔽造成的。更可靠的依据是:让一个不了解该页面的人,在图片被禁用的情况下完成原任务,记录他卡在哪一步。卡点就是还需要补的必要信息。下一步动作应是把卡点对应的文字补进页面,而不是先追求把图片修好;图片恢复属于体验优化,信息可达属于任务底线,两者顺序不应颠倒。