Udostępnij za pośrednictwem


Ułatwienia dostępu w systemie macOS

Na tej stronie opisano sposób używania interfejsów API ułatwień dostępu systemu macOS do tworzenia aplikacji zgodnie z listą kontrolną ułatwień dostępu. Zapoznaj się z stronami ułatwień dostępu systemu Android i ułatwieniami dostępu dla systemu iOS dla innych interfejsów API platformy.

Aby dowiedzieć się, jak działają interfejsy API ułatwień dostępu w systemie macOS (dawniej OS X), najpierw zapoznaj się z modelem ułatwień dostępu systemu OS X.

Opisywanie elementów interfejsu użytkownika

Zestaw AppKit używa NSAccessibility protokołu do uwidaczniania interfejsów API, które ułatwiają dostęp do interfejsu użytkownika. Obejmuje to zachowanie domyślne, które próbuje ustawić znaczące wartości właściwości ułatwień dostępu, takie jak ustawienie przycisku AccessibilityLabel. Etykieta jest zazwyczaj pojedynczym wyrazem lub krótką frazą opisującą kontrolkę lub widok.

Pliki scenorysu

Platforma Xamarin.Mac używa narzędzia Xcode Interface Builder do edytowania plików scenorysu. Informacje o ułatwieniach dostępu można edytować w inspektorze tożsamości po wybraniu kontrolki na powierzchni projektowej (jak pokazano na poniższym zrzucie ekranu):

Adding accessibility in Xcode's Interface Builder

Kod

Platforma Xamarin.Mac nie jest obecnie uwidaczniana jako AccessibilityLabel element ustawiająca. Dodaj następującą metodę pomocnika, aby ustawić etykietę ułatwień dostępu:

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

Tej metody można następnie użyć w kodzie, jak pokazano poniżej:

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

Właściwość AccessibilityHelp służy do wyjaśnienia tego, co robi kontrolka lub widok, i powinna być dodawana tylko wtedy, gdy etykieta może nie dostarczać wystarczających informacji. Tekst pomocy powinien być nadal tak krótki, jak to możliwe, na przykład "Usuwa dokument".

Niektóre elementy interfejsu użytkownika nie są istotne dla dostępu dostępnego (np. etykieta obok danych wejściowych, które mają własną etykietę ułatwień dostępu i pomoc). W takich przypadkach należy ustawić AccessibilityElement = false tak, aby te kontrolki lub widoki zostały pominięte przez czytniki zawartości ekranu lub inne narzędzia ułatwień dostępu.

Firma Apple udostępnia wytyczne dotyczące ułatwień dostępu, które wyjaśniają najlepsze rozwiązania dotyczące etykiet ułatwień dostępu i tekstu pomocy.

Kontrolki niestandardowe

Aby uzyskać szczegółowe informacje na temat dodatkowych wymaganych kroków, zapoznaj się z wytycznymi firmy Apple dotyczącymi dostępnych kontrolek niestandardowych.

Testowanie ułatwień dostępu

System macOS udostępnia inspektora ułatwień dostępu, który ułatwia testowanie funkcji ułatwień dostępu. Inspektor jest dołączony do środowiska Xcode.

Po pierwszym uruchomieniu inspektor ułatwień dostępu będzie wymagać uprawnień do kontrolowania komputera za pośrednictwem ułatwień dostępu:

Accessibility Inspector requesting permission to run

Odblokuj ekran ustawień (jeśli jest to wymagane, w lewym dolnym rogu) i zaznacz inspektora ułatwień dostępu:

Settings screen to enable Accessibility Inspector

Po włączeniu inspektor pojawia się jako przestawne okno, które można przenosić po ekranie. Poniższy zrzut ekranu przedstawia inspektora uruchomionego obok przykładowej aplikacji dla komputerów Mac. Gdy kursor jest przenoszony przez okno, inspektor wyświetla wszystkie dostępne właściwości każdej kontrolki:

Example of Accessibility Inspector running

Aby uzyskać więcej informacji, przeczytaj przewodnik testowania ułatwień dostępu dla systemu OS X.