Məzmuna keç

Əlçatımlılıq, ARIA və WCAG

Əlçatımlılıq (çox vaxt a11y kimi qısaldılır — “a”, 11 hərf, “y”) hər kəsin istifadə edə biləcəyi səhifələr qurmaq deməkdir, o cümlədən ekran oxuyucusu, yalnız klaviatura ilə və ya zəif görmə ilə naviqasiya edənlər. Bu həm də test məsələsidir: Modul 11 @axe-core/playwright ilə avtomatik əlçatımlılıq auditi işlədir. Bu səhifə həmin auditin arxasındakı lüğəti izah edir.

O, DOM və HTML istinadı üzərində qurulur — rollar və əlçatan adlar orada izah olunub; bu səhifə standartları (WCAG), atributları (ARIA) və alətlərin nəyi yoxladığını əhatə edir.

WCAG (Web Content Accessibility Guidelines) əlçatımlı veb məzmunu üçün beynəlxalq standartdır. Onun qaydaları dörd prinsip — POUR — altında təşkil olunub:

PrinsipMənasıPozuntu nümunəsi
Perceivable (qavranıla bilən)istifadəçilər məzmunu qavraya biliralt mətni olmayan şəkil
Operable (idarə oluna bilən)istifadəçilər UI-ı idarə edə bilirklaviatura ilə çatmaq mümkün olmayan element
Understandable (anlaşıla bilən)məzmun və idarəetmə məntiqlidirlabel-i olmayan form sahəsi
Robust (möhkəm)köməkçi texnologiya ilə işləyirrolu olmayan xüsusi vidjet

WCAG-in həmçinin uyğunluq səviyyələri var — A (minimum), AA (ümumi hüquqi/sənaye hədəfi) və AAA (ən sərt). Əksər komandalar AA-ya hədəflənir.

ARIA — boşluqları doldurmaq

Bölmə: “ARIA — boşluqları doldurmaq”

Xalis HTML artıq məna daşıyır: <button> pulsuz button roluna malikdir (DOM istinadına bax). ARIA (Accessible Rich Internet Applications) native HTML-in ifadə edə bilmədiyi hallar üçün əlavə atributlar toplusudur — xüsusi vidjetlər, dinamik yeniləmələr və ya görünən mətni olmayan bir şeyi adlandırmaq.

AtributNə edir
role="…"teq edə bilmədikdə elementin nə olduğunu bildirir (role="dialog")
aria-label="Close"görünən mətn olmadıqda əlçatan ad verir
aria-labelledby="id"elementi başqa elementin mətni ilə adlandırır
aria-describedby="id"əlavə təsviri mətnə işarə edir (məs. ipucu)
aria-hidden="true"dekorativ məzmunu köməkçi texnologiyadan gizlədir
aria-expanded, aria-checkedvidjetin cari vəziyyətini ifşa edir

Modul 11 səhifəni skan etmək və violations massivi qaytarmaq üçün new AxeBuilder({ page }).analyze() istifadə edir. Hər pozuntunun pozulmuş qaydanı adlandıran bir id-si var. Ən çox avtomatik tutulan pozuntular:

axe qaydası idProblem
color-contrastmətn fonuna qarşı çox solğun (Qavranıla bilən pozuntusu)
image-altalt atributu olmayan <img>
labeləlaqəli label-i olmayan form sahəsi
link-name / button-nameəlçatan adı olmayan link və ya düymə
document-titlesəhifənin <title>-i yoxdur
html-has-lang<html> elementinin lang atributu yoxdur
import AxeBuilder from '@axe-core/playwright';
test('home page has no accessibility violations', async ({ page }) => {
await page.goto('/');
const results = await new AxeBuilder({ page }).analyze();
expect(results.violations).toEqual([]); // sıfır pozuntu
});

Avtomatlaşdırma nəyi edə bilər və nəyi edə bilməz

Bölmə: “Avtomatlaşdırma nəyi edə bilər və nəyi edə bilməz”

axe kimi avtomatik alətlər WCAG problemlərinin təxminən 30–40%-ni tutur — mexaniki olanları (kontrast, çatışmayan alt, çatışmayan label-lar). Onlar alt mətninin mənalı olub-olmadığını, tab sırasının məntiqli olub-olmadığını və ya ekran oxuyucusu təcrübəsinin əslində məntiqli olub-olmadığını mühakimə edə bilmir. Bunlar klaviatura və ekran oxuyucusu ilə əl ilə test tələb edir. axe-in keçməsi “tam əlçatımlı” deyil, “açıq maşın-aşkarlana bilən pozuntu yoxdur” deməkdir.

a11y əlçatımlılıq (a + 11 hərf + y)
WCAG standart; uyğunluq səviyyələri A / AA / AAA (AA hədəflə)
POUR Perceivable, Operable, Understandable, Robust
role elementin nə olduğu (native HTML üstün tut; ARIA yalnız lazım olanda)
aria-label görünən mətn olmadıqda əlçatan ad
aria-labelledby / -describedby başqa element ilə adlandır / təsvir et
aria-hidden dekorativ məzmunu köməkçi texnologiyadan gizlət
axe qayda id-ləri color-contrast, image-alt, label, link-name, button-name
AxeBuilder new AxeBuilder({ page }).analyze() → violations (Modul 11)
qeyd avtomatlaşdırma ~30–40% tutur; qalanı əl ilə test tələb edir