无障碍 (a11y)
Flutter 的无障碍支持。
背景
#确保你的应用能够被广泛的用户使用是构建高质量应用程序至关重要的一点。如果你的应用设计不佳,可能会无法覆盖到所有年龄段的人。 联合国关于残疾人权利 规定了道德和法律必须确保信息系统能够普遍使用。世界各地也都要求提供无障碍的环境;同样,公司也认识到了最大限度覆盖服务的优势所在。
我们强烈建议你将无障碍清单作为发布应用前的关键标准之一。 Flutter 始终致力于帮助开发者让应用更易于访问,除了底层操作系统提供的无障碍支持外,Flutter 还提供了一流的框架级无障碍支持,包括:
无障碍法规
#无障碍标准与法规有助于确保产品能够被残障人士访问。其中许多已被纳入法律和政策,成为对产品和服务的强制性要求。
-
WCAG 2:Web Content Accessibility Guidelines (WCAG) 2 是一项国际公认的标准,用于让 Web 内容对残障人士更易于访问。它是由万维网联盟 (W3C) 制定的一项稳定的技术标准。
-
EN 301 549:EN 301 549 是欧洲针对信息通信技术 (ICT) 产品和服务无障碍要求的统一标准。
-
VPAT:Voluntary Product Accessibility Template (VPAT) 是一个免费模板,可将无障碍要求和标准转化为针对产品和服务的可执行测试准则。
世界各地的法律都要求数字内容和服务能够被残障人士访问。在美国,Americans with Disabilities Act (ADA) 禁止在公共设施中实施歧视。 Section 508 of the Rehabilitation Act 要求联邦机构及其承包商的所有 ICT 均符合 WCAG 标准。
在欧盟,European Accessibility Act (EAA) 要求广泛的公共和私营部门服务都具备无障碍能力,并主要以 EN 301 549 作为其技术基础。
思考如何构建无障碍应用
#确保你的应用能够被所有人使用,这意味着你需要从一开始就考虑到无障碍。对于一些应用,说起来容易做起来难。在下面的视频中,我们的两名工程师将一个无障碍状况堪忧的移动应用,改造为一个充分利用 Flutter 内置 widget、显著提升了无障碍体验的应用。
Building Flutter apps with accessibility in mind
无障碍发布清单
#这里是一些应用发布前的你需要考虑的部分清单。
-
主动交互。确保所有可交互的地方都会给予反馈。任何可以按下的按钮在被按下时都应有所响应。例如,如果你的
onPressed事件是一个无操作 (no-op) 回调,请改为在屏幕上显示一个SnackBar,说明你刚刚按下了哪个控件。 -
屏幕阅读测试。当你点击控件时,屏幕阅读器应能描述页面上的所有控件,并且描述应易于理解。请使用 TalkBack (Android) 以及 VoiceOver (iOS) 测试你的应用。
-
对比度。我们建议控件或文本与背景之间的对比度至少为 4.5:1,禁用的组件除外。图片也应经过审核,确保具备足够的对比度。
-
上下文切换。在用户输入信息时,任何内容都不应自动改变用户所处的上下文。通常来说,widget 应该避免在没有某种确认动作的情况下更改用户的上下文。
-
可点击的目标。所有可点击的目标至少应为 48x48 像素。
-
错误。重要操作应该能够撤销。在显示错误的字段中,如果可能,请提供订正建议。
-
色觉辨认障碍测试。控件应该可用并且在色盲和灰度模式下清晰可见。
-
比例系数。在文本大小和显示缩放的比例系数非常大时,UI 应保持清晰易读、可用。
更多信息
#若想进一步了解 Flutter 与无障碍,请查看以下社区成员撰写的文章:
除非另有说明,本文档之所提及适用于 Flutter 3.44.0 版本。本页面最后更新时间:2026-06-16。查看文档源码 或者 为本页面内容提出建议。