- Di antarmuka web, menggunakan
<button> alih-alih <div> adalah pilihan yang benar dari sisi aksesibilitas dan fungsionalitas
<div> tidak dikenali sebagai elemen interaktif oleh screen reader, dan juga tidak merespons fokus keyboard maupun input Enter, Spacebar
- Meskipun atribut seperti
[role="button"] atau [tabindex="0"] ditambahkan, masalah urutan fokus dan penanganan event keyboard tetap ada
- Untuk mengatasi masalah ini, menambahkan banyak event listener dan conditional justru menimbulkan kompleksitas yang tidak perlu
<button> secara bawaan menyediakan aksesibilitas, fokus, dan penanganan input keyboard, sehingga menjadi solusi yang sederhana dan standar
Pendekatan yang salah: membuat tombol dengan <div>
- Di kalangan pengguna React atau HTMX, cukup banyak kasus implementasi interaksi seperti membuka modal dengan bentuk
<div onclick="...">
- Masalah dari pendekatan ini
- Screen reader tidak mengenali elemen tersebut sebagai elemen interaktif
- Tidak bisa dipindahi fokus dengan keyboard
- Hanya event
click yang bekerja, dan tidak merespons input Enter maupun Spacebar
Batasan dari upaya “memperbaiki” aksesibilitas
Fitur bawaan yang disediakan <button>
Kesimpulan: yang sederhana adalah yang terbaik
<button> adalah cara paling sederhana untuk memenuhi standar aksesibilitas sekaligus mengurangi jumlah kode
- Tanpa penanganan event tambahan atau penambahan atribut yang tidak perlu, menggunakan elemen HTML standar lebih unggul dari sisi maintainability dan efisiensi
- Dengan pesan “semakin malas seorang developer, semakin penting menggunakan elemen yang benar”, tulisan ini menekankan
pentingnya kebiasaan pengembangan yang memanfaatkan fitur bawaan dan menghindari kompleksitas yang tidak perlu
Belum ada komentar.