deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

ariaNotify() tarayıcılarda baseline'a ulaştı: live region'lara script odaklı bir alternatif

WAI-ARIA 1.3 metodundaki ariaNotify(), artık Chrome, Firefox, Edge ve Safari tarafından destekleniyor; JavaScript'in ekran okuyucu duyurularını live region markup'ı üzerinden geçirmeden doğrudan kuyruğa almasını sağlıyor.

ariaNotify() tarayıcılarda baseline'a ulaştı: live region'lara script odaklı bir alternatif

Ekran okuyucu duyuruları script'e taşınıyor

dev.to'da yayımlanan bir öğreticiye göre ariaNotify() baseline'a ulaştı: 2024'te WAI-ARIA 1.3 taslağında ilk kez duyurulan metodun, Eylül 2026 itibarıyla Chrome, Firefox, Edge ve Safari tarafından tam olarak desteklendiği yazar tarafından belirtiliyor. Geliştiricilere, mesajı live region olarak yapılandırılmış bir DOM elementi üzerinden yönlendirmek yerine, doğrudan JavaScript'ten sesli bir duyuru isteme yolu sunuyor. Yazar, live region'ların yerini alınmadığını açıkça söylüyor — makalenin başlığı bilerek abartılı — ancak yeni metod, duyurular çevresindeki karmaşanın çoğunu ortadan kaldırıyor.

Live region'lar bugün ne gerektiriyor

Live region'lar markup, stil ve script'i bir araya getirir. Geliştirici önce sayfaya boş bir element yerleştirir; genellikle bilgilendirici mesajlar için role="status", acil veya zamana duyarlı olanlar için role="alert", sohbet gibi sıralı kayıtlar için role="log" kullanılır. Her rol varsayılan bir kibarlık düzeyi ima eder: status aria-live="polite" ve aria-atomic="true" taşır, alert aria-live="assertive"" taşır ve log kibar şekilde davranır. Bir şey olduğunda JavaScript mesajı o elemente yazar ve ekran okuyucu içerik değişimine tepki verir. dev.to makalesi ayrıca ayar niteliğindeki öznitelikleri de ele alıyor: aria-live (polite, assertive veya off), aria-atomic (bölgenin tamamını mı yoksa yalnızca değişen kısmını mı oku), aria-busy (güncellemeler oturana kadar duyuruları beklet) ve yardımcı teknolojilere hangi değişikliklerin önemli olduğunu yalnızca öneren aria-relevant. Yapısal kısıt temel dezavantaj: DOM içeriği fiilen değişmedikçe hiçbir şey duyurulmaz.

Bir bölge yerine tek bir çağrı

ariaNotify() tüm bunları element.ariaNotify('Taslak kaydedildi.', { priority: 'high' }) gibi tek bir çağrıya indiriyor. Konak bir Element veya Document olabilir. Duyuru metni zorunludur — makale, bunu atlanmasının bir TypeError fırlattığını belirtiyor — ve tek seçenek normal veya high kabul eden priority. Seçenek atlandığında veya bilinmeyen bir değer verildiğinde normal uygulanır. Normal öncelikli bir mesaj, o anda okunan şey bitene kadar bekler; role="status" ve polite live region'ları yansıtır. Yüksek öncelikli bir mesaj ise sözü keser; role="alert" ve assertive olanları yansıtır. Metin bir argüman olarak geldiği için, bölgenin tamamının okunmasını zorlamak için kullanılan aria-atomic hilesine gerek kalmaz.

Element mi, document mı?

Makale, MDN sayfalarının hiçbirinin metodu bir elemente mi yoksa document'a mı bağlamak arasında net bir çizgi çizmediğini belirtiyor; bu yüzden yazar bir pratik kural öneriyor: bağlantı değişiklikleri, yeni kullanılabilir bir sürüm veya oturum haberleri gibi deneyim geneli güncellemeler Document'a aittir; sonuç sayısı, işlem gören toplam veya progress bar gibi sayfanın bir bölümüyle sınırlı güncellemeler ilgili Element'e aittir; ve DOM'dan henüz kaldırılmış bir şeyle ilgili duyurular, element artık var olmadığından Document üzerinden gitmek zorundadır. Bir detay daha: duyurunun dili, kök html elementindeki lang özniteliğini izler; duyuran bölümde farklı bir lang açıkça ayarlanmadıkça.

Neden önemli

Live region'ları açıklamak uzun süredir erişilebilirlik çalışmasının daha zor işlerinden biriydi: üç teknoloji, birbiriyle etkileşen birkaç öznitelik ve tek amacı içine yazılmak olan görünmez bir element. ariaNotify(), yaygın durumu — kullanıcıya bir şey olduğundan söz etmek — iki değerli bir aciliyet denetimiyle tek satır script'e indiriyor; bu da daha önce duyuruları tamamen atlayan ekipler için eşiği düşürmeli. Live region'ların hâlâ bir yeri var, özellikle duyurulan metnin sayfada görünür şekilde de var olması gerektiğinde; dolayısıyla geliştiriciler için pratik görev, yeni API'yi eski desenle birlikte benimsemek, ideal olarak feature detection arkasında, böylece eski tarayıcıdaki kullanıcılar sesli geri bildirim almaya devam eder.

  • #accessibility
  • #aria
  • #web-apis
  • #javascript
  • #screen-readers