辅助技术
为 Flutter 开发者提供关于辅助技术的介绍。
概述
#辅助技术对于使数字内容可供残疾人士访问至关重要。本文档概述了与 Flutter 开发相关的两种关键类型的辅助技术:为视力障碍用户提供的屏幕阅读器,以及为运动能力受限的用户提供的移动辅助工具。通过理解和使用这些技术进行测试,您可以确保您的 Flutter 应用程序为所有人提供更具包容性和用户友好性的体验。
屏幕阅读器
#对于移动设备,屏幕阅读器(TalkBack,VoiceOver)使视力障碍用户能够获取屏幕内容的语音反馈,并使用手势在移动设备上或使用桌面键盘快捷键与用户界面进行交互。在您的移动设备上启用 VoiceOver 或 TalkBack,并在您的应用程序中导航。
要打开您设备上的屏幕阅读器,请完成以下步骤
- 在您的设备上,打开 设置。
- 选择 辅助功能,然后选择 TalkBack。
- 打开或关闭“使用 TalkBack”。
- 选择“确定”。
要了解如何查找和自定义 Android 的辅助功能,请观看以下视频。
- 在您的设备上,打开 设置 > 辅助功能 > VoiceOver
- 打开或关闭 VoiceOver 设置
要了解如何查找和自定义 iOS 辅助功能,请观看以下视频。
对于网页,目前支持以下屏幕阅读器
移动浏览器
- iOS - VoiceOver
- Android - TalkBack
桌面浏览器
- macOS - VoiceOver
- Windows - JAWs & NVDA
网页上的屏幕阅读器用户必须切换“启用辅助功能”按钮以构建语义树。如果使用此 API 以编程方式为您的应用程序自动启用辅助功能,用户可以跳过此步骤。
import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart';
void main() {
runApp(const MyApp());
SemanticsBinding.instance.ensureSemantics();
}
Windows 自带一个名为 Narrator 的屏幕阅读器,但一些开发者建议使用更流行的 NVDA 屏幕阅读器。要了解如何使用 NVDA 测试 Windows 应用程序,请查看 面向前端开发人员的屏幕阅读器 101(Windows)。
在 Mac 上,您可以使用包含在 macOS 中的桌面版 VoiceOver。
在 Linux 上,一种流行的屏幕阅读器称为 Orca。它预装在某些发行版中,并且可在诸如 apt 之类的软件包存储库中获得。要了解如何使用 Orca,请查看 在 Gnome 桌面上的 Orca 屏幕阅读器入门。
请查看以下 视频演示,了解如何使用 VoiceOver 与已归档的 Flutter Gallery 网页应用程序一起使用。
Flutter 的标准小部件会自动生成辅助功能树。但是,如果您的应用程序需要不同的内容,可以使用 Semantics 小部件进行自定义。
当您的应用程序中存在需要使用特定语音朗读的文本时,请通过调用 TextSpan.locale 来告知屏幕阅读器使用哪个语音。从 flutter 3.38 版本开始,MaterialApp.locale 和 Localizations.override 将影响屏幕阅读器语音。通常,屏幕阅读器使用系统语音,除非您使用 TextSpan.locale 显式设置它。
移动辅助
#对于手部灵活性或力量有限的用户,移动辅助功能可能有所帮助。Android 和 iOS 都提供一系列旨在使导航和控制更轻松的工具。这些功能允许用户通过外部开关、语音命令或简化的屏幕菜单来操作他们的设备。
Android 提供 Switch Access、Voice Access 和辅助功能菜单,而 iOS 提供 Switch Control、Voice Control 和 AssistiveTouch。了解这些工具有助于创建可供具有不同身体能力的人使用的应用程序。
| 操作系统 | 功能 | 作用 |
|---|---|---|
| Android | Switch Access | 作为一种替代输入方法,您可以使用 Switch Access 和 Camera Switches |
| Android | Voice Access | 用语音控制您的设备 |
| Android | 辅助功能菜单 | 一个浮动屏幕菜单,提供简化的按钮来控制基本手机功能。 |
| iOS | Switch Control | 将开关作为替代输入方法 |
| iOS | Voice Control | 用语音控制您的设备 |
| iOS | AssistiveTouch | 使用 AssistiveTouch 替换多指势或硬件按钮操作 |