Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Accessibility
Code

Membuat Aplikasi Android Yang Mudah Diakses: Assistive Technologies

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Meyria (you can also view the original English article)

Kapan pun Anda merancang aplikasi Android, Anda ingin sebanyak mungkin orang men-download dan menggunakan aplikasi itu, namun ini hanya bisa terjadi jika aplikasi Anda dapat diakses oleh semua orang—termasuk orang-orang yang mengakses perangkat Android mereka melalui fitur bantu, atau yang merasakan aplikasi seluler tanpa elemen seperti warna atau suara.

Dalam posting terakhir saya tentang Creating Accessible Android Apps, saya menunjukkan kepada Anda bagaimana memberikan pengalaman terbaik bagi setiap orang yang menggunakan aplikasi Anda, dengan mengoptimalkan aplikasi Anda untuk fitur aksesibilitas yang dimatangkan ke setiap perangkat Android. Saya juga akan membahas praktik terbaik aksesibilitas, dan bagaimana cara untuk benar-benar memasukkan aksesibilitas aplikasi Anda ke pengujian, sebelum mengirimkannya ke dunia.

Pada saat Anda menyelesaikan artikel ini, Anda akan tahu cara membuat aplikasi yang terintegrasi dengan pembaca layar, kontrol terarah, dan perangkat Switch, ditambah fitur aksesibilitas Android praktis lainnya seperti keterangan tertutup.

Mendukung Assistive Technologies

Assistive technology atau fitur aksesibilitas adalah perangkat lunak atau perangkat keras yang membuat perangkat lebih mudah diakses. Android memiliki sejumlah fitur aksesibilitas yang ada di dalamnya, dan ada banyak aplikasi dan bahkan perangkat eksternal yang dapat diunduh atau dibeli orang agar perangkat Android mereka sesuai dengan kebutuhan mereka.

Dengan cara yang sama seperti Anda mengoptimalkan aplikasi Android agar bekerja dengan baik dengan layar sentuh dan konfigurasi layar yang berbeda, Anda harus mengoptimalkan aplikasi untuk layanan aksesibilitas ini.

Mengoptimalkan assistive technologies adalah salah satu langkah terpenting dalam membuat aplikasi yang mudah diakses, jadi di bagian ini saya akan mencakup semua layanan aksesibilitas utama dan menunjukkan cara mengoptimalkan aplikasi Anda untuk memberikan pengalaman yang lebih baik untuk setiap layanan ini.

Mendukung Pembaca Layar

Pengguna dengan kesulitan terkait penglihatan dapat berinteraksi dengan perangkat Android mereka menggunakan pembaca layar, yang merupakan synthesizer ucapan yang membaca teks dengan suara keras saat pengguna bergerak di sekitar layar.

Rilisan terbaru dari Android biasanya dilengkapi dengan Google Text-to-Speech (TTS) engine yang telah terpasang sebelumnya. Untuk memeriksa apakah TTS telah terinstal pada perangkat Anda:

  • Buka aplikasi Settings perangkat Anda.
  • Arahkan ke Accessibility > Text-to-speech output.
  • Periksa nilai Preferred engine—ini harus disetel ke Google text-to-speech engine.

TTS engine menunjang berbagai pembaca layar, termasuk Google TalkBack, yang merupakan pembaca layar yang akan saya gunakan:

  • Download Google TalkBack dari Google Play store.
  • Arahkan ke Settings > Accessibility.
  • Pilih TalkBack.
  • Dorong slider ke posisi On.

Jika Anda memiliki perangkat Samsung, Anda mungkin sudah memiliki pembaca layar Voice Assistant yang telah terpasang sebelumnya. Voice Assistant adalah port Google TalkBack yang memiliki banyak fitur yang sama, jadi Anda biasanya tidak perlu memasang TalkBack jika Anda sudah memiliki akses ke Voice Assistant.

Menjelajahi Pembaca Layar

Sebagian besar pembaca layar mendukung dua metode navigasi:

  • Linear navigation. Memberikan petunjuk audio saat pengguna bergerak mengelilingi UI secara linier, baik dengan menggeser ke kiri atau kanan atau dengan menggunakan kontrol terarah (yang merupakan layanan aksesibilitas lainnya yang akan kita lihat segera).
  • Explore by Touch. Pembaca layar mengumumkan setiap elemen UI saat pengguna menyentuhnya.

