装饰图像或重复信息图像的可访问性

时间:2017-06-21 13:27:12

标签: html image accessibility wai-aria alt

当你写一个alt时,你应该记住一些事情。其中一项建议当图片内容为装饰或包含重复信息时使用空alt=""

但是使用之间的区别是什么:

<img alt=""
<img aria-hidden="true"
<img role="presentation"

还是一起?

<img alt="" aria-hidden="true" role="presentation" src="…" />

2 个答案:

答案 0 :(得分:5)

简答:

他们都有不同的目的。 image alt属性仅对图像元素有效。 aria-hidden适用于对所有用户隐藏的元素,而role = presentation有点像所有元素的空alt属性 - 不仅仅是图像(但支持的空间比空图像更少)。

更长的回答:

我建议阅读这些属性的文档,以了解它们应该如何使用。它们各自用于不同的目的。

alt属性:

图像替代文字旨在传达非文本内容的文本替代 - 如果图像没有替代文字,屏幕阅读器将忽略它,假设它纯粹是装饰性的。这个功能很广泛 - 如果不是普遍支持的话。

<强>咏叹调隐藏

aria-hidden,如w3c中所定义,适用于任何用户都无法看到或感知的元素&#34;。这意味着,如果有视力的用户无法看到它,那么访问辅助功能API的用户也应该隐藏它。一个示例用例是,如果用户必须单击一个按钮才能显示一个部分 - 该部分将对所有用户隐藏,并且还具有“咏叹调隐藏”部分。属性在其可见性更改时切换。应该注意的是,它并不总是以这种方式使用 - 许多人只是用它来隐藏屏幕阅读器,尽管这不是W3C中定义的预期目的。资料来源:https://www.w3.org/TR/wai-aria/states_and_properties#aria-hidden

<强>角色=介绍

role = presentation在w3c中定义为:&#34;一个元素,其隐式本机角色语义不会映射到辅助功能API&#34;。这与空的alt文本类似,但与alt属性不同,它可以用于不应映射到辅助功能API的各种其他元素。实际上,它与空的alt文本做同样的事情,但它不像空的alt属性那样受到广泛支持(sourece:https://www.w3.org/WAI/tutorials/images/decorative/

w3c定义:https://www.w3.org/TR/wai-aria/roles#presentation

为什么不包括所有3?

要回答你的最后一点,不包括所有三个的最大原因是它完全矫枉过正。使用空的alt属性,屏幕阅读器已经忽略该元素。包括role = presentation和aria-hidden的一个潜在缺点是,这两个元素都将从可访问性API中删除元素,这可能会对使用API​​的用户产生负面影响,而这些用户不是屏幕阅读器。

答案 1 :(得分:2)

alt属性设置为空字符串

From the W3C:

  

图像可以是装饰性的,也可以是其他内容的补充,与文档中的其他信息一样多余。

关于冗余的第二部分很重要,例如:

<h1><img alt="" src="logo.gif" />My company name</h1>

必须使用role=presentation

当图像纯粹装饰时就是这种情况,这意味着在这种情况下必须使用alt=""

您不必为具有空alt属性的图片指定演示角色属性,因为它是标准浏览器的默认实现:

  

允许的ARIA角色属性值:
  仅presentation个{/ 1}}元素,img属性的值为空(alt),否则为任何角色值。

必须使用alt=""

如果您不想向Accessibility API提供信息,但希望将其提供给标准用户,请使用它。

有视力的人可能会使用屏幕阅读器(文盲,低视力......),因此必须谨慎使用。对于aria-hidden=true代码,仅在img不为空时才有用。

对于具有非空alt属性的img,它会假设您为使用屏幕阅读器的人提供了足够的上下文信息,而alt信息可能只提供已在图像而不是有趣的盲人或其他屏幕阅读器用户。

alt

我认为这对于SEO而言不会引入冗余更有用。

TL; DR

如果您不想向屏幕阅读器提供信息:

  • 如果需要关注SEO,请使用非空<h1>Come to visit George</h1> <img alt="Map to reach George" src="map.gif" aria-hidden="true" /> Take the highway A13 direction London. When you reach London follow A2 highway in direction Liverpool. alt
  • 否则请使用aria-hidden=true
  • {li> alt="" img应为空role=presentation
  • altimg隐含alt