辅助功能(设计基础知识)

注意

此设计指南是为 Windows 7 创建的,尚未针对较新版本的 Windows 进行更新。 大部分指导原则上仍然适用,但演示和示例并不反映我们 当前设计指南

设计辅助功能的软件意味着确保程序和功能易于提供给范围最广泛的用户,包括残疾和障碍的用户。

辅助功能可帮助你帮助的用户数可能会令你大吃一惊;例如,在美国,调查显示,超过一半的计算机用户遇到与辅助功能相关的困难或障碍,并可能受益于可访问技术的使用。 此外,以灵活性和包容性接近软件设计,这些灵活性和包容性是辅助功能的特征,通常会导致整体提高可用性和客户满意度。

屏幕截图

从控制面板获取的“轻松访问中心”提供了一个中心位置,用户可以选择和自定义所需的辅助功能。

注意:有关键盘鼠标颜色以及 声音 的相关指南,请参阅单独的文章。

设计概念

当用户与计算机硬件和软件交互时,许多物理、感知和认知因素都会发挥作用。 在考虑如何使程序的功能更易于访问之前,它有助于了解存在哪些类型的残疾和障碍,以及这些用户在与计算机交互时可能正在使用的一些辅助技术。

障碍类型

下表描述了常见的用户残疾和障碍,并列出了一些最重要的解决方案,这些解决方案用于使计算机更易于访问。

损害 描述 解决 方案
视觉
从轻度(影响17%的用户)到严重(影响9%的用户)不等。
可自定义的放大、颜色和对比度;盲文实用工具;屏幕阅读器。
听到
从轻度(影响18%的用户)到严重(影响2%的用户)不等。
信息冗余:仅用作文本或视觉通信补充的声音。
灵巧
范围从轻度(影响19%的用户)到严重(影响5%的用户)。 这种障碍通常涉及使用键盘或鼠标执行某些运动技能的难度。
输入法冗余:鼠标或键盘等效项访问的程序功能。
认知
包括内存障碍和感知差异。 影响 16% 的用户。
高度可自定义的用户界面(UI):使用 渐进式披露 隐藏复杂性;使用图标和其他视觉辅助工具。
没收
包括对移动和闪烁的视觉敏感度。
对接口进行调节的保守方法,例如动画的使用;避免屏幕闪烁在 2 赫茨(Hz) 和 55 Hz 之间。
语音或语言
包括阅读障碍和口头沟通困难。
拼写检查和语法检查实用工具;语音识别和文本转语音技术。

有关帮助用户实现这些障碍的更多指南,请参阅本文后面的 解决特定障碍

辅助技术和辅助功能的类型

屏幕阅读器

屏幕阅读器使视觉障碍或障碍的用户能够通过将视觉对象转换为音频来导航 UI。 因此,UI 文本、控件、菜单、工具栏、图形和其他屏幕元素由屏幕阅读器的计算机化语音说话。 若要创建针对屏幕阅读器辅助技术优化的程序,必须规划屏幕阅读器如何标识每个 UI 元素。

用户可以与之交互的每个 UI 元素都必须可访问键盘,并通过辅助功能应用程序编程接口(API)公开。 建议使用 UI 自动化,这是支持 Windows Presentation Foundation (WPF)的所有 windows 版本Microsoft的新辅助功能框架。 UI 自动化提供对桌面上大多数元素的编程访问,使辅助技术产品(如屏幕阅读器)向用户提供有关 UI 的信息,并通过标准输入(例如,通过说话而不是作鼠标或键盘)来作 UI。 有关详细信息,请参阅 UI 自动化概述

请注意,虽然屏幕阅读器是一种非常重要的辅助技术,但也有其他人。 有关可用技术范围的详细信息,请参阅 辅助技术产品类型。

语音识别

语音识别是 Windows 中的辅助功能,允许用户通过语音与其计算机交互,从而减少与鼠标或键盘的马达交互的需求。 用户可以听写文档和电子邮件,使用语音命令在程序之间启动和切换,控制作系统,甚至填写 Web 上的表单。

放大镜

放大帮助视力不佳的用户将屏幕上的项目放大到原来的 2 到 16 倍。 用户可以设置此功能来跟踪鼠标(查看鼠标指向的放大版本)、键盘(查看指针在制表时移动的区域)或文本编辑(查看他们正在键入的内容)。