Penting untuk menguji aplikasi Anda menggunakan linear navigation dan metode Explore by Touch.

Perhatikan bahwa beberapa orang mungkin menggunakan TalkBack di samping aplikasi BrailleBack dan layar braille eksternal yang dapat disegarkan. Dukungan Braille bukanlah sesuatu yang dapat Anda uji sepenuhnya tanpa membeli tampilan braille, namun jika Anda tertarik untuk mempelajari lebih lanjut tentang perangkat ini, maka ada banyak video tampilan braille di YouTube.

Anda juga dapat menggunakan aplikasi BrailleBack untuk melihat bagaimana teks aplikasi Anda akan ditampilkan pada layar braille. Setelah BrailleBack terinstal, arahkan ke Settings > Accessibility > BrailleBack > Settings > Developer options > Show Braille output on screen. Arahkan kembali ke layar utama BrailleBack, dorong slider ke posisi On, dan BrailleBack kemudian akan menambahkan overlay yang menampilkan sel braille untuk layar mana pun yang sedang Anda lihat.

Sekarang setelah Anda menyiapkan pembaca layar Anda (dan secara opsional, BrailleBack) mari kita lihat bagaimana Anda dapat mengoptimalkan aplikasi Anda untuk layanan aksesibilitas ini.

Menambahkan Deskripsi Konten

Label teks menambahkan kekacauan ke layar, jadi sedapat mungkin Anda harus menghindari penambahan label eksplisit ke UI Anda.

Mengkomunikasikan tujuan tombol dengan menggunakan ikon tempat sampah daripada label Delete mungkin merupakan desain yang bagus, namun ini menjadikan adanya masalah bagi pembaca layar, karena tidak ada yang bisa dibaca pembaca layar!

Anda harus memberikan deskripsi konten untuk kontrol yang tidak menampilkan teks yang terlihat, seperti ImageButtons dan CheckBox, dan untuk media visual seperti gambar.

Label konten ini tidak muncul di layar, namun layanan aksesibilitas seperti pembaca layar dan tampilan braille akan mengumumkan label setiap kali elemen UI yang sesuai dibawa ke fokus.

Anda menambahkan deskripsi konten ke elemen statis, menggunakan android:contentDescription:

Jika Anda menambahkan deskripsi konten ke kontrol yang mungkin berubah selama siklus hidup Activity atau Fragment, Anda harus menggunakan setContentDescription() sebagai gantinya:

Membuat deskripsi konten yang sempurna adalah tindakan pengimbangan yang rumit, karena menyediakan terlalu banyak informasi seringkali bisa sama buruknya dengan memberikan sedikit informasi. Jika deskripsi konten Anda tidak perlu dirinci, atau Anda menambahkan deskripsi konten ke elemen yang pengguna tidak perlu ketahui, maka itu menyebabkan banyak white noise yang bisa mereka navigasikan secara berurutan agar bisa memahami layar saat ini.

Deskripsi konten Anda perlu sangat deskriptif, bermakna secara bebas, dan memberikan konteks yang cukup bagi pengguna untuk dapat berhasil menavigasi aplikasi Anda.

