#9 Menangani Error Form yang Aksesibel: Jangan Biarkan Screen Reader Menebak
Bayangkan Anda sedang memesan makanan melalui layanan drive-thru. Setelah membayar, petugas tidak memberikan pesanan dan juga tidak mengatakan apa pun.
Ternyata ada tulisan kecil di balik jendela dapur:
"Maaf, keju sedang habis."
Masalahnya, tulisan itu tidak pernah terlihat oleh Anda yang berada di dalam mobil.
Anda pun hanya menunggu tanpa mengetahui apa yang sebenarnya terjadi.
Situasi seperti inilah yang sering dialami pengguna screen reader ketika mengisi formulir pada website yang tidak aksesibel.
Ketika mereka menekan tombol Kirim, sistem mendeteksi ada kesalahan, misalnya kata sandi terlalu pendek atau alamat email tidak valid.
Di layar memang muncul teks merah yang menjelaskan kesalahan tersebut.
Namun screen reader tidak mengumumkan apa pun.
Akibatnya pengguna hanya mengetahui bahwa formulir gagal dikirim, tetapi tidak memahami bagian mana yang harus diperbaiki.
Pada artikel ini kita akan mempelajari cara membuat pesan kesalahan (error message) yang dapat dikenali oleh browser, screen reader, dan pengguna keyboard sesuai prinsip WCAG.
Kesalahan yang Sering Terjadi
Banyak formulir hanya menampilkan pesan kesalahan secara visual.
Misalnya seperti berikut.
Secara visual tidak ada masalah.
Namun bagi teknologi bantu, hubungan antara kolom input dan pesan kesalahan tersebut belum jelas.
Selain itu, apabila pesan muncul secara dinamis menggunakan JavaScript, screen reader belum tentu langsung memberitahukannya kepada pengguna.
Mengapa Hal Ini Menjadi Masalah?
Terdapat beberapa hambatan yang sering muncul.
- Pengguna tidak mengetahui kolom mana yang mengalami kesalahan.
- Screen reader tidak mengetahui bahwa teks tersebut adalah pesan kesalahan.
- Warna merah menjadi satu-satunya indikator adanya kesalahan.
- Setelah menekan tombol Kirim, fokus keyboard tetap berada di tombol sehingga pengguna harus mencari sendiri letak kesalahan.
Semua kondisi tersebut dapat membuat proses pengisian formulir menjadi membingungkan.
Solusi: Gunakan Atribut ARIA yang Tepat
WCAG menyediakan beberapa mekanisme agar browser dan teknologi bantu memahami bahwa suatu kolom sedang mengalami kesalahan.
Yang paling sering digunakan adalah:
aria-invalidaria-describedbyrole="alert"atauaria-live
Mari kita bahas satu per satu.
1. aria-invalid
Atribut ini menunjukkan apakah nilai pada sebuah kolom valid.
Contohnya:
Nilainya dapat berupa:
| Nilai | Arti |
| false | Tidak ada kesalahan. |
| true | Nilai pada kolom tidak valid. |
Atribut ini hanya perlu diubah ketika proses validasi dilakukan.
Tidak perlu langsung diberi aria-invalid="true" saat halaman pertama kali dimuat.
2. aria-describedby
Atribut ini menghubungkan sebuah input dengan informasi tambahan.
Informasi tersebut dapat berupa:
- petunjuk pengisian;
- pesan kesalahan;
- penjelasan format data.
Contohnya:
Ketika fokus berada pada kolom tersebut, screen reader dapat membacakan informasi tambahan tersebut secara otomatis.
3. role="alert" atau aria-live
Sering kali pesan kesalahan baru muncul setelah pengguna menekan tombol Kirim.
Karena perubahan ini terjadi secara dinamis, screen reader perlu diberi tahu bahwa ada informasi baru.
Salah satu caranya adalah menggunakan:
atau
Dengan demikian screen reader dapat segera mengumumkan pesan tersebut tanpa pengguna harus mencarinya sendiri.
Catatan: Jangan menggunakan role="alert" untuk semua elemen. Gunakan hanya pada pesan yang memang perlu segera diketahui pengguna, seperti kesalahan validasi atau informasi penting.Contoh Struktur yang Direkomendasikan
Berikut contoh struktur formulir yang lebih lengkap.
Dengan struktur tersebut:
- label dikenali dengan benar;
- petunjuk pengisian tetap tersedia;
- pesan kesalahan terhubung ke kolom yang benar;
- screen reader dapat mengumumkan perubahan ketika validasi gagal.
Jangan Hanya Mengandalkan Warna
Kesalahan formulir tidak boleh hanya ditunjukkan dengan warna merah.
Misalnya seperti ini.
❌ Border berubah menjadi merah tanpa penjelasan.
Sebaliknya, gunakan beberapa indikator sekaligus.
- warna;
- ikon;
- teks yang jelas;
- atribut ARIA.
Contohnya:
Dengan demikian informasi tetap dapat dipahami oleh pengguna yang mengalami buta warna maupun pengguna screen reader.
Pindahkan Fokus ke Error Pertama
Apabila validasi gagal setelah pengguna menekan tombol Kirim, praktik yang sangat disarankan adalah memindahkan fokus keyboard ke kolom pertama yang mengalami kesalahan.
Misalnya:
Cara ini membantu pengguna keyboard langsung mengetahui bagian mana yang perlu diperbaiki tanpa harus menelusuri seluruh formulir.
Contoh Validasi Sederhana
Pada contoh tersebut:
aria-invalidberubah sesuai hasil validasi;- pesan kesalahan ditampilkan atau disembunyikan menggunakan atribut
hidden; - fokus dipindahkan ke kolom yang bermasalah sehingga pengguna dapat langsung memperbaikinya.
Kesalahan yang Sering Terjadi
| ❌ Praktik yang Kurang Tepat | ✅ Praktik yang Direkomendasikan |
| Hanya memberi warna merah pada input | Tambahkan pesan kesalahan yang jelas. |
| Pesan error tidak terhubung ke input | Gunakan aria-describedby. |
| Tidak memberi tahu screen reader saat error muncul | Gunakan role="alert" atau aria-live sesuai kebutuhan. |
| Fokus tetap berada pada tombol Kirim setelah validasi gagal | Pindahkan fokus ke kolom pertama yang bermasalah. |
Semua pesan menggunakan role="alert" | Gunakan hanya untuk informasi yang perlu segera diumumkan. |
Praktik Cepat: Audit Formulir Anda
Coba buka salah satu formulir pada website yang sedang Anda kembangkan.
Kemudian lakukan pengujian berikut.
- Isi formulir dengan data yang sengaja dibuat salah.
- Tekan tombol Kirim.
- Periksa beberapa hal berikut.
- Apakah setiap kesalahan dijelaskan dengan teks yang mudah dipahami?
- Apakah pesan kesalahan tidak hanya ditunjukkan dengan warna?
- Apakah input yang bermasalah memiliki
aria-invalid="true"? - Apakah pesan kesalahan terhubung menggunakan
aria-describedby? - Apakah fokus keyboard berpindah ke kolom pertama yang mengalami kesalahan?
Jika semua pertanyaan tersebut dapat dijawab ya, berarti formulir Anda sudah jauh lebih ramah bagi pengguna keyboard maupun teknologi bantu.
Pesan kesalahan yang baik bukan hanya terlihat di layar, tetapi juga dapat dipahami oleh semua pengguna, termasuk mereka yang menggunakan screen reader.
Gunakan aria-invalid untuk menandai kolom yang tidak valid, aria-describedby untuk menghubungkan pesan kesalahan dengan kolom yang sesuai, dan role="alert" atau aria-live apabila pesan muncul secara dinamis. Lengkapi dengan indikator visual yang jelas dan arahkan fokus ke kolom pertama yang bermasalah ketika validasi gagal.
Dengan menerapkan teknik-teknik tersebut, formulir tidak hanya memenuhi prinsip-prinsip WCAG, tetapi juga memberikan pengalaman yang lebih mudah, cepat, dan inklusif bagi seluruh pengguna.
Komentar (0)
Belum ada komentar. Jadilah yang pertama berkomentar!
Tinggalkan Komentar