视觉设置和配色方案

除了使屏幕上的内容变大,视觉障碍的用户还可以受益于系统设置,例如 高对比度模式 或自定义背景和前景配色方案的功能。

讲述人

讲述人是 Windows 中的缩小屏幕阅读器,允许用户大声朗读屏幕文本和 UI 元素,甚至包括一些自发发生的事件(包括错误消息)。 用户无需离开活动窗口即可听到讲述人菜单。

屏幕截图

用户可以自定义使用Microsoft讲述人的程度。

屏幕键盘

对于使用物理键盘困难且需要使用备用输入设备(如开关)的用户,屏幕键盘是必需的。 用户可以使用鼠标或其他指向设备、一小组键或一个键来选择键,具体取决于设置屏幕键盘的方式。

鼠标键

启用鼠标键后,首选键盘的用户可以使用数字键盘上的箭头键移动鼠标指针。

有关辅助功能的完整列表,请参阅 Microsoft 网站上的 Windows Vista 中的 辅助功能。

基于键盘的导航

Tab 键、箭头键、空格键和 Enter 键对于基于键盘的导航非常重要。 按 Tab 周期 输入焦点 不同的控件组,然后按箭头键在控件内或组中的控件之间移动。 按空格键与单击具有输入焦点的控件相同,而按 Enter 与单击默认命令按钮或命令链接相同,而不考虑输入焦点。

屏幕截图

在此示例中,用户可以按 Tab,直到所需选项具有输入焦点,然后按 Enter 打开对象。

访问密钥

访问密钥允许用户直接选择选项并直接启动命令,而无需先导航到控件。 访问键通过对每个控件标签中的一个字符进行下划线来指示。 然后,用户通过按 Alt 键以及带下划线字符来激活选项或命令。 访问密钥不区分大小写。

文件菜单和访问密钥的屏幕截图

在此示例中,按 Alt+O 激活“打开”命令。

为控件选择逻辑访问键通常并不困难;但是,窗口上的控件越多,访问键选择的可能性就越大。 在这种情况下,请将访问密钥分配给控制组,而不是每个组。

屏幕截图

在此示例中,访问密钥分配给控制组,而不是单个控件。

访问键通常与快捷键混淆,但快捷键的分配方式不同于访问键,并且目标不同。 例如,快捷键使用 Ctrl 和函数键序列,主要用于高级用户而不是辅助功能。

有关详细信息,请参阅 键盘

辅助功能设计:三种基本做法

辅助功能程序以某种方式帮助所有用户,因为可访问性和可用性的目标重叠。 例如,旨在使高级用户尽可能高效的功能也使喜欢使用键盘的用户受益,因为灵巧障碍。

三种基本做法将帮助你进行易于访问的设计:在 UI 中允许一定程度的灵活性,尊重用户需求和首选项在设计决策中扮演主要角色,并提供对 UI 的编程访问。

提供灵活的 UI

辅助设计至少部分是关于为用户提供选择。 不是令人沮丧、令人眼花缭乱的选择数组,而是有限数量的选择,可以明智地预测用户需求。 “不喜欢通过鼠标导航? 在这里,只能使用键盘执行相同的作。 不喜欢物理键盘? 下面是一个可在屏幕上使用的虚拟虚拟应用。

例如,通过以下方法提供灵活性:

  • 为非文本元素提供用户可选择的等效项(例如,用于图形的替换文字和音频字幕)。

    登录按钮的屏幕截图

    登录按钮屏幕截图

    选择不呈现图形的用户应改为看到替换文字,描述控件的作用以及如何与之交互。

  • 提供颜色的替代方法(例如图标区分或声音的使用)。

    灰色(灰度) 阴影中图标的屏幕截图

    在此示例中,标准图标可以根据其设计轻松区分。

  • 确保键盘访问(例如,每个交互式控件的制表位),以便用户可以使用鼠标或键盘在程序中完成相同的作。

  • 确保程序为用户提供良好的颜色对比度选项。 Windows 提供了高对比度选项,但这确实旨在成为严重视觉障碍的解决方案。 其他对比度选项最适合有轻微障碍的用户,例如低视力和色盲。

  • 确保用户有办法调整程序 UI 中的文本大小(例如,通过滑块控件或下拉框调整字号)。 如果可能,支持每英寸高点(dpi)模式。

  • 确保程序是多模式的,这意味着如果某些程序的主要模式无法访问,则这些用户有办法解决此问题。 例如,当显示动画时,信息应在用户选项的至少一个非动画呈现模式下显示。

