图片丢失时,页面不应只留下破图图标或空白,而应让读者仍能判断这块内容原本在说什么、是否值得继续操作。最直接的做法是:为每张有信息价值的图片准备一段替代文本,并在图片加载失败时让这段文字或一个占位说明显示出来,而不是让布局塌掉。下面按“先分清丢失原因,再决定保留什么信息,最后落到可执行改法”的顺序说明。
图片不显示,未必等于图片被删除。常见原因至少有四类:文件确实被移除;文件还在,但页面引用的路径写错;文件在,路径也对,但服务器返回了拒绝访问;图片体积过大或网络中断,导致加载超时。这四种情况对页面的影响不同,处理方式也不同。
可以用一个可核对的证据来区分:在浏览器开发者工具的“网络”面板里查看该图片请求的状态。若返回 404,通常是路径错误或文件缺失;若返回 403,通常是权限或防盗链设置;若状态是待处理或失败但没有明确状态码,可能是网络或超时;若状态为 200 却仍不显示,则要检查图片本身是否损坏、格式是否被支持、CSS 是否把它隐藏了。
这一步的实际动作是记录状态码和请求地址,而不是急着替换图片。结果会直接影响下一步:404 应先核对文件是否还在、路径大小写是否一致;403 应先查访问规则;200 但空白则应先验证图片文件能否单独打开。把原因分对,后面的信息保留方案才不会白做。
不是每张图都值得为它写一大段说明。判断标准是:这张图是否承载了读者做决定所需的信息。产品图、示意图、流程图、证件或票据类图片、带数据的图表,通常属于必须保留信息的类型;纯装饰性的背景图、分隔线、氛围图,丢失后不影响理解,可以只留一个不占位的空容器。
对必须保留信息的图片,替代文本要写“这张图在说明什么”,而不是“这是一张图片”。例如一张展示接口调用顺序的图,替代文本可以写成“先请求订单接口,再根据返回状态决定是否请求库存接口”,这样即使图没加载,读者仍能理解流程。对装饰图,替代文本留空即可,避免读屏软件读出无意义内容。
这里有一个容易忽略的取舍:替代文本不是越长越好。它应能在不打开图片的情况下,让读者获得与图片同等的关键信息。如果图片本身包含大量细节,可以在图下方补一段文字说明,而不是把全部细节塞进替代文本。
假设一个本地服务介绍页,首屏有一张门店位置示意图,图上有道路名称和门牌方向。图片请求返回 404。此时如果只显示破图图标,读者就失去了“怎么走”的关键信息;如果替代文本写成“门店位置图”,信息量仍然不足。
更稳妥的处理是:替代文本写成“门店位于某路与某街交叉口向东约一百米,路北侧”,同时在图片位置下方保留一句可点击的文字说明或一个指向文字版地址的链接。这样即使图片长期缺失,页面仍能完成“告诉读者怎么走”的任务。这个例子的数字和路名只是假设,用来演示比较方法,不代表任何真实地点。
反过来,如果丢失的只是一张装饰性横幅,那么正确做法是让它不占据大块空白,而不是硬写一段与内容无关的文字。保留信息的边界,取决于这张图是否影响读者完成任务。
要让图片丢失时仍保留信息,需要在写页面时就安排好三层:图片元素本身、替代文本、以及图片外部的文字兜底。具体可以按下面的顺序检查。
其中第 2 步和第 4 步会互相影响:如果容器没有稳定尺寸,替代文本出现时可能把周围内容挤乱;如果容器尺寸固定但替代文本过长,又可能被截断。因此实际动作是先给容器一个合理的最小高度,再控制替代文本的长度,让它在常见屏幕宽度下能完整显示。做完这一步,才能判断是否需要为特别复杂的图片单独补一段图下说明。
如果图片文件还在、只是路径写错,优先修正路径,因为这是成本最低且能恢复原有效果的做法。如果图片确实已经丢失且无法找回,就要判断它是否仍需要存在:仍需要,就重新制作或替换;不再需要,就从页面结构中移除,并同步清理替代文本和容器,避免留下空白区域。
还有一种情况是图片本身没问题,但页面依赖它传递关键信息,例如把价格、电话或地址只放在图片里。这种页面在图片加载失败时几乎无法补救,正确做法是把这些信息同时写成文字,图片只作为辅助。这样无论图片是否显示,读者都能获得必要信息,页面也不会因为一张图而失去作用。
最后要说明的是,图片请求量下降或某张图不再被请求,不能单独证明处理正确。它也可能是页面结构调整、缓存变化或访问路径改变带来的结果。判断处理是否有效,应回到页面本身:读者在图片缺失时,是否仍能看懂内容并完成下一步操作。