alt属性必须写,空字符串alt=""合法且必要;合格alt文本需用一句话说明图像在当前上下文中的功能或意图,而非描述画面细节,不可用泛化词或文件名,SVG和背景图需特殊处理。

alt 属性必须写,不写就是缺陷
HTML 图像没 alt 属性,对屏幕阅读器用户不可读,搜索引擎也无法理解图意,还可能被浏览器默认样式(如 broken image 框)暴露内容缺失。不是“可选”,是强制语义要求。
- 空字符串
alt=""合法且必要——表示该图纯装饰、无信息量 - 完全省略
alt属性,等于告诉辅助技术“这里有个无法解释的东西” -
alt="图片"或alt="logo"这类泛化描述,和没写几乎等效
怎么写才算合格的 alt 文本
核心原则:用一句话说清“这张图在当前上下文中起什么作用”。不是描述画面细节,而是说明功能或意图。
- 如果是按钮里的图标:
alt="删除此条记录",不是alt="一个红色垃圾桶图标" - 如果是文章配图:
alt="2023年杭州亚运会主火炬点燃瞬间",需含时间、地点、事件 - 如果是图表截图:优先用
<figure>+<figcaption>,alt可简化为alt="柱状图:各季度用户增长数据(见下方说明)" - 避免堆砌关键词、不加标点、超长句——屏幕阅读器会朗读,要自然停顿
img 标签里 alt 和 title 的区别别搞混
title 是提示性浮层,alt 是替代性文本,二者定位完全不同,不能互相代替。
-
alt在图片加载失败、禁用图片、语音浏览时生效;title只在鼠标悬停时显示(且移动端基本无效) - 写
title="点击查看大图"没问题,但绝不能指望它替代alt - 同时存在时,
title不影响alt的语义权重;两者都为空也不触发警告,但语义就丢了 - 某些 CMS 或编辑器会把标题字段自动塞进
title,得手动检查是否覆盖了alt
自动化检测容易漏掉的边界情况
工具能抓出 <img> 缺 alt,但抓不住“写了却等于没写”的情况。
立即学习“前端免费学习笔记(深入)”;
-
alt="header-image"、alt="123.jpg"、alt="spacer"—— 工具认为合法,实际毫无信息量 - SVG 内嵌在 HTML 中时,
<svg>本身不支持alt,得用<title>+role="img"+aria-label组合模拟 - 背景图(
background-image)根本没法加alt,如果承载关键信息,就得改用<img>标签实现 - React/Vue 等框架中动态拼接
src时,容易忘记同步处理alt,尤其 fallback 图片逻辑里
alt 不是填空,是做一次上下文判断——这图此刻对用户意味着什么。











