Специальные возможности в macOS

На этой странице описывается использование API специальных возможностей macOS для создания приложений в соответствии с списком специальных возможностей проверка. Ознакомьтесь со специальными возможностями Android и страницами специальных возможностей iOS для других API платформы.

Чтобы понять, как работают API специальных возможностей в macOS (ранее называемой OS X), сначала просмотрите модель специальных возможностей OS X.

Описание элементов пользовательского интерфейса

AppKit использует NSAccessibility протокол для предоставления API, которые помогают сделать пользовательский интерфейс доступным. Это включает в себя поведение по умолчанию, которое пытается задать значимые значения для свойств специальных возможностей, таких как установка кнопки AccessibilityLabel. Метка обычно является одним словом или короткой фразой, описывающей элемент управления или представление.

Раскадровки файлов

Xamarin.Mac использует построитель интерфейсов Xcode для редактирования файлов раскадровки. Сведения о специальных возможностях можно изменить в инспекторе удостоверений при выборе элемента управления на панели конструктора (как показано на снимке экрана ниже):

Adding accessibility in Xcode's 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.

При первом запуске инспектор специальных возможностей потребует разрешения на управление компьютером с помощью специальных возможностей:

Accessibility Inspector requesting permission to run

Разблокируйте экран параметров (если требуется, в левом нижнем) и установите флажок инспектора специальных возможностей:

Settings screen to enable Accessibility Inspector

После включения инспектор отображается как плавающее окно, которое можно перемещать по экрану. На снимке экрана ниже показан инспектор, работающий рядом с примером приложения Mac. При перемещении курсора через окно инспектор отображает все доступные свойства каждого элемента управления:

Example of Accessibility Inspector running

Дополнительные сведения см. в руководстве по тестированию специальных возможностей для OS X.