Accessibilità in macOS

Questa pagina descrive come usare le API di accessibilità macOS per creare app in base all'elenco di controllo per l'accessibilità. Fare riferimento alle pagine di accessibilità di Android e accessibilità iOS per altre API della piattaforma.

Per comprendere il funzionamento delle API di accessibilità in macOS (precedentemente denominato OS X), esaminare prima il modello di accessibilità OS X.

Descrizione degli elementi dell'interfaccia utente

AppKit usa il NSAccessibility protocollo per esporre le API che consentono di rendere accessibile l'interfaccia utente. Include un comportamento predefinito che tenta di impostare valori significativi per le proprietà di accessibilità, ad esempio l'impostazione di AccessibilityLabelun pulsante . L'etichetta è in genere una singola parola o una frase breve che descrive il controllo o la vista.

File storyboard

Xamarin.Mac usa Xcode Interface Builder per modificare i file dello storyboard. Le informazioni sull'accessibilità possono essere modificate nel controllo identità quando viene selezionato un controllo nell'area di progettazione (come illustrato nello screenshot seguente):

Adding accessibility in Xcode's Interface Builder

Codice

Xamarin.Mac non espone attualmente come AccessibilityLabel setter. Aggiungere il metodo helper seguente per impostare l'etichetta di 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);
    }
}

Questo metodo può quindi essere usato nel codice come illustrato di seguito:

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

La AccessibilityHelp proprietà è per una spiegazione del funzionamento del controllo o della visualizzazione e deve essere aggiunta solo quando l'etichetta potrebbe non fornire informazioni sufficienti. Il testo della Guida deve essere mantenuto il più breve possibile, ad esempio "Elimina il documento".

Alcuni elementi dell'interfaccia utente non sono rilevanti per l'accesso accessibile, ad esempio un'etichetta accanto a un input con una propria etichetta di accessibilità e guida. In questi casi, impostare AccessibilityElement = false in modo che questi controlli o visualizzazioni vengano ignorati dalle utilità per la lettura dello schermo o da altri strumenti di accessibilità.

Apple fornisce linee guida per l'accessibilità che illustrano le procedure consigliate per le etichette di accessibilità e il testo della Guida.

Controlli personalizzati

Per informazioni dettagliate sui passaggi aggiuntivi necessari, vedere le linee guida di Apple per i controlli personalizzati accessibili.

Test dell'accessibilità

macOS fornisce un controllo accessibilità che consente di testare la funzionalità di accessibilità. Il controllo è incluso in Xcode.

La prima volta che viene avviata, Controllo accessibilità richiederà l'autorizzazione per controllare il computer tramite accessibilità:

Accessibility Inspector requesting permission to run

Sbloccare la schermata delle impostazioni (se necessario, in basso a sinistra) e selezionare Controllo accessibilità:

Settings screen to enable Accessibility Inspector

Una volta abilitato, il controllo viene visualizzato come finestra mobile che può essere spostata sullo schermo. Lo screenshot seguente mostra il controllo in esecuzione accanto a un'app Mac di esempio. Quando il cursore viene spostato sulla finestra, il controllo visualizza tutte le proprietà accessibili di ogni controllo:

Example of Accessibility Inspector running

Per altre informazioni, vedere la guida relativa al test dell'accessibilità per OS X.