Ürün ekiplerinin erişilebilirliği son kat boya gibi uygulama alışkanlığı vardır. Özellikleri inşa ederler, arayüzü parlatırlar ve sonra —lansmana iki gün kala— bir tarayıcı çalıştırırlar. Aniden gösterge paneli kırmızı yanmaya başlar. Eksik form etiketleri. Erişilebilir ismi olmayan düğmeler. Uyarı vermeden h1'den h4'e atlayan başlık seviyeleri. Metni arka plan gürültüsüne dönüştüren renk kombinasyonları. Liste bunaltıcı görünür çünkü çoktan gecikmiştir.
Bu son dakika paniği, erişilebilirlik çalışmalarının manuel ve yavaş hissedilmesinden kaynaklanır. Her şablonu tek tek elle tıklayan bir test uzmanı, bir sprint içinde ancak sınırlı bir alanı kapsayabilir. Ancak gözden kaçan kısım şudur: Geç bulunan hataların çoğu ince, tek seferlik sanatsal tercihler değildir. Bunlar, onlarca veya yüzlerce sayfada tekrarlanan tekrarlayıcı, yapısal sorunlardır. Bu tekrarlanabilirlik, otomasyonun tam olarak neden işe yaradığının sebebidir.
Makinelerin Aslında En İyi Yaptığı Şey
Erişilebilirlik ekiplerinin sihire ihtiyacı yoktur. Kapsama alanına ihtiyaçları vardır. Yetenekli bir insan denetçi, sayfaların temsili bir örneğini inceleyebilir, muhakeme yürütebilir ve bağlam gerektiren ince sorunları yakalayabilir. Bu sırada bir makine, adımları atlamadan veya yorulmadan her gece her sayfayı inceleyebilir. Bu denklemde yapay zekanın değeri WCAG standartlarının yerini alması değildir; ekiplerin çalışma şeklini değiştirmesidir. Bir test uzmanının ham hata günlüklerinde boğulması veya her şablona tek tek tıklaması yerine, yapay zeka yinelenen sorunları gruplandırabilir, bunları sıklığına göre sıralayabilir ve hangi hataların kullanıcı deneyimini en çok tükettiğini size söyleyebilir.
Hacim, önceliklendirme ve örüntü tanıma için yapay zekayı kullanın. Ekibinizin sorunları düzeltmeye odaklanabilmesi için ham tarama yükünü ona bırakın.
Yaygın Hataları Ele Veren Sinyaller
Çoğu erişilebilirlik hatası net, tespit edilebilir sinyaller yayar. Bir tarayıcı, alt niteliği eksik olan bir görseli fark edebilir. DOM'da var olan ancak içinde metin veya aria-label barındırmayan, böylece ekran okuyucu kullanıcılarının düğmenin ne işe yaradığına dair hiçbir fikri olmamasını sağlayan düğmeleri bulabilir. Sayfalar arasında tab tuşuyla ilerleyen kullanıcılara varış noktası bağlamı sunmayan "buraya tıklayın" veya "devamını oku" diyen bağlantıları işaretleyebilir. Kontrast gereksinimlerini karşılamayan renk kombinasyonlarını yakalayabilir. Sayfayı haritalandırmak için başlıklara güvenen kişiler için navigasyonu bozan, seviyeleri atlayan başlık hiyerarşilerini not eder.
Bunlar örüntü tabanlı sorunlardır. Tahmin edilebilir kod işaretçileri olarak ortaya çıkarlar, bu da otomasyonun bulma konusunda tam olarak uzmanlaştığı türden işler oldukları anlamına gelir.
Gerçek Sorunları Yakalayan Bir Boru Hattı Oluşturmak
İyi bir kurulum, bir kez çalışan tek bir araca güvenmez. Katmanları birleştirir. İlk katman, kodun kendisini tarayan bir kural motorudur. Bu motorlar, geliştiriciler bileşenleri yazarken işaretlemeyi WCAG kılavuzlarına göre kontrol eder; etiketlenmemiş girişleri veya geçersiz nitelikleri daha tarayıcıya ulaşmadan işaretler.
İkinci katman tarayıcı otomasyonudur. Statik kod analizi, bir modal açıldıktan, bir açılır menü genişledikten veya bir form doğrulama hatası göründükten sonra neler olduğunu yakalayamaz. Otomatik tarayıcıların, içeriğin kullanıcı eylemine bağlı olarak dinamik olarak değiştiği gerçek kullanıcı yolculuklarında —kayıt akışları, ödeme süreçleri, hesap panelleri— gezmesi gerekir. Eğer şifre gereksinimleriniz yalnızca bir alan odağını kaybettiğinde görünüyorsa, tek başına bir kod tarayıcısı duyuru hatasını asla görmeyebilir.
Üçüncü katman, yapay zekanın bulguları yorumladığı ve yinelenenleri birleştirdiği yerdir. Eğer aynı etiketsiz simge düğmesi, seksen sayfa boyunca kullanılan bir üst bilgi (header) bileşeninde yer alıyorsa, sistem bunu seksen ayrı sayfa düzeyinde hata olarak değil, bileşen düzeyinde bir kusur olarak bir kez raporlamalıdır. Bu, ekiplerin gürültü içinde boğulmasını önler.
Dördüncü katman insan incelemesidir. Bir makine sürekli inceleme yapmalı, ancak bir kişi sürümden önce uç durumları (edge cases) gözden geçirmelidir. Hiçbir otomatik boru hattı nihai kararı tek başına vermemelidir.
Teknik Jargonu Eyleme Dönüştürmek
Ham tarayıcı çıktıları, geliştiricilerden ziyade denetçiler için hazırlanmış bir teknik şartname gibi okunduğu için genellikle iş listelerinde (backlogs) kalır. "Yetersiz renk kontrast oranı" diyen bir rapor, soyut ve düşük öncelikli göründüğü için görmezden gelinir. "Gri yardımcı metin, beyaz arka plan üzerinde okunması zordur" demek, bir geliştiriciye tam olarak neyi düzeltmesi gerektiğini, nereye bakması gerektiğini ve bunun gerçek kullanıcılar için neden önemli olduğunu söyler. Yapay zeka, teknik WCAG hatalarını ürün ekiplerinin gerçekten okuyup harekete geçeceği sade bir dile tercüme ederek bu boşluğu doldurmaya yardımcı olabilir.
Her uyarıyı aynı şekilde ele almak yerine, bulgularınıza güven seviyeleri atamanız da gerekir. Etiketlenmemiş form girişleri gibi yüksek güvenli sorunlar, düzeltme neredeyse her zaman WCAG tarafından zorunlu kılındığı ve çözüm basit olduğu için otomatik olarak bilet (ticket) oluşturabilir. Açıklayıcı olmaktan ziyade anahtar kelime doldurma amacıyla kullanılmış olabilecek şüpheli alt metinler gibi orta güvenli bulgular, açıklamanın yararlı olup olmadığını belirlemek için insan incelemesine ihtiyaç duyar. Düşük güvenli öğeler ise manuel testler için raporlarda kalmalıdır. Bir tarayıcı eksik bir alt (alt) özniteliği görür, ancak bir görüntünün dekoratif mi yoksa içeriği anlamak için gerekli mi olduğunu bilemez. Bu bağlam hala bir insana ihtiyaç duyar.
Bir Kez Düzelt, Her Yerde Düzelt
Yapay zeka, ekiplerin sorunların nerede kümelendiğini bulmasına yardımcı olur. Eğer kötü yapılandırılmış bir buton bileşeni elli ekranda kullanılıyorsa, bileşeni bir kez düzeltmek sorun sayısını anında düşürür. Bu, işi sayfa sayfa köstebek vurmaca oyunundan sistematik bileşen kütüphanesi bakımına dönüştürür. Örüntü tanıma, yapay zekanın meyvelerini verdiği noktadır. Yüzlerce sayfa arasındaki bağlantıları kurarak ekiplerin aynı hatayı kırk farklı Jira biletinde düzeltmek zorunda kalmasını engeller.
Tarayıcıları pull request'lere bağlamak bu geri bildirimi sıkı tutar. Bir geliştirici, yeni işaretlemesinin (markup) bir başlık seviyesini atladığına dair bir uyarıyı henüz birleştirmeden (merge) önce alırsa, düzeltme dakikalar sürer. Aynı sorun canlı ortama (production) çıkıp lansmandan iki gün önce fark edilirse, düzeltme için bir acil yama (hotfix), regresyon testi ve paydaş iletişimi gerekir. Daha sıkı döngüler zaman kazandırır ve erişilebilirlik borcunu azaltır.
İş Bölümü
Otomasyon, ürününüzü tek başına erişilebilir hale getirmeyecektir. Ancak, ekibinizin aynı bariz hataları tekrar tekrar yayınlamasını engelleyecektir. Otomatik kontrolleri CI hattınızda (pipeline) çalıştırın. İçerik editörleri veya yeni özellikler tarafından getirilen regresyonları yakalamak için her gece staging sitelerini tarayın. Birikmiş işleri (backlog) yönetilebilir tutmak için sorunları bileşenlere göre gruplandırın. İnsan dikkatini, bağlamın en önemli olduğu site kısımları için saklayın: bir görüntünün alt metne ihtiyacı olup olmadığını değerlendirmek, karmaşık özel bileşenleri incelemek ve kullanıcı niyetini anlamayı gerektiren akışları test etmek.
Hacim, önceliklendirme (triage) ve örüntü tanıma için yapay zekayı kullanın. Her gece her sayfada tekrarlanan tarama işlemlerini makinelere bırakın. Karar verme süreçlerini insanlara bırakın. Erişilebilirlik, bu iş bölümü sayesinde lansman öncesi bir panik halinden normal bir mühendislik alışkanlığına dönüşür.
Kaynak: https://dev.to/henryv/automating-wcag-compliance-with-ai-4ogp
Tartışmaya katılın: https://t.me/GyaanSetuAi
