人们使用 Apple 的辅助功能(例如降低透明度、VoiceOver 和增加文本大小)来个性化他们如何以适合自己的方式与设备交互。可访问的应用程序通过设计支持此类个性化,并为每个人提供出色的用户体验,无论他们的能力或他们如何使用他们的设备。

残疾和住宿

全世界大约七分之一的人患有影响他们与世界及其设备互动方式的残疾。人们可以在任何年龄、任何持续时间和不同的严重程度经历残疾。情境性残疾——例如跌倒导致的手腕受伤或过度使用导致的失声——会影响几乎每个人在不同时间与其设备交互的方式。

想象

视力障碍包括失明、色盲、各种形式的视力丧失以及使看屏幕不舒服或困难的挑战和情况。
对于有视力障碍的用户,Apple 在每个平台上都提供了 VoiceOver,并支持显示调整,例如颜色反转、更大的文本、缩放和放大镜。

听力

除了所有类型的听力损失外,听力障碍还包括人们不希望他们的设备发出噪音的情况,例如他们在剧院时。
Apple 通过隐藏式字幕、视觉和触觉通知以及 Type to Siri 模式等功能提供听觉交互的替代方案。

身体和运动

有身体和运动障碍的人可能难以握住或操作他们的设备。
Apple 提供了多种便利措施来帮助人们在无需精细运动控制的情况下使用他们的设备:

  • Switch Control 将自适应设备与 iPhone、iPad、Mac 和 Apple TV 集成
  • Siri 帮助人们使用语音控制应用程序和设备
  • 辅助触摸使标准手势更容易执行

    识字和学习

    读写能力和学习挑战包括口语和阅读困难、管理复杂性和保持专注。
    为了减轻认知负担并支持有识字和学习挑战的人,Apple 提供了语音屏幕、打字反馈和 Safari 阅读器等功能。

    用户交互

    VoiceOver 等辅助技术和显示调节等辅助功能扩展了人们与设备交互的方式。由于这些技术和功能与系统提供的交互集成在一起,因此您必须在应用程序中正确支持系统交互。

    手势

    为所有控件和交互元素提供一个尺寸至少为 44x44 pt 的命中目标。行动不便的人需要更大的命中目标来帮助他们与您的应用交互。对于所有用户来说,太小的控件可能会令人沮丧地难以点击。
    不要覆盖平台手势。人们期望系统手势(例如向下滑动以显示通知中心或系统偏好设置中可用的 macOS 触控板手势)无论他们使用的是什么应用程序都能正常工作。
    更喜欢简化的手势进行交互。多指手势、长按或重复按按钮等复杂手势对许多人来说可能具有挑战性。使用尽可能简单的手势可以改善与您的应用交互的每个人的体验。
    提供替代方法来执行基于手势的操作。为可能无法执行特定手势的人添加一个选项。例如,如果滑动删除表格中的一行,您还应该为人们提供另一种方法来通过编辑模式或在项目详细信息视图中提供删除按钮来删除项目。

触觉

支持系统定义的触觉。许多人在看不到屏幕时依靠触觉来帮助他们与应用程序交互。例如,系统应用程序会在任务成功或失败或事件即将发生时播放触觉来通知人们。确保在您的应用程序中始终使用系统定义的触觉,这样您就不会混淆人们。
要了解有关系统定义的触觉的更多信息,请参阅触觉反馈 (macOS)触觉 (iOS)触觉 (watchOS)

按钮和控件