Untuk menghindari pengguna yang berlebihan dengan informasi yang tidak perlu:

  • Jangan sertakan tipe kontrol dalam deskripsi konten Anda. Layanan aksesibilitas sering kali mengumumkan jenis kontrol setelah labelnya, jadi deskripsi "submit button" Anda mungkin menjadi "submit button button".
  • Jangan sia-siakan kata-kata yang menggambarkan penampilan fisik komponen. Pengguna perlu tahu apa yang akan terjadi saat mereka berinteraksi dengan kontrol, belum tentu bagaimana kontrol itu terlihat.
  • Jangan sertakan petunjuk bagaimana berinteraksi dengan kontrol. Ada banyak cara untuk berinteraksi dengan perangkat selain layar sentuh, sehingga memberi tahu pengguna untuk "sentuh tautan ini untuk mengubah Pengaturan Anda" tidak hanya menambahkan kata-kata yang tidak perlu ke deskripsi konten Anda, namun juga berpotensi menyesatkan pengguna.
  • Jangan menambahkan deskripsi konten untuk semuanya. Pembaca layar seringkali dapat dengan aman mengabaikan elemen UI yang ada semata-mata untuk membuat layar terlihat lebih bagus, jadi Anda biasanya tidak perlu memberikan deskripsi konten untuk elemen dekoratif aplikasi Anda. Anda juga dapat secara eksplisit menginstruksikan View untuk tidak merespons layanan aksesibilitas, dengan menandainya sebagai android:contentDescription=“@null” atau android:isImportantForAccessibility=“no” (Android 4.1 dan yang lebih tinggi).

Pengguna harus bisa mengidentifikasi item dari deskripsi konten mereka sendiri, sehingga setiap deskripsi konten harus unik. Khususnya, jangan lupa untuk mengupdate deskripsi untuk layout yang digunakan ulang seperti ListView dan RecyclerView.

Setelah puas dengan deskripsi konten Anda, Anda harus memasukkannya ke pengujian dengan mencoba menavigasi aplikasi Anda hanya dengan menggunakan umpan balik lisan, dan kemudian melakukan penyesuaian yang diperlukan.

Jangan Menghilangkan Pembaca Layar

Beberapa pembaca layar membiarkan Anda menyesuaikan audio aplikasi secara terpisah dari suara lain pada perangkat, dan beberapa bahkan mendukung "audio ducking", yang secara otomatis menurunkan perangkat audio lainnya saat pembaca layar berbicara. Namun, Anda tidak boleh berasumsi bahwa pembaca layar yang dipilih pengguna mendukung salah satu dari fitur ini, atau mengaktifkannya.

Jika aplikasi Anda menampilkan efek musik atau suara yang berpotensi menenggelamkan pembaca layar, berarti Anda harus memberi pengguna cara menonaktifkan suara ini. Sebagai alternatif, aplikasi Anda dapat menonaktifkan semua audio yang tidak perlu secara otomatis setiap kali mendeteksi kalau pembaca layar diaktifkan.

Jangan Bergantung Pada Isyarat Visual

Mungkin praktik umum untuk memformat tautan sebagai teks biru yang digarisbawahi, namun orang-orang yang mengalami UI Anda sebagai serangkaian permintaan pembaca layar mungkin tidak menyadari isyarat visual ini.

Untuk memastikan semua pengguna mengetahui hyperlink aplikasi Anda, diantaranya:

  • Susun teks jangkar Anda sehingga jelas bahwa bagian teks ini berisi hyperlink.
  • Tambahkan deskripsi konten.
  • Ekstrak hyperlink ke konteks baru. Misalnya, jika Anda memindahkan tautan ke tombol atau item menu, pengguna akan sudah tahu bahwa mereka seharusnya berinteraksi dengan kontrol ini.

Pertimbangkan Mengganti Kontrol Berjangka Waktu

Beberapa kontrol mungkin hilang secara otomatis setelah jangka waktu tertentu telah berlalu. Misalnya, kontrol pemutaran video cenderung pudar begitu Anda beberapa detik memasuki video.

Karena pembaca layar hanya memberitahukan kontrol saat memperoleh fokus, ada kemungkinan kontrol berjangka waktu bisa hilang sebelum pengguna memiliki kesempatan untuk fokus padanya. Jika aplikasi Anda menyertakan kontrol yang berjangka waktu, Anda harus mempertimbangkan untuk menjadikannya sebagai kontrol permanen saat aplikasi Anda mendeteksi bahwa pembaca layar diaktifkan, atau setidaknya memperpanjang jumlah waktu kontrol ini tetap berada di layar.

Jangan Mengandalkan Warna

Kecuali Anda menyertakannya dalam deskripsi konten Anda, pembaca layar tidak akan mengkomunikasikan isyarat warna kepada pengguna Anda, jadi sebaiknya Anda jangan pernah menggunakan warna sebagai satu-satunya cara untuk mengkomunikasikan informasi penting. Aturan ini juga membantu memastikan aplikasi Anda dapat diakses oleh orang-orang yang buta warna, atau yang memiliki masalah yang membedakan antara warna tertentu.

