Přístupnost v Androidu
Tato stránka popisuje, jak pomocí rozhraní API pro usnadnění androidu vytvářet aplikace podle kontrolního seznamu přístupnosti. Další rozhraní API platformy najdete na stránkách přístupnosti pro iOS a OS X .
Popis prvků uživatelského rozhraní
Android poskytuje ContentDescription
vlastnost, která je používána rozhraními API pro čtení obrazovky k zadání přístupného popisu účelu ovládacího prvku.
Popis obsahu lze nastavit v jazyce C# nebo v souboru rozložení AXML.
C#
Popis lze nastavit v kódu na libovolný řetězec (nebo prostředek řetězce):
saveButton.ContentDescription = "Save data";
Rozložení AXML
V rozloženích XML použijte android:contentDescription
atribut:
<ImageButton
android:id=@+id/saveButton"
android:src="@drawable/save_image"
android:contentDescription="Save data" />
Použití nápovědy pro TextView
U EditText
vstupu dat a TextView
ovládacích prvků použijte Hint
vlastnost k zadání popisu očekávaného vstupu (místo ContentDescription
).
Pokud je zadaný nějaký text, bude samotný text místo nápovědy "přečtený".
C#
Hint
Nastavte vlastnost v kódu:
someText.Hint = "Enter some text"; // displays (and is "read") when control is empty
Rozložení AXML
V souborech rozložení XML použijte android:hint
atribut:
<EditText
android:id="@+id/someText"
android:hint="Enter some text" />
LabelFor propojuje vstupní pole s popisky
Chcete-li přidružit popisek k ovládacímu prvku zadávání dat, použijte vlastnost LabelFor
k
C#
V jazyce C# nastavte LabelFor
vlastnost na ID prostředku ovládacího prvku, který tento obsah popisuje (obvykle je tato vlastnost nastavena na popisek a odkazuje na jiný vstupní ovládací prvek):
EditText edit = FindViewById<EditText> (Resource.Id.editFirstName);
TextView tv = FindViewById<TextView> (Resource.Id.labelFirstName);
tv.LabelFor = Resource.Id.editFirstName;
Rozložení AXML
Ve formátu XML rozložení použijte android:labelFor
vlastnost pro odkaz na identifikátor jiného ovládacího prvku:
<TextView
android:id="@+id/labelFirstName"
android:hint="Enter some text"
android:labelFor="@+id/editFirstName" />
<EditText
android:id="@+id/editFirstName"
android:hint="Enter some text" />
Oznámení o přístupnosti
Tuto metodu AnnounceForAccessibility
použijte u libovolného ovládacího prvku zobrazení ke komunikaci události nebo změny stavu uživatelům, když je povolená přístupnost. Tato metoda není nutná pro většinu operací, kdy předdefinovaný mluvený komentář poskytuje dostatek zpětné vazby, ale měl by se použít tam, kde by pro uživatele byly užitečné další informace.
Následující kód ukazuje jednoduchý příklad volání AnnounceForAccessibility
:
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
button.AnnounceForAccessibility (button.Text);
};
Změna nastavení fokusu
Navigace s podporou přístupnosti závisí na ovládacích prvcích, které se zaměřují na uživatele při pochopení dostupných operací. Android poskytuje Focusable
vlastnost, která může označit ovládací prvky jako konkrétně schopné přijímat fokus během navigace.
C#
Pokud chcete ovládacímu prvku zabránit v získání fokusu pomocí jazyka Focusable
C#, nastavte vlastnost na false
:
label.Focusable = false;
Rozložení AXML
V souborech XML rozložení nastavte android:focusable
atribut:
<android:focusable="false" />
Pořadí fokusu můžete řídit také pomocí nextFocusDown
atributů , , nextFocusLeft
nextFocusRight
nextFocusUp
které jsou obvykle nastaveny v rozložení AXML. Pomocí těchto atributů můžete zajistit, aby uživatel mohl snadno procházet ovládací prvky na obrazovce.
Přístupnost a lokalizace
V příkladech nad popisem nápovědy a obsahu jsou nastaveny přímo na zobrazovanou hodnotu. Je vhodnější použít hodnoty v souboruStrings.xml , například:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="enter_info">Enter some text</string>
<string name="save_info">Save data</string>
</resources>
Použití textu ze souboru řetězců je znázorněno níže v souborech rozložení C# a AXML:
C#
Místo použití řetězcových literálů v kódu vyhledejte přeložené hodnoty ze souborů řetězců pomocí Resources.GetText
:
someText.Hint = Resources.GetText (Resource.String.enter_info);
saveButton.ContentDescription = Resources.GetText (Resource.String.save_info);
AXML
V atributech přístupnosti XML rozložení, jako hint
je a contentDescription
lze je nastavit na identifikátor řetězce:
<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" />
Výhodou ukládání textu do samostatného souboru je více jazykových překladů souboru, které můžete v aplikaci poskytnout. V průvodci lokalizací Androidu se dozvíte, jak přidat lokalizované řetězcové soubory do projektu aplikace.
Testování přístupnosti
Pomocí těchto kroků povolíte funkci TalkBack a Explore by Touch a otestujete přístupnost na zařízeních s Androidem.
Možná budete muset nainstalovat TalkBack z Google Play, pokud se nezobrazí v nastavení > přístupnosti.