Přístupnost v Androidu

Tato stránka popisuje, jak pomocí rozhraní API pro usnadnění přístupu k Androidu vytvářet aplikace podle kontrolního seznamu dostupnosti. Další informace o rozhraních API platforem najdete na stránkách usnadnění přístupu 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 buď v jazyce C#, nebo v souboru rozložení AXML.

C#

Popis lze nastavit v kódu libovolného řetězce (nebo prostředku řetězce):

saveButton.ContentDescription = "Save data";

Rozložení AXML

V rozložení XML použijte android:contentDescription atribut:

<ImageButton
    android:id=@+id/saveButton"
    android:src="@drawable/save_image"
    android:contentDescription="Save data" />

Použít pomocný parametr pro TextView

Pro EditText a TextView ovládací prvky pro zadávání dat použijte Hint vlastnost k zadání popisu toho, co je očekáváno zadání (místo ContentDescription ). Pokud byl zadán nějaký text, samotný text bude místo pomocného parametru "Read".

C#

Nastavte Hint 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 pro zadávání dat, použijte LabelFor vlastnost pro

C#

V jazyce C# nastavte LabelFor vlastnost na ID prostředku ovládacího prvku, který tento obsah popisuje (obvykle je tato vlastnost nastavena u popisku a odkazuje na jiný ovládací prvek vstupu):

EditText edit = FindViewById<EditText> (Resource.Id.editFirstName);
TextView tv = FindViewById<TextView> (Resource.Id.labelFirstName);
tv.LabelFor = Resource.Id.editFirstName;

Rozložení AXML

V souboru 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

Pomocí AnnounceForAccessibility metody v jakémkoli ovládacím prvku zobrazení můžete sdělit změnu události nebo stavu uživatelům, pokud je povolená funkce usnadnění. Tato metoda není vyžadována pro většinu operací, kde integrovaný mluvený komentář poskytuje dostatečnou zpětnou vazbu, ale měla by být použita 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

Dostupná navigace se spoléhá na ovládací prvky, které se zaměřují na pomoc uživatele při porozumění dostupných operacích. Android poskytuje Focusable vlastnost, která může označit ovládací prvky jako specifickou možnost získat fokus během navigace.

C#

Chcete-li zabránit ovládacímu prvku v získání fokusu s jazykem C#, nastavte Focusable vlastnost na false :

label.Focusable = false;

Rozložení AXML

V souboru layout XML nastavte android:focusable atribut:

<android:focusable="false" />

Můžete také řídit pořadí fokusu pomocí nextFocusDown atributů, nextFocusLeft , nextFocusRight , nextFocusUp obvykle nastavených v AXML rozložení. Tyto atributy použijte k zajištění toho, aby uživatel mohl snadno procházet ovládacími prvky na obrazovce.

Přístupnost a lokalizace

V příkladech nad nápovědou a popisem obsahu se nastavuje přímo hodnota 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 uvedeno níže v souborech rozložení C# a AXML:

C#

Namí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 a contentDescription lze 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, že ve vaší aplikaci můžete zadat víc jazykových překladů. Informace o tom, jak přidat lokalizované řetězcové soubory do projektu aplikace, najdete v příručce k lokalizaci Androidu .

Testování dostupnosti

Pomocí těchto kroků povolíte TalkBack a prozkoumáte dotykem a otestujete přístupnost na zařízeních s Androidem.

je možné, že budete muset nainstalovat TalkBack z Google Play, pokud se nezobrazí v Nastavení přístupnost.