Jika Anda menggunakan warna untuk menyorot teks penting, Anda perlu menekankan teks ini dengan menggunakan metode lain, misalnya dengan memberikan deskripsi isi, efek suara, atau umpan balik haptic (berbasis sentuhan) saat teks ini menjadi fokus. Anda juga harus memberikan isyarat visual tambahan untuk orang-orang yang buta warna, seperti memvariasikan ukuran huruf atau menggunakan efek miring atau garis bawah.

Mengalihkan Akses dan Kontrol Terarah

Pengguna dengan penglihatan terbatas atau masalah ketangkasan manual dapat mengoperasikan perangkat mereka menggunakan kontrol arah atau Switch Access, bukan layar sentuh.

1. Menguji Switch Access Aplikasi Anda

Switch Access memungkinkan Anda berinteraksi dengan perangkat Android menggunakan '"switch", yang mengirimkan sinyal keystroke ke perangkat, seperti menekan tombol OK atau Select.

Pada bagian ini, kita akan membuat switch 'Next,' 'Previous' dan 'Select' yang terpisah, tetapi juga memungkinkan untuk membuat switch 'Select' dan memiliki siklus Switch Access melalui elemen layar interaktif pada putaran yang terus menerus. Jika Anda lebih memilih untuk menguji aplikasi Anda menggunakan metode auto-scan ini, kemudian arahkan ke Settings > Accessibility > Switch Access > Settings > Auto-scan.

Android mendukung switch berikut:

  • Tombol hardware perangkat, seperti Home atau Volume Up/Volume Down. Ini biasanya bagaimana Anda akan menguji dukungan switch aplikasi Anda, karena Anda tidak memerlukan perangkat peralihan khusus.
  • Perangkat eksternal, seperti keyboard yang terhubung ke perangkat Android Anda melalui USB atau Bluetooth.
  • Tindakan fisik. Anda dapat menggunakan kamera depan perangkat anda untuk memberikan fitur "switch" ke tindakan fisik, seperti mengedipkan mata atau membuka mulut.

Untuk mengaktifkan Switch Access:

  • Arahkan ke Settings > Accessibility > Switch Access.
  • Pilih Settings di sudut kanan atas.
  • Pilih Next, Previous dan Select item pada gilirannya, tekan tombol perangkat keras yang ingin Anda berikan tindakan ini, lalu sentuh Save.
  • Arahkan kembali ke layar Switch Access utama, dan dorong slider ke posisi On.

Anda dapat menonaktifkan Switch Access kapan saja, dengan mengarahkan ke Settings > Accessibility > Switch Access dan mendorong slider ke posisi Off.

2. Menguji Dukungan Kontrol Terarah Aplikasi Anda

Kontrol terarah memungkinkan pengguna mengarahkan perangkat mereka pada mode linier, menggunakan aksi Up/Down/Left/Right, dengan cara yang sama seperti Anda menggunakan remot televisi untuk menavigasi panduan TV.

Android mendukung kontrol terarah berikut:

  • kunci hardware perangkat.
  • perangkat eksternal yang terhubung melalui USB atau Bluetooth, misalnya trackpad, keyboard, atau directional pad (D-pad)
  • perangkat lunak yang meniru kontrol terarah, seperti TalkBack gestures

Merancang Kontrol Terarah dan Switch Access

Saat pengguna berinteraksi dengan aplikasi Anda menggunakan Switch Access atau kontrol terarah, Anda harus memastikan bahwa:

  1. Mereka dapat menjangkau dan berinteraksi dengan semua komponen interaktif aplikasi Anda.
  2. Fokus bergerak dari satu kontrol UI ke yang berikutnya dengan cara yang logis. Misalnya, jika pengguna menekan tombol Right pada kontrol terarahnya, maka fokus harus beralih ke elemen UI yang mereka harapkan.

Jika Anda menggunakan View standar Android, kontrol Anda harus dapat difungsikan secara default, namun Anda harus selalu menguji ini.

