如果您有带连字符的描述性文件名,是否需要图像 'alt' 属性?

Do you need an image 'alt' attribute if you have a descriptive filename with hyphens?

我写了包含连字符的描述性文件名,例如 src="yellow-apple-half-eaten.jpg"

我真的需要也写 alt="Yellow apple half eaten" 吗?

此外,如果您使用 <figure><figcaption> 标签,您真的还需要 <alt=""> 吗?

当我有数百张图像时,这是一个很大的麻烦。例如,我是否应该麻烦编写一个 PHP 脚本来用空格替换连字符,或者这不是必需的?我正在使用 HTML5.

如果您没有 alt 内容,最好使用描述性文件名,而不是神秘的文件名,因为某些用户代理可能会在没有其他内容可使用时使用该文件名。

但是,这并不意味着您可以或应该省略 alt 属性:

  • alt 属性是必需的(with exceptions;另见下文)。
  • 并非所有用户代理都使用文件名,以防没有 alt

    HTML5 不建议用户代理在这种情况下使用文件名,请参阅 img 下的部分:"If the src attribute is set and the alt attribute is not"。

    而且 markup generators 也不应该这样做(尽管它似乎不适用于您的情况):

    Markup generators should generally avoid using the image's own file name as the text alternative.

  • 图像的文件名不一定是好的 alt 内容(它不是为了您在图像上看到的内容,而是它在上下文中的用途,这可能非常不同).

  • 阅读"yellow-apple-half-eaten.jpg"而不是"Half-eaten yellow apple"甚至"Yellow apple half eaten"对用户来说不是很友好。

如果您无法提供 alt 内容,但可以提供某种类型的标题,其中一个例外情况可能与您相关:

如果您使用带有 figcaptionfigure 元素(用于图片说明),则可以省略 alt 属性。见 conditions.

此人测试了 figcaption 选项并且......它并没有真正取代 alt http://www.davidmacd.com/blog/figcaption.html