WCAG 4.1.3 · AA Seviyesi · EN 301 549 9.4.1.3

Durum Mesajları

Sonuç sayısı, onay ve hata gibi durum mesajlarının, odak taşınmadan yardımcı teknoloji tarafından duyurulmasını ister.

Kısaca

Bir sayfa "3 sonuç bulundu", "Sepete eklendi" ya da "Yükleme %60 tamamlandı" diyor. Gören kullanıcılar bunu görür. Ekran okuyucu kullanıcısı, odak taşınmadığı için hiçbir şey duymaz ve eylemin işe yarayıp yaramadığını bilemez.

Bu kriter, işaretleme dilleriyle uygulanan içerikte durum mesajlarının, odak almadan yardımcı teknolojiler tarafından kullanıcıya sunulabilmesi için rol ya da özellikler aracılığıyla programatik olarak belirlenebilmesini ister.

Neleri kapsar?

  • Durum mesajı nedir: Bağlam değişikliği olmayan, bir eylemin başarısı ya da sonuçları, bir bekleme durumu, bir sürecin ilerlemesi ya da hataların varlığı hakkında bilgi veren içerik değişikliği.
  • Odak gerekmez: Mesaj, role="status" gibi bir rol ya da özellik aracılığıyla açığa çıkarılır; böylece yardımcı teknoloji odağı almadan duyurabilir.
  • Başarı ve sonuçlar: role="status" kullanın (ARIA22) ve başarı geri bildirimiyle birlikte (G199).
  • Hatalar ve uyarılar: role="alert" ya da bir canlı bölge kullanın (ARIA19); hatanın metin açıklaması ve önerilerle birlikte.
  • İlerleme: İlerleme çubuğu için bir canlı bölge (ARIA25) ya da ardışık güncellemeler için role="log" kullanın (ARIA23).
  • Bağlam değişikliği değil: Bir mesaj odağı taşıyorsa, iletişim kutusu açıyorsa ya da yeni sayfa yüklüyorsa, yardımcı teknoloji bunu zaten duyurur; bu yüzden bu kriterin dışındadır.
  • Aşırı duyurmayın: Önemli ve zamana duyarlı olmayan içerik için role="alert" ya da aria-live="assertive" kullanmak hatadır.
  • Kapsam dışı: Formlardaki girdi hatalarını belirlemek 3.3.1'dir. Bağlam değişiklikleri 3.2.1 ve 3.2.2'dir.

Kimleri etkiler?

Yeni önemli metni yerlerini kaybetmeden duyması gereken ekran okuyucu kullanıcıları. Çevresel metni görmeyen, ekran okuyucu kullanan az görenler. İşaretlenmiş mesajlar sayesinde yardımcı teknolojinin onları geciktirmesi, bastırması ya da vurgulaması mümkün olan bilişsel engelli kişiler. Mesajı fark eden gören kullanıcılar da aynı bilgiyi başka bir biçimde alır.

EAA ve EN 301 549'da

Avrupa Erişilebilirlik Yasası (Direktif (AB) 2019/882) 28 Haziran 2025'ten sonra piyasaya sunulan kapsamdaki ürün ve hizmetler için geçerlidir. Yasanın 47. gerekçesi web siteleri ve mobil uygulamalar için dört ilkeyi sayar: algılanabilirlik, işletilebilirlik, anlaşılabilirlik ve sağlamlık. Yardımcı teknolojinin sunabildiği durum mesajları, "sağlamlık" ilkesinin parçasıdır.

Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 4.1.3'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.

WCAG 4.1.3'in EN 301 549'daki karşılıkları
MaddeOrtamNe ister?
9.4.1.3Web sayfalarıWeb içeriğinin WCAG 4.1.3 kriterini karşılamasını ister.

