Bayangkan kamu membangun restoran mewah — makanannya enak, desainnya kece, pelayannya ramah. Tapi pintu masuknya cuma ada tangga. Tidak ada ramp kursi roda. Tidak ada tulisan Braille di menu. Seberapa "mewah" restoran itu bagi seseorang yang duduk di kursi roda? Begitu pula web tanpa aksesibilitas web HTML5. Kamu sudah susah payah bikin halaman yang cantik, tapi sebagian pengguna sama sekali tidak bisa menikmatinya.
Di artikel ke-11 dari Seri Belajar HTML5 From Zero to Zorro (13 Artikel) ini, kita akan belajar tentang web accessibility (A11y) dan ARIA HTML — dua konsep yang akan membuat halamanmu bisa diakses oleh semua orang, termasuk 1,3 miliar penduduk dunia yang hidup dengan disabilitas.
♿ Mengapa Aksesibilitas Web HTML5 Itu Wajib, Bukan Opsional?
Banyak developer masih berpikir aksesibilitas itu "nanti dulu" atau "kalau ada waktu". Padahal, ini bukan sekadar soal empati — ini juga soal bisnis, hukum, dan kualitas kode.
Coba pikirkan siapa saja yang terbantu dengan web yang aksesibel:
| Kelompok Pengguna | Tantangan | Solusi A11y |
|---|---|---|
| 👁️ Tunanetra | Tidak bisa melihat layar | Screen reader + alt text |
| 🎨 Buta Warna | Sulit bedakan warna tertentu | Kontras warna tinggi + label teks |
| 🖐️ Disabilitas Motorik | Tidak bisa pakai mouse | Navigasi keyboard penuh |
| 👂 Tuli/Kurang Dengar | Tidak bisa dengar audio/video | Subtitle & transkripsi |
Menurut WHO, sekitar 1,3 miliar orang di dunia hidup dengan berbagai bentuk disabilitas. Itu setara dengan 16% populasi global. Jika websitemu tidak aksesibel, kamu kehilangan potensi 1 dari 6 pengguna di internet.
Web yang aksesibel juga lebih mudah diindex oleh Google. Screen reader dan crawler Google bekerja dengan cara yang mirip — keduanya membaca struktur HTML secara linear. Artinya, halaman yang aksesibel = halaman yang lebih SEO-friendly. Double win!
🏗️ HTML Semantik: Fondasi Aksesibilitas Web yang Sering Dilupakan
Sebelum kita bicara soal ARIA HTML yang lebih advanced, ada pondasi yang jauh lebih fundamental: HTML Semantik. Analoginya seperti membangun rumah — kalau struktur pondasinya benar, barulah kamu hias interior-nya.
HTML semantik artinya menggunakan tag yang sesuai maknanya, bukan sekadar tag yang "kelihatan bagus". Perhatikan perbedaan berikut:
<header>, <footer>, <main>Tandai area utama halaman. Screen reader bisa langsung "loncat" ke bagian <main> tanpa harus membaca ulang header tiap halaman.
<nav>Gunakan untuk navigasi utama dan navigasi breadcrumb. Pengguna screen reader bisa langsung skip ke area navigasi.
<article>, <section>, <aside>Pisahkan konten utama, bagian konten, dan konten pendukung. Ini membantu screen reader memahami hierarki informasi di halaman.
<button> bukan <div>Elemen <button> sudah built-in aksesibel: bisa difokus dengan Tab, diaktifkan dengan Enter/Space, dan dikenali screen reader sebagai tombol interaktif.
🎛️ ARIA HTML: Ketika Semantik Bawaan Tidak Cukup
Kadang kita membangun komponen UI yang kompleks — dropdown kustom, modal dialog, tab panel — yang tidak punya padanan tag HTML semantik. Di sinilah ARIA (Accessible Rich Internet Applications) hadir sebagai "penambah informasi" untuk browser dan screen reader.
Analoginya: bayangkan kamu guide wisata bagi teman yang buta. Kamu tidak bisa cuma diam dan jalan. Kamu harus berkata, "Ini ada tangga 5 langkah," atau "Tombol ini untuk konfirmasi pesanan." ARIA persis seperti itu — ia memberikan konteks verbal pada elemen yang tidak punya makna visual.
Aturan pertama ARIA: Jangan gunakan ARIA kalau HTML semantik sudah bisa melakukannya. <button> lebih baik daripada <div role="button">. ARIA adalah alat bantu, bukan pengganti HTML yang baik.
Jangan pakai aria-label jika elemen sudah punya teks yang jelas. Screen reader akan membaca keduanya yang bisa membingungkan pengguna. Prioritaskan teks yang terlihat di layar.
✅ Checklist Praktis: Web Accessibility A11y untuk Pemula
Oke, sudah cukup teori. Sekarang saatnya action! Berikut langkah-langkah konkret yang bisa kamu terapkan hari ini pada proyekmu:
Gambar informatif: deskripsikan isinya. Gambar dekoratif: gunakan alt="" (string kosong) agar screen reader skip.
<img src="hero.jpg" alt="Tim developer sedang berdiskusi di kantor">
Rasio kontras minimum: 4.5:1 untuk teks normal, 3:1 untuk teks besar. Gunakan tools seperti Contrast Checker di WebAIM.org untuk cek.
Coba navigasi seluruh halamanmu hanya dengan tombol Tab, Shift+Tab, dan Enter. Semua tombol dan link harus bisa dicapai.
Placeholder BUKAN pengganti label! Saat pengguna mulai mengetik, placeholder hilang dan mereka lupa fungsi field tersebut.
<label for="email">Alamat Email</label>
<input type="email" id="email" name="email">
Ini memberitahu screen reader bahasa apa yang digunakan, agar pengucapannya benar saat dibaca keras.
<html lang="id"> <!-- id = Bahasa Indonesia -->
- axe DevTools — Extension Chrome untuk audit otomatis
- WAVE (wave.webaim.org) — Visualisasi error aksesibilitas
- Lighthouse — Built-in di Chrome DevTools, ada skor Accessibility
- Screen reader NVDA (Windows, gratis) atau VoiceOver (Mac/iOS)
No comments:
Post a Comment