Çerez Onayı Erişilebilirliği: Onay Bannerları için WCAG 2.2 Uyumu
Klavye kullanıcılarının kapatamadığı, ekran okuyucularının duyuramadığı veya renk körü ziyaretçilerin okuyamadığı bir çerez bannerı yalnızca kötü bir UX değil — iki açıdan bir uyumluluk başarısızlığıdır. Avrupa Erişilebilirlik Yasası Haziran 2025'te yürürlüğe girdiğinden bu yana, AB kullanıcılarına hizmet veren ticari web sitelerindeki onay arayüzleri WCAG 2.1 AA Seviyesini karşılamak zorunda olup WCAG 2.2, 2026 için güçlü bir şekilde önerilmektedir. GDPR'ın onayın "özgürce verilen, belirli, bilgilendirilmiş ve belirsizlik içermeyen" olması gerektiği şartıyla birleşince, erişilemeyen bannerlar artık çifte yasal risk taşımaktadır. Bu kılavuz, 2026'da WCAG uyumlu bir çerez bannerının tam olarak nasıl göründüğünü açıklamaktadır.
Erişilebilirlik ve Onay Neden Artık Örtüşüyor
GDPR, onayın bir bannerı görüp tıklayabilenlerden değil, her kullanıcıdan alınabilmesini gerektirir. Avrupa Veri Koruma Kurulu, bir veri sahibinin — sitenin uyum sağlamadığı bir engellilik nedeniyle — onay arayüzüyle anlamlı biçimde etkileşime giremiyorsa onayın geçerli olarak alınmadığını açıklamıştır. Bu, çerezlerin hiç yüklenmemesi gerektiği anlamına gelir.
Erişilebilirlik tarafında, AB üye devletlerinde ulusal mevzuata aktarılan Avrupa Erişilebilirlik Yasası (EAA), tüketici hizmetleri sunan özel sektör web siteleri ve uygulamaları için WCAG 2.1 AA'yı asgari standart haline getirmektedir. Yaptırım rejimi ülkeye göre değişmekle birlikte genellikle ihlal başına 50.000 € ile 500.000 € arasında değişmekte; süregelen uyumsuzluk için piyasadan çekme kararları da dahil olmaktadır.
Çerez Bannerları için Temel WCAG Gereksinimleri
Klavye ile Kullanılabilirlik
Her banner denetimi — Kabul Et, Reddet, Tercihleri Yönet, kapat — yalnızca klavye ile erişilebilir ve kullanılabilir olmalıdır. Kullanıcılar, Tab tuşuyla mantıklı bir sırayla düğmeler arasında gezinebilmeli ve bunları Enter veya Space ile etkinleştirebilmelidir. Odak, arka plana karşı en az 3:1 kontrast oranıyla görünür olmalıdır.
Modal Bannerlarda Odak Kilitleme
Banner sayfanın geri kalanıyla etkileşimi engelliyorsa, klavye odağı kullanıcı bir seçim yapana kadar banner içinde kilitli kalmalıdır. Kullanıcılar, alttaki sayfada gezinmek için Tab tuşuyla bannerdan çıkabilmemelidir. Odak kilitliyken banner kapandığında, odak banneri tetikleyen öğeye veya makul bir varsayılana dönmelidir.
Ekran Okuyucu Duyuruları
Banner, erişilebilir bir ada ve role sahip bir iletişim kutusu olarak duyurulmalıdır. role="dialog" veya role="alertdialog" ile banner başlığına işaret eden aria-labelledby ve açıklayıcı metne işaret eden aria-describedby kullanın.
Renk Kontrastı
Gövde metni arka plana karşı 4,5:1 kontrast karşılamalıdır; büyük metin (18pt+ veya 14pt kalın) 3:1 gerektirir. Düğme metni, simgeler ve odak göstergeleri kendi kontrast minimumlarına sahiptir. Beyaz arka plan üzerinde açık gri bir "Reddet" düğmesi, denetimlerde sıkça gördüğümüz bir WCAG başarısızlığıdır.
Yalnızca Renge Bağlı İpuçları Kullanmayın
Kabul Et ile Reddet'i ayırt etmek için yalnızca renge güvenmeyin. Renk körü kullanıcıların düğmeleri birbirinden ayırt edebilmesi için farklı etiketler, simgeler veya şekiller kullanın.
Karanlık Örüntüler ve Erişilebilirlik
WCAG 2.2, doğrudan karanlık örüntüleri hedef alan yeni kriterler tanıtmaktadır — onay için özellikle geçerlidir:
- 3.3.8 Erişilebilir Kimlik Doğrulama — onay sürtünmesi olarak bilişsel bulmacaları yasaklar.
- 3.3.7 Gereksiz Giriş — kullanıcılar yalnızca onayı geri çekmek için bilgileri yeniden girmek zorunda kalmamalıdır.
- 2.4.11 Odak Gizlenmemiş — bannerın kendisi, arkasındaki öğelerin odak göstergesini gizlememelidir.
- 2.5.7 Sürükleme Hareketleri — bannerınız sürükleyerek kabul etme etkileşimi kullanıyorsa tek işaretçili bir alternatif mevcut olmalıdır.
RTL ve Uluslararasılaştırma
Erişilebilirlik, sağdan sola yazılan dillere (Arapça, İbranice, Farsça, Urduca) ve ekran okuyucu telaffuzuna uzanır:
- Banner üzerinde dir="rtl" ayarlayın — belge dili RTL olduğunda düğme sırası ve odak akışının okuma yönüyle eşleşmesi için.
- Çevrilmiş banner metninde doğru lang özniteliklerini kullanın — ekran okuyucuların sözcükleri doğru fonetikle telaffuz etmesi için.
- Simgebilimi yansıtın — açılı ayraçlar, oklar ve ilerleme göstergeleri RTL yerel ayarları için çevrilmelidir.
Bannerınızı WCAG Uyumu Açısından Test Etme
Tek bir araca güvenmeyin. Otomatik taramayı gerçek yardımcı teknoloji testiyle birleştirin:
- axe DevTools veya Lighthouse — WCAG başarısızlıklarının yaklaşık %30-40'ını otomatik olarak yakalar.
- Windows'ta NVDA veya JAWS, Mac/iOS'ta VoiceOver, Android'de TalkBack — gerçek ekran okuyucularla test edin. Banner yalnızca ekran okuyucu kullanılarak duyurulabilir, gezinilebilir ve kapatılabilir mi?
- Yalnızca klavyeyle gezinme — farenizi çıkarın. Kabul Edemez, Reddedemiyor ve tercihleri yönetemiyorsanız, klavye kullanıcıları da yapamaz.
- Renk körlüğü simülasyonu — Chrome DevTools, yerleşik görme bozukluğu simülatörlerine sahiptir. Kabul Et ve Reddet'in protanopi, deuteranopi ve tritanopi koşullarında ayırt edilebildiğini kontrol edin.
- %400 Yakınlaştırma — WCAG, içeriğin yatay kaydırma olmaksızın %400 yakınlaştırmada kullanılabilir kalmasını gerektirir. Sabit konumlu bannerlar çoğunlukla bu testi geçemez.
Gördüğümüz Yaygın Erişilebilirlik Hataları
- Reddet düğmesinin dişli simgesi arkasına gizlenmesi — karanlık örüntü artı erişilebilirlik başarısızlığı (simge düğmesinde erişilebilir ad yok).
- Odak bannere hiç ulaşmıyor — görsel dikkat çeken ancak Tab sırasında atlanan bannerlar.
- Odak kilidi olmayan modal banner — banner etkileşimi engellediğini iddia ederken kullanıcılar arka plan sayfasına Tab ile geçebiliyor.
- Tercih değişikliklerinde aria-live yok — ekran okuyucu kullanıcıları seçimlerinin kaydedildiğine dair onay duyamıyor.
- lang özniteliği olmayan çevrilmiş bannerlar — ekran okuyucular İspanyolca metni İngilizce fonetiğiyle telaffuz ediyor.
FlexyConsent Erişilebilirliği Nasıl Sağlar
FlexyConsent, kutudan çıktığı gibi WCAG 2.2 AA'yı karşılar:
- Görünür 3:1 odak göstergeleriyle tüm denetimler klavyeyle kullanılabilir.
- aria-labelledby ve aria-describedby ile uygun role="dialog".
- İsteğe bağlı bannerlar için Escape ile kapatma özelliğiyle odak kilitleme.
- Reddet dahil her metin öğesinde 4,5:1+ kontrast.
- Arapça, İbranice, Farsça ve Urduca yerel ayarlar için otomatik RTL çevirme.
- Doğru ekran okuyucu telaffuzu için her çeviride lang özniteliği ayarlanmış.
- %400'de kullanılabilir kalan yakınlaştırmaya dayanıklı düzen.