Menu
×
   ❮   
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
     ❯   

无障碍 屏幕阅读器


为什么

屏幕阅读器对于盲人来说是必需的,对于视力部分障碍的用户来说很重要,对于有阅读障碍的人来说也很有用。


什么

在不谈论屏幕阅读器的情况下,很难教授关于网络无障碍的知识。屏幕阅读器已经成为网络无障碍领域中的轮椅。尽管无障碍并非只针对盲人或视力部分障碍的用户是一个神话,但屏幕阅读器支持是一个必须讨论的主题。

如果你已经完成了本课程中所学的所有内容,那么你的网站很可能在屏幕阅读器中运行良好。但这并不一定意味着所有盲人用户都能使用它。

顾名思义,屏幕阅读器是一种读取屏幕内容的工具。对于盲人来说是必需的,对于视力部分障碍的用户来说很重要,对于有阅读障碍的人来说也很有用。


最常见的屏幕阅读器

你将学习四种不同的屏幕阅读器的名称。

移动设备

对于移动设备来说,苹果拥有最大的屏幕阅读器用户群体。VoiceOver 屏幕阅读器内置在 iOS 中。第二受欢迎的是 TalkBack,它也内置于所有 Android 设备中。

确保你的网站在这两种屏幕阅读器中运行良好是一个良好的起点。在继续之前,请阅读以下文章

台式机和笔记本电脑

对于台式机和笔记本电脑,你应该了解两种屏幕阅读器 - NVDAJAWS。如果你必须选择一个进行测试,请使用 NVDA。它是免费的,并且越来越受欢迎。两者仅适用于 Windows。



如何

你需要设置语言,然后我们将测试两个网站 - Toyota 和 Hyundai。


语言

为了让屏幕阅读器说出正确的语言,它需要知道你的内容是什么语言。这可以通过在 <html> 元素中使用 lang 属性来完成。以下示例指定英语为语言

<!DOCTYPE html>
<html lang="en">

  1. 检查英语 关于诵读障碍的维基百科文章的源代码。
  2. 点击语言 Bahasa Indonesia
  3. 再次检查源代码。

lang 属性从 lang="en" 更改为 lang="id"。这对于屏幕阅读器和搜索引擎来说都是有利的。

部分内容的语言

有时你的内容的一部分会使用另一种语言。为了让屏幕阅读器在页面中间更改语言,我们使用相同的 lang 属性。检查 关于诵读障碍的英语页面上指向 Bahasa Indonesia 的链接的源代码。

<a href="https://id.wikipedia.org/wiki/Disleksia" lang="id" hreflang="id">Bahasa Indonesia</a>

现在屏幕阅读器了解到 "Bahasa Indonesia" 应该用 Bahasa Indonesia 语言阅读,而不是英语。它还了解目标页面是 Bahasa Indonesia 语言,因为存在 hreflang 属性。


屏幕阅读器测试

让我们简单了解一下屏幕阅读器测试。在本课程中,我们不会深入探讨。屏幕阅读器是一个很大的主题。使用你的手机来跟随这两个示例。你可能听不到这里写的完全一样的内容,因为影响屏幕阅读器输出的因素很多。

Toyota

Screenshot from the Toyota web site on a mobile device. Showing a logo, one location icon, one hamburger icon and one carousel.
  1. 在你的浏览器中打开 toyota.com 并打开 TalkBack 或 VoiceOver。在 Android 上使用 Chrome。在 iOS 上使用 Safari。
  2. 从左向右滑动,到达首页的第一个元素。你将听到类似 "Skip to main content …" 的内容。很好,一个 跳过链接
  3. 滑动到下一个元素。 "Toyota link main-navigation-bar …"。有点混乱?"Toyota" 来自带有 <title>Toyota</title> 的 SVG。
  4. 滑动到下一个元素。 "Button"。这个按钮有什么作用?我们不知道。
  5. 下一个。 "Button"。什么?
  6. 下一个。 "Button"。让我们放弃吧。

在听到 logo 后,你可能迷路了。三个按钮没有无障碍名称。正如你在页面 角色、名称和值 中所学的那样,所有元素都必须有一个无障碍名称。

如何改进这种体验

  1. 导航地标上的更好的标签。正如你在 地标 中所学的那样,如果你有多个相同的地标,则必须使用 aria-label。Toyota 有多个 <nav>,因此他们使用了 aria-label,正如他们应该做的那样。但是,属性的值应该为人类编写,不使用连字符。 <nav aria-label="main"> 会更好。
  2. logo 上的更好的链接名称。正如你在 链接文字 中所学的那样,链接文字应该清楚地解释单击该链接后读者将获得哪些信息。这可以通过在 <a> 上使用 aria-label="Toyota front page" 来改进。
  3. 第一个 "Button" 是一个没有无障碍名称的 <input type="button">。它会打开一个模态窗口,要求输入邮政编码以查找附近的 Toyota 经销商。这可以通过在 <input> 上使用 aria-label="Enter zip code to find a dealer nearby" 来解决。
  4. 第二个 "Button" 与邮政编码按钮相关。它有一个地理位置图标。从无障碍的角度来看,这两个元素应该合并成一个。
  5. 第三个 "Button" 是汉堡菜单图标。一个 aria-label="Open menu" 将使其具有无障碍性。

这些小的更改将改进 Toyota 网站,而不是修复它。使用模态窗口和菜单等组件还需要考虑其他因素。本课程不会深入介绍自定义组件的细节。如果你想了解更多关于这些模式的知识,请访问 WAI-ARIA 编写实践 1.1,阅读关于 菜单按钮模态窗口轮播 的内容。

Hyundai

Screenshot of the Hyundai website on a mobile device, showing the logo and four navigation icons.
  • 打开 Hyundai 全球 并打开你的屏幕阅读器。
  • 从左向右滑动,到达首页的第一个元素。 "Go to menu"。很好,一个 跳过链接
  • 滑动到下一个元素。 "Hyundai World Wide"。可能是我们所在的页面。
  • 下一个。 "Hyundai, link image"。可能是 logo。
  • 下一个。 "Go to global distributors page, button"。我们理解这一点,但它是一个按钮吗?
  • 下一个。 "Go to channel Hyundai page, link"。可以理解。
  • 下一个。 "Search, button"。完美。
  • 下一个。 "Menu, button"。很棒。

总体而言,页面的顶部部分对于屏幕阅读器用户来说是无障碍的。以下提示是一些小的改进。

如何改进这种体验

  1. "Hyundai World Wide" 是一个仅供屏幕阅读器使用的 <span>。它是视觉隐藏的。目的是告诉用户当前页面的标题。这与 <title> 元素是重复的,可以删除。
  2. logo 上更好的 alt 文本。包括链接的意图:alt="Hyundai World Wide front page"
  3. 简化链接和按钮上的无障碍名称。删除 "Go to" 和 "page"。Global distributors 就足够了。
  4. 在全球经销商链接上使用 <a> 而不是 <button>,正如我们在 按钮和链接 中所学的那样。

现在你已经学习了屏幕阅读器的基础知识。随意探索你的移动设备中内置的其他无障碍选项。尝试使用面部或开关控件来操作你的手机。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.