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" />

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í nextFocusDownatributů , , nextFocusLeftnextFocusRightnextFocusUp 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.