Accessibility (a11y) testinin əsasları
Accessibility (a11y) — məhsulun əlilliyi olan istifadəçilər üçün istifadə oluna bilməsi: ekran oxuyucu (screen reader), yalnız klaviatura ilə naviqasiya, zəif görmə, rəng korluğu, motor məhdudiyyətlər. Standart: WCAG (səviyyələr A, AA, AAA — praktikada hədəf adətən AA).
QA üçün niyə vacibdir: (1) bir çox ölkədə hüquqi tələbdir (dövlət və maliyyə sektorunda xüsusilə); (2) istifadəçi bazasının real hissəsidir; (3) a11y düzəlişləri ümumi UX-i də yaxşılaşdırır (aydın label-lar, klaviatura dəstəyi hamıya lazımdır).
Ən vacib fikir Playwright kontekstində: getByRole('button', { name: 'Ödə' }) locator-u həm də a11y yoxlamasıdır. Əgər bu locator işləyirsə, deməli elementin düzgün role-u və əlçatan adı (accessible name) var — yəni ekran oxuyucu da onu "Ödə düyməsi" kimi oxuyacaq. Element <div onclick> olsaydı, locator tapmazdı.
Bu, çox güclü bir arqumentdir: user-yönümlü locator-lardan istifadə etmək, artıq bir a11y qatını pulsuz gətirir. İnterview-da bu əlaqəni qurmaq nadir və yaddaqalandır.
Avtomatik yoxlama: @axe-core/playwright paketi səhifəni WCAG qaydalarına görə skan edir və pozuntuları qaytarır (violations massivi: qaydanın id-si, təsir səviyyəsi, hansı elementlər).
Tutduğu tipik problemlər: alt mətni olmayan şəkillər, label-siz form sahələri, kifayət etməyən rəng kontrastı, səhv başlıq iyerarxiyası, lang atributunun olmaması, ARIA-nın səhv istifadəsi.
Kritik məhdudiyyət — mütləq bilinməli: avtomatik alətlər WCAG problemlərinin təxminən üçdə birini tutur. Qalanı insan qiymətləndirməsi tələb edir: alt mətni mövcuddur, amma məzmunu mənasızdırsa (alt="image1"); focus sırası məntiqli deyilsə; error mesajı ekran oxuyucuya elan olunmursa. Bu rəqəmi bilmək interview-da ciddi plus-dır, çünki alətə həddindən artıq güvənməmək göstəricisidir.
Əl ilə yoxlanan minimum (avtomatlaşdırmadan da edilə bilər):
- Klaviatura naviqasiyası — Tab ilə bütün interaktiv elementlərə çatmaq, focus-un görünməsi, modal-da focus trap, Esc ilə bağlanma
- Focus sırası — vizual sıra ilə uyğun olması
- Ekran oxuyucu ilə keçid — kritik axının (login, ödəniş) NVDA/VoiceOver ilə bir dəfə gəzilməsi
Praktik strategiya: axe skanı kritik səhifələr üçün CI-da avtomatik; klaviatura axını Playwright testi kimi; ekran oxuyucu yoxlaması dövri manual iş kimi.
| Problem | Avtomatik tutulur? | Yoxlama üsulu |
|---|---|---|
| Şəkildə alt atributu yoxdur | Bəli | axe skanı |
| alt var, amma mənasızdır (alt="img1") | Xeyr | İnsan review-u — məzmunun mənası qiymətləndirilir |
| Rəng kontrastı kifayət etmir | Bəli | axe skanı (WCAG AA nisbətləri) |
| Düymə `<div onclick>` kimi qurulub | Bəli | axe, həm də `getByRole` locator-un sınması |
| Tab sırası vizual sıra ilə uyğun deyil | Xeyr | Klaviatura ilə əl yoxlaması / hədəflənmiş test |
| Modal-da focus qapalı deyil (arxa fona keçir) | Qismən | Playwright testi: Tab dövrəsinin yoxlanması |
| Error mesajı ekran oxuyucuya elan olunmur | Qismən | role="alert"/aria-live yoxlaması + ekran oxuyucu |
İnterview-da yaddaqalan cavab: "Mən a11y-ni ayrıca iş kimi görmürəm — `getByRole` istifadə etdiyim üçün hər testim artıq element-səviyyəli a11y yoxlaması aparır; üstünə kritik səhifələrdə axe skanı və klaviatura axını testi əlavə edirəm." Sonra məhdudiyyəti də de: avtomatik alətlər problemlərin təxminən 1/3-ni tutur — bu rəqəm sənin mövzunu səthən deyil, real başa düşdüyünü göstərir.
📚 Mənbələr və sənədlər
- Accessibility testingrəsmiplaywright.dev
- WCAG standartlarırəsmiw3.org