注释
本文适用于 .NET Framework 开发人员,他们希望使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
在控件或应用程序中实现以下最佳做法将提高其辅助技术设备的用户的可访问性。 其中许多最佳做法侧重于良好的用户界面(UI)设计。 每个最佳做法都包含 Windows Presentation Foundation(WPF)控件或应用程序的实现信息。 在许多情况下,满足这些最佳做法的工作已包含在 WPF 控件中。
以编程方式访问
编程访问涉及确保标记所有 UI 元素、公开属性值以及引发适当的事件。 对于标准 WPF 控件,大部分工作都已通过 AutomationPeer 完成。 自定义控件需要额外的工作,以确保正确实现编程访问。
启用对所有 UI 元素和文本的编程访问
用户界面 (UI) 元素应启用编程访问。 如果 UI 是标准 WPF 控件,则控件中包含对编程访问的支持。 如果控件是自定义控件(已从公共控件进行子类化的控件或已从控件中子分类的控件),则必须检查 AutomationPeer 实现中是否存在可能需要修改的区域。
遵循此最佳实践,辅助技术供应商可以识别和操作产品的 UI 元素。
在 UI 对象、框架和页面上放置名称、标题和说明
辅助技术(尤其是屏幕阅读器)使用标题来了解导航方案中框架、对象或页面的位置。 因此,标题必须具有描述性。 例如,如果用户已深入浏览到某些特定区域,则“Microsoft网页”的网页标题是毫无用处的。 描述性标题对于失明且依赖于屏幕阅读器的用户至关重要。 同样,对于 WPF 控件,NameProperty 和 HelpTextProperty 对辅助技术设备非常重要。
遵循此最佳实践,可以使辅助技术识别和操作示例控件及应用程序中的用户界面。
确保所有 UI 活动都触发程序化事件
遵循此最佳做法,辅助技术可以侦听 UI 中的更改,并通知用户这些更改。
用户设置
本部分中的最佳做法可确保控件或应用程序不会覆盖用户设置。
尊重所有 System-Wide 设置,不要干扰无障碍功能
用户可以使用控制面板设置一些系统范围的标志;可以通过编程方式设置其他标志。 控件或应用程序不应更改这些设置。 此外,应用程序必须支持其宿主操作系统的无障碍设置。
遵循此最佳做法,用户可以设置辅助功能设置,并知道应用程序不会更改这些设置。
用户界面(UI)视觉设计
本部分中的最佳做法确保控件或应用程序有效地使用颜色和图像,并且能够由辅助技术使用。
请勿进行硬编码颜色
色盲、视力不佳或使用黑白屏幕的用户可能无法使用带有硬编码颜色的应用程序。
遵循此最佳做法,用户可以根据个人需求调整颜色组合。
支持高对比度和所有系统显示属性
应用程序不应中断或禁用用户选择、系统范围的对比度设置、颜色选择或其他系统范围的显示设置和属性。 用户采用的系统范围设置可增强应用程序的可访问性,因此应用程序不应禁用或忽略它们。 颜色应在正确的前景背景组合中使用,以提供正确的对比度。 不要混合不相关的颜色,不要反转颜色。
许多用户需要特定的高对比度组合,例如黑色背景上的白色文本。 绘制这些对比色(如白色背景上的黑色文本)会导致背景渗入前景,使一些用户阅读困难。
确保所有用户界面(UI)在任何 DPI 设置下均能正确缩放
确保所有 UI 都可以按任何每英寸点数 (dpi) 的设置正确缩放。 此外,请确保 UI 元素适合 1024 x 768 的屏幕,每英寸 120 个点(dpi)。
导航
本部分中的最佳做法确保已针对控件和应用程序解决导航问题。
为所有 UI 元素提供键盘界面
制表位(尤其是仔细规划后)可为用户提供另一种导航 UI 的方法。
应用程序应提供以下键盘接口:
- 用户可与之交互的所有控件的制表位,例如按钮、链接或列表框
- 逻辑 Tab 键顺序
显示键盘焦点
用户需要知道哪个对象具有键盘焦点,以便他们可以预测击键的效果。 若要突出显示键盘焦点,请使用颜色、字体或图形,如矩形或放大。 若要听觉地突出显示键盘焦点,请更改音量、音调或音调质量。
为了避免混淆,应用程序应隐藏位于非活动窗口(或窗格)中的所有视觉焦点指示器和暗色选择。
应用程序使用键盘焦点执行以下操作:
- 始终应有一个项具有键盘焦点
- 键盘焦点应可见且明显
- 选择和/或带有焦点的项应以可视化方式突出显示
支持导航标准和功能强大的导航方案
键盘导航的不同方面为用户导航 UI 提供了不同的方法。
应用程序应提供以下键盘接口:
- 所有命令、菜单和控件的快捷键和带下划线的访问键
- 重要链接的键盘快捷方式
- 所有菜单项都具有访问键;所有按钮都有快捷键,所有命令都有一个快捷键。
不要让鼠标位置干扰键盘导航
鼠标位置不应干扰键盘导航。 例如,如果鼠标位于某个位置,并且用户正在使用键盘导航,则除非用户启动鼠标单击,否则不应发生鼠标单击。
多模式接口
本部分中的最佳做法确保应用程序 UI 包括视觉元素的替代项。
提供非文本元素的用户可选等效项
对于每个非文本元素,请为文本、脚本或音频说明(如替换文字、字幕或视觉反馈)提供用户可选择的等效项。
非文本元素涵盖各种 UI 元素,包括:图像、图像地图区域、动画、小程序、框架、脚本、图形按钮、声音、独立音频文件和视频。 非文本元素在包含用户需要访问的视觉信息、语音或常规音频信息时非常重要,以便了解 UI 的内容。
使用颜色,但也提供颜色的替代项
使用颜色增强、强调或重申其他方式显示的信息,但不要单独使用颜色来传达信息。 色盲或有单色显示器的用户需要颜色的替代方法。
将标准输入 API 与 Device-Independent 调用配合使用
与设备无关的调用可确保键盘和鼠标功能相等,同时为辅助技术提供有关 UI 的所需信息。