WCAG Başarı Kriterleri · Level AAA
WCAG 3.3.9: Erişilebilir Kimlik Doğrulama (Gelişmiş)
WCAG 3.3.9, bilişsel işlev testi içermeyen kimlik doğrulama süreçleri gerektirir; hiçbir bilmece, ezberleme veya kopyalama olmamalıdır — bilişsel olmayan bir alternatif, yardımcı bir mekanizma veya nesne tabanlı bir yöntem mevcut olmadığı sürece. Bu Gelişmiş (AAA) ölçüt, bilişsel, motor ve hafızayla ilgili engelleri olan kullanıcılar için kimlik doğrulamadaki son engelleri ortadan kaldırır.
Bu Kuralın Anlamı
WCAG 3.3.9 — Erişilebilir Kimlik Doğrulama (Gelişmiş), WCAG 3.3.8’in (Erişilebilir Kimlik Doğrulama — Asgari, AA) AAA düzeyindeki karşılığıdır. Birlikte, WCAG 2.2 ile getirilen ve bir web sitesi ya da uygulamaya kimlik kanıtlama sürecinin bizzat kendisinin erişilebilirlik engeline dönüşmemesini sağlamayı amaçlayan bir ölçüt çifti oluştururlar.
AAA düzeyinde 3.3.9 gereklilikleri önemli ölçüde sıkılaştırır. Ölçüt şunu belirtir: Bir kimlik doğrulama sürecindeki herhangi bir adımda, aşağıdakilerden en az birini sağlamadığı sürece bilişsel işlev testi zorunlu tutulmamalıdır: bilişsel işlev testine dayanmayan alternatif bir kimlik doğrulama yöntemi; kullanıcının bilişsel işlev testini tamamlamasına yardımcı olacak bir mekanizma; veya bilişsel işlev testinin nesneleri tanıma üzerine olması. Kritik olarak, AA sürümünden (3.3.8) farklı olarak AAA ölçütü nesne olmayan içeriği tanımaya izin veren istisnayı kaldırır (örneğin, kullanıcının daha önce seçtiği nesne olmayan öğelerin resimleri). Bu düzeyde, yalnızca gerçek nesne tanıma — kedi, bisiklet veya ev gibi yaygın gerçek dünya nesnelerinin görüntülerini tanıma — diğer koşullar sağlanmadığı durumda bilişsel işlev testi olarak kabul edilebilir.
Bilişsel işlev testi, kullanıcının bilgiyi hatırlamasını, işlemesini veya yazıya dökmesini gerektiren herhangi bir görev olarak tanımlanır. Buna; kullanıcı adı veya parolayı hatırlama, matematiksel bir bulmacayı çözme, bozulmuş metni çözmeyi gerektiren bir CAPTCHA’yı tamamlama, kişisel geçmişe dair bir güvenlik sorusunu yanıtlama (örneğin, "İlk evcil hayvanınızın adı neydi?") veya bir karakter dizisini yazıya dökme dahildir. Bunların tümü, birçok kullanıcının güvenilir biçimde yerine getiremeyeceği bellek veya yazıya dökme görevleridir.
Geçer sayılan durumlar: Bir kimlik doğrulama adımı, hiçbir bilişsel işlev testi gerektirmiyorsa veya şu koşullardan birini sağlıyorsa 3.3.9’u geçer: (1) tamamen ayrı, bilişsel olmayan bir kimlik doğrulama yolu sunuluyorsa (örneğin, e-posta ile gönderilen sihirli bağlantı, WebAuthn/passkey, biyometrik giriş); (2) testi tamamlamaya yardımcı olan bir mekanizma varsa (örneğin, tarayıcının parola yöneticisi engellenmiyorsa veya kopyala-yapıştır serbestse); veya (3) dahil olan tek bilişsel test, bir dizi görüntü arasından yaygın bir gerçek dünya nesnesini tanımaktır.
Başarısız sayılan durumlar: Kullanıcıyı — herhangi bir atlama veya alternatif olmaksızın — hafızadan parola hatırlamaya, yapıştırılamayan bir kodu yazıya dökmeye, alternatif olmadan görsel veya işitsel CAPTCHA çözmeye, bilgiye dayalı güvenlik sorularını yanıtlamaya veya alternatif bir kimlik doğrulama yolu olmadan nesne olmayan içerik görüntülerini (örneğin soyut şekiller veya kişisel fotoğraflar) tanımlamaya zorlayan her akış.
Resmi istisnalar: WCAG spesifikasyonu, nesneleri tanımanın (gerçek dünya şeylerinin fotoğrafları) bu AAA düzeyinde izin verilen tek görüntü tanıma görevi olduğunu belirtir. AA ölçütü (3.3.8), "nesne olmayan" kişisel seçilmiş görüntüleri tanımaya da izin veriyordu, ancak 3.3.9 bu istisnayı tamamen kaldırır. "Yaygın olarak kullanılan" kimlik doğrulama kalıpları için bir istisna yoktur — bir kalıp, alternatif olmadan bilişsel test gerektiriyorsa 3.3.9’dan kalır.
Neden Önemli
Kimlik doğrulama, çoğu zaman bir kullanıcının bir dijital hizmetle kurduğu ilk anlamlı etkileşimdir. Bu etkileşimin kendisi erişilebilir değilse, sitenin geri kalanının erişilebilirliği anlamsız hale gelir — kullanıcı en başta içeri giremez. WCAG 3.3.9 bu engeli doğrudan ele alır ve etkisi geniş bir engelli kullanıcı grubunu kapsar.
Bilişsel engeli olan kullanıcılar — disleksi, DEHB, travmatik beyin hasarı, demans veya öğrenme güçlüğü olanlar dahil — karmaşık parolaları ezberlemeyi, süre sınırlı tek kullanımlık kodları elle yazıya dökmeyi veya bozulmuş CAPTCHA metnini çözmeyi son derece zor ya da imkânsız bulabilir. Dünya Sağlık Örgütü, dünya genelinde yaklaşık her 6 kişiden 1’inin önemli bir engellilik biçimi yaşadığını tahmin etmektedir ve bilişsel engeller, web erişilebilirliğinde en büyük ve en az hizmet alan kategorilerden birini oluşturur.
Motor engeli olan kullanıcılar — Parkinson hastalığı, esansiyel tremor, omurilik yaralanmaları olanlar veya anahtarlama erişimi ya da göz takibi teknolojisi kullanmak zorunda olanlar gibi — parolaları doğru şekilde yazmakta veya kodları karakter karakter yazıya dökmekte zorlanabilir. Pano yapıştırmayı engellemek (yaygın bir dolandırıcılık karşıtı önlem olup fiilen zararlıdır), bu kullanıcıların yardımcı teknolojileriyle her karakteri zahmetle girmesini gerektirir, bu da hata oranlarını ve yorgunluğu dramatik biçimde artırır.
Kör olan veya az gören kullanıcılar tamamen ekran okuyuculara veya büyütme araçlarına güvenebilir. Görsel CAPTCHA’lar, işitsel bir alternatif olmadan tamamen erişilemezdir ve işitsel CAPTCHA’lar bile işitme engeli veya işitsel işlemleme bozukluğu olan kullanıcılar için son derece zordur. "Tüm trafik ışıklarını seçin" gibi görüntü tabanlı görevler de, görüntü açıklamaları yoksa veya yanıltıcıysa sorunlu olabilir.
Sağır veya işitme güçlüğü olan kullanıcılar, tek seferlik kodları iletmek için yalnızca telefon aramalarına dayanan kimlik doğrulama yöntemlerinden engellerle karşılaşabilir; özellikle bu aramalar SMS alternatifi olmadan yalnızca sesli ise.
Somut bir gerçek dünya senaryosu: Çevrimiçi bankacılık portalına erişmeye çalışan, hafif bilişsel gerilemesi olan 72 yaşında bir kullanıcıyı düşünün. Banka, kullanıcı adı (e-posta adresi değil, hatırlanması gereken ayrı bir bilgi), karmaşık bir parola (pano yapıştırma engelli) ve bozulmuş metin içeren bir CAPTCHA gerektiriyor. Kullanıcı CAPTCHA’da iki kez başarısız oluyor, hesabı kilitleniyor ve bankanın yardım hattını aramak zorunda kalıyor — 40 dakikalık bir süreç. Banka passkey veya sihirli bağlantı uygulamış olsaydı, bu kullanıcı saniyeler içinde kimlik doğrulayabilirdi. Bu senaryo, web genelinde her gün milyonlarca kez yaşanıyor ve tamamen önlenebilir.
Engellilikten bağımsız olarak, erişilebilir kimlik doğrulama tüm kullanıcılara fayda sağlar. Yüz milyonlarca kişi tarafından kullanılan parola yöneticileri, kimlik bilgilerini yapıştırma yeteneğine dayanır. Yapıştırmayı engellemek, manuel yazıya dökmeyi zorunlu kılmak veya erişilemez CAPTCHA’lar gömmek, ana akım kullanıcıları da rahatsız eder. Güvenlik açısından da argümanlar vardır: karmaşık parolaların elle girilmesini zorunlu kılmak, kullanıcıların daha basit, daha zayıf parolalar seçme veya bunları siteler arasında yeniden kullanma olasılığını artırır. Önerilen alternatifler olan passkey’ler ve sihirli bağlantılar, hem geleneksel parola artı CAPTCHA akışlarından daha erişilebilir hem de daha güvenlidir.
İlgili Axe-core Kuralları
WCAG 3.3.9, yalnızca manuel test gerektiren bir ölçüt olarak sınıflandırılır. axe-core 4.10 itibarıyla, bu ölçütü tam olarak değerlendiren bir otomatik kural yoktur. Otomatik araçların bu ihlalleri neden tespit edemediğini anlamak için, ölçütün gerçekte neyi ölçtüğünü anlamak gerekir.
- Manuel test gerekli — bilişsel işlev tespiti: Otomatik tarayıcılar belirli HTML öğelerinin varlığını tespit edebilir (örneğin bir
<input type='password'>veya üçüncü taraf CAPTCHA bileşenini gömen bir iframe), ancak tam bir kimlik doğrulama akışının erişilebilir bir alternatif olmadan bilişsel işlev testi gerektirip gerektirmediğini belirleyemez. Ölçüt, tek bir öğenin özelliklerinden ziyade, birden fazla adım ve sayfayı kapsayabilen tüm kullanıcı yolculuğuyla ilgilidir. Bir tarayıcı, yapıştırmanın JavaScript ile programatik olarak engellenip engellenmediğini, bir kod giriş alanındaki süre sınırının makul olup olmadığını veya alternatif bir kimlik doğrulama yolunun gerçekten bilişsel testlerden kaçınıp kaçınmadığını değerlendiremez. Bunlar, gerçek kimlik doğrulama sürecini adım adım incelemesi gereken insan değerlendiriciler gerektiren davranışsal ve mimari sorulardır. - Manuel test gerekli — alternatif yol doğrulaması: Bir tarayıcı bir CAPTCHA bileşenini tespit etse bile, aynı sayfada veya aynı akışta erişilebilir alternatif bir kimlik doğrulama yöntemi olup olmadığını doğrulayamaz. "Bunun yerine passkey kullan" seçeneğinin gerçekten eşdeğer olup olmadığını veya önce erişilemez CAPTCHA’yı geçmeyi gerektiren ikincil bir ayar sayfasına gömülü olup olmadığını değerlendiremez. Alternatif yolların eşdeğerliğini değerlendirmek, bu alternatiflerin tamlığı ve görünürlüğü hakkında insan yargısı gerektirir.
- Manuel test gerekli — pano yapıştırma davranışı:
pasteolaylarını yakalayıp iptal eden (event.preventDefault()kullanan) JavaScript, statik HTML analizine görünmezdir. Bir tarayıcı geçerli bir<input>öğesi görür; bu alana yapıştırmanın devre dışı bırakıldığını bilemez. Yalnızca manuel test — bir parola veya kodu gerçekten yapıştırmayı denemek — bu hatayı ortaya çıkarabilir. - Manuel test gerekli — kimlik doğrulama bileşenlerinin yardımcı teknolojilerle uyumluluğu: Üçüncü taraf kimlik doğrulama SDK’ları (sosyal giriş butonları, CAPTCHA sağlayıcıları, biyometrik istemler) iframeler veya Shadow DOM içinde render edilebilir ve otomatik tarayıcılar bunlara tam olarak erişemeyebilir. NVDA, JAWS ve VoiceOver gibi ekran okuyucularla manuel test, kimlik doğrulama akışı içindeki tüm etkileşimli öğelerin kullanılabilir ve anlaşılır olduğunu doğrulamak için kritik önemdedir.
Nasıl Test Edilir
- Tüm kimlik doğrulama giriş noktalarını belirleyin: Testten önce, kullanıcının uygulamada kimlik doğrulaması veya kimlik doğrulama doğrulaması yapmak zorunda olduğu her yeri haritalayın. Buna ilk giriş, hesap oluşturma, parola sıfırlama, iki faktörlü kimlik doğrulama istemleri, oturum zaman aşımı sonrası yeniden kimlik doğrulama, ödeme onay ekranları ve yaş doğrulama kapıları dahildir. Bu akışların her biri bağımsız olarak değerlendirilmelidir.
- Otomatik bir temel tarama çalıştırın: Her kimlik doğrulama sayfasında axe DevTools (tarayıcı uzantısı) veya Chrome DevTools içindeki Lighthouse’u kullanın. Bu araçlar doğrudan 3.3.9 ihlallerini işaretlemese de, kimlik doğrulama engellerini ağırlaştıran ilgili sorunları — form alanlarında eksik etiketler, erişilemez iframe içeriği, eksik odak yönetimi — ortaya çıkaracaktır. Manuel değerlendirme için bağlam olarak işaretlenen sorunları not edin. axe DevTools’ta, manuel yargı gerektiren öğeler için "Needs Review" sekmesine bakın.
- Bilişsel işlev testlerini denetleyin: Her kimlik doğrulama adımı için şu soruyu sorun: Bu adım kullanıcıdan (a) bir şeyi hatırlamasını, (b) bir şeyi yazıya dökmesini veya (c) bir bulmacayı çözmesini istiyor mu? Yanıt evetse, aşağıdakilerden en az birinin mevcut ve eşit derecede görünür olduğunu doğrulayın: bilişsel olmayan alternatif bir yol; tamamlamaya yardımcı olan bir mekanizma (pano yapıştırmaya izin verilmesi veya otomatik doldurmayla uyumlu bir alan gibi); veya tek bilişsel görevin yaygın bir gerçek dünya nesnesini tanımak olması.
- Pano yapıştırma davranışını test edin: Her parola ve kod giriş alanında, panonuza bir metin dizesi kopyalayın ve Windows/Linux’ta Ctrl+V veya macOS’ta Cmd+V kullanarak yapıştırmayı deneyin. Yapıştırma engelleniyorsa bu bir hatadır. Ayrıca tarayıcı parola yöneticisi otomatik doldurmasının bastırılıp bastırılmadığını test edin (
autocomplete='off'veya odaklanınca otomatik doldurma değerlerini temizleyen JavaScript olup olmadığına bakın). - NVDA + Firefox ile test edin: Tüm kimlik doğrulama akışında yalnızca klavye ve NVDA ekran okuyucusunu kullanarak gezinin. Tüm form alanlarının anlamlı etiketlerle duyurulduğunu, tüm etkileşimli kontrollerin (butonlar, bağlantılar, CAPTCHA görevleri) erişilebilir ve kullanılabilir olduğunu ve hata mesajlarının ilgili alanla programatik olarak ilişkilendirildiğini ve ek gezinme gerektirmeden anında duyurulduğunu doğrulayın.
- VoiceOver + Safari (macOS/iOS) ile test edin: Tüm kimlik doğrulama akışını tekrarlayın. iOS’ta, yerel kimlik doğrulama kullanıldığında biyometrik kimlik doğrulamanın (Face ID / Touch ID) alternatif olarak sunulduğunu ve biyometri kullanılamadığında web tabanlı akışın Switch Control ile tamamen kullanılabilir olduğunu da doğrulayın.
- JAWS + Chrome ile test edin: Akışı tekrarlayın ve özellikle üçüncü taraf bileşenlerin (OAuth sosyal giriş, CAPTCHA iframeleri) nasıl duyurulduğuna dikkat edin. JAWS, bazı ARIA kalıplarını NVDA’dan farklı şekilde ele alır; her ikisiyle de test yapılmalıdır.
- Alternatif yolları gerçek eşdeğerlik açısından değerlendirin: Alternatif bir kimlik doğrulama yöntemi varsa (örneğin, "Sihirli bağlantı ile giriş yap"), tüm akışı yalnızca bu alternatifle tamamlayın. Herhangi bir bilişsel test gerektirmeden aynı kimliği doğrulanmış duruma ulaştığını doğrulayın. Alternatif yolun kendisi bir CAPTCHA veya bellek testi içeriyorsa, 3.3.9 kapsamında geçerli bir alternatif değildir.
- Bulguları kanıtla birlikte belgeleyin: Her hata için, tam olarak hangi adımın neden başarısız olduğunu gösteren bir ekran kaydı veya açıklamalı ekran görüntüsü alın. Bu dokümantasyon, geliştirme ekiplerine iyileştirme devri ve denetim izi amaçları için kritik önemdedir.
Nasıl Düzeltilir
Alternatifsiz CAPTCHA — Hatalı
<!-- 3.3.9’dan kalır: Tek kimlik doğrulama yolu görsel bir CAPTCHA çözmeyi gerektiriyor.
Alternatif yok ve nesne tanıma seçeneği de sunulmuyor. -->
<form method='post' action='/login'>
<label for='username'>Username</label>
<input type='text' id='username' name='username' autocomplete='username'>
<label for='password'>Password</label>
<input type='password' id='password' name='password' autocomplete='off'>
<!-- Erişilebilir alternatif yolu olmayan üçüncü taraf CAPTCHA bileşeni -->
<div class='g-recaptcha' data-sitekey='YOUR_SITE_KEY'></div>
<button type='submit'>Log In</button>
</form>
CAPTCHA’nın passkey ve sihirli bağlantı ile değiştirilmesi — Doğru
<!-- 3.3.9’dan geçer: CAPTCHA tamamen kaldırıldı. Birincil yol passkey kullanıyor
(WebAuthn — bilişsel test yok). Passkey desteği olmayan cihazlar için
sihirli bağlantı yedek yolu sunuluyor. Parola girişi yapıştırmaya ve
tarayıcı otomatik doldurmaya izin veriyor. -->
<form method='post' action='/login'>
<label for='email'>Email address</label>
<input type='email' id='email' name='email' autocomplete='email'>
<!-- Passkey ile giriş: hatırlanacak parola yok, CAPTCHA yok -->
<button type='button' id='passkey-btn'>Sign in with Passkey</button>
<!-- Parola yedeği: yapıştırma ve otomatik doldurma açıkça etkin -->
<label for='password'>Password (optional)</label>
<input type='password' id='password' name='password'
autocomplete='current-password'>
<!-- NOT: Buraya autocomplete='off' veya yapıştırmayı engelleyen JS EKLEMEYİN -->
<button type='submit'>Log In</button>
</form>
<!-- Bilişsel olmayan alternatif: sihirli bağlantı -->
<p><a href='/send-magic-link'>Send me a sign-in link instead</a></p>
<script>
// WebAuthn passkey kimlik doğrulaması — bilişsel işlev testi yok
document.getElementById('passkey-btn').addEventListener('click', async () => {
const credential = await navigator.credentials.get({ publicKey: publicKeyOptions });
// kimlik bilgisini sunucuya gönder
});
</script>
OTP alanında pano yapıştırmanın engellenmesi — Hatalı
<!-- 3.3.9’dan kalır: Tek kullanımlık kod alanı, JavaScript ile yapıştırmayı engelliyor,
kullanıcıları süre sınırlı bir kodu elle yazıya dökmeye zorluyor.
Bu, atlama imkânı olmayan bir yazıya dökme bilişsel işlev testidir. -->
<label for='otp'>Enter the 6-digit code from your authenticator app</label>
<input type='text' id='otp' name='otp' maxlength='6'
inputmode='numeric' autocomplete='off'>
<script>
document.getElementById('otp').addEventListener('paste', function(e) {
e.preventDefault(); // Yapıştırmayı engeller — 3.3.9’dan KALIR
});
</script>
Yapıştırmaya izin verilen ve autocomplete ipucuna sahip OTP alanı — Doğru
<!-- 3.3.9’dan geçer: Yapıştırmaya izin verilir. autocomplete='one-time-code' niteliği,
tarayıcıların ve parola yöneticilerinin OTP’yi otomatik doldurmasını sağlar
ve yazıya dökme gereksinimini tamamen ortadan kaldırır. -->
<label for='otp'>Enter the 6-digit code from your authenticator app</label>
<input type='text' id='otp' name='otp' maxlength='6'
inputmode='numeric' autocomplete='one-time-code'>
<!-- Yapıştırmayı engelleyen JavaScript yok. autocomplete='one-time-code',
işletim sisteminin (iOS, Android, masaüstü tarayıcılar) SMS veya
kimlik doğrulama uygulamalarından OTP’yi otomatik olarak önermesini sağlar. -->
Bilgiye dayalı güvenlik soruları — Hatalı
<!-- 3.3.9’dan kalır: Bilgiye dayalı güvenlik sorularına yanıt zorunlu kılınması,
bellekten hatırlamaya dayalı bir bilişsel işlev testidir. Alternatif yok. -->
<form method='post' action='/verify-identity'>
<p>To verify your identity, please answer your security question:</p>
<label for='sq-answer'>What was the name of your childhood pet?</label>
<input type='text' id='sq-answer' name='sq-answer' autocomplete='off'>
<button type='submit'>Verify</button>
</form>
Bilişsel olmayan alternatiflerle kimlik doğrulama — Doğru
<!-- 3.3.9’dan geçer: Güvenlik soruları, e-posta sihirli bağlantısı
ve devlet kimliği fotoğrafı yükleme seçenekleriyle değiştirilmiş —
hiçbirinde bellekten hatırlama gereksinimi yok. Güvenlik soruları
bazı kullanıcılar için korunuyorsa, açıkça etiketlenmiş alternatif
yol en baştan sunulur. -->
<form method='post' action='/verify-identity'>
<p>We need to verify your identity. Choose one of the following methods:</p>
<fieldset>
<legend>Verification method</legend>
<label>
<input type='radio' name='verify-method' value='magic-link' checked>
Send a verification link to my registered email
</label>
<label>
<input type='radio' name='verify-method' value='id-upload'>
Upload a photo of a government-issued ID
</label>
</fieldset>
<button type='submit'>Continue</button>
</form>
Yaygın Hatalar
- Parola alanlarına
autocomplete='off'eklemek, tarayıcı otomatik doldurmasını engellemek için. Bu, kullanıcıların parolaları ezberlemekten kaçınmasını sağlayan birincil mekanizmayı devre dışı bırakır ve doğrudan 3.3.9’dan kalır.autocomplete='off'ifadesini kaldırın ve bunun yerineautocomplete='current-password'veyaautocomplete='new-password'kullanın. - Kimlik doğrulama giriş alanlarında
pasteolayınaevent.preventDefault()çağıran bir JavaScript dinleyicisi eklemek, bunun güvenliği artırdığına inanarak. Gerçekte bu, parola yöneticilerini ve yardımcı teknolojileri engeller ve 3.3.9 kapsamında yazıya dökme gereksinimi oluşturur. - Görsel CAPTCHA’lar için işitsel CAPTCHA alternatifini yeterli bir atlama yolu olarak görmek. İşitsel CAPTCHA’lar hâlâ bilişsel işlev testidir (bozulmuş sesli karakterleri yazıya dökmek) ve 3.3.9’u karşılamaz. Gerçekten bilişsel olmayan bir alternatif yol gereklidir.
- Passkey veya sosyal giriş seçeneği sunup bunu önce bir CAPTCHA engelinin arkasına koymak. Kullanıcı, erişilebilir alternatife erişmek için önce bilişsel bir testi geçmek zorundaysa, alternatif gerçekten eşdeğer değildir ve akış 3.3.9’dan kalır.
- OTP girişi için altı ayrı tek karakterlik
<input>alanı kullanmak (yaygın bir arayüz kalıbı) ancak alanlar arasında yapıştırarak doldurmayı desteklememek. Birçok uygulama yalnızca ilk alana yapıştırmaya izin verir ve kalan beş alan için karakter karakter manuel giriş gerektirir; bu da yazıya dökme engeli oluşturur. - Tek kolaylaştırma olarak "Beni hatırla" veya kalıcı oturum çerezlerine güvenmek, tekrar tekrar kimlik doğrulaması yapamayan kullanıcılar için. Kimlik doğrulama sıklığını azaltmak yardımcı olsa da, erişilemez bir kimlik doğrulama sürecini düzeltmez — kullanıcılar en az bir kez bilişsel testi geçmek zorundadır ve oturumlar sona erer veya temizlenir.
- Uyarı vermeden zaman aşımına uğradığında temizlenen süre sınırlı OTP alanları uygulamak, kullanıcıları yeni bir kod istemeye ve yazıya dökme girişimini tekrar etmeye zorlamak. Bu, motor veya bilişsel işlemleme hızı düşük kullanıcılar için bilişsel yükü artırır.
- Nesne olmayan içeriği tanımayı gerektiren görüntü tabanlı CAPTCHA görevleri kullanmak — soyut desenler, renkler veya kişisel seçilmiş fotoğraf dizileri gibi — ve bunun 3.3.9’u karşıladığını düşünmek. AAA ölçütü yalnızca nesne tanımaya (arabalar, bisikletler, trafik ışıkları gibi gerçek dünya nesneleri) izin verir; nesne olmayan görüntü tanıma bu düzeyde muaf değildir.
- Giriş alanlarında
autocomplete='new-password'kullanarak tarayıcının kimlik bilgisi yöneticisine erişimi engellemek, (kayıt alanları yerine).new-passworddeğeri, tarayıcılara bunun yeni parola oluşturma alanı olduğunu bildirir ve giriş sırasında kayıtlı kimlik bilgilerinin otomatik doldurulmasını engeller. - Kimlik doğrulama akışlarını gerçek yardımcı teknolojilerle test etmemek ve bunun yerine yalnızca otomatik tarama sonuçlarına güvenmek. 3.3.9 yalnızca manuel olarak test edilebilir olduğundan, manuel ekran okuyucu ve klavye testini atlayan ekipler, her sürüm döngüsünde bu ölçütteki hataları sistematik olarak gözden kaçıracaktır.
Türkiye’nin Erişilebilirlik Mevzuatıyla İlişkisi
Türkiye’nin 2025/10 sayılı Cumhurbaşkanlığı Genelgesi, 21 Haziran 2025 tarihli ve 32933 sayılı Resmî Gazete’de yayımlanarak, Türkiye’de faaliyet gösteren geniş bir kamu ve özel sektör kuruluşu için kapsamlı web ve mobil erişilebilirlik yükümlülükleri getirmiştir. Genelge, WCAG 2.2’ye uyumu zorunlu kılarak, standardın 2.2 sürümüne açıkça atıfta bulunan ilk Türk hukuk metni olmuştur.
Genelge kapsamındaki kuruluşlar arasında; tüm kademelerdeki kamu kurum ve kuruluşları; e-ticaret platformları ve çevrimiçi pazar yerleri; bankalar ve finans kuruluşları; hastaneler ve sağlık hizmeti sağlayıcıları; 200.000 ve üzeri abonesi olan telekomünikasyon işletmecileri; seyahat acenteleri; özel ulaşım şirketleri; ve Millî Eğitim Bakanlığı (MEB) tarafından yetkilendirilmiş özel okullar yer alır. Bu kuruluşlar için, giriş portalları, hasta portalları, bankacılık panelleri, biletleme sistemleri ve öğrenci bilgi sistemleri dahil dijital hizmetlerin, genelgede tanımlanan erişilebilirlik gerekliliklerini karşılaması gerekir.
AAA düzeyinde bir ölçüt olan WCAG 3.3.9, genelge kapsamında asgari yasal yükümlülük değildir. Yasal olarak zorunlu taban seviye, WCAG 2.2 Seviye A ve AA uyumuna karşılık gelir. Ancak genelgenin ruhu ve kapsamı, 3.3.9’u pratikte çeşitli nedenlerle son derece ilgili kılar.
Birincisi, WCAG 3.3.8 (Erişilebilir Kimlik Doğrulama — Asgari) bir AA düzeyi gerekliliktir ve bu nedenle kapsam dahilindeki tüm kuruluşlar için yasal olarak bağlayıcıdır. 3.3.8’e uyum sağlamak için çalışan kuruluşlar, 3.3.9 uyumuna giden yolun çoğu zaman küçük bir ek adım olduğunu görecektir — esas olarak 3.3.8’in izin verdiği görüntü tanıma istisnasını kaldırmak ve yalnızca yardımcı mekanizmalar değil, tüm bilişsel testler için bilişsel olmayan alternatifler sağlamak.
İkincisi, bilişsel veya motor engel oranlarının daha yüksek olduğu nüfuslara hizmet veren kuruluşlar — özellikle hastaneler, kamu sağlık portalları ve kamu hizmet portalları — için kimlik doğrulama ölçütlerinde AAA uyumuna ulaşmak, Türkiye’nin daha geniş anayasal eşitlik ilkeleri ve Türkiye’nin taraf olduğu Engellilerin Haklarına İlişkin Birleşmiş Milletler Sözleşmesi (CRPD) kapsamındaki yükümlülükleriyle uyumlu, eşit erişime yönelik anlamlı bir taahhüt temsil eder.
Üçüncüsü, Türk bankaları ve fintech sağlayıcıları kimlik doğrulama konusunda özel bir incelemeye tabidir. Bankacılık Düzenleme ve Denetleme Kurumu (BDDK) ve Mali Suçları Araştırma Kurulu (MASAK), güçlü kimlik doğrulama gereklilikleri getirir ve kuruluşlar bu gereklilikleri karşılamak için sıklıkla karmaşık, çok adımlı kimlik doğrulama akışları uygular. 3.3.9 uyumlu kimlik doğrulama — passkey, WebAuthn veya sihirli bağlantı akışları kullanmak — hem daha erişilebilir hem de uluslararası finansal düzenleyiciler tarafından desteklenen modern güvenli kimlik doğrulama en iyi uygulamalarıyla uyumludur; bu da aynı anda birden fazla cephede uyumu destekleyen bir tasarım hedefi haline getirir.
Erişilebilirlik duruşlarını farklılaştırmak, olası gelecekteki mevzuat sıkılaşmasına hazırlanmak veya kullanıcılarına erişilebilir ve kapsayıcı biçimlerde hizmet vermek isteyen kuruluşların, WCAG 3.3.9’u yalnızca isteğe bağlı bir iyileştirme değil, bir tasarım standardı olarak ele almaları güçlü şekilde tavsiye edilir. Tamamen bilişsel olmayan kimlik doğrulama yollarını uygulamak, modern tarayıcı API’leri (WebAuthn/passkey’ler) ve kimlik doğrulama SDK’ları sayesinde giderek daha mümkün hale gelmekte; uyum maliyetini her zamankinden düşük, buna karşılık faydayı — herhangi bir dijital üründeki en önemli erişilebilirlik engellerinden birini ortadan kaldırmayı — son derece yüksek kılmaktadır.
Kaynaklar ve referanslar
- W3C Understanding 3.3.9 Accessible Authentication (Enhanced)
- W3C Techniques for WCAG 2.2 — Authentication
- WebAIM: Cognitive Disabilities and Web Accessibility
- W3C WAI: WCAG 2.2 What's New — Accessible Authentication
- MDN: Web Authentication API (WebAuthn / Passkeys)
- MDN: autocomplete attribute — one-time-code
- W3C WCAG 2.2 — Success Criterion 3.3.9 Accessible Authentication (Enhanced)
