Web geliştiricileri için uzun zamandır beklenen bir özellik nihayet kapıda: ariaNotify(). WAI-ARIA 1.3 spesifikasyonu ile tanımlanan bu yeni metod, ekran okuyucularda programatik olarak seslendirme tetiklemenize olanak tanıyor. İlk argüman olarak bir string alan metod, isteğe bağlı ikinci argüman olarak bir yapılandırma nesnesi kabul ediyor. Örneğin, document.ariaNotify('Merhaba Dünya'); çağrısı yapıldığında, ekran okuyucu bu metni seslendirecek. Görünüşte basit bir çözüm gibi dursa da, aslında yıllardır süregelen bir soruna zarif bir çözüm getiriyor.
Bu noktaya gelene kadar geliştiriciler, ARIA canlı bölgelerini (live regions) kullanarak benzer bir işlevselliği elde etmeye çalışıyorlardı. Ancak canlı bölgeler, özellikle uygulama açısından birçok sorun barındırıyordu. Örneğin, canlı bölgelerin düzgün çalışması için DOM'da önceden var olması gerekiyordu; display: none ile gizlenmiş bir öğe veya sonradan eklenen içeriklerde zamanlama sorunları yaşanıyordu. Ayrıca, aria-live değerlerinin (assertive/polite) tarayıcı ve ekran okuyucu kombinasyonlarında tutarsız davranışlar sergilemesi, geliştiricileri çoğu zaman daha az anlamsal işaretleme kullanmaya itiyordu.
Canlı bölgelerin bir diğer büyük eksikliği, yalnızca DOM'a eklenen veya kaldırılan işaretlemelerde çalışmasıydı. Oysa modern web uygulamalarında içerik değişiklikleri genellikle mevcut öğelerin görünürlüğünün değiştirilmesiyle (örneğin display: none ile display: block arasında geçiş) yapılıyor. Bu durumda canlı bölgeler hiçbir işe yaramıyordu. Bu nedenle geliştiriciler, canlı bölgeleri genellikle görünmez bir bildirim API'si olarak kullanıyor, sayfaya gizli aria-live öğeleri yerleştirip ihtiyaç duydukça metin güncelliyorlardı.
Gelecekte Ne Bekleniyor?
ariaNotify() işte tam bu noktada devreye giriyor. Canlı bölgelerin tüm bu karmaşasını ve tutarsızlıklarını ortadan kaldıran bu yeni API, geliştiricilere çok daha temiz ve güvenilir bir yol sunuyor. Ancak dikkatli olunmalı: Bu güçlü araç, yalnızca gerçekten ihtiyaç duyulduğunda ve başka çözüm bulunamadığında kullanılmalı. Gereksiz yere kullanıldığında kullanıcı deneyimini olumsuz etkileyebilir. Yine de, doğru yerlerde kullanıldığında ariaNotify(), web erişilebilirliğinde yeni bir çağın kapılarını aralayabilir.