菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

可访问性 有意义的 & 装饰性图像


为什么

屏幕阅读器 会忽略装饰性图像。屏幕阅读器会尝试朗读有意义图像的含义。


什么

有些图像是有意义的,有些是装饰性的。这在可访问性方面是一个重要的区别。每张图像都必须被编码为有意义或装饰性的。


如何操作

你将学习如何区分有意义的图像和装饰性的图像。


装饰性图像

如果一张图像对于用户理解网页或应用程序的功能或内容不重要,那么它就被认为是装饰性的。如果你能移除它而没有任何影响,那么它就是一张装饰性图像。

空的 alt 属性

将图像设置为装饰性的基本方法是使用一个空的 alt 属性。

Screenshot of the front page of Alibaba.com

在阿里巴巴的首页,我们有四个快捷方式——所有类别询价在线贸易展个人防护装备。每个都有一个说明性的图标。快捷方式所有类别有一个显示三个深蓝色方块和一个橙色圆圈的图像。这张图像是一张装饰性图像。我们通过添加一个空的 alt 属性来实现这一点。

<img src="Ha50044a3568449409f3396e5b36be8c3h.png_80x80q80.jpg" alt="">

辅助技术,如屏幕阅读器,将忽略该图像。如果没有空的 alt 属性,屏幕阅读器可能会读取文件名。这毫无意义,并且会使用户感到困惑。

背景图像

装饰性图像的另一种方法是使用 CSS background-image 属性 添加它们。当我们创建 英雄图像 时,这很常见。

Example of a hero image, showing a background image of a photographer with text on top.

字体图标

Screenshot from Alibaba, showing mobile bottom navigation with buttons like Home, Feeds and more.

在阿里巴巴的移动版本底部,有五个链接是图标和文本的组合——首页动态信使购物车我的阿里巴巴。由于如果移除图标,网站仍然可读,所以它们是装饰性的。这些图标是用字体图标创建的。没有 <img> 元素,也没有背景图像。添加 role="img"aria-hidden="true"

<i class="navbarIcon" role="img" aria-hidden="true"></i>

使用这段代码,我们为具有图像角色的 <i> 添加了一些语义。用户代理现在理解这是一个图像。屏幕阅读器也明白它们应该忽略该图像。

内联 SVG 图像

如果你使用 <img> 元素添加装饰性 SVG 图像,你必须按照描述添加一个空的 alt 属性。SVG 图像通常是内联插入的,使用 <svg> 元素。在这种情况下,aria-hidden="true" 会使你的图像成为装饰性的。

<svg aria-hidden="true" …></svg>



有意义的图像

Screenshot from Alibaba on a phone, showing two products – coffee and jacket.

我们的大部分图像都是有意义的。在阿里巴巴的这个例子中,我们有六张图像。

  • 标志
  • 搜索图标
  • 咖啡
  • 夹克
  • 1年徽章
  • 金徽章

这里唯一有意义的图像是搜索图标。这是装饰性的,因为有文字搜索产品。如果用于打开搜索的图标是独立的,它将是一张有意义的图像。

与装饰性图像一样,我们有几种编码有意义图像的方法。


描述性 alt 属性

alt 属性为图像提供替代文本,以防用户因某种原因无法查看。原因可能是连接速度慢、图像文件错误,或者用户使用屏幕阅读器。alt 属性的值应该描述图像,或者更好的是:图像的意图。你将在页面 图像的描述性文本 中学习如何编写。

Screenshot from Alibaba on a phone, showing two products – coffee and jacket.

在阿里巴巴的这个例子中,logo 的存在有两个原因。首先,告诉用户他们在哪一个网站上。其次,为用户提供返回首页的链接。

无法访问

<img src="TB1hVGkvVP7gK0jSZFjXXc5aXXa-365-49.svg">

更好,但仍然不好

<img src="alibaba-logo.svg">

更好

<img src="alibaba-logo.svg" alt="Alibaba logo">

最佳

<img src="alibaba-logo.svg" alt="Home of Alibaba">

背景图像、字体图标和 <svg> 图像

背景图像、字体图标和 <svg> 的方法相同。

  • 添加 role="img"
  • 添加一个描述性的 aria-labelaria-labelledby 属性。
Screenshot of Caledon Build, showing a modern house in the background.

<div role="img" aria-label="Private house, modern architecture. Minimalistic with a big garage.">

现在你知道如何编码装饰性和有意义的图像了。接下来你将学习如何为有意义的图像编写 描述性文本



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持