AA düzeyi gerçekte ne demek
WCAG üç düzeyden oluşur. A tabandır, AA Avrupa ihalelerinin ve EN 301 549'un dayandığı düzeydir, AAA ise kimsenin bütün bir sitede ulaşması beklenmeyen bir hedeftir. Bir ihale “WCAG 2.2 AA” istiyorsa, kapsamdaki her sayfada, kullanıcının ulaşabildiği her durumda, bütün A ve AA başarı ölçütlerini kastediyordur.
Başarı ölçütleri teknik tarifleri değil, denetlenebilir ifadelerdir. “Karşıtlık (en az)” hangi belirteci değiştireceğinizi söylemez; bir metnin geçmesi gereken ölçülmüş oranı söyler. Bu ayrım bir denetimde önemlidir: bir bulgu, bir aracı değil ölçütü, ögeyi ve ölçümü adlandırdığında savunulabilir olur.
Bir site bütün olarak geçmez ya da kalmaz. Uygunluk sayfa başına beyan edilir ve bir sayfadaki tek bir uygunsuz öge o sayfanın beyanını ortadan kaldırır. Sürekli izlemenin tek seferlik denetimi geçmesinin sebebi budur: bir tema güncellemesi yüz sayfanın beyanını bir anda geçersizleştirebilir.
WCAG 2.2'nin eklediği dokuz ölçüt
Altısı A ya da AA düzeyindedir, yani bir EN 301 549 değerlendirmesinin kapsamındadır. Son sütun, bunu bir tarayıcının mı yoksa bir insanın mı değerlendireceğini söyler.
| BÖ | Ad | Düzey | Nasıl denetlenir |
|---|---|---|---|
| 2.4.11 | Odak örtülmüyor (en az) | AA | elle |
| 2.4.12 | Odak örtülmüyor (genişletilmiş) | AAA | elle |
| 2.4.13 | Odak görünümü | AAA | elle |
| 2.5.7 | Sürükleme hareketleri | AA | elle |
| 2.5.8 | Hedef boyutu (en az) | AA | otomatik |
| 3.2.6 | Tutarlı yardım | A | elle |
| 3.3.7 | Yinelenen giriş | A | elle |
| 3.3.8 | Erişilebilir kimlik doğrulama (en az) | AA | kısmen otomatik |
| 3.3.9 | Erişilebilir kimlik doğrulama (genişletilmiş) | AAA | elle |
Tarayıcı neyi denetler, kural kural
Her otomatik kural iki göndermeyi birden taşır; böylece tek bir bulgu, geliştirici için bir WCAG başarı ölçütü, inceleyen için bir EN 301 549 maddesi olarak okunur. Bunlar genel eşleme tablosuna yerleştirilmiş kurallardır; üründeki katalog daha geniştir ve merkezden yönetilir.74 rules seeded
| Kural | What it detects | WCAG | EN 301 549 | Tipik etki |
|---|---|---|---|---|
| accesskeys | İki öge aynı erişim tuşunu istiyor | 2.1.1 | 9.2.1.1 | serious |
| area-alt | Alternatif metni olmayan görsel harita bölgesi | 1.1.1, 2.4.4, 4.1.2 | 9.1.1.1, 9.2.4.4, 9.4.1.2 | critical |
| aria-allowed-attr | Bu rolde ARIA özniteliğine izin verilmiyor | 4.1.2 | 9.4.1.2 | critical |
| aria-command-name | Adı olmayan özel düğme, bağlantı ya da menü ögesi | 4.1.2 | 9.4.1.2 | serious |
| aria-hidden-body | Belgenin tamamı yardımcı teknolojiden gizlenmiş | 4.1.2 | 9.4.1.2 | critical |
| aria-hidden-focus | Odaklanabilir öge yardımcı teknolojiden gizlenmiş | 1.3.1, 4.1.2 | 9.1.3.1, 9.4.1.2 | serious |
| aria-input-field-name | Erişilebilir adı olmayan özel giriş alanı | 4.1.2 | 9.4.1.2 | serious |
| aria-meter-name | Erişilebilir adı olmayan ölçer | 1.1.1 | 9.1.1.1 | serious |
| aria-progressbar-name | Erişilebilir adı olmayan ilerleme göstergesi | 1.1.1 | 9.1.1.1 | serious |
| aria-required-attr | ARIA rolünde zorunlu öznitelik eksik | 4.1.2 | 9.4.1.2 | critical |
| aria-required-children | Bileşik rol, zorunlu alt rolleri olmadan | 1.3.1 | 9.1.3.1 | critical |
| aria-required-parent | ARIA rolü zorunlu kapsayıcısının dışına konmuş | 1.3.1 | 9.1.3.1 | critical |
| aria-roles | Rol değeri tanınan bir ARIA rolü değil | 4.1.2 | 9.4.1.2 | critical |
| aria-toggle-field-name | Erişilebilir adı olmayan onay kutusu, radyo düğmesi ya da anahtar | 4.1.2 | 9.4.1.2 | serious |
| aria-tooltip-name | Metni olmayan ipucu rolü | 4.1.2 | 9.4.1.2 | serious |
| aria-valid-attr | Öznitelik adı geçerli bir ARIA özniteliği değil | 4.1.2 | 9.4.1.2 | critical |
| aria-valid-attr-value | ARIA özniteliği çözülemeyen bir değere işaret ediyor | 4.1.2 | 9.4.1.2 | critical |
| audio-caption | Altyazı ya da deşifre izi olmayan ses | 1.2.1 | 9.1.2.1 | critical |
| autocomplete-valid | autocomplete değeri tanınmadı | 1.3.5 | 9.1.3.5 | serious |
| avoid-inline-spacing | Metin aralığı satır içi stille kilitlenmiş | 1.4.12 | 9.1.4.12 | serious |
| blink | Durdurulamayan yanıp sönen içerik | 2.2.2 | 9.2.2.2 | serious |
| button-name | Erişilebilir adı olmayan düğme | 4.1.2 | 9.4.1.2 | critical |
| bypass | Yinelenen gezinmeyi atlamanın yolu yok | 2.4.1 | 9.2.4.1 | serious |
| color-contrast | Metin karşıtlığı gerekli oranın altında | 1.4.3 | 9.1.4.3 | serious |
| css-orientation-lock | İçerik tek ekran yönüne kilitlenmiş | 1.3.4 | 9.1.3.4 | serious |
| definition-list | Tanım listesi yanlış alt ögelerden kurulmuş | 1.3.1 | 9.1.3.1 | serious |
| dlitem | Tanım terimi ya da açıklaması listenin dışında | 1.3.1 | 9.1.3.1 | serious |
| document-title | Sayfanın başlığı yok | 2.4.2 | 9.2.4.2 | serious |
| duplicate-id-active | Etkileşimli ögede yinelenen id | 4.1.1 | 9.4.1.1 | serious |
| empty-heading | Metni olmayan başlık | 1.3.1 | 9.1.3.1 | minor |
| empty-table-header | Metni olmayan tablo başlık hücresi | 1.3.1 | 9.1.3.1 | minor |
| focus-order-semantics | Etkileşimli rolü olmayan odaklanabilir öge | 2.4.3 | 9.2.4.3 | minor |
| form-field-multiple-labels | Birden çok etikete bağlı alan | 3.3.2 | 9.3.3.2 | moderate |
| frame-title | Başlığı olmayan çerçeve | 2.4.1, 4.1.2 | 9.2.4.1, 9.4.1.2 | serious |
| heading-order | Başlık düzeyi atlanmış | 1.3.1 | 9.1.3.1 | moderate |
| html-has-lang | Sayfa dili belirtilmemiş | 3.1.1 | 9.3.1.1 | serious |
| html-lang-valid | Sayfanın dil kodu geçerli değil | 3.1.1 | 9.3.1.1 | serious |
| html-xml-lang-mismatch | lang ile xml:lang uyuşmuyor | 3.1.1 | 9.3.1.1 | moderate |
| identical-links-same-purpose | Aynı metne sahip bağlantılar farklı yerlere gidiyor | 2.4.9 | 9.2.4.9 | minor |
| image-alt | Metin alternatifi olmayan görsel | 1.1.1 | 9.1.1.1 | critical |
| input-button-name | Değeri ya da etiketi olmayan giriş düğmesi | 4.1.2 | 9.4.1.2 | critical |
| input-image-alt | Alternatif metni olmayan görsel düğme | 1.1.1, 4.1.2 | 9.1.1.1, 9.4.1.2 | critical |
| label | Programatik etiketi olmayan form alanı | 1.3.1, 4.1.2 | 9.1.3.1, 9.4.1.2 | critical |
| landmark-banner-is-top-level | Banner işareti başka bir bölgenin içine yerleştirilmiş | 1.3.1 | 9.1.3.1 | moderate |
| landmark-complementary-is-top-level | Complementary işareti başka bir bölgenin içine yerleştirilmiş | 1.3.1 | 9.1.3.1 | moderate |
| landmark-no-duplicate-main | Sayfada birden çok main işareti | 1.3.1 | 9.1.3.1 | moderate |
| landmark-one-main | Sayfada tek bir main işareti yok | 1.3.1, 2.4.1 | 9.1.3.1, 9.2.4.1 | moderate |
| landmark-unique | İki işaret aynı rolü ve adı paylaşıyor | 1.3.1 | 9.1.3.1 | moderate |
| link-name | Ayırt edilebilir metni olmayan bağlantı | 2.4.4, 4.1.2 | 9.2.4.4, 9.4.1.2 | serious |
| list | Liste, liste ögesi olmayan ögeler içeriyor | 1.3.1 | 9.1.3.1 | moderate |
| listitem | Liste ögesi listenin dışında | 1.3.1 | 9.1.3.1 | serious |
| marquee | Kayan marquee içeriği | 2.2.2 | 9.2.2.2 | serious |
| meta-viewport | Yakınlaştırma viewport meta etiketiyle kapatılmış | 1.4.4 | 9.1.4.4 | serious |
| nested-interactive | Etkileşimli denetim bir diğerinin içine yerleştirilmiş | 4.1.2 | 9.4.1.2 | serious |
| no-autoplay-audio | Ses kendiliğinden başlıyor ve üç saniyeden uzun sürüyor | 1.4.2 | 9.1.4.2 | moderate |
| object-alt | Metin alternatifi olmayan gömülü nesne | 1.1.1 | 9.1.1.1 | serious |
| p-as-heading | Başlık gibi görünsün diye biçimlendirilmiş paragraf | 1.3.1 | 9.1.3.1 | serious |
| page-has-heading-one | Sayfada birinci düzey başlık yok | 1.3.1 | 9.1.3.1 | moderate |
| presentation-role-conflict | Sunum rolü başka biçimlendirmeyle geçersiz kılınmış | 4.1.2 | 9.4.1.2 | minor |
| region | İçerik hiçbir işaretin içinde değil | 1.3.1 | 9.1.3.1 | moderate |
| role-img-alt | img rolündeki ögenin alternatif metni yok | 1.1.1 | 9.1.1.1 | serious |
| scrollable-region-focusable | Kaydırılabilir alana klavyeyle erişilemiyor | 2.1.1 | 9.2.1.1 | serious |
| select-name | Erişilebilir adı olmayan seçim ögesi | 1.3.1, 4.1.2 | 9.1.3.1, 9.4.1.2 | critical |
| server-side-image-map | Sunucu taraflı görsel harita kullanılıyor | 2.1.1 | 9.2.1.1 | minor |
| summary-name | Adı olmayan açılır öğe özeti | 4.1.2 | 9.4.1.2 | serious |
| svg-img-alt | Anlam taşıyan SVG'nin metin alternatifi yok | 1.1.1 | 9.1.1.1 | serious |
| tabindex | Pozitif tabindex doğal odak sırasını bozuyor | 2.4.3 | 9.2.4.3 | serious |
| table-fake-caption | Tablo başlığı, öyle işaretlenmek yerine altyazı gibi biçimlendirilmiş | 1.3.1 | 9.1.3.1 | serious |
| target-size | Dokunma hedefi 24 × 24 pikselden küçük | 2.5.8 | 9.2.5.8 | moderate |
| td-has-header | Büyük tablodaki veri hücresinin başlığı yok | 1.3.1 | 9.1.3.1 | serious |
| td-headers-attr | Veri hücresi bir başlıkla ilişkilendirilmemiş | 1.3.1 | 9.1.3.1 | serious |
| th-has-data-cells | Bağlı veri hücresi olmayan tablo başlığı | 1.3.1 | 9.1.3.1 | serious |
| valid-lang | Bir bölümün dili geçerli bir kod değil | 3.1.2 | 9.3.1.2 | serious |
| video-caption | Altyazı izi olmayan video | 1.2.2 | 9.1.2.2 | critical |
Otomasyon neyi görebilir, neyi göremez
Conforma'daki her puanın yanında aynı cümle durur, çünkü sayı resmin yalnızca bir bölümüdür. Otomatik kurallar ölçülebilir özelliklerde çok iyidir ve niyete kördür.
Otomatik test, erişilebilirlik engellerinin yalnızca bir bölümünü kapsar. Eksiksiz bir değerlendirme için elle doğrulama gerekir.
Conforma WCAG 2.2 AA'yı nasıl denetler
- Otomatik kurallar bir taramanın her sayfasında çalışır ve her ihlal; kuralı, seçicisi, HTML parçası ve ögenin yerindeki ekran görüntüsüyle birlikte bir bulgu olarak yazılır.
- Her bulgu iki göndermeyi de taşır: WCAG başarı ölçütü ve EN 301 549 maddesi. Böylece bir rapor geliştiriciye de satın alma incelemecisine de aynı şeyi söyler.
- Bulgulara kural, seçici ve yoldan bir parmak izi çıkarılır. Bir dağıtımdan sonra geri dönen bir düzeltme, sessizce yeni iş sayılmak yerine gerileme olarak bildirilir.
- Elle kontrol listesi, kuralların değerlendiremediğini kapsar: video kanıtı, kullanılan yardımcı teknoloji ve adı belli bir denetleyiciyle; ve otomatik çalıştırmayla aynı kanıt paketine mühürlenir.
Bu konuda gelen sorular
WCAG 2.2 AA, Erişilebilirlik Yasası'nı karşılamakla aynı şey mi?
Hayır. European Accessibility Act yasadır, EN 301 549 bunu göstermekte kullanılan uyumlaştırılmış standarttır ve EN 301 549 web içeriği için WCAG 2.2 AA düzeyine gönderme yapar. AA'yı karşılamak bir beyanın teknik dayanağıdır, sertifika değildir.
2.1'den 2.2'ye şimdi geçmeli miyiz?
Yeni olan her şey için güvenli yanıt evettir. WCAG 2.2 geriye dönük uyumludur: 2.2'yi karşılayan içerik 2.1'i de karşılar; yeni sürüme göre denetlemek bir şeye mal olmaz ve ikisini birden kapsar.
Kusursuz bir otomatik puan sitenin uygun olduğu anlamına gelir mi?
Taranan sayfalarda otomatik olarak saptanabilen bir ihlal bulunmadığı anlamına gelir. Herhangi bir iddiada bulunulmadan önce klavye kullanımı, odak sırası ve ekran okuyucu akışı hâlâ bir insan ister.