Partager via


Accessibilité sur macOS

Cette page explique comment utiliser les API d’accessibilité macOS pour créer des applications en fonction de la liste de contrôle d’accessibilité. Reportez-vous aux pages accessibilité d’Android et d’accessibilité iOS pour obtenir d’autres API de plateforme.

Pour comprendre comment les API d’accessibilité fonctionnent dans macOS (anciennement OS X), passez d’abord en revue le modèle d’accessibilité OS X.

Description des éléments d’interface utilisateur

AppKit utilise le NSAccessibility protocole pour exposer des API qui permettent de rendre l’interface utilisateur accessible. Cela inclut un comportement par défaut qui tente de définir des valeurs significatives pour les propriétés d’accessibilité, comme la définition d’un AccessibilityLabelbouton . L’étiquette est généralement un mot ou une phrase courte décrivant le contrôle ou la vue.

Fichiers de table de montage séquentiel

Xamarin.Mac utilise Xcode Interface Builder pour modifier les fichiers de table de montage séquentiel. Les informations d’accessibilité peuvent être modifiées dans l’inspecteur d’identité lorsqu’un contrôle est sélectionné sur l’aire de conception (comme illustré dans la capture d’écran ci-dessous) :

Ajout de l’accessibilité dans le générateur d’interface de Xcode

Code

Actuellement, Xamarin.Mac ne s’expose pas en tant que AccessibilityLabel setter. Ajoutez la méthode d’assistance suivante pour définir l’étiquette d’accessibilité :

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

Cette méthode peut ensuite être utilisée dans le code comme indiqué :

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

La AccessibilityHelp propriété est destinée à une explication de ce que fait le contrôle ou la vue, et ne doit être ajoutée que lorsque l’étiquette peut ne pas fournir suffisamment d’informations. Le texte d’aide doit toujours être aussi court que possible, par exemple « Supprime le document ».

Certains éléments d’interface utilisateur ne sont pas pertinents pour l’accès accessible (par exemple, une étiquette en regard d’une entrée qui a sa propre étiquette d’accessibilité et son propre aide). Dans ce cas, définissez AccessibilityElement = false de sorte que ces contrôles ou vues soient ignorés par les lecteurs d’écran ou d’autres outils d’accessibilité.

Apple fournit des directives d’accessibilité qui expliquent les meilleures pratiques en matière d’étiquettes d’accessibilité et de texte d’aide.

Contrôles personnalisés

Pour plus d’informations sur les étapes supplémentaires requises, reportez-vous aux instructions d’Apple concernant les contrôles personnalisés accessibles .

Test de l’accessibilité

macOS fournit un inspecteur d’accessibilité qui permet de tester les fonctionnalités d’accessibilité. L’inspecteur est inclus avec Xcode.

La première fois qu’il est lancé, l’inspecteur d’accessibilité a besoin de l’autorisation de contrôler l’ordinateur via l’accessibilité :

Inspecteur d’accessibilité demandant l’autorisation d’exécuter

Déverrouillez l’écran des paramètres (si nécessaire, en bas à gauche) et cochez l’inspecteur d’accessibilité :

Écran Paramètres pour activer l’écran Paramètres de l’inspecteur d’accessibilité

Une fois activé, l’inspecteur apparaît sous la forme d’une fenêtre flottante qui peut être déplacée autour de l’écran. La capture d’écran ci-dessous montre l’inspecteur en cours d’exécution à côté d’un exemple d’application Mac. Lorsque le curseur est déplacé sur la fenêtre, l’inspecteur affiche toutes les propriétés accessibles de chaque contrôle :

Exemple d’inspecteur d’accessibilité en cours d’exécution

Pour plus d’informations, consultez le guide test d’accessibilité pour OS X.