表征自定义元素的可访问性。您可以使用可访问性特征 (UIKit) 和属性 (AppKit) 来告诉辅助技术元素的行为方式。例如,使用buttonNSAccessibilityButton将视图表征为按钮意味着 VoiceOver 会说出视图的描述,然后是单词button,它告诉人们该视图的行为类似于按钮。
使用一致的样式层次结构来传达按钮的相对重要性。人们可以打开按钮形状,以便更轻松地将活动按钮与周围内容区分开来。当您使用一致的按钮样式层次结构时,人们可以根据按钮的外观掌握按钮的重要性。例如,最重要的按钮使用圆角矩形和颜色填充;辅助按钮没有填充颜色,但可能会显示关键颜色的文本或字形;最不重要的按钮使用带下划线的文本。
首选系统提供的交换机。UIKit 提供了一个开关,通过旋钮的位置和填充颜色来指示其状态。然而,对于某些人来说,添加标签可以更容易地感知开关是打开还是关闭。当您使用系统提供的开关时,当人们打开/关闭标签时,iOS 会自动在其中显示开/关字形。
iOS是无障碍设计 - 图1
没有开/关标签
iOS是无障碍设计 - 图2
带开/关标签
考虑为链接提供视觉指示符,例如下划线。用颜色来表示链接是可以的,但如果只用颜色作为唯一的指标,色盲的人可能无法感知到区别。有关在应用程序中使用颜色进行通信的更多信息,请参阅颜色和对比度

用户输入

让人们通过说话而不是打字来输入信息。在文本输入字段中添加听写按钮可以让人们选择语音作为他们的首选输入法。如果您创建自定义键盘,请确保包含用于听写的麦克风键。
支持 Siri 或 Siri 快捷方式,仅通过语音执行重要任务。要了解有关在您的应用程序中启用 Siri 交互的更多信息,请参阅人机界面指南 > Siri
不要阻止用户选择纯文本。许多用户依赖使用选定的文本作为文本到语音 (TTS) 的输入或查找翻译。

导航

设计符合平台标准的可预测的逻辑导航。当人们可以利用他们在系统和其他应用程序中导航的经验时,他们更容易学习如何导航您的应用程序。要了解有关应用导航标准样式的更多信息,请参阅导航 (iOS)导航 (watchOS)导航 (tvOS)

使用 VoiceOver 导航