多模式接口和灵活的导航实质上为用户提供了信息冗余的体系结构。 冗余有时具有负内涵;例如,在用户界面文本中,我们建议删除冗余以简化阅读体验。 但在辅助功能上下文中,冗余表示积极、故障安全的机制和体验。

尊重用户

作为一般尊重,指导原则对于设计可访问的程序至关重要。 即使作为一项智力练习,想象一下作为禁用的用户遇到程序必须是什么样子。 花时间在高对比度模式和各种分辨率下测试 UI 屏幕,以确保体验非常适合有视觉障碍的用户。 通过在“轻松访问中心控制面板”项中选择“下划线键盘快捷方式和访问键 复选框来测试键盘辅助功能(以便访问键始终可见)。 你甚至可以超越严格的测试,聘请具有自然能力同情他人的开发人员和设计师来开始同情他人。

还应通过以下方法演示尊重:

  • 使用系统范围的设置(例如系统颜色),而不是对特定程序进行硬化设置。 不仅尊重用户为与其程序交互而专门选择的参数,还尊重用户希望生效的作系统中内置的辅助功能,无论他们使用的是哪个程序。 有关详细信息,请参阅 关于 Windows 辅助功能
  • 首选通用控件而不是自定义控件,因为通用控件已经实现了 Windows 辅助功能 API。
  • 记录所有辅助功能选项和功能(例如,所有键盘快捷方式)。 有障碍的用户非常有动力发现辅助功能,并且通常需要在帮助中收集全面的信息。
  • 以辅助格式创建辅助文档。 因此,文档本身应遵循与主要 UI 相同的辅助功能规则,包括能够放大字体大小、对图形使用替换文字和冗余信息体系结构(例如,仅使用颜色编码作为文本补充)。

在软件产品中,尊重用户可能表现在可用性和市场研究、有效支持服务和文档以及设计决策中。 例如,在针对高级用户的设计方面,请再次思考:你是否输入了该前沿新功能,因为你想要此功能,还是因为你知道高级用户一直在请求它? 后一种情况表明,设计决策过程根据尊重的价值充分了解。

提供编程访问

提供对 UI 的编程访问至关重要,以便辅助技术(如屏幕阅读器、备用输入设备和语音识别程序)为用户正确解释屏幕。 通过在程序中创建每个 UI 屏幕的“地图”,你可以将其提供给辅助技术的用户。

通过以下方法执行此作:

  • 启用对所有 UI 元素和文本的编程访问(例如,使用活动辅助功能 COM 接口,IAccessible)。
  • 在 UI 对象、框架和页面上放置名称(或标题)和说明(例如,使用 IAccessible Name 属性)。
  • 确保所有 UI 活动触发编程事件(例如,涉及焦点移动的所有 UI 活动的焦点事件)。

如果你只做四件事...

  1. 确保每个用户都可以利用程序的全部潜力。
  2. 将辅助功能视为创造性问题解决的机会,以及提高整体用户满意度的另一种方法。
  3. 尊重系统设置。
  4. 尽可能使用通用控件。

指引

常规

  • 请勿中断或禁用作系统或其他被标识为辅助功能的产品的激活功能。 可以通过参考相关作系统或产品的文档来识别这些功能。
  • 不要强制用户作为屏幕上的顶部窗口与程序交互。 如果用户需要函数或窗口来执行任务,该窗口应始终保持可见(如果用户如此选择)而不考虑它相对于其他窗口的位置。 例如,如果用户具有位于所有其他窗口顶部的可移动屏幕键盘,以便它始终可见,则程序绝不应通过 Z 顺序顶部的强制放置来掩盖它。
  • 尽可能使用系统颜色、字体和常用控件。 这样做可以显著减少用户遇到的辅助功能问题的数量。

解决特定障碍问题

