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" />
LabelUntuk menautkan bidang input dengan label
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 AnnounceForAccessibility
sederhana :
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 Focusable
false
:
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 nextFocusDown
atribut , , nextFocusRight
nextFocusLeft
, 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>.