我是一个屏幕阅读器用户,以 Stack Overflow 为例分别说明好的和不好的。
Alt 标签应该简短且描述准确。例如,Stack Overflow 的投票上和投票下的 alt
标签很好,因为它们不需要花费太长时间去阅读,而且能够快速地表达意思。坏的 alt 标签的例子有将问题标记为喜爱和接受答案。这两个标签都不具有描述性,喜爱标签只是一个“*
”号,而接受答案的标签则是“check
”。我唯一能够知道它们的方式是通过阅读源代码或者让视力正常的人告诉我它们的用途。
至于 title
属性,我没有太多建议。我的屏幕阅读器默认不会读取它们,所以我平时不使用它们。一个可能有用的示例是附加信息。例如,我的被接受答案率之所以很低,是因为我无法判断自己是否已经接受了问题的回答。如果接受答案的图标上的 title
属性能够显示类似“点击接受此答案”的信息,那就太好了;如果是已经接受的答案,则显示“点击取消此答案的接受状态”。
alt
文本应该作为一句话/段落工作,可以替换图片,传达相同的内容,并在相邻内容的上下文中仍然有意义。alt
文本应传达一个动作(动词),例如upvote、answer this或log out。links
访问您的网站并尝试了解您的网站。例如,如果有一个饼图,则其alt
文本应该是百分比的小总结。如果您只在博客文章旁边放了一朵漂亮的花,不要给它一个无聊的alt
文本,如flower image companion of blogpost #324或更糟糕的是flower.jpg。alt
文本。如果图片只是表现性的,请给它一个空的alt
文本。
title
,据我所知,应该只在悬停时显示,因此它们应该为图像提供额外的信息,因此应避免无用的信息重复。对于屏幕阅读器来说,这有点棘手,因为支持和配置可能因用户而异。
一些经验数据显示title
是无用的:
- 大多数屏幕阅读软件用户不会更改默认设置以访问链接上的TITLE属性信息。
- 大多数屏幕阅读软件可以默认访问表单控件上的TITLE属性内容。
- 一些屏幕阅读软件无法访问TITLE属性信息。
- 屏幕放大器用户可以在较低的放大级别下阅读TITLE属性文本。
- 屏幕放大器用户无法在更高的放大级别下阅读包含1或2个以上单词的TITLE属性文本。
这是一个很好的建议, 比我能说得更好
使用这个属性提供额外信息,但它不是必须的。大多数可视化浏览器将title文本显示为工具提示,然而浏览器制造商决定如何呈现title文本。有些浏览器会在状态栏中显示文本。Safari的早期版本就是这样做的。
使用title属性的一个好方法是为链接添加描述性文本,特别是如果链接文本本身没有清楚地描述链接的目标。这样,您可以帮助访问者知道链接将把他们带到哪里,可能避免加载一个页面,只发现它不是他们感兴趣的东西。另一个潜在的用途是为图像提供额外的信息,例如日期或其他可能不是必需的信息。
请记住,longdesc
属性应该是进一步信息的链接,而不是一些人误用的文本。
<img src="my-image.gif" alt="my-image.gif">
或<img src="smiley.gif" alt="an image of a smiley">
这样的东西,它们除了更多的文本外并没有给你任何其他的东西。 - Esteban Küber我认为最佳实践是在alt和title属性中放置相同的内容。
关于“写什么”-只需简单地用几个词描述图片上的内容。
请查看这篇文章,其中很好地描述了alt属性:http://www.cs.tut.fi/~jkorpela/html/alt.html