确保 VoiceOver 用户可以导航到每个元素。VoiceOver 使用来自屏幕元素的辅助功能信息来帮助人们了解每个元素的位置以及它可以做什么。系统提供的 UI 元素默认包含此辅助功能信息,但除非您提供信息,否则 VoiceOver 无法帮助人们发现和使用自定义元素。
通过指定元素的分组、排序或链接方式来改进 VoiceOver 体验。接近度、对齐和其他上下文提示可以帮助有视力的用户感知屏幕元素之间的关系,但这些提示对 VoiceOver 用户来说效果不佳。检查您的应用程序中元素之间的关系只能被有视力的用户感知的地方,并向 VoiceOver 描述这些关系。
例如,下面的布局依赖于接近度和居中来暗示每个短语都是其上方图像的标题。但是,如果您不告诉 VoiceOver 每个图像都应该与其短语分组,VoiceOver 会显示,“一个装有各种芒果的大容器。一个装有许多绿色朝鲜蓟的大容器。芒果来自属于芒果属的树木。朝鲜蓟来自多种蓟。” 这是因为 VoiceOver 默认从左到右读取元素。
iOS是无障碍设计 - 图3
芒果来自属于芒果属的树木。
iOS是无障碍设计 - 图4
朝鲜蓟来自各种蓟。
使用静态文本引入控件是另一种仅适用于视力正常的用户的视觉提示。在下面显示的示例中,系统偏好设置告诉 VoiceOver,文本“默认 web 浏览器:”用作弹出按钮的标签,以便 VoiceOver 用户可以理解此控件。
iOS是无障碍设计 - 图5
有关开发人员指南,请参阅shouldGroupAccessibilityChildrenaccessibilityTitleUIElement
当屏幕内容或布局发生变化时通知 VoiceOver。内容或布局的意外更改可能会让 VoiceOver 用户非常困惑,因为这意味着他们的屏幕思维导图不再准确。报告屏幕变化非常重要,这样 VoiceOver 和其他辅助技术可以帮助人们更新他们对屏幕的理解。
在人们激活打开其他网页或应用程序的控件之前警告他们。在没有警告的情况下更改上下文可能会导致混乱并迫使人们突然重建他们对屏幕环境的心理模型。
为所有重要的界面元素提供替代文本标签。替代文本标签在屏幕上不可见,但它们让 VoiceOver 可以用声音描述屏幕元素,从而使有视觉障碍的人更容易导航。默认情况下,系统提供的控件具有有用的标签,但您需要为自定义元素创建标签。例如,如果您创建一个表示自定义评分按钮的辅助功能元素,您可能会提供标签“评分”。
支持 VoiceOver 转子。VoiceOver 用户可以使用称为转子的屏幕控制按标题、链接或其他部分类型浏览文档或网页。转子还可以调出盲文键盘。您可以通过向转子识别这些项目来帮助 VoiceOver 用户在应用程序中的相关项目之间导航。有关开发人员指南,请参阅UIAccessibilityCustomRotorNSAccessibilityCustomRotor
让人们使用键盘来导航并与 macOS 应用程序中的所有屏幕元素进行交互。理想情况下,人们可以打开全键盘访问并仅使用键盘执行 macOS 应用程序中的每项任务。除了可访问性键盘快捷键之外,macOS 还定义了大量其他许多人一直使用的键盘快捷键。为了支持所有用户,请务必避免在您的应用程序中覆盖任何系统定义的键盘快捷键。
在设计包容性应用程序时,请牢记文本大小、重量和布局,以确保清晰和可读性。要了解颜色和对比度如何影响应用中文本的易读性,请参阅颜色和对比度
使用 Dynamic Type 并测试您的应用程序的布局是否适应所有字体大小。Dynamic Type 让人们可以选择适合他们的字体大小。验证您的设计是否可以缩放,并且文本和字形在所有字体大小下都清晰易读。例如,在 iPhone 或 iPad 上,在“设置”>“辅助功能”>“显示和文本大小”>“更大的文本”中打开“更大的辅助功能文本大小”,并确保您的应用保持舒适的可读性。您可以在 Sketch、Photoshop 和 Adobe XD Apple 设计资源中为每个平台下载动态字体大小表。
iOS是无障碍设计 - 图6
iOS是无障碍设计 - 图7
随着字体大小的增加,尽量减少文本截断。一般来说,旨在以最大的可访问性字体大小显示尽可能多的有用文本,就像以最大的标准字体大小一样。避免截断可滚动区域中的文本,除非人们可以打开单独的视图来阅读其余内容。您可以通过将标签配置为使用尽可能多的行来显示有用的文本量来防止标签中的文本截断;有关开发人员指南,请参阅numberOfLines
考虑以大字体调整布局。当字体大小增加时,内联项和容器边界会挤满文本,使其可读性降低。例如,如果您显示与次要项目(例如字形或时间戳)内联的文本,则文本的水平空间较小。在较大的字体大小下,内联布局可能会导致文本截断或导致文本和辅助项目重叠。在这种情况下,请考虑使用文本显示在次要项目上方的堆叠布局。类似地,多列文本在大字体时会变得不那么可读,因为每一列都会限制水平空间。在这种情况下,请考虑在字体大小增加时减少列数,以避免文本截断并提高整体可读性。有关开发人员指南,请参阅isAccessibilityCategory.
iOS是无障碍设计 - 图8
在较小的文本大小下,Mail 会显示与发件人姓名一致的日期。
iOS是无障碍设计 - 图9
在最大辅助功能文本大小下,Mail 会在收件人姓名下方显示日期。
随着字体大小的增加,增加有意义的字形的大小。如果您使用字形来传达重要信息,请确保字形也易于以较大的字体查看。当您使用SF Symbols时,您会获得随动态类型大小变化而自动缩放的字形。
iOS是无障碍设计 - 图10
iOS是无障碍设计 - 图11
无论当前字体大小如何,都保持一致的信息层次结构。例如,即使字体非常大,也要将主要元素保持在屏幕顶部,这样人们就不会忘记这些元素。
在您的应用程序中使用常规或较重的字体粗细。使用 Regular、Medium、Semi-Bold 或 Bold 字体粗细,因为它们更容易看到。避免使用 UltraLight、Thin 和 Light 字体粗细,这些字体可能更难看到。
当人们启用粗体文本时,确保您的应用程序正确响应并且看起来不错。人们打开粗体文本可访问性设置以使文本和字形更易于查看。作为回应,您的应用程序应使所有文本更粗,并为所有字形增加笔画粗细。系统字体和 SF 符号会自动调整为粗体文本可访问性设置。
iOS是无障碍设计 - 图12
iOS是无障碍设计 - 图13
确保自定义字体清晰易读。自定义字体有时可能难以阅读。除非您的应用程序迫切需要自定义字体,例如出于品牌推广目的或创建身临其境的游戏体验,否则通常最好使用系统字体。如果您确实使用自定义字体,请确保它易于阅读,即使是小字体。
避免全文对齐。由完全对齐的文本创建的空白可以创建使许多人难以阅读和专注于文本的模式。左对齐 - 或从右到左语言中的右对齐 - 为有学习和读写挑战的人提供框架参考,例如阅读障碍。
避免在长篇文章中使用斜体或全部大写。斜体和全部大写非常适合偶尔强调,但过度使用这些样式会使文本难以阅读。

