到目前为止,我的理解是alt
属性是必需的,不应该留空。这似乎已在现有问题中得到确认,例如this one。
但是,今天在阅读HTML spec时,我注意到以下内容:
单个图像可以具有不同的适当替代文本 取决于具体情况。
在以下每种情况下,使用相同的图像,但alt 文字每次都不同。图像是图像的纹章 位于瑞士日内瓦州的卡鲁日市。
此处用作补充图标:
<p>I lived in <img src="carouge.svg" alt=""> Carouge.</p>
继续显示其他带有alt
文本的示例,但在此(以及其他一些示例)中,alt
文本丢失了。
规范后来说(强调我的):
除非另有说明,否则必须指定 alt属性 并且其值不能为空;价值必须合适 替换图像。
使用alt=""
可以吗?如果是这样,何时可以接受?如果图片不需要alt
文字,那么它应该是CSS背景图片吗?
注意:这是基于WHATWG HTML Living Standard,而不是W3C HTML5规范。
答案 0 :(得分:24)
alt
属性设为空通常,alt
属性是必需的;但是,有几种情况下HTML规范说可以将alt
属性的内容留空。 alt
属性是文本等效于图像,这意味着如果图像的含义已经被周围的文本封装,它应该只为空。
将alt文本视为图像在不可用的情况下应传达的内容非常重要。如果图像可以通过它周围的文本进行汇总,那么它应该具有空alt
属性,因为冗余不会有益。
示例包括重复周围文本的流程图或图表。
如果要使用标题,则该标题应包含在title
元素中或使用<figcaption>
。如果图表可以通过页面上其他地方没有的信息来描述,则应使用alt
。该规范说明了应该避免这种重复的原因:
在这样的替代文本中包含标题是没有用的,因为它有效地复制了没有图像的用户的标题,嘲讽他们两次但没有帮助他们,只要他们只阅读或听到标题一次。
通常,规范建议使用CSS background-image
,但澄清在某些情况下,这可以通过标记完成,例如诗歌旁边的绘画或景观照片在一个事件。在这些情况下,图像是内容,但该内容仅在用户能够看到图像时才相关。
只有一张图片应包含alt
文字,以避免向无法看到图片的用户重复发送文字。
规范建议使用图像映射,但如果图像被切片,则每个链接必须有一个图像带有alt
文本。
alt
属性在某些情况下,备用文本无法知道或不必要,在这些情况下,alt=""
不准确,因为它意味着图像不会添加任何内容。 HTML规范警告:
如果作者有能力提供真正的替代文本,那么省略alt属性是不可接受的。
但是,它承认可能省略alt
的几种情况。
alt
(link) 在某些情况下,例如盲人用户的博客或照片共享网站,其中元数据不包含有用的信息,alt
可能是未知的。
在这些情况下,使用title
属性或<figcaption>
必需。虽然可能不知道图像的确切细节,但仍应包括一些解释性文本。在这种情况下,<figcaption>
是首选,因为
目前不鼓励依赖title属性,因为许多用户代理不会按照本规范的要求以可访问的方式公开属性。
如果您编写的文档只能由少数已知收件人查看,而且所有收件人都知道能够查看图像,则alt
属性可能会被省略。建议无论如何都要包括alt
,以防转发电子邮件或文档。
如果图像不是内容,则应该是背景图像。有关<img>
与background-image
背后的基本原理的细分,请查看When to use IMG vs. CSS background-image?