Intinya...

Aksi tidak boleh dijalankan saat ditekan atau disentuh. Aksi hanya boleh dijalankan saat dilepas (seperti saat melepas tombol mouse setelah klik atau jari diangkat dari layar).

Apa itu WCAG 2.5.2?

Untuk semua fungsi yang bergantung pada input penunjuk tunggal, pemicu untuk menjalankan fungsi tersebut hanya boleh diaktifkan setelah pengguna menyelesaikan "peristiwa naik" (up-event) atau menyediakan cara yang mudah bagi pengguna untuk membatalkan atau membalikkan tindakannya. Input penunjuk tunggal mencakup interaksi seperti ketukan dan klik tunggal, ketukan ganda dan klik ganda, tekan lama, dan gerakan berbasis jalur.

Semua interaksi ini memiliki dua peristiwa terkait kode yang sama. Mereka dimulai dengan "peristiwa turun" (down event) dan diakhiri dengan "peristiwa naik" (up event). Peristiwa turun terjadi saat jari pertama kali ditekan ke layar atau tombol mouse ditekan ke bawah. Peristiwa naik terjadi saat jari diangkat dari layar sentuh atau tombol mouse dilepaskan.

Kriteria ini bertujuan memastikan bahwa pengguna dapat mencegah input sentuhan atau mouse yang tidak disengaja dan dapat dengan mudah membatalkan tindakan yang tidak diinginkan.

Ilustrasi jari mengetuk tombol di layar

Ilustrasi input penunjuk tunggal yang menunjukkan dua peristiwa berdampingan. Di sebelah kiri, terlihat tangan menekan sebuah tombol, menggambarkan 'down event'. Di sebelah kanan, tangan lain terlihat mengangkat jarinya dari tombol, menggambarkan 'up event'.

Mengapa ini penting?

Aktivasi yang tidak disengaja bisa menyebabkan kesalahan dan frustrasi, terutama bagi pengguna dengan disabilitas visual, mobilitas, atau kognitif. Membuat aktivasi terjadi saat melepaskan penunjuk (peristiwa naik) membantu mencegah tindakan yang tidak diinginkan. Ini sangat penting untuk pengguna yang mungkin kesulitan dengan kontrol yang presisi, seperti mereka yang memiliki gangguan motorik.

Memberikan cara yang mudah bagi pengguna untuk membatalkan atau membalikkan tindakan juga membantu mengatasi input yang tetap terjadi meskipun sudah ada langkah pencegahan. Jika tidak, pengguna mungkin mendapati dirinya dalam situasi di mana mereka tidak tahu bagaimana cara kembali, yang dapat menyebabkan frustrasi.

Selain itu, penting juga agar fungsi yang dihasilkan memberikan umpan balik yang jelas dan terlihat, sehingga pengguna dapat memahami hasil dari tindakan mereka dan sadar bahwa mereka mungkin perlu membatalkan atau mengurungkan apa yang baru saja terjadi. Bisa membingungkan jika pengguna secara tidak sengaja memicu sebuah fungsi tanpa menyadarinya.

Siapa yang terpengaruh?

Pengguna dengan low vision, pengguna dengan mobilitas terbatas, dan pengguna dengan disabilitas kognitif.

Pengguna low vision mungkin secara tidak sengaja memicu tindakan saat menggunakan input penunjuk tunggal di sebuah halaman. Bagi mereka, sangat penting untuk membuat fungsi yang diaktifkan menjadi jelas dan menyediakan opsi untuk membatalkan atau membalikkan tindakan mereka.

Pengguna dengan mobilitas terbatas mungkin juga secara tidak sengaja memicu input. Memberikan kemudahan untuk membatalkan atau membalikkan tindakan dapat membantu mencegah frustrasi.

Pengguna dengan disabilitas kognitif mungkin kesulitan mendeteksi perubahan konteks, menjadi bingung ketika fungsi dipicu secara tak terduga, dan tidak tahu bagaimana cara kembali.

Cara menerapkan 2.5.2

Bagian ini menawarkan penjelasan yang disederhanakan dan contoh-contoh untuk membantu kamu memulai. Untuk panduan lengkap, selalu rujuk ke dokumentasi resmi WCAG.

Setiap fungsi yang dijalankan menggunakan interaksi penunjuk tunggal harus memiliki setidaknya salah satu dari perilaku berikut untuk memenuhi kriteria keberhasilan ini.