Untuk memastikan semua komponen interaktif Anda dapat difokuskan melalui Switch Access, gunakan switch Anda untuk menavigasi dari atas layar ke bawah, pastikan setiap fokus kontrol terfokus pada beberapa titik.

Cara termudah untuk menguji dukungan kontrol terarah aplikasi Anda adalah meniru directional pad pada Android Virtual Device (AVD).

Kelemahannya adalah bahwa hal ini memerlukan perubahan pengaturan config.ini AVD Anda. Perhatikan bahwa instruksi berikut ditulis untuk macos, jadi jika Anda mengembangkannya di Windows atau Linux, maka langkahnya mungkin sedikit berbeda.

  • Buka jendela 'Finder' dan pilih Go > Go to Folder... dari toolbar.
  • Di popup berikutnya, masukkan ~/.android/avd lalu klik Go.
  • Buka folder yang sesuai dengan AVD yang ingin Anda gunakan.
  • Control-klik file config.ini dan pilih Open with > Other...
  • Pilih program pengeditan teks; Saya memilih TextEdit.
  • Pada file teks selanjutnya, cari baris hw.dPad=no dan ubah ke hw.dPad=yes. Simpan file ini
  • Luncurkan aplikasi Anda di AVD yang baru saja Anda edit.
  • Pilih tombol More (di mana kursor diposisikan di tangkapan layar berikut).
Select the More button in your Android Virtual Device AVD
  • Pilih Directional pad dari menu sebelah kiri.
  • Sekarang Anda bisa mengarahkan aplikasi Anda menggunakan directional pad yang ditiru.
Put your app to the test by navigating it using the emulated D-pad

Kontrol UI standar Android dapat difokuskan secara default, namun jika Anda berjuang untuk fokus pada kontrol tertentu, Anda mungkin perlu secara eksplisit menandainya sebagai fokus, dengan menggunakan android:focusable="true" atau View.setFocusable().

Anda juga harus memastikan bahwa urutan fokus berpindah dari satu elemen UI ke yang berikutnya dengan cara yang logis, dengan menavigasi semua kontrol aplikasi Anda, ke segala arah. (Jangan lupa untuk menguji sebaliknya!)

Android menentukan urutan fokus layar secara otomatis berdasarkan algoritma, namun terkadang Anda dapat memperbaiki urutan ini dengan mengubah urutan fokus secara manual.

Anda dapat menentukan View yang seharusnya mendapat fokus saat pengguna bergerak ke arah tertentu, dengan menggunakan atribut XML berikut: android:nextFocusUpandroid:nextFocusDownandroid:nextFocusRight, dan android:nextFocusLeft.

Misalnya, bayangkan Anda memiliki tata letak berikut:

A layout consisting of a Button EditText and CheckBox

Secara default, saat kontrol Button berada dalam fokus:

  • Menekan Down akan membawa CheckBox menjadi fokus.
  • Menekan Right akan membawa EditText menjadi fokus.

Anda bisa mengganti pesanan ini, menggunakan atribut android:next. Dalam kode berikut:

  • Menekan Down membawa EditText menjadi fokus.
  • Menekan Right membawa CheckBox menjadi fokus .

Sebagai alternatif, Anda dapat memodifikasi urutan fokus saat menggunakan runtime setNextFocusDownIdsetNextFocusForwardIdsetNextFocusLeftIdsetNextFocusRightId, dan setNextFocusUpId.

Sederhanakan Layout Anda

Layout yang lebih sederhana lebih mudah bagi semua orang untuk dinavigasi, namun ini terutama berlaku bagi siapa saja yang berinteraksi dengan aplikasi Anda menggunakan Switch Access atau kontrol terarah.

Saat menguji navigasi aplikasi Anda, cari peluang untuk menghapus elemen dari UI Anda. Secara khusus, Anda harus mempertimbangkan untuk menghapus apapun yang bersarang dari tata letak Anda, karena tata letak yang bersarang membuat aplikasi Anda jauh lebih sulit dinavigasi.

Jangan Abaikan Dukungan Touchscreen Aplikasi Anda

