macOS 上的辅助功能
本页介绍如何使用 macOS 辅助功能 API 根据辅助功能检查清单生成应用。 有关其他平台 API,请参阅 Android 辅助功能和 iOS 辅助功能页面。
若要了解辅助功能 API 在 macOS(以前称为 OS X)中的工作方式,请首先查看 OS X 辅助功能模型。
描述 UI 元素
AppKit 使用 NSAccessibility
协议公开有助于使用户界面易于访问的 API。 这包括尝试为辅助功能属性设置有意义的值的默认行为,例如设置按钮的 AccessibilityLabel
。 标签通常是描述控件或视图的某个词或短语。
情节提要文件
Xamarin.Mac 使用 Xcode Interface Builder 编辑情节提要文件。 当在设计界面上选择控件时,可以在标识检查器中编辑辅助功能信息(如下方的屏幕截图所示):
代码
Xamarin.Mac 当前不公开为 AccessibilityLabel
资源库。 添加以下帮助程序方法以设置辅助功能标签:
public static class AccessibilityHelper
{
[System.Runtime.InteropServices.DllImport (ObjCRuntime.Constants.ObjectiveCLibrary)]
extern static void objc_msgSend (IntPtr handle, IntPtr selector, IntPtr label);
static public void SetAccessibilityLabel (this NSView view, string value)
{
objc_msgSend (view.Handle, new ObjCRuntime.Selector ("setAccessibilityLabel:").Handle, new NSString (value).Handle);
}
}
然后,可以在代码中使用此方法,如下所示:
AccessibilityHelper.SetAccessibilityLabel (someButton, "New Accessible Description");
AccessibilityHelp
属性用于解释控件或视图的功能,并且仅当标签无法提供足够的信息时才应添加。 帮助文本仍应尽可能短,例如“删除文档”。
某些用户界面元素与辅助功能访问无关(例如,位于具有其自己的辅助功能标签和帮助的输入旁边的标签)。
在这些情况下,请设置 AccessibilityElement = false
,以便屏幕阅读器或其他辅助功能工具跳过这些控件或视图。
Apple 提供了辅助功能指南,解释了辅助功能标签和帮助文本的最佳做法。
自定义控件
有关所需其他步骤的详细信息,请参阅 Apple 的可访问自定义控件的指南。
测试辅助功能
macOS 提供可帮助测试辅助功能的辅助功能检查器。 此检查器包含在 Xcode 中。
首次启动时,辅助功能检查器将需要通过辅助功能控制计算机的权限:
解锁设置屏幕(如果需要,位于左下角)并勾选“辅助功能检查器”:
启用后,检查器将显示为可以在屏幕上移动的浮动窗口。 以下屏幕截图显示了在示例 Mac 应用程序旁边运行的检查器。 当光标移到窗口上时,检查器将显示每个控件的所有可访问属性:
有关详细信息,请阅读 OS X 测试辅助功能指南。