图片加载失败时,页面不应只留下破图图标和空白区域。更稳妥的做法是:让每张图片在HTML中带上能独立说明用途的替代文本,同时用CSS给图片容器预留尺寸和背景,使文字、标题、价格、操作按钮等关键信息仍然可读、可点。若图片本身就是唯一信息载体,例如产品细节图或图表,则需要在替代文本或相邻文字中补足同等信息,而不是只写“图片”两个字。
常见矛盾是:同样一张图没有加载出来,有的页面只是少了一块视觉内容,正文和按钮照常显示;有的页面却出现大片空白、文字被挤走,甚至整块区域无法点击。这通常不是图片服务器单方面决定的,而是页面结构对图片的依赖程度不同。
一种解释是,图片容器在CSS中写死了高度,但图片本身没有占位,图片失败后容器仍然撑开,视觉上像一块空白,信息却没有丢失。另一种解释是,图片被当作布局骨架使用,文字覆盖在图片上,或图片周围没有独立的文本节点,一旦图片失败,文字也跟着消失或错位。两者表现相似,处理代价却不同。
第一种做法是给图片加替代文本,并让容器保留尺寸。它的代价小,适合装饰图、氛围图、图标按钮和已有相邻文字说明的配图。结果是图片丢失后页面仍然完整,用户能继续阅读和操作。但它不解决“图片是唯一信息源”的问题,比如一张只有图没有文字说明的证书、款式或数据图。
第二种做法是把图片承载的必要信息拆成HTML文本,例如把产品卖点、图表结论、操作步骤写在图片附近,图片只作为增强。它的代价是内容维护量增加,同一信息要在图片和文字之间保持同步。适用条件是图片一旦缺失,用户就无法完成判断或操作,例如商品颜色对比、安装示意、费用构成图。选择时先问一句:如果这张图永远不出现,用户还能不能理解并完成下一步?能,就选第一种;不能,就选第二种。
排查时不要只看页面截图,而要看DOM结构。把图片的src临时改成一个不存在的地址,或在开发者工具中禁用图片加载,然后观察三件事:关键文字是否仍在文档流中;操作按钮是否仍可聚焦和点击;图片区域是否保留合理高度而不是塌陷。若文字仍在、按钮可点,说明问题主要在视觉兜底;若文字消失或按钮被覆盖,说明信息被绑在图片上,需要拆出文本。
另一个证据是替代文本的质量。把页面中的图片全部替换为替代文本后,如果读起来像一份能理解的说明书,说明信息保留得较好;如果只看到“banner”“pic1”“产品图”这类词,说明替代文本没有承担信息职责。注意,替代文本不是关键词堆砌位置,它的作用是让图片缺失时仍能传达用途。
假设一个商品列表页有十二张商品图,每张图下方已有商品名和价格,图片只负责展示外观。此时选择第一种做法:给图片设置宽高属性或容器最小高度,写清替代文本,例如“白色陶瓷杯正面图”,并让图片失败时的背景色与页面一致。结果是图片丢失后,用户仍能看到商品名、价格和购买按钮,下一步可以继续比较和下单。
再假设一个安装说明页,步骤主要靠三张示意图表达,图中标注了螺丝位置和方向。此时选择第二种做法:把每一步写成文字,例如“将A件缺口对准B件凸点,顺时针旋入”,图片作为辅助。结果是即使图片全部丢失,用户仍能按文字完成安装。这个动作会影响下一步:如果文字步骤已经足够,图片的替代文本可以简短;如果文字仍依赖图,就需要继续补充说明,而不是只调整图片样式。
不必一次改完所有图片。先处理三类:首屏主图、商品或服务核心图、承载操作指引的图。它们的共同点是缺失后直接影响理解或转化。装饰性背景图可以只做尺寸占位,不必强行写长段替代文本。处理顺序建议是:先确认图片是否唯一信息源,再决定拆文本还是只做兜底,最后用禁用图片的方式复测。
如果图片来自外部服务,还要考虑加载失败可能只是暂时现象,不能因为一次请求失败就断定图片永久不可用。替代文本和容器占位是降低损失的通用手段,不会替代对图片来源、授权和稳定性的核查。页面保留必要信息的目标不是让图片永远不丢,而是让图片丢失时,用户仍能读懂页面并完成关键动作。