Membaca aturan aksesibilitas berbeda dari memastikan halaman benar-benar mematuhinya. Halaman yang tampak rapi masih bisa menyimpan label lepas, hierarki heading pincang, atau kontrol yang tak terjangkau keyboard. Penutup section ini menyusun cara menguji: alat otomatis, walkthrough keyboard, screen reader, pengguna nyata, lalu checklist yang merangkum semuanya.
Pengujian Bertingkat #
Tidak ada satu alat yang menutup semua kebutuhan, sehingga praktik industri menyusun pengujian berlapis: pengujian otomatis menyapu halaman dalam hitungan detik, walkthrough keyboard menguji pengalaman nyata dengan biaya hampir nol, uji screen reader memeriksa pengumuman yang didengar pengguna, dan pengguna nyata dengan disabilitas memvalidasi bahwa halaman memang dapat dipakai.
Alat Otomatis #
Tiga nama muncul hampir di semua proyek. WAVE dari WebAIM dan axe dari Deque hadir sebagai ekstensi browser yang menandai masalah langsung di halaman; keduanya dicari lewat toko ekstensi browser masing-masing. Lighthouse terpasang bawaan Chrome: buka DevTools, pilih tab Lighthouse, centang kategori Accessibility, lalu jalankan analisis dan baca daftar temuan berikut tautan penjelasannya.
Ingat pula batas alat ini: ia memeriksa kode, bukan makna. Atribut alt yang isinya tidak relevan tetap dihitung lulus, dan label yang salah arti pun lolos. Halaman rangkuman evaluasi WAI menyimpan daftar alat penguji dan metode yang diperbarui berkala, cocok dijadikan titik berangkat saat butuh pilihan lain.
Walkthrough Keyboard #
Uji ini meniru kelompok pengguna yang paling mudah kita perkirakan, dan langkahnya hanya lima:
- Sisihkan mouse, buka halaman, lalu tekan Tab dari elemen pertama.
- Pastikan setiap kontrol interaktif tercapai dan cincin fokusnya terlihat jelas.
- Jalankan setiap kontrol dengan Enter atau Space sesuai jenisnya.
- Pastikan fokus tak pernah terjebak di satu elemen tanpa jalan keluar.
- Uji skip link: tekan Tab di awal halaman dan aktifkan link pertama bila ada.
Temuan umum walkthrough ini berupa menu yang tak bisa dibuka, dialog tanpa jalan keluar, atau urutan fokus yang melompat ke elemen tersembunyi. Semua polanya telah dibahas pada chapter-chapter sebelumnya, sehingga perbaikan tinggal diterapkan.
Sekilas Screen Reader #
Screen reader mengubah teks dan struktur halaman menjadi suara, dan mencobanya adalah cara termurah merasakan halaman dari sisi pengunjung tunanetra. Di Windows, NVDA menjadi pilihan gratis yang populer; di macOS dan iOS, VoiceOver tersedia bawaan sistem. Belajar dasarnya cukup untuk pemeriksaan halaman:
| Perintah NVDA | Hasil |
|---|---|
| H / Shift+H | lompat ke heading berikutnya / sebelumnya |
| K | lompat ke link berikutnya |
| D | lompat ke landmark berikutnya |
| Ctrl+Alt+panah | berpindah sel pada mode tabel |
Pada VoiceOver, daftar heading, link, dan form tersaji lewat rotor. Dua catatan menjaga uji ini tetap jujur: kuasai alatnya dulu sebelum menilai halaman, karena pemakaian yang keliru menghasilkan temuan palsu; dan screen reader mempercepat penemuan masalah kasar, bukan menggantikan uji dengan pengguna sesungguhnya.
Suara Pengguna Nyata #
Pengujian tertinggi memakai partisipan dengan disabilitas yang mencoba menyelesaikan tugas nyata: mendaftar, mencari produk, mengirim form. Metode ini menemukan persoalan yang tak tertangkap alat maupun simulasi, misalnya istilah yang membingungkan atau alur yang terlalu panjang. Libatkan mereka sejak draf awal, bukan setelah rilis, karena biaya perbaikan paling murah terjadi saat kode baru ditulis.
Checklist Evaluasi Halaman #
Rangkuman seluruh section ini jatuh pada checklist yang bisa dipakai setiap kali menyelesaikan halaman:
titledeskriptif danlangterisi pada elemenhtml;- satu
h1dan hierarki heading tanpa lompatan; - landmark lengkap:
header,nav,main,footer; - setiap
imgberatributalt, denganalt=""untuk gambar dekoratif; - setiap kontrol form punya
labelterhubung; kelompok pilihan memakaifieldsetdanlegend; - teks link bermakna tanpa konteks sekitarnya;
- tabel memakai
captionsertathdenganscope, atauheadersuntuk tabel kompleks; - seluruh fungsi berjalan via keyboard dan cincin fokus tetap terlihat;
- informasi penting tak bergantung pada warna saja;
iframememilikititle;- dokumen lolos validator W3C tanpa kesalahan.
Halaman berikut sengaja disiapkan sebagai bahan latihan: jalankan seluruh checklist terhadapnya, lalu cobakan pula walkthrough keyboard dan Lighthouse.
<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Berlangganan Buletin Toko Bunga Melati</title>
</head>
<body>
<a href="#konten-utama">Langsung ke konten utama</a>
<header>
<p>Toko Bunga Melati</p>
</header>
<main id="konten-utama">
<h1>Berlangganan Buletin Mingguan</h1>
<p>Dapatkan daftar tanaman baru setiap Senin pagi.</p>
<form action="www.example.com/berlangganan" method="post">
<label for="email-buletin">Alamat email (wajib)</label>
<input type="email" id="email-buletin" name="email" autocomplete="email" required>
<button type="submit">Berlangganan</button>
</form>
<h2>Rekap Buletin Terakhir</h2>
<table>
<caption>Isi buletin pekan ini</caption>
<thead>
<tr>
<th scope="col">Rubrik</th>
<th scope="col">Ringkasan</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Tanaman baru</th>
<td>Monstera variegata masuk stok hari Rabu.</td>
</tr>
<tr>
<th scope="row">Kelas menanam</th>
<td>Kelas media tanam dibuka Sabtu depan.</td>
</tr>
</tbody>
</table>
</main>
<footer>
<p>Toko Bunga Melati, Jl. Melati No. 10</p>
</footer>
</body>
</html>Output yang Dihasilkan:
Checklist berjalan tanpa temuan pada halaman ini:
- skip link pertama menuju main id="konten-utama"
- satu h1 diikuti h2 tanpa lompatan
- form dengan label terhubung dan autocomplete="email"
- tabel dengan caption serta th scope="col" dan scope="row"
- header, main, dan footer lengkap sebagai landmarkMari kita petakan beberapa poin checklist ke bagian halamannya:
- Baris 9 (skip link): link pertama memberi jalan pintas keyboard, sejalan dengan pola chapter Keyboard Navigation.
- Baris 14 dan 21 (
h1laluh2): hierarki turun satu level tanpa lompatan, sehingga peta heading utuh. - Baris 16-20 (form): label terhubung lewat
fordanid, isian wajib bertanda teks, danautocomplete="email"membantu pengisian. - Baris 22-40 (tabel):
captionmemperkenalkan tabel, sementarascopemengikat setiap sel ke judul kolom dan barisnya. - Baris 10-44 (struktur halaman): tiga landmark —
header,main,footer— menyusun halaman, dan seluruh URL fiktif memakai domainexample.com.
Dengan checklist ini, section Accessibility selesai: fondasi, tiap kategori elemen, dan cara mengujinya telah kita bahas. Section berikutnya, HTML dan CSS, membawa kita ke lapisan tampilan — dan di sana kita bertemu kembali topik seperti gaya fokus dan kontras warna dari sisi CSS.
Referensi resmi untuk pendalaman:
- W3C WAI — Evaluating Web Accessibility Overview
- W3C WAI — Easy Checks: A First Review of Web Accessibility
- Chrome DevTools — Lighthouse
- MDN Web Docs — Accessibility troubleshooting
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
halaman-uji.html
Unduh berkas<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Berlangganan Buletin Toko Bunga Melati</title>
</head>
<body>
<a href="#konten-utama">Langsung ke konten utama</a>
<header>
<p>Toko Bunga Melati</p>
</header>
<main id="konten-utama">
<h1>Berlangganan Buletin Mingguan</h1>
<p>Dapatkan daftar tanaman baru setiap Senin pagi.</p>
<form action="www.example.com/berlangganan" method="post">
<label for="email-buletin">Alamat email (wajib)</label>
<input type="email" id="email-buletin" name="email" autocomplete="email" required>
<button type="submit">Berlangganan</button>
</form>
<h2>Rekap Buletin Terakhir</h2>
<table>
<caption>Isi buletin pekan ini</caption>
<thead>
<tr>
<th scope="col">Rubrik</th>
<th scope="col">Ringkasan</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Tanaman baru</th>
<td>Monstera variegata masuk stok hari Rabu.</td>
</tr>
<tr>
<th scope="row">Kelas menanam</th>
<td>Kelas media tanam dibuka Sabtu depan.</td>
</tr>
</tbody>
</table>
</main>
<footer>
<p>Toko Bunga Melati, Jl. Melati No. 10</p>
</footer>
</body>
</html>