Visual

  • 永远不要依靠颜色来传达含义。 仅使用颜色作为增强文本、设计、位置或声音提供的含义的手段。

    红色通信器图标和工具提示屏幕截图

    此示例中通信的主要方法是简洁的工具提示文本。 颜色的使用有助于传达含义,但是次要的。

  • 使用替代文本信息提示来描述图形。

  • 请勿在图形中使用文本。 视觉障碍的用户可能已关闭图形(例如,在 Web 浏览器中),或者可能根本看不到或查找放置在图形中的文本。

  • 确保对话框和窗口具有有意义的名称, 以便听到而不是看到屏幕(例如,使用屏幕阅读器)的用户获取适当的上下文信息。

  • 始终从 Theme 和 GetSystemMetrics API 获取字体字样、大小和颜色、Windows 显示元素大小和系统配置设置来尊重用户视觉显示 的设置。

  • 保持气球文本简洁,以便更轻松地阅读和尽量减少屏幕阅读器中断。

    指示固定代码限制的气球 屏幕截图

    尽管气球可能在必要时使用其他正文文本,但本示例显示,有时仅标题文本就能以更经济且更易于访问的方式实现相同的目标。

听证会

  • 永远不要依靠声音来传达含义。 仅使用声音作为增强文本、设计、位置或颜色提供的含义的手段。
  • 允许用户控制音频输出的音量。 为此,请使用 Windows 卷混音器。 有关详细信息,请参阅 声音
  • 将程序的声音定位在 500 Hz 到 3000 Hz 之间的范围内,或者用户可以轻松调整到该范围内。 此范围中的声音最有可能被听力障碍者检测到。

Dexterity

  • 使 UI 超时值相对于 GetDoubleClickTime()而不是使用绝对时间。 这样做会将超时时间调整为用户的速度。
  • 为所有菜单项分配访问键,以便喜欢使用键盘的用户与使用鼠标的用户导航程序的功能相同。
  • 不要双击并拖动执行作的唯一方法。 对于某些用户来说,这些动作可能很困难。
  • 请勿从程序中删除菜单栏。 菜单栏比键盘用户访问的工具栏更容易。 如果不希望默认情况下显示菜单栏,请改为隐藏它。
  • 通过为帮助按钮和链接提供制表位,使帮助可从键盘访问帮助。
  • 若要提高程序中访问密钥分配的认识,可以随时显示它们。 在“控制面板”中,转到“轻松访问中心”,然后单击“使键盘更易于使用;然后选择 下划线键盘快捷方式和访问键 复选框。

认知

  • 使用渐进式披露 隐藏复杂性。

    带下三角形的拆分按钮的屏幕截图

    在这些示例中,命令按钮提供的选项默认处于隐藏状态,用户可以选择利用渐进式披露控件来查看这些选项。

  • 使用图标、工具栏和其他视觉辅助 以减少阅读文本的认知负载。

  • 如果可能,在文本框和可编辑的下拉列表中提供自动完成功能,以便用户不必在有限的一组选项中键入命令、文件名或类似选项的整个名称。 这可减少所有用户的认知负载,并减少拼写或键入困难、缓慢或痛苦的用户的键入量。

  • 通过包括教程和动画来演示帮助中的困难概念。 请注意,对于有癫痫障碍的用户来说,动画可能很困难,因此应仅在必要时使用。

癫痫发作

  • 不要在 2-55 Hz 范围内使用闪烁或闪烁文本、对象或其他元素的闪烁或闪烁频率。
  • 限制动画的使用。 某些用户对屏幕移动特别敏感,尤其是在其视觉字段的外围。 如果使用动画吸引人们对某些内容的注意,请确保应注意并值得中断用户。

语音或语言

  • 组织和编写清晰、简洁、易于理解的文本。 可用性测试表明,在短语末尾展开关键信息可以提高理解力。 有关更多指南,请参阅 样式和音调

不正确:

下一位数字是否为 3 位?

单击“确定”开始。

正确:

下一位数字是否为 3?

若要开始,请单击“确定”。

访问密钥

  • 首选宽宽字符, 如 w、m 和大写字母。
  • 更喜欢独特的同音或元音, 如“退出”中的“x”。
  • 避免使用难以看到下划线的字符, 例如(从最有问题到最不有问题的字符):
    • 只有一个像素宽的字符,例如 i 和 l。
    • 具有后代的字符,例如 g、j、p、q 和 y。
    • 带后代的字母旁边的字符。
  • 为所有菜单项分配访问键。 没有例外。

  • 对于动态菜单项(如最近使用的文件),请以数字方式分配访问键。

    打开菜单的屏幕截图,其中包含最近使用的文件

    在此示例中,Windows 中的 Paint 程序将数值访问键分配给最近使用的文件。

  • 在菜单级别分配唯一的访问键。 可以在不同的菜单级别重复使用访问密钥。

  • 使访问密钥易于查找:

    • 对于最常用的菜单项,请选择标签第一个或第二个单词开头的字符,最好选择第一个字符。
    • 对于不太常用的菜单项,请选择标签中具有独特同音或元音的字母。