Beberapa pengguna dengan masalah ketangkasan manual mungkin lebih memilih untuk berinteraksi dengan perangkat mereka menggunakan layar sentuh.

Untuk membantu pengguna ini, semua elemen interaktif aplikasi Anda harus berukuran 48 x 48 dp atau lebih besar, dengan setidaknya 8 dp di antara semua elemen yang dapat disentuh. Anda mungkin juga ingin bereksperimen dengan meningkatkan ukuran target sentuh tanpa benar-benar meningkatkan ukuran View terkaitnya, menggunakan API Android TouchDelegate.

Keterangan Tertutup

Anda harus memberikan subtitel untuk semua audio lisan aplikasi Anda.

Untuk mengaktifkan keterangan tertutup pada perangkat Anda:

  • Arahkan ke Settings > Accessibility > Captions.
  • Dorong slider ke posisi On.

Pada Android 4.4 dan yang lebih tinggi, Anda menambahkan file sumber subtitle eksternal dalam format WebVTT menggunakan addSubtitleSource(), misalnya:

Teks adalah pengaturan keseluruhan sistem, jadi seseorang yang bergantung pada teks cenderung meluncurkan aplikasi Anda dengan caption yang sudah diaktifkan. Namun, jika pengguna tidak mengaktifkan teks, maka penting bagi Anda untuk memperjelas bahwa aplikasi Anda mendukung keterangan tertutup dan menyediakan cara untuk mengaktifkan teks. Seringkali, Anda dapat meraih kedua hal ini dengan menampilkan tombol Captions di UI Anda—misalnya, menambahkan tombol Captions ke kontrol pemutaran video aplikasi Anda.

Karena caption adalah setelan di seluruh sistem, aplikasi Anda perlu mengarahkan pengguna ke bagian yang sesuai aplikasi perangkat Settings (Settings > Accessibility > Captions). Sebagai contoh:

Android akan mengubah format teks Anda sesuai dengan pengaturan pengguna teks sistem luas, yang terletak di Settings > Accessibility > Caption. Untuk memastikan teks Anda tetap terbaca terlepas dari pengaturan pengguna, Anda harus menguji caption di seluruh opsi pemformatan Android.

Ukuran Font

Pengguna yang sedang berjuang untuk membaca teks di layar dapat meningkatkan ukuran font yang digunakan pada perangkat mereka.

Anda harus memastikan bahwa aplikasi Anda masih bekerja di berbagai ukuran teks. Untuk menguji ini, coba ubah ukuran teks perangkat lebar.

  • Luncurkan Settings aplikasi perangkat Anda.
  • Arahkan ke Settings > Accessibility > Font size.
  • Dorong slider ke arah A besar untuk meningkatkan ukuran font, dan ke arah A kecil untuk mengurangi ukuran font.

Dengan asumsi Anda mendefinisikan teks Anda dalam scaleable pixels (sp), aplikasi Anda harus diperbarui secara otomatis berdasarkan preferensi ukuran font pengguna.

Jika Anda telah merancang layout yang fleksibel, idealnya aplikasi Anda harus dapat mengakomodasi berbagai ukuran teks, namun Anda harus selalu menguji bagaimana aplikasi Anda menangani rangkaian lengkap pengaturan Font size, dan melakukan penyesuaian yang diperlukan. Teks yang meningkat atau menurun berdasarkan preferensi pengguna tidak akan memperbaiki pengalaman pengguna jika beberapa pengaturan membuat aplikasi Anda tidak dapat digunakan!

Kesimpulan

Dalam postingan ini, Anda belajar bagaimana mengoptimalkan aplikasi Anda untuk beberapa fitur teknologi dan aksesibilitas yang paling sering digunakan di Android.

Jika Anda tertarik untuk belajar lebih banyak tentang aksesibilitas, Google telah menerbitkan contoh aplikasi yang menyertakan kode untuk banyak teknik yang dibahas dalam artikel ini. Anda juga akan menemukan banyak informasi tentang aksesibilitas seluler secara umum, di situs Web Accessibility Initiative.

Sementara itu, lihat beberapa posting kami yang lain tentang pengembangan aplikasi Android!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.