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

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