对话框访问密钥

  • 尽可能为所有交互式控件或其标签分配唯一的访问键。只读文本框 是交互式控件(因为用户可以滚动和复制文本),因此它们受益于访问密钥。 不向其分配访问密钥:

    • “确定”、“取消”和“关闭”按钮。 Enter 和 Esc 用于其访问密钥。 但是,始终将访问键分配给表示“确定”或“取消”的控件,但具有不同的标签。

      使用分配的访问键屏幕截图

      在此示例中,正提交按钮分配了访问密钥。

  • 组标签。 通常,组中的各个控件都分配了访问密钥,因此组标签不需要一个。 但是,将访问密钥分配给组标签,而不是单个控件(如果访问密钥短缺)。

  • “常规帮助”按钮, 使用 F1 进行访问。

  • 链接标签。 分配唯一访问密钥的链接往往太多,链接下划线隐藏访问键下划线。 让用户改用 Tab 键访问链接。

  • 选项卡名称。 使用 Ctrl+Tab 和 Ctrl+Shift+Tab 循环使用制表符。

  • 浏览标记为“...”的按钮。 无法唯一分配这些访问密钥。

  • 未标记的控件、(如旋转控件、图形命令按钮和未标记的渐进式披露控件)。

  • 非交互式控件的非标签静态文本或标签,如进度栏等

  • 首先分配提交按钮访问密钥,以确保它们具有标准密钥分配。 如果没有标准键分配,请使用第一个单词的第一个字母。 例如,“是”和“否”提交按钮的访问键应始终为“Y”和“N”,而不考虑对话框中的其他控件。

  • 对于“取消”短语为“不”的负提交按钮,请将访问键分配给“请勿”中的“n”。 如果未短语为“请勿”,请使用标准访问密钥分配或分配第一个单词的第一个字母。 通过执行此作,所有 Don'ts 和 No's 都具有一致的访问密钥。

  • 若要使访问键易于查找,请将访问键分配给标签早期出现的字符, 理想情况下的第一个字符,即使标签后面出现关键字也是如此。

有关更多指南和示例,请参阅 键盘

发短信

  • 使用外部控件标签末尾的冒号。 一些辅助技术查找冒号来标识控件标签。

  • 相对于它们所标记的元素,将标签定位为一致。 这有助于辅助技术将标签与其相应的控件正确关联,并帮助屏幕放大器的用户知道在何处查找标签或控件。

    一致放置标签的屏幕截图

    在此示例中,每个下拉列表的标签都一致地放置,并使用冒号。

  • 将替换文字限制为最大 150 个字符。 描述激活控件的作(例如,单击、右键单击等),然后描述控件的功能。

    可接受:

    按钮。

    蓝山

    更好:

    单击以登录到帐户。

    遥远的山丘的照片,显示颜色如何逐渐淡出距离。

  • 请勿使用文本绘制线条、框或其他图形符号。 以这种方式使用的字符可能会混淆屏幕阅读器的用户。 例如,在第一行中,屏幕阅读器软件将用字母“X”绘制的框“X X”读为“X X”,后跟“X”和内容和“X”。

文档

  • 记录所有辅助功能选项和功能(例如,所有键盘快捷方式)。
  • 创建可访问格式的辅助文档。 因此,文档本身应遵循与主要 UI 相同的辅助功能规则。
  • 请参阅访问键,而不是快捷键(具有其他含义和使用)、助记键或快捷键。
  • 一般情况下,是指一种残疾人士,而不是残疾人。 首先考虑人员,而不是标签。
使用这些术语 而不是
具有有限的灵巧性,具有运动障碍
瘫痪, 跛脚
没有残疾
正常,身体健康
一手,一手键入的人
单手
残障人士
残疾人、残疾人、残疾人、残疾人
认知残疾、发育障碍