Kriter metni, işaretleme dilleriyle uygulanan içeriğe uygulanır. EN 301 549 V4.1.1'in dokümanları ve yazılımı nasıl ele aldığını kontrol edin. Kriterin web dışı dokümanlara uygulanıp uygulanmadığı ve nasıl uygulandığı standardın 10. maddesinde belirtilir. Madde numaraları EN 301 549'un "9. + WCAG numarası" düzenine göredir. V3.2.1'de yazılım maddesi, açık ve kapalı işlevsellik için ayrı alt maddelere bölünmüştür. Kaynak gösterirken tam numaraları standarttan kontrol edin.

Standart sürümü: EN 301 549 V4.1.1 (Eylül 2026), WCAG 2.2'yi esas alan ve EAA için hazırlanan ilk sürümdür. Henüz AB Resmî Gazetesi'nde atıf almamıştır; bu nedenle EAA gereksinimlerini karşılamanın gönüllü teknik yolu olarak görülmelidir. Atıf yapıldığında EAA ile ilgili uygunluk karinesi sağlayacaktır. 4.1.3 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır. AA düzeyinde bir kriterdir.

EAA bağlamında dikkat: Yasanın Madde 2/4 hükmü bazı içerikleri gereksinimlerin dışında bırakır; örneğin 28 Haziran 2025'ten önce yayımlanmış ofis dosya biçimleri ve bu tarihten sonra güncellenmeyen arşivler. Bu tarihten sonra yayımladığınız ya da değiştirdiğiniz içerik bu istisnaların kapsamında değildir.

Directive (EU) 2019/882, EUR-Lex, İngilizce, yeni sekmede açılır

Web için kod örnekleri

1. Arama sonucu sayısı (ARIA22)

Sayfada zaten bulunan bir kapsayıcıya role="status" ekleyin ve metnini güncelleyin.

Hatalı
<div id="count">12 sonuç</div> <!-- metin sessizce değişiyor -->
Doğru
<div id="count" role="status" aria-atomic="true">12 sonuç</div>
<script>
count.textContent = results.length + " sonuç";
</script>

2. Başarı geri bildirimi (G199)

Bir eylemden sonraki onay, odak taşınmadan duyurulmalıdır.

Hatalı
toast.textContent = "Sepete eklendi"; // açığa çıkarılmıyor
Doğru
<div role="status" id="toast"></div>
<script>
addBtn.addEventListener("click", () => {
  toast.textContent = "Sepete eklendi";
});
</script>

3. Hata uyarısı (ARIA19)

Önemli, zamana duyarlı bir hata için role="alert" kullanın.

Hatalı
<div class="error">Kart reddedildi</div>
Doğru
<div role="alert">Kartınız reddedildi. Numarayı kontrol edin ya da başka bir kart deneyin.</div>

4. İlerleme güncellemesi (ARIA25)

Yükleme ilerlemesini her yüzdede değil, kibar bir canlı bölgeyle duyurun.

Hatalı
<progress value="60" max="100"></progress> <!-- hiçbir şey duyurulmuyor -->
Doğru
<progress value="60" max="100" aria-label="Yükleme"></progress>
<div role="status" id="up">Yükleme %60 tamamlandı</div>

5. Sohbet ya da olay günlüğü (ARIA23)

Zaman içinde eklenen ardışık girdiler için role="log" kullanın.

Hatalı
<div id="chat">…</div> <!-- yeni mesajlar sessiz -->
Doğru
<div id="chat" role="log" aria-label="Sohbet mesajları">…</div>

6. Her şey için alert kullanmayın

role="alert" baskındır ve kullanıcıyı böler. Yalnızca önemli, zamana duyarlı içerik için kullanın.

Hatalı
<div role="alert">Kaydedildi</div> <!-- zamana duyarlı değil -->
Doğru
<div role="status">Kaydedildi</div>

Mobil için kod örnekleri

Bu kriter işaretleme dilleri için yazılmıştır, ama fikir uygulamalar için de geçerlidir. iOS ve Android'de bir duyuru gönderin ya da bir bölgeyi canlı olarak işaretleyin; ekran okuyucular güncellemeyi seslendirsin.

