Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time
Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time

Kebanyakan developer menganggap accessibility itu 'nggak urgent' sampai mereka kena lawsuit. Belajar WCAG 2.2, prinsip POUR, dan teknik implementasi yang bisa langsung kamu terapin sebelum digital kamu jadi mimpi buruk legal — dan yang lebih penting, tentang kemanusiaan.
"The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect." — Tim Berners-Lee, W3C Director

3 Alasan Cepat:
1,3 miliar penyandang disabilitas global. 97% homepage tidak memenuhi standar dasar. Pasar assistive technology: $30 miliar+.
Accessibility (A11y) = praktik membuat produk digital bisa digunakan oleh semua orang, termasuk penyandang disabilitas.
| Property | Type | Description |
|---|---|---|
| ADA — Americans with Disabilities Act | Hukum | Legal compliance di AS. Website bisa dituntut jika tidak accessible. |
| WCAG — Web Content Accessibility Guidelines | Teknis | Standar global dari W3C. Jadi acuan implementasi. |
graph TD
A[WCAG POUR] --> B[Perceivable]
A --> C[Operable]
A --> D[Understandable]
A --> E[Robust]
B --> B1[Alt text]
B --> B2[Caption/Transkrip]
B --> B3[Kontras warna 4.5:1]
C --> C1[Keyboard navigation]
C --> C2[Skip links]
C --> C3[No keyboard trap]
D --> D1[Language jelas]
D --> D2[Navigasi konsisten]
D --> D3[Error suggestions]
E --> E1[Valid HTML]
E --> E2[ARIA tepat]
E --> E3[Screen reader compatible]
| Property | Type | Description |
|---|---|---|
| Visual | Screen reader (JAWS, NVDA, VoiceOver) | Alt text, kontras tinggi, keyboard nav |
| Motorik | Switch access, voice control | Target besar, keyboard nav, respons lama |
| Auditif | Hearing aids, captioning | Transkrip, caption, visual alerts |
| Kognitif | Screen magnifiers, reading assistants | Konten sederhana, nav konsisten |
Requirements dasar. Jika miss, website akan fail accessibility test.
Target kebanyakan regulasi. Compliance yang reasonable untuk kebanyakan organisasi.
Full compliance jarang diperlukan. Strictest requirements.
Targetkan WCAG AA sebagai baseline compliance. Ini yang kebanyakan regulasi international pakai.
4 Risiko Utama:
| Risiko | Dampak |
|---|---|
| Legal | Lawsuit di US/EU market — bisa sangat mahal |
| Users | 15-20% populasi dengan keterbatasan tidak bisa pakai |
| SEO | Struktur HTML buruk = SEO suffers |
| Brand | Non-inclusive = brand image rusak |
Versi terbaru (Oktober 2023) menambahkan 9 Success Criteria baru:
Element dengan focus tidak boleh tersembunyi oleh sticky headers.
Focus indicator harus kontras 3:1+ dan area yang cukup besar.
Semua drag-and-drop harus punya alternatif single-pointer (button up/down).
Interactive targets minimal 24x24 CSS pixels.
Clearance yang cukup untuk target yang lebih kecil.
Help mechanism di satu page = help di semua page dengan posisi konsisten.
Jangan minta informasi yang sudah di-input sebelumnya.
CAPTCHA cognitive puzzles tidak diperbolehkan — berikan alternatif.
Tidak ada bagian focused element yang boleh tersembunyi.
| Property | Type | Description |
|---|---|---|
| Title I | Employment | Employees dengan disabilitas harus dapat akomodasi reasonable |
| Title III | Public Access | Public accommodations — termasuk websites — tidak boleh diskriminasi |
Sejak Facebook v. Nizzud (2019) dan Domino's Pizza v. Laredo (2019), courts secara konsisten memutuskan ADA berlaku untuk websites.
Untuk entitas federal AS, semua EICT harus memenuhi standar Access Board.
Gunakan element HTML sesuai fungsinya:
<!-- ❌ Bad: Tidak semantic -->
<div class="header">
<div class="nav">
<div class="logo">Brand</div>
</div>
</div>
<!-- ✅ Good: Semantic dengan landmarks -->
<header>
<nav aria-label="Main navigation">
<a href="/" aria-label="Home">Brand</a>
</nav>
</header>
<main id="main-content">
<article>...</article>
</main>
<footer>...</footer>Gunakan <button> bukan <div> untuk interactive elements. Screen reader perlu tahu ini button.
| Property | Type | Description |
|---|---|---|
| Decorative | <img src="divider.svg" alt=""> | Kosong (alt="") |
| Informative | <img src="dashboard.png" alt="Dashboard dengan 3 alerts"> | Deskripsi singkat |
| Complex | alt="Chart..." + link | Deskripsi detail + link ke deskripsi lengkap |
Pastikan tab order mengikuti reading order visual. Hindari positive tabindex.
Jangan hilangkan outline tanpa pengganti yang jelas.
Pastikan tidak ada element yang trap keyboard user.
Berikan mekanisme untuk disable/remap single-key shortcuts.
/* ✅ Good: Focus indicator yang jelas */
:focus-visible {
outline: 3px solid #005fcc;
outline-offset: 2px;
}
/* ❌ Bad: outline: none tanpa alternatif */
button:focus {
outline: none;
}
<!-- Letakkan di first element body -->
<a href="#main-content" class="skip-link">
Skip to main content
</a>.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #005fcc;
color: white;
padding: 8px 16px;
z-index: 100;
}
.skip-link:focus {
top: 0;
}:root {
/* ✅ Good: Contrast sufficient */
--text-primary: #1a1a2e; /* 15.5:1 against white */
--text-secondary: #4a4a68; /* 7.2:1 against white */
/* ❌ Bad: Contrast insufficient */
--text-muted: #888888; /* 2.8:1 against white */
}Jika HTML native sudah cukup, gunakan HTML. ARIA tidak bikin element lebih accessible — cuma menambah informasi untuk assistive technology.
// ❌ Bad: ARIA tidak perlu
<div role="button" tabindex="0" onClick={handleClick}>
Submit
</div>
// ✅ Good: HTML native
<button type="submit">Submit</button>
// ❌ Bad: Label tidak terhubung
<input type="text" placeholder="Email" />
// ✅ Good: Explicit association
<label htmlFor="email">Email</label>
<input id="email" type="email" /><label htmlFor="password">Password</label>
<input
id="password"
type="password"
aria-describedby="password-requirements password-error"
aria-invalid="true"
/>
<p id="password-requirements">
Minimal 8 karakter, 1 huruf besar, 1 angka
</p>
<p id="password-error" role="alert">
Password harus mengandung minimal 8 karakter
</p>Google Lighthouse
Built-in Chrome DevTools. Quick audit dengan score + suggestions.
npx lighthouse https://example.com --only-categories=accessibilityaxe DevTools
Lebih akurat dari Lighthouse. Ada versi CI/CD.
npm install @axe-core/reactPa11y
CLI tool — cocok untuk pipeline automation.
npx pa11y https://example.comAccessibility Insights
Step-by-step audit + guided fixes dari Microsoft.
Opinion: 80% dev skip screen reader testing. Ini biggest blind spot.
Testing dengan assistive technology yang real adalah satu-satunya cara tahu user experience yang sebenarnya.
| Property | Type | Description |
|---|---|---|
| NVDA | Windows / Firefox | General Windows accessibility |
| JAWS | Windows / Chrome/Edge | Enterprise environments |
| VoiceOver | macOS/iOS / Safari | Apple ecosystem |
| TalkBack | Android / Chrome | Mobile accessibility |
| Orca | Linux / Firefox | Linux desktop |
| Property | Type | Description |
|---|---|---|
| WebAIM Contrast Checker | Web Tool | Validasi color contrast ratio |
| Stark (Figma/Sketch) | Design Plugin | Design-time checking |
prefers-reduced-motion?| Property | Type | Description |
|---|---|---|
| Caption telehealth real-time | Healthcare | Pasien mungkin tuli atau hard of hearing |
| Alternative untuk medical devices | Medical Devices | Data dari glucose/BP monitors harus accessible |
| Multi-language support | Localization | Patient populations yang diverse |
| Cognitive load management | Cognitive Accessibility | Elderly/cognitively impaired sering pakai portals |
| Emergency accessibility | Emergency Response | Critical alerts harus accessible semua modes |
Di healthcare, compliance bukan cuma WCAG — harus selaras dengan HIPAA Privacy Rule. Beberapa akomodasi accessibility harus mempertimbangkan implikasi HIPAA.
Treat accessibility seperti vulnerability. Broken accessibility = UX vulnerability. Sama seperti security, harus diintegrasi dari awal.
Jika API harus predictable untuk machine, maka UI harus predictable untuk manusia dengan berbagai keterbatasan.
Engineer yang paham ini biasanya:
Tanpa ini:
Dengan ini:

Accessibility bukan feature yang ditambahkan di akhir — ia adalah fundamental architecture principle.
Accessibility yang baik = good design. Ketika kita membangun untuk edge cases, seluruh user experience meningkat.
Digital yang truly universal = digital yang bekerja untuk semua orang, tanpa terkecuali.
| Property | Type | Description |
|---|---|---|
| WCAG 2.2 Quick Reference | w3.org/WAI/WCAG22/quickref | Quick reference guide for WCAG 2.2 |
| WAI ARIA Documentation | w3.org/WAI/ARIA | Official WAI ARIA documentation |
| WebAIM Contrast Checker | webaim.org/resources/contrastchecker | Validate color contrast ratio |
| axe DevTools | deque.com/axe/devtools | Accessibility testing tool by Deque |
| Accessibility Insights | accessibilityinsights.io | Microsoft's accessibility auditing tool |
| Inclusive Components | inclusive-components.design | Pattern library for accessible components |
Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time

Real-time Order Tracking Q-Commerce: Driver Bergerak di Peta Live


Promo & Voucher Engine Q-Commerce: Rule Engine Anti-Abuse
