Kami menerapkan dukungan aksesibilitas tanpa mengubah komponen visual dari aplikasi seluler

Artikel ini tidak akan menjadi baris kode, bukan satu istilah kompleks. Saya akan mencoba untuk menyatakan sedemikian rupa sehingga orang yang jauh dari perkembangan mengerti.

Ini akan tentang implementasi aksesibilitas (aksesibilitas) dalam aplikasi seluler.

Latar Belakang Singkat


Baru-baru ini, atas nama proyek Kehidupan yang Dapat Diakses, saya mulai membantu Yandex dalam mengimplementasikan aksesibilitas aplikasi navigasi mereka.

Saya dihadapkan dengan kenyataan bahwa banyak hal yang jelas dari sudut pandang saya tidak terlintas dalam pikiran: elemen tak terlihat di layar, output langsung dari pesan suara menggunakan API dari program akses layar, dan sebagainya.

Karena itu, saya memutuskan untuk menyatakan semua ini dalam artikel terpisah.

Secara umum, mari kita pergi.

Barang yang tak terlihat


Masalah


Dalam proses mengerjakan peta, kami menemui masalah:
Ketika Anda mengklik area layar dengan peta, aplikasi harus beralih mode (saya tidak ingat detailnya pasti).

Untuk pengguna tunanetra dengan program akses layar, tindakan yang tampaknya sederhana ini menjadi tidak mungkin.

Faktanya adalah bahwa program akses layar "melihat" hanya objek tertentu di layar: tombol, blok teks, bidang input, kontrol dan daftar. Dan dalam aplikasi Yandex.Maps, mengklik pada peta tidak diproses sebagai pilihan objek, tetapi sebagai sentuhan pada area spesifik layar.

Solusi


Solusinya cukup sederhana: untuk membuat tombol di layar tanpa bingkai, dengan latar belakang transparan dan tanpa teks yang terlihat (font nol, yang tidak begitu menyenangkan dari sudut pandang programmer, atau atribut khusus yang menampilkan teks hanya untuk program akses layar tanpa menampilkannya di layar).

Pendekatan ini mengejutkan dan mengejutkan programmer, tetapi dalam praktiknya semuanya berjalan baik, idenya berhasil dan secara aktif diperkenalkan di mana pun Anda perlu memproses klik langsung pada area layar.

Output langsung dari pesan suara menggunakan program akses layar itu sendiri


Masalah


Masalah lain adalah bahwa kadang-kadang diperlukan untuk menampilkan informasi tambahan hanya untuk pengguna tunanetra. Pesan pop-up dalam hal ini akan merusak desain dan mengganggu yang lain, dan untuk menerapkan mode aplikasi terpisah di mana pesan tersebut akan ditampilkan rumit dan tidak masuk akal.

Solusi


Solusinya tidak sejelas dalam hal tombol yang tidak terlihat, tetapi juga terletak di permukaan.
Anda perlu menggunakan API program akses layar itu sendiri untuk menampilkan pesan. Itu terlihat kurang besar dalam kode program, itu tidak memaksa pengembang untuk melakukan upaya tambahan untuk membuat mode terpisah, pengaturan tambahan, dll.

Ngomong-ngomong, jika Anda menggunakan API pembaca layar, Anda bahkan tidak perlu memeriksa apakah itu diaktifkan. Jika program sedang berjalan, ia akan menampilkan pesan menggunakan synthesizer ucapan yang dipilih oleh pengguna. Dan jika program dimatikan, tidak ada yang terjadi, dan rata-rata pengguna tidak akan melihat apa-apa.

Bagikan!


Masalah


Ini adalah rekomendasi daripada hack seumur hidup, tetapi saya berkewajiban untuk menyebutkan ini.

Ingat bahwa hanya ada objek di layar untuk program akses layar?

Jadi, jenis objek juga penting. Teks tidak dapat diklik, menurutnya, tetapi tombol tidak dapat disalin. Yaitu, jika tabel pengaturan diimplementasikan sebagai blok teks besar yang "menangkap" klik pada bagian yang berbeda dari dirinya sendiri, maka tabel seperti itu tidak tersedia untuk program akses layar. Itu akan dibaca, tetapi tidak akan memungkinkan interaksi.

Solusi


Solusinya cukup sederhana: gunakan elemen yang dimaksud.

Jika harus berupa daftar, Anda perlu menggunakan elemen yang menggambarkan daftar dalam kode;
jika itu adalah tombol, maka itu harus tombol; jika slider, pengatur sesuatu, maka harus menjadi elemen slider, dan bukan teks dengan animasi saat menyeret.

Kesimpulan


Sebagai kesimpulan, saya ingin mengatakan bahwa pengembangan untuk Windows, meskipun tidak esensial, berbeda dari pengembangan untuk platform seluler, sehingga fitur aksesibilitas untuk Windows berbeda dari fitur untuk Android / Ios.

Source: https://habr.com/ru/post/id432756/


All Articles