颜色和对比度

不要仅仅依靠颜色来区分对象或传达重要信息。如果您的应用程序使用颜色来传达信息,请务必提供文本标签或字形形状,以便色盲用户也能理解它。
首选文本的系统颜色。当您使用UIColorNSColor定义的颜色为文本着色时,文本会正确响应可访问性设置,例如反转颜色和增加对比度。
注意色盲。例如,许多色盲者发现很难区分蓝色和橙色,或者红色和绿色(以及红色或绿色和灰色)。避免使用这些颜色组合作为区分两种状态或值的唯一方法。例如,您可以使用红色方块和绿色圆圈,而不是使用红色和绿色圆圈来指示离线和在线。一些图像编辑软件包括可以帮助您证明色盲的工具。
iOS是无障碍设计 - 图14
如无色盲所见。
iOS是无障碍设计 - 图15
如红绿色盲所见。
正确响应反转颜色。当人们喜欢在深色背景上查看项目时,他们可以打开反转颜色。在 Invert Colors 的 Smart Invert 模式下,图像、视频和全彩图标(如应用程序图标和非模板图像)不会反转,深色 UI 保持深色。
使用强烈对比的颜色来提高可读性。许多因素会影响对颜色的感知,包括字体大小和粗细、颜色亮度、屏幕分辨率和照明条件。当您增加文本、字形和控件等视觉元素的颜色对比度时,您可以帮助更多人在更多情况下使用您的应用。要确定 UI 中相邻颜色的对比度是否达到最低可接受水平,请使用基于 Web 内容可访问性指南 (WCAG) 颜色对比度公式的在线颜色计算器。
使用文本大小来帮助确定对比度。通常,较小或较轻的文本需要具有更大的对比度才能清晰易读。使用以下值作为指导。

字体大小 文字粗细 最小对比度
高达 17 分 任何 4.5:1
18 磅及以上 任何 3:1
任何 大胆的 3:1

外观效果和运动

尽管模糊、透明和移动等效果是传达信息的宝贵方式,但有些人会觉得它们分散注意力或不舒服,而另一些人则根本无法感知这些效果。避免使用外观效果作为传达重要信息的唯一方式,以便人们可以享受您的应用程序,无论他们如何与他们的设备进行交互。

透明度和模糊

当用户打开降低透明度时更改模糊和透明度。例如,内容模糊和半透明的区域大部分应该变得不透明。为获得最佳效果,请在不透明区域中使用与您在该区域模糊或半透明时使用的原始颜色值不同的颜色值。
iOS是无障碍设计 - 图16
降低透明度关闭
iOS是无障碍设计 - 图17
降低透明度

运动

不需要动画,除非它们对您的应用程序的目的至关重要。一般来说,人们应该能够在不依赖任何动画的情况下使用您的应用程序。
启用“减少运动”时播放收紧的动画。如果人们在观看包含缩放、缩放、旋转或周边运动等效果的动画时容易分心或感到头晕或恶心,则可以打开“减少运动”。为了响应此设置,请考虑收紧动画的物理特性,以使它们保持丰富和引人入胜,但减少了运动。例如:

  • 拧紧弹簧以减少弹跳效果或用用户手指 1:1 跟踪
  • 避免在 z 轴图层中设置动画深度变化
  • 避免动画进入或退出模糊
  • 用淡入淡出替换幻灯片以避免运动

让人们控制视频和其他运动效果。避免在不提供按钮或其他方式控制它们的情况下自动播放视频或效果。
显示移动或闪烁的元素时要小心。虽然细微的移动和眨眼可以吸引用户的注意力,但这些效果也会分散注意力,并且对视力障碍者没有用处。更糟糕的是,一些眨眼元素会导致癫痫发作。在所有情况下,避免使用移动和眨眼作为传达信息的唯一方式。

内容

复制、图像、音频和视频提供人们想要从您的应用程序中获得的信息。您可以通过努力表达的简单性和提供信息的替代版本来帮助使每个人都可以访问您的内容。

复制和图像

编辑副本,使其简单明了。当复制简单、简单且没有错误时,所有用户都会受益。
为所有传达含义的图像提供替代描述。如果您没有在内容中描述有意义的图像,则会阻止 VoiceOver 用户充分体验您的应用程序。要创建有用的描述,首先要向能够看到图像的人报告不言自明的内容。因为 VoiceOver 会读取图像周围的文本和任何字幕,所以将您的描述重点放在图像本身传达的信息上。
iOS是无障碍设计 - 图18
此图像的替代描述是“男人和女人在 FaceTime 上签名”。
使信息图表完全可访问。提供信息图的简明描述,解释它所传达的内容。如果人们可以与信息图进行交互以获取更多或不同的信息,那么您也需要将这些交互提供给 VoiceOver 用户。可访问性 API 提供了表示自定义交互元素的方法,以便辅助技术可以帮助人们使用它们。有关开发人员指南,请参阅UIKit辅助功能和 AppKit的辅助功能。
从辅助技术中隐藏纯粹的装饰图像。让 VoiceOver 描述一个纯粹的装饰性图像可能会浪费用户的时间并增加他们的认知负担,而不会带来任何好处。
给每个屏幕一个唯一的标题,并提供标识信息层次结构中的部分的标题。当人们出现在屏幕上时,标题是他们从辅助技术收到的第一条信息。为了帮助人们了解您的应用程序的结构,请为每个屏幕创建一个独特的标题,以简洁地描述其内容或用途。同样,人们需要准确的章节标题来帮助他们构建每个屏幕信息层次结构的思维导图。

音频和视频

提供隐藏式字幕。隐藏式字幕为人们提供了视频中可听信息的文本等价物。使用隐藏式字幕可以让您为相同的内容提供多种翻译,并允许系统选择与用户设置相匹配的版本。因为隐藏式字幕并不总是可用,所以提供字幕也很重要。有关开发人员指南,请参阅选择字幕和备用音轨
提供音频描述。使用音频描述提供仅以视觉方式呈现的重要信息的口头叙述。
考虑提供成绩单。提供视频的完整文本描述是一个好主意,涵盖听觉和视觉信息,以便人们可以以不同的方式欣赏视频。