Ułatwienia dostępu w systemie Android
Na tej stronie opisano sposób używania interfejsów API ułatwień dostępu systemu Android do tworzenia aplikacji zgodnie z listą kontrolną ułatwień dostępu. Zapoznaj się z stronami ułatwień dostępu systemu iOS i ułatwień dostępu systemu OS X dla innych interfejsów API platformy.
Opisywanie elementów interfejsu użytkownika
System Android udostępnia właściwość używaną ContentDescription
przez interfejsy API odczytu ekranu w celu zapewnienia dostępnego opisu celu kontrolki.
Opis zawartości można ustawić w języku C# lub w pliku układu AXML.
C#
Opis można ustawić w kodzie na dowolny ciąg (lub zasób ciągu):
saveButton.ContentDescription = "Save data";
Układ AXML
W układach XML użyj atrybutu android:contentDescription
:
<ImageButton
android:id=@+id/saveButton"
android:src="@drawable/save_image"
android:contentDescription="Save data" />
Używanie wskazówki dla kontrolki TextView
W przypadku EditText
danych wejściowych i TextView
sterujących danymi użyj Hint
właściwości , aby podać opis oczekiwanych danych wejściowych ContentDescription
(zamiast ).
Po wprowadzeniu tekstu sam tekst będzie "odczytywany" zamiast wskazówki.
C#
Hint
Ustaw właściwość w kodzie:
someText.Hint = "Enter some text"; // displays (and is "read") when control is empty
Układ AXML
W plikach układu XML użyj atrybutu android:hint
:
<EditText
android:id="@+id/someText"
android:hint="Enter some text" />
EtykietaDo łączy pola wejściowe z etykietami
Aby skojarzyć etykietę z kontrolką wprowadzania danych, użyj LabelFor
właściwości do
C#
W języku C#ustaw LabelFor
właściwość na identyfikator zasobu kontrolki, którą opisuje ta zawartość (zazwyczaj ta właściwość jest ustawiona na etykiecie i odwołuje się do innej kontrolki wejściowej):
EditText edit = FindViewById<EditText> (Resource.Id.editFirstName);
TextView tv = FindViewById<TextView> (Resource.Id.labelFirstName);
tv.LabelFor = Resource.Id.editFirstName;
Układ AXML
W układzie XML użyj android:labelFor
właściwości , aby odwołać się do identyfikatora innej kontrolki:
<TextView
android:id="@+id/labelFirstName"
android:hint="Enter some text"
android:labelFor="@+id/editFirstName" />
<EditText
android:id="@+id/editFirstName"
android:hint="Enter some text" />
Ogłaszanie ułatwień dostępu
AnnounceForAccessibility
Użyj metody w dowolnej kontrolce widoku, aby przekazać użytkownikom zmianę zdarzenia lub stanu po włączeniu ułatwień dostępu. Ta metoda nie jest wymagana w przypadku większości operacji, w których wbudowana narracja zapewnia wystarczającą opinię, ale powinna być używana, gdy dodatkowe informacje będą przydatne dla użytkownika.
Poniższy kod przedstawia prosty przykład wywołania metody AnnounceForAccessibility
:
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
button.AnnounceForAccessibility (button.Text);
};
Zmienianie Ustawienia fokusu
Dostępna nawigacja polega na kontrolkach, które koncentrują się na pomaganiu użytkownikowi w zrozumieniu, jakie operacje są dostępne. System Android udostępnia Focusable
właściwość, która może oznaczać kontrolki jako w szczególności możliwość odbierania fokusu podczas nawigacji.
C#
Aby zapobiec uzyskaniu fokusu Focusable
kontrolki za pomocą języka C#, ustaw właściwość na wartość false
:
label.Focusable = false;
Układ AXML
W pliku XML układu ustaw android:focusable
atrybut:
<android:focusable="false" />
Można również kontrolować kolejność fokusu za nextFocusDown
pomocą atrybutów , , nextFocusLeft
nextFocusRight
nextFocusUp
, zwykle ustawianych w układzie AXML. Użyj tych atrybutów, aby upewnić się, że użytkownik może łatwo przechodzić przez kontrolki na ekranie.
Ułatwienia dostępu i lokalizacja
W powyższych przykładach opis wskazówki i zawartości są ustawiane bezpośrednio na wartość wyświetlaną. Preferowane jest użycie wartości w pliku Strings.xml , na przykład:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="enter_info">Enter some text</string>
<string name="save_info">Save data</string>
</resources>
Użycie tekstu z pliku ciągów jest pokazane poniżej w plikach układu C# i AXML:
C#
Zamiast używać literałów ciągów w kodzie, wyszukaj przetłumaczone wartości z plików ciągów za pomocą polecenia Resources.GetText
:
someText.Hint = Resources.GetText (Resource.String.enter_info);
saveButton.ContentDescription = Resources.GetText (Resource.String.save_info);
AXML
W układzie atrybuty ułatwień dostępu XML, takie jak hint
i contentDescription
można ustawić na identyfikator ciągu:
<TextView
android:id="@+id/someText"
android:hint="@string/enter_info" />
<ImageButton
android:id=@+id/saveButton"
android:src="@drawable/save_image"
android:contentDescription="@string/save_info" />
Zaletą przechowywania tekstu w osobnym pliku jest wiele tłumaczeń językowych pliku, które można udostępnić w aplikacji. Zapoznaj się z przewodnikiem lokalizacji systemu Android, aby dowiedzieć się, jak dodać zlokalizowane pliki ciągów do projektu aplikacji.
Testowanie ułatwień dostępu
Wykonaj następujące kroki , aby włączyć funkcję TalkBack i Explore by Touch, aby przetestować ułatwienia dostępu na urządzeniach z systemem Android.
Może być konieczne zainstalowanie aplikacji TalkBack ze sklepu Google Play, jeśli nie jest ona wyświetlana w Ustawienia > Ułatwienia dostępu.