Membuat desain yang bisa dipakai semua orang: memahami WCAG 2.2 dan draft 3.0, prinsip POUR, keyboard navigation, screen reader, dan kontras warna, lalu menjalankan audit aksesibilitas pada KasirKita dengan Stark dan axe serta memperbaiki temuan-temuannya.

Setelah di episode 12 desain KasirKita dibakukan ke design system, pada episode ini kita memastikan sistem itu dapat dipakai oleh semua orang — termasuk pengguna disabilitas. Accessibility (a11y) bukan fitur tambahan; di 2026 ia persyaratan hukum (EU Accessibility Act) dan inti kualitas produk.
Mengapa penting? Satu dari 12 pria mengalami buta warna; jutaan orang mengandalkan keyboard, screen reader, atau pembesaran layar. KasirKita dipakai pemilik warung usia 55+ dengan penglihatan menurun. Desain yang mengabaikan aksesibilitas bukan sekadar tidak inklusif — ia menghalangi pelanggan nyata.
WCAG (Web Content Accessibility Guidelines) adalah standar aksesibilitas internasional dari W3C/WAI. Versi aktif: WCAG 2.2; versi 3.0 masih dalam draft. Level kepatuhan: A (dasar), AA (target umum, diadopsi EU Accessibility Act), AAA (ketat).
| Fitur utama | WCAG 2.2 (baru di 2.1/2.2) |
|---|---|
| Target sentuh | Ukuran target minimum 24×24 CSS px |
| Focus appearance | Indikator fokus keyboard minimal 2px yang terlihat |
| Dragging | Alternatif interaksi tanpa drag |
| Target size | Target 24×24 px dengan pengecualian tertentu |
Draft WCAG 3.0 menggeser model dari "lulus/gagal" ke skor kesalahan (outcomes), dengan pendekatan lebih fleksibel & mencakup kognitif — tetapi untuk saat ini kalian tetap implementasi WCAG 2.2 AA.
WCAG dibangun di atas empat prinsip — POUR:
| Prinsip | Arti | Contoh kepatuhan |
|---|---|---|
| Perceivable | Bisa dirasakan indra | Alt text, kontras, bukan hanya warna |
| Operable | Bisa dioperasikan | Navigasi keyboard, target besar |
| Understandable | Bisa dipahami | Bahasa jelas, error yang bisa dipulihkan |
| Robust | Bisa dipakai berbagai alat | Semantik HTML, kompatibel screen reader |
Setiap kriteria WCAG masuk ke salah satu prinsip ini. Saat audit, tanyakan: apakah pengguna bisa melihatnya (P), mengoperasikannya (O), memahaminya (U), dan apakah teknologi bantu bisa membaca strukturnya (R)?
Pengguna yang tidak bisa memakai mouse mengandalkan keyboard. Kepatuhan dasarnya:
Tab bergerak maju, Shift+Tab mundur.Contoh urutan tab yang benar di layar Konfirmasi KasirKita: tombol back → daftar item → tombol Batal → tombol Konfirmasi. Jangan sampai fokus melompat acak karena susunan layer di Figma tidak teratur.
<div role="dialog" aria-modal="true" aria-labelledby="hapus-title">
<h2 id="hapus-title">Hapus produk ini?</h2>
<button>Batal</button>
<button>Hapus</button>
</div>Screen reader membacakan layar untuk pengguna tunanetra. Yang wajib dipahami desainer:
alt="Ilustrasi stok kosong" — bukan alt="img001.png".aria-live), supaya pengguna screen reader tahu "produk ditambahkan".Dua area yang paling sering gagal audit:
/* Kontras teks normal >= 4.5:1, target sentuh >= 44x44 (panduan kuat) */
.tombol-bayar {
min-height: 44px; /* target nyaman untuk jempol */
color: #FFFFFF;
background: #0E7490; /* kontras 5.6:1 */
}
.hint-error {
color: #B91C1C; /* kontras terhadap #FFFFFF = 5.9:1 */
}Aturan praktis kontras: teks normal 4.5:1, teks besar & elemen UI 3:1. Ukuran target sentuh: 44×44px untuk jempol (WCAG 2.2 minimum 24×24, praktik industri 44-48).
Tip
Gunakan Stark (Figma) selama mendesain untuk cek kontras real-time, dan axe DevTools (browser) untuk audit produk hidup. Gabungan keduanya menutup celah: Stark menangkap masalah di fase desain, axe menangkap masalah di implementasi — dua hal yang berbeda.
Audit file KasirKita:
Warning
Aksesibilitas yang benar-benar berhasil hanya bisa dipastikan dengan menguji bersama pengguna disabilitas nyata — screen reader dan keyboard tidak bisa disimulasikan sepenuhnya dengan mata. Jadwalkan sesi ini minimal sekali per rilis besar; hasilnya selalu mengejutkan.
alt="" hanya untuk gambar dekoratif; konten informatif butuh deskripsi.Pada episode 13 ini, kalian telah memahami standar aksesibilitas dan menjalankan audit pertama KasirKita.
Inti yang harus dibawa pulang:
Di episode 14 selanjutnya kita akan memastikan KasirKita nyaman di semua perangkat: mobile-first & responsive design — mobile-first, breakpoints, thumb zone, dan adaptive/fluid layout. Sampai jumpa di episode 14!