先记住这个答案
判断 alt 是否留空,要看图片在当前上下文有没有独立信息。链接里已有“下载报告”文字,旁边的下载图标通常可用 alt="";若只剩图标,控件就需要明确名称。省略 alt 不是同一回事,辅助技术可能退而读文件名,因此应有意选择空值或具体替代文本。
- 装饰图可写
alt="" - 省略
alt不等于写空 - 内容图要传达关键信息
- 操作图标须有可访问名称
下载图标和内容图片的区别
一个“下载报告”链接里有下载图标和可见文字“下载报告”。图标只重复文字,可用 alt="",避免读屏用户听到两次同一含义。若链接只有一张图标,图像本身就承担链接名称,空 alt 会让操作难以理解,应在图片 alt 或链接的其他可访问名称里写“下载报告”。产品图片也不能因为有漂亮的装饰边框就整体判成装饰。
<a href="/report.pdf">
<img src="/download.svg" alt="">
下载报告
</a>
<!-- 图标不重复被读出,链接仍有可见文字 -->
<img src="/chart.png" alt="本月注册量逐周增长">alt 的作用是替代图片所传达的信息或功能,而不是机械描述每个像素。
示例里“下载报告”已经是链接中的可见文本,因此空 alt 只让装饰图标不被重复读出;下面的图表则传达注册增长趋势,需要非空文本。若图表复杂到包含每周具体数值,一句趋势不足以完整替代,还应在附近给数据或详细描述。替代文本要回答“错过这张图会漏掉什么”,不是机械照抄文件名,也不是把整篇分析塞进属性。
空替代文本表示纯装饰
装饰图的空值明确告诉辅助技术可以忽略;有意义的图片则要按上下文写出用户错过图片会失去什么。图表往往需要简短概括并在附近提供完整数据;操作图标要让控件有清楚名称。title 悬停提示不能代替 alt,它依赖鼠标且在触摸、键盘和读屏场景中不可靠。
同一张箭头图标在两个地方可能有不同答案:按钮旁已有“下一页”,它只是装饰,空 alt 可避免重复;图标单独构成“下一页”链接时,必须让链接有可访问名称。图片加载失败时也可以用这个判断:只剩周围文字后,用户是否仍能完成操作?若不能,就需要补充替代文字或可见文案。
容易答错的地方
- 把空
alt和缺失alt当成一样 - 空值是有意标记装饰,缺失可能让辅助技术猜测文件名。
- 给所有图片都写“图片”
- 替代文字应传达内容或功能,单说“图片”通常没有新增信息。
面试官还会怎么问?
只有图标的按钮怎么命名?
让按钮有可访问名称,可用图像替代文本或按钮自身的明确文字。
照片的 alt 要写成一长段吗?
按文章语境写必要信息即可,复杂内容放在邻近正文展开。
CSS 背景装饰需要 alt 吗?
CSS 背景没有 alt;若图片承载重要内容,就不应只作为装饰背景。
参考资料
示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。