Přístupnost v Androidu
Tato stránka popisuje, jak pomocí rozhraní API pro usnadnění přístupu pro Android 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, kterou používá rozhraní API pro čtení obrazovky k poskytnutí 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
Pro EditText
vstup dat a TextView
ovládací prvky použijte Hint
vlastnost k zadání popisu očekávaného vstupu (místo ContentDescription
).
Po zadání nějakého textu se samotný text místo nápovědy zobrazí jako 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 links input fields with labels
Pokud chcete přidružit popisek k ovládacímu prvku pro zadávání dat, použijte LabelFor
tuto vlastnost.
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ámit přístupnost
Metodu AnnounceForAccessibility
použijte u jakéhokoli 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 integrovaný mluvený komentář poskytuje dostatek zpětné vazby, ale měl by se použít tam, kde by byly pro uživatele 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 speciálně schopné přijímat fokus během navigace.
C#
Pokud chcete ovládacímu prvku zabránit v získání fokusu pomocí jazyka C#, nastavte Focusable
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 ovládat 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ími prvky na obrazovce.
Přístupnost a lokalizace
V příkladech nad popisem nápovědy a obsahu jsou nastaveny přímo na hodnotu zobrazení. Je vhodnější použít hodnoty v souboru Strings.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 překladů jazyka souboru, které můžete poskytnout ve vaší aplikaci. V průvodci lokalizací pro Android se dozvíte, jak do projektu aplikace přidat lokalizované řetězcové soubory.
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 nezobrazuje v Nastavení > Přístupnost.