Namun, harap dicatat bahwa ada pengecualian di mana memicu berdasarkan peristiwa naik (up-event) atau menyediakan opsi pembatalan mungkin tidak masuk akal. Jika penting bagi fungsi tertentu untuk langsung dipicu melalui peristiwa turun (down-event), maka kriteria ini bisa dikecualikan. Beberapa contoh situasi ini adalah aplikasi emulator piano atau game di mana input pertama dari peristiwa turun merupakan bagian alami dari konteks. Pengecualian ini juga berlaku untuk pengetikan huruf atau angka pada keyboard.

Aktivasi atau penyelesaian pada peristiwa naik

Cara termudah untuk memenuhi kriteria keberhasilan ini adalah dengan tetap menggunakan perilaku bawaan dari kontrol dan menghindari menggantinya dengan pemicu eksplisit berdasarkan peristiwa turun. Peristiwa naik biasanya menjadi perilaku default untuk sebagian besar kontrol dalam bahasa pemrograman atau markup apa pun. Misalnya, ini mencakup penggunaan event onclick bawaan di Javascript atau elemen <button> di HTML.

Untuk semua kontrol yang dapat diklik, pastikan bahwa fungsi hanya dijalankan setelah pengguna melepaskan sentuhan dari layar atau tombol mouse. Ini juga termasuk memastikan bahwa tindakan tidak dipicu jika pengguna menggerakkan mouse atau jarinya keluar dari area target.

Ilustrasi tangan menggerakkan mouse

Ilustrasi berdampingan di mana satu sisi menunjukkan tangan yang sedang menekan tombol dengan mouse. Sisi lainnya menunjukkan pengguna yang menekan tombol tetapi kursor mereka bergerak keluar dari tombol. Kedua gambar menggambarkan kekuatan aktivasi pada peristiwa naik, di mana tidak ada fungsi yang dipicu dalam kedua kasus.

Opsi membatalkan atau mengurungkan tindakan

Jika kamu menyediakan cara untuk dengan mudah membatalkan (abort) atau mengurungkan (undo) aksi, kamu bisa menggunakan peristiwa turun tanpa melanggar kriteria. Opsi untuk membatalkan atau mengurungkan bisa berupa dialog konfirmasi atau tombol undo.

Ilustrasi pengisian formulir kontak yang dijelaskan pada caption

Saat melakukan pengisian formulir kontak, pengguna secara tidak sengaja mengklik tombol tutup. Kemudian muncul kotak dialog konfirmasi untuk memastikan pengguna tidak kehilangan progres pengisian formulir secara tidak sengaja.

Pembatalan pada peristiwa naik

Beberapa fungsi dapat dipicu dengan interaksi penunjuk tunggal dan langsung dibatalkan dengan peristiwa naik terakhir, seperti tooltip yang muncul saat peristiwa turun dan kemudian disembunyikan lagi saat peristiwa naik. Jenis tindakan ini sepenuhnya memenuhi kriteria keberhasilan karena aktivasi tidak menyebabkan perubahan signifikan pada halaman dan langsung dibatalkan begitu pengguna melepaskan.

Drag & drop

Untuk konten yang bisa diseret, pastikan bahwa aksi drag-and-drop dapat dibatalkan atau diurungkan setelah pengguna mengambil item. Pengguna bisa melakukannya dengan melepaskan item di luar area drop, memindahkannya kembali ke posisi asalnya, atau mengonfirmasi tindakan melalui dialog atau perintah undo setelah item dijatuhkan.

Contohnya adalah menyeret item di halaman ke ikon tempat sampah. Jika pengguna melepaskan item di area lain mana pun di halaman, item tersebut akan kembali ke posisi asalnya.

Kesimpulan

Menerapkan pembatalan penunjuk yang dapat diprediksi membantu semua pengguna, terutama pengguna dengan disabilitas visual atau kognitif, untuk menghindari tindakan tidak disengaja dan pulih dengan cepat dari kesalahan. Dengan fokus pada aktivasi melalui peristiwa naik dan menyediakan opsi yang jelas untuk membatalkan atau mengurungkan tindakan, pengembang dapat menciptakan antarmuka yang lebih ramah pengguna dan lebih mudah diakses.