Kebolehcapaian
Panduan ini akan membantu anda membina aplikasi web yang mudah diakses menggunakan sistem reka bentuk MYDS. Mengikuti garis panduan ini memastikan aplikasi anda mampu diguna oleh orang kelainan upaya (OKU) dan memenuhi piawaian WCAG 2.2.
Prinsip Teras
WCAG 2.2 dibina berdasarkan empat prinsip:
- Boleh Dicapai: Maklumat mestilah boleh disampaikan kepada pengguna dengan cara yang wajar
- Boleh Dikendali: Komponen antara muka mesti boleh dikendali oleh pelbagai jenis pengguna
- Boleh Difahami: Maklumat dan operasi mesti boleh difahami
- Mencukupi: Kandungan maklumat mesti mencukupi untuk berfungsi dengan pelbagai agen pengguna dan teknologi bantuan
Navigasi Papan Kekunci
Navigasi papan kekunci membolehkan pengguna berinteraksi dengan aplikasi anda tanpa menggunakan tetikus. Ia penting bagi pengguna yang mempunyai kelumpuhan fizikal atau mereka yang bergantung kepada teknologi pembaca skrin.
Keperluan
- Semua elemen interaktif mesti boleh diakses dengan papan kekunci
- Turutan fokus mesti intuitif & jelas
- Perangkap papan kekunci mesti dielakkan
- Pintasan papan kekunci harus boleh dikonfigurasi atau dielakkan
Petua Pelaksanaan
Petua Pengujian
- Cuba navigasi seluruh aplikasi anda menggunakan hanya Tab , Shift + Tab , Enter , dan Space
- Pastikan penunjuk fokus sentiasa kelihatan
- Sahkan bahawa urutan fokus mengikuti susun atur visual
Pengurusan Fokus
Pengurusan fokus memastikan bahawa pengguna boleh menavigasi aplikasi anda dengan cara yang boleh diramal dan cekap, sama ada secara visual atau auditori.
Keperluan
- Penunjuk fokus mesti kelihatan
- Fokus mesti diuruskan dengan betul apabila kandungan berubah
Petua Pelaksanaan
Nota
Menggunakan komponen Dialog
dari MYDS menguruskan semua ini untuk anda!
Petua Pengujian
- Pastikan fokus terperangkap dalam modals sehingga ia ditutup
- Selepas menutup modal, fokus harus kembali kepada elemen yang mencetuskannya
- Penunjuk fokus harus kelihatan dan menonjol (nisbah kontras minimum 3:1)
HTML Semantik dan ARIA
Keperluan
- Gunakan elemen HTML semantik bila mungkin
- ARIA hanya boleh digunakan apabila semantik HTML tidak mencukupi
- Pastikan semua atribut ARIA digunakan dengan betul
Petua Pelaksanaan
Petua Pengujian
- Sahkan penggunaan ARIA anda dengan alat automatik
- Uji dengan pembaca skrin untuk memastikan ARIA menyampaikan maklumat yang dimaksudkan
- Sahkan bahawa semua komponen tersuai mempunyai peranan dan keadaan yang sesuai
Borang dan Pengesahan
Keperluan
- Semua medan borang mesti mempunyai label yang berkaitan
- Mesej ralat mesti dikaitkan secara programatik dengan medan mereka
- Medan yang diperlukan mesti ditunjukkan dengan jelas
- Arahan untuk medan kompleks mesti disediakan
Petua Pelaksanaan
Petua Pengujian
- Pastikan semua kawalan borang mempunyai label yang kelihatan
- Sahkan bahawa pembaca skrin mengumumkan ralat pengesahan
- Periksa bahawa cadangan ralat memberikan panduan yang jelas untuk pembetulan
- Uji borang dengan papan kekunci sahaja dan pembaca skrin
Imej dan Media
Keperluan
- Semua imej mesti mempunyai teks alternatif
- Imej hiasan harus mempunyai atribut alt kosong
- Imej kompleks memerlukan penerangan terperinci
- Kandungan video memerlukan kapsyen dan transkrip
Petua Pelaksanaan
Petua Pengujian
- Semak semua imej dengan alat automatik untuk memastikan teks alt wujud
- Minta pakar kandungan menyemak teks alt untuk ketepatan dan kegunaan
- Pastikan imej hiasan disembunyikan dengan betul daripada pembaca skrin
Warna dan Kontras
Keperluan
- Teks mesti mempunyai nisbah kontras minimum 4.5:1 (3:1 untuk teks besar)
- Komponen UI memerlukan nisbah kontras minimum 3:1
- Maklumat tidak boleh disampaikan oleh warna sahaja
Petua Pelaksanaan
Petua Pengujian
- Gunakan alat pemeriksa kontras untuk semua teks dan elemen UI
- Uji halaman dalam skala kelabu untuk mengenal pasti maklumat yang bergantung pada warna
- Sahkan bahawa semua penunjuk status menggunakan pelbagai petunjuk (bentuk, teks, ikon)
Gerakan dan Animasi
Keperluan
- Benarkan pengguna untuk menjeda, menghentikan, atau menyembunyikan kandungan yang bergerak
- Elakkan kandungan yang berkelip lebih daripada tiga kali sesaat
- Hormati keutamaan gerakan yang dikurangkan
Petua Pelaksanaan
Petua Pengujian
- Uji dengan tetapan gerakan yang dikurangkan pada peringkat OS
- Pastikan semua animasi boleh dilumpuhkan
- Sahkan bahawa tiada kandungan yang berkelip dengan cepat
Komponen Interaktif
Keperluan
- Komponen tersuai mesti menggunakan peranan dan keadaan ARIA yang sesuai
- Widget kompleks mesti mengikuti amalan pengarang WAI-ARIA
- Sasaran sentuhan memerlukan saiz minimum 44x44px dengan jarak yang mencukupi
Petua Pelaksanaan
Petua Pengujian
- Sahkan bahawa semua komponen tersuai mempunyai peranan ARIA yang sesuai
- Uji widget kompleks dengan pembaca skrin untuk mengesahkan mereka mengumumkan perubahan keadaan
- Periksa bahawa sasaran sentuhan cukup besar pada peranti mudah alih
Struktur Halaman dan Navigasi
Keperluan
- Halaman mesti mempunyai struktur tajuk yang betul (h1-h6)
- Landmark mesti digunakan untuk mengenal pasti kawasan halaman
- Pautan lompat harus disediakan untuk kandungan yang berulang
- Tajuk halaman mesti deskriptif dan unik
Petua Pelaksanaan
Petua Pengujian
- Gunakan alat garis besar tajuk untuk mengesahkan struktur tajuk yang betul
- Uji navigasi dengan pembaca skrin untuk mengesahkan landmark diumumkan
- Sahkan bahawa pautan lompat berfungsi dan kelihatan apabila difokuskan
Kandungan dan Teks
Keperluan
- Teks mesti boleh dibesarkan sehingga 200% tanpa kehilangan kandungan
- Tahap bacaan harus menampung keupayaan yang pelbagai
- Akronim dan jargon harus ditakrifkan
- Susun atur harus mengalir semula pada 400% zoom tanpa tatal mendatar
Petua Pelaksanaan
Petua Pengujian
- Uji halaman pada 200% zoom untuk mengesahkan teks kekal boleh dibaca
- Uji dengan zoom teks sahaja pada pelayar
- Sahkan bahawa susun atur mengalir semula dengan betul pada 400% zoom tanpa tatal mendatar
Kriteria Kejayaan Baru WCAG 2.2
Keperluan
- Penampilan Fokus (2.4.11, AAA): Pastikan penunjuk fokus mempunyai kawasan minimum, kontras, dan tidak terhalang
- Pergerakan Seret (2.5.7, AA): Fungsi yang menggunakan seret mesti mempunyai kaedah alternatif
- Saiz Sasaran (2.5.8, AA): Saiz sasaran sekurang-kurangnya 24x24 piksel CSS (44x44 disyorkan)
- Bantuan Konsisten (3.2.6, A): Mekanisme bantuan seperti maklumat hubungan mesti konsisten
- Pengesahan Boleh Diakses (3.3.7, A): Ujian kognitif mesti mempunyai alternatif
- Kemasukan Berulang (3.3.8, A): Kurangkan kemasukan data yang berulang
- Kawalan Kelihatan (2.4.13, AA): Komponen antara muka pengguna yang didedahkan pada hover/fokus mesti boleh ditutup, boleh dihover, dan berterusan
Petua Pelaksanaan
Petua Pengujian
- Pastikan semua fungsi seret mempunyai alternatif papan kekunci
- Sahkan bahawa tooltip dan popover kekal kelihatan sehingga ditutup
- Uji aliran pengesahan untuk alternatif fungsi kognitif
Pengujian dan Pengesahan
Pengujian Automatik
- Integrasikan linting kebolehcapaian dalam aliran kerja pembangunan anda
- Jalankan ujian automatik sebagai sebahagian daripada pipeline CI/CD
- Gunakan alat seperti
jest-axe
untuk pengujian komponen
Nota
Kami juga mengesyorkan Storybook
dan suite addon pengujiannya jika anda
mempunyai pasukan kejuruteraan yang sederhana hingga besar.
Pengujian Manual
- Uji dengan navigasi papan kekunci
- Uji dengan pembaca skrin (NVDA, JAWS, VoiceOver)
- Uji dengan mod kontras tinggi
- Uji dengan pembesaran teks dan zoom
- Uji dengan tetapan gerakan yang dikurangkan
Alat
eslint-plugin-jsx-a11y
Plugin ESLint untuk peraturan kebolehcapaian
jest-axe
Ujian automatik untuk pipeline CI
IBM Equal Access Toolkit
Sambungan Chrome untuk ujian kebolehcapaian
Storybook
Persekitaran pembangunan UI yang lengkap