iOS (SwiftUI)

import SwiftUI

struct CartButton: View {
    @State private var count = 0

    var body: some View {
        Button("Sepete ekle") {
            count += 1
            // VoiceOver tarafından odak taşınmadan duyurulur
            AccessibilityNotification.Announcement("Sepete eklendi. \(count) ürün").post()
        }
    }
}

Android (Jetpack Compose)

import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.LiveRegionMode
import androidx.compose.ui.semantics.liveRegion
import androidx.compose.ui.semantics.semantics

@Composable
fun ResultCount(count: Int) {
    // TalkBack, canlı bölgedeki değişiklikleri odağı taşımadan duyurur
    Text(
        text = "$count sonuç",
        modifier = Modifier.semantics { liveRegion = LiveRegionMode.Polite }
    )
}

Nasıl test edilir?

  • Durum mesajlarını listeleyin: Odağı taşımadan görünen sonuç sayılarını, onayları, uyarıları, ilerleme göstergelerini, sohbet güncellemelerini ve diğer mesajları bulun.
  • İşaretlemeyi kontrol edin: Her mesaj, status, alert ya da log gibi uygun role sahip bir öğede ya da bir canlı bölgede mi duruyor?
  • Ekran okuyucu kullanın: Her mesajı tetikleyin. Odak taşınmadan duyuruluyor mu?
  • Zamanlamayı kontrol edin: Kapsayıcı, metin eklenmeden önce sayfada mı? Mesaj tekrar tekrar değil, bir kez mi duyuruluyor?
  • Seviyeyi kontrol edin: alert yalnızca önemli ve zamana duyarlı mesajlar için mi kullanılıyor?
  • Durum mesajı olmayanı kontrol edin: Odak taşınıyorsa ya da bir iletişim kutusu açılıyorsa, kriter uygulanmaz.
  • Denetleyiciyi başlangıç olarak kullanın: Otomatik araçlar bir eylemden sonra görünen mesajları göremez. Arayüzü bir kişi kullanmalı ve dinlemelidir.

Sık yapılan hatalar

  • Sessiz güncellemeler: Rolü ya da canlı bölgesi olmadan görünen mesajlar (F103).
  • Her mesaja odağı taşımak: Kullanıcıyı böler.
  • Her şeyde role="alert": Sürekli kesintiler.
  • Metniyle aynı anda oluşturulan canlı bölge: Metin çoğu zaman duyurulmaz.
  • Çok hızlı kaybolan mesaj: Kullanıcılar okuyamadan ya da duyamadan.
  • Aynı duyuruyu tekrarlamak: Mesaj tekrar tekrar okunur.
  • Her adımda duyurulan ilerleme: Kullanıcıyı mesajlara boğar.
  • Yalnızca görsel ipuçları: Metinsiz bir döner gösterge ya da renk değişikliği.

Kaynaklar

Standart sürümü: EN 301 549 V4.1.1 (2026-09), WCAG 2.2. Bu sayfa bilgilendirme amaçlıdır ve hukuki tavsiye niteliği taşımaz; bağlayıcı metin için Avrupa Erişilebilirlik Yasası'nın (Direktif (AB) 2019/882) ve EN 301 549 standardının resmî metinlerini esas alın.

Corpowid, Gartner tarafından tanınan bir platformdur.

Corpowid, dijital erişilebilirlik alanındaki yenilikçi yaklaşımı ve performansı nedeniyle dünyanın önde gelen araştırma ve danışmanlık şirketlerinden biri olan Gartner tarafından takdir edilmiştir. Bu rozetler, yapay zeka destekli ve kapsayıcı web deneyimleri oluşturma konusundaki kararlılığımızı yansıtmaktadır.

Corpowid hakkında sorularınız mı var?

Bizimle iletişime geçin.

Size en kısa sürede geri dönüş sağlayacağız.