Accessibility — HTML

Coba bayangin website kamu cuma bisa diakses orang yang bisa liat layar, denger suara, dan punya tangan lengkap. Kamu otomatis nge-block puluhan juta orang…

Aksesibilitas (sering disingkat a11y) artinya halaman kamu bisa dipakai semua orang, termasuk pengguna tunanetra yang memakai screen reader (program yang membacakan isi layar) dan orang yang cuma pakai keyboard. Kuncinya dua: pakai tag HTML yang tepat, dan kasih teks yang bisa dibacakan ke tiap gambar, tombol dan isian.

🧪 Tebakan cepat: di sebuah form, kolom yang salah cuma ditandai warna merah. Siapa yang bisa kelewatan? Tebak dulu, jawabannya ada di bagian "Jangan cuma pakai warna".

Pakai tag yang tepat

<button>Klik Saya</button>
<img src="foto.jpg" alt="Foto profil pengguna">
<nav aria-label="Menu utama">
  <a href="#beranda">Beranda</a>
  <a href="#tentang">Tentang</a>
</nav>

Tampilannya bisa sama persis dengan versi <div>, tapi versi ini bisa dipakai lewat keyboard dan dibacakan dengan benar.

Nama buat tombol ikon: aria-label

<button aria-label="Tutup menu">×</button>

Label, role, dan hiasan

<nav role="navigation">...</nav>
<label for="nama">Nama:</label>
<input type="text" id="nama">
<span aria-hidden="true">***</span>

Jangan cuma pakai warna

Pengguna buta warna bisa gak sadar ada kolom yang salah kalau tandanya cuma merah. Tambah teks pesan atau ikon, misalnya "Email belum diisi". Kontras warna teks dengan latarnya juga minimal 4.5:1 biar tetap kebaca.

⚠️ Jebakan yang sering ketemu

🔬 Coba sendiri

Dua alat di bawah menunjukkan apa yang "dilihat" screen reader dari HTML kamu, dan bagaimana pesan baru diumumkan.

TL;DR: Pakai tag asli (<button>, <a>, <nav>) sebelum ARIA. Gambar butuh alt, tombol ikon butuh aria-label, dan <label for> harus sama dengan id input-nya. role menyebut peran elemen, aria-hidden="true" menyembunyikan hiasan. Jangan tandai error cuma pakai warna, dan jaga kontras minimal 4.5:1.

Yang akan kamu pelajari