Aksesibilitas di Android

Halaman ini menjelaskan cara menggunakan API Aksesibilitas Android untuk membuat aplikasi sesuai dengan daftar periksa aksesibilitas. Lihat halaman aksesibilitas iOS dan aksesibilitas OS X untuk API platform lainnya.

Menjelaskan Elemen UI

Android menyediakan ContentDescription properti yang digunakan oleh API pembacaan layar untuk memberikan deskripsi tujuan kontrol yang dapat diakses.

Deskripsi konten dapat diatur dalam C# atau dalam file tata letak AXML.

C#

Deskripsi dapat diatur dalam kode ke string apa pun (atau sumber daya string):

saveButton.ContentDescription = "Save data";

Tata letak AXML

Dalam tata letak XML gunakan android:contentDescription atribut :

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

Gunakan Petunjuk untuk TextView

Untuk EditText dan TextView kontrol untuk input data, gunakan Hint properti untuk memberikan deskripsi tentang input apa yang diharapkan (bukan ContentDescription). Ketika beberapa teks telah dimasukkan, teks itu sendiri akan "dibaca" alih-alih petunjuk.

C#

Atur Hint properti dalam kode:

someText.Hint = "Enter some text"; // displays (and is "read") when control is empty

Tata letak AXML

Dalam file tata letak XML gunakan android:hint atribut :

<EditText
    android:id="@+id/someText"
    android:hint="Enter some text" />

Untuk mengaitkan label dengan kontrol input data, gunakan LabelFor properti untuk

C#

Di C#, atur LabelFor properti ke ID sumber daya kontrol yang dijelaskan konten ini (biasanya properti ini diatur pada label dan mereferensikan beberapa kontrol input lainnya):

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

Tata letak AXML

Di XML tata letak gunakan android:labelFor properti untuk mereferensikan pengidentifikasi kontrol lain:

<TextView
    android:id="@+id/labelFirstName"
    android:hint="Enter some text"
    android:labelFor="@+id/editFirstName" />
<EditText
    android:id="@+id/editFirstName"
    android:hint="Enter some text" />

Mengumumkan aksesibilitas

AnnounceForAccessibility Gunakan metode pada kontrol tampilan apa pun untuk mengomunikasikan perubahan peristiwa atau status kepada pengguna saat aksesibilitas diaktifkan. Metode ini tidak diperlukan untuk sebagian besar operasi di mana narasi bawaan memberikan umpan balik yang memadai, tetapi harus digunakan di mana informasi tambahan akan berguna bagi pengguna.

Kode di bawah ini menunjukkan contoh panggilan AnnounceForAccessibilitysederhana :

button.Click += delegate {
  button.Text = string.Format ("{0} clicks!", count++);
  button.AnnounceForAccessibility (button.Text);
};

Mengubah Pengaturan Fokus

Navigasi yang dapat diakses bergantung pada kontrol yang berfokus untuk membantu pengguna dalam memahami operasi apa yang tersedia. Android menyediakan Focusable properti yang dapat menandai kontrol karena secara khusus dapat menerima fokus selama navigasi.

C#

Untuk mencegah kontrol mendapatkan fokus dengan C#, atur properti ke Focusablefalse:

label.Focusable = false;

Tata letak AXML

Dalam file XML tata letak atur android:focusable atribut:

<android:focusable="false" />

Anda juga dapat mengontrol urutan fokus dengan nextFocusDownatribut , , nextFocusRightnextFocusLeft, nextFocusUp biasanya diatur dalam tata letak AXML. Gunakan atribut ini untuk memastikan pengguna dapat menavigasi dengan mudah melalui kontrol di layar.

Aksesibilitas dan Pelokalan

Dalam contoh di atas petunjuk dan deskripsi konten diatur langsung ke nilai tampilan. Lebih baik menggunakan nilai dalam file Strings.xml , seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="enter_info">Enter some text</string>
    <string name="save_info">Save data</string>
</resources>

Menggunakan teks dari file string ditunjukkan di bawah ini dalam file tata letak C# dan AXML:

C#

Alih-alih menggunakan literal string dalam kode, cari nilai yang diterjemahkan dari file string dengan Resources.GetText:

someText.Hint = Resources.GetText (Resource.String.enter_info);
saveButton.ContentDescription = Resources.GetText (Resource.String.save_info);

AXML

Dalam atribut aksesibilitas XML tata letak seperti hint dan contentDescription dapat diatur ke pengidentifikasi string:

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

Manfaat menyimpan teks dalam file terpisah adalah beberapa terjemahan bahasa file dapat disediakan di aplikasi Anda. Lihat panduan pelokalan Android untuk mempelajari cara menambahkan file string yang dilokalkan ke proyek aplikasi.

Menguji Aksesibilitas

Ikuti langkah-langkah ini untuk mengaktifkan TalkBack dan Explore by Touch untuk menguji aksesibilitas di perangkat Android.

Anda mungkin perlu menginstal TalkBack dari Google Play jika tidak muncul di aksesibilitas Pengaturan>.