Accesibilidad en macOS

En esta página se describe cómo usar las API de accesibilidad de macOS para compilar aplicaciones según la lista de comprobación de accesibilidad. Consulte las páginas de Accesibilidad de Android y Accesibilidad de iOS para otras API de plataforma.

Para comprender cómo funcionan las API de accesibilidad en macOS (anteriormente denominado OS X), revise primero el modelo de accesibilidad de OS X.

Descripción de los elementos de la interfaz de usuario

AppKit usa el protocolo NSAccessibility para exponer las API que ayudan a que la interfaz de usuario sea accesible. Esto incluye un comportamiento predeterminado que intenta establecer valores significativos para las propiedades de accesibilidad, como establecer un botónAccessibilityLabel. La etiqueta suele ser una sola palabra o frase corta que describe el control o la vista.

Archivos de guion gráfico

Xamarin.Mac usa el Generador de interfaces de Xcode para editar archivos de guion gráfico. La información de accesibilidad se puede editar en el Inspector de identidad cuando se selecciona un control en la superficie de diseño (como se muestra en la captura de pantalla siguiente):

Adding accessibility in Xcode's Interface Builder

Código

Xamarin.Mac no expone actualmente como establecedor AccessibilityLabel. Agregue el siguiente método auxiliar para establecer la etiqueta de accesibilidad:

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);
    }
}

A continuación, este método se puede usar en el código como se muestra:

AccessibilityHelper.SetAccessibilityLabel (someButton, "New Accessible Description");

La propiedad AccessibilityHelp es para obtener una explicación de lo que hace el control o la vista, y solo se debe agregar cuando la etiqueta puede no proporcionar suficiente información. El texto de ayuda debe mantenerse lo más corto posible, por ejemplo, "Elimina el documento".

Algunos elementos de la interfaz de usuario no son relevantes para el acceso accesible (por ejemplo, una etiqueta junto a una entrada que tiene su propia etiqueta de accesibilidad y ayuda). En estos casos, establezca AccessibilityElement = false para que los lectores de pantalla u otras herramientas de accesibilidad omitan estos controles o vistas.

Apple proporciona directrices de accesibilidad que explica los procedimientos recomendados para etiquetas de accesibilidad y texto de ayuda.

Controles personalizados

Consulte las directrices de Apple para los controles personalizados accesibles para obtener más información sobre los pasos adicionales necesarios.

Pruebas de accesibilidad

macOS proporciona un Inspector de accesibilidad que ayuda a probar la funcionalidad de accesibilidad. El inspector se incluye con Xcode.

La primera vez que se inicia, el Inspector de accesibilidad requerirá permiso para controlar el equipo a través de la accesibilidad:

Accessibility Inspector requesting permission to run

Desbloquee la pantalla de configuración (si es necesario, en la parte inferior izquierda) y marque el Inspector de accesibilidad:

Settings screen to enable Accessibility Inspector

Una vez habilitado, el inspector aparece como una ventana flotante que se puede mover alrededor de la pantalla. En la captura de pantalla siguiente se muestra el inspector que se ejecuta junto a una aplicación Mac de ejemplo. A medida que el cursor se mueve sobre la ventana, el inspector muestra todas las propiedades accesibles de cada control:

Example of Accessibility Inspector running

Para obtener más información, lea laGuía de prueba de accesibilidad para OS X.