WCAG 1.2.4 · AA Seviyesi · EN 301 549 9.1.2.4

Altyazılar (Canlı)

Web seminerleri ve canlı yayınlar gibi senkronize medyadaki tüm canlı sesler için altyazı sunulmasını ister. Böylece sağır ve işitme güçlüğü olan kullanıcılar etkinliği gerçek zamanlı takip eder.

Kısaca

Canlı etkinliklerde önceden bir altyazı dosyası hazırlamaya zaman yoktur. Bir web seminerine, canlı yayınlanan bir konferansa ya da canlı bir soru-cevap oturumuna katılan sağır veya işitme güçlüğü olan kişi, konuşma söylenirken metne çevrilmediği sürece hiçbir şey duymaz.

Bu kriter, senkronize medyadaki, yani sesli canlı videodaki tüm canlı sesler için altyazı ister. Canlı altyazıyı genellikle eğitimli bir insan altyazıcı (CART, gerçek zamanlı iletişim erişim çevirisi), konuşma tanıma ya da ikisinin birleşimi üretir. Önemli olan, altyazının etkinlik sırasında bulunması, takip edilebilecek kadar doğru olması ve konuşmaya zaman olarak yeterince yakın olmasıdır.

Neleri kapsar?

  • Sesli canlı video: Web seminerleri, çevrimiçi dersler, canlı yayınlanan konferanslar, canlı ürün lansmanları, şirket içi toplantılar ve canlı soru-cevap oturumları.
  • Kamuya açık yaptığınız görüntülü toplantılar: Hizmetinizin parçası olan, bir görüntülü konuşma platformunda yapılan herkese açık toplantı ya da müşteri oturumu kapsama girer.
  • Altyazının içeriği: Konuşma, belli değilse kimin konuştuğu ve önemli sesler. Gerçek zamanda kusursuz doğruluk zordur; ancak önemli isimler, sayılar ve terimler doğru olmalıdır.
  • Gecikme: Canlı altyazıda kısa bir gecikme beklenir. Altyazı, işe yaramayacak kadar geride kalmamalıdır.
  • İstisna: Metnin alternatifi olan medya için bir istisna yoktur. Kriter canlı senkronize medyaya uygulanır.
  • Kapsam dışı notlar: Önceden kaydedilmiş video 1.2.2 kapsamındadır. Canlı etkinliğin kaydını sonradan yayımlarsanız kayıt, 1.2.2 uyarınca gözden geçirilmiş altyazı gerektirir. Yalnızca sesli canlı içerik (canlı radyo yayını gibi) bu kriterin kapsamında değildir.

Kimleri etkiler?

Sağır ve işitme güçlüğü olan kullanıcılar canlı etkinlikleri altyazıyla takip eder. Canlı altyazı ayrıca gürültülü yerlerdeki kişilere, dili ana dili olmayanlara, dinlemekten çok okumayı kolay bulanlara ve etkinliğe geç katılıp söylenenleri yakalamak isteyen herkese de yardımcı olur.

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. Canlı altyazı, algılanabilirliğin bir parçasıdır.

Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 1.2.4'ü atıfla alır ve ortama göre ayrı maddelere dönüştürür. 7.1 maddesi ayrıca altyazıyı gösteren oynatıcılar için gereksinimler koyar; 6. madde ise görüntülü görüşme gibi gerçek zamanlı iletişimi kapsar.

WCAG 1.2.4'ün EN 301 549'daki karşılıkları
MaddeOrtamNe ister?
9.1.2.4Web sayfalarıWeb içeriğinin WCAG 1.2.4 kriterini karşılamasını ister.
11.1.2.4Web dışı yazılım (yerel mobil uygulamalar)Ekran okuyucuyu destekleyen yazılımda kriterin karşılanmasını ister.
7.1Video teknolojileri (sesli video gösteren oynatıcılar ve yazılımlar)Oynatıcının altyazıyı gösterebilmesini ve kullanıcının görünümünü ayarlayabilmesini ister.

Dokümanlar canlı olmadığı için kriter onlara uygulanmaz. 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. 1.2.4 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır. AA düzeyinde bir kriterdir.

EAA bağlamında dikkat: Madde 2/4'teki istisna, 28 Haziran 2025'ten önce yayımlanmış önceden kaydedilmiş zamana dayalı medyayı kapsar. Canlı içeriği kapsamaz; dolayısıyla kapsamdaki bir hizmetin parçası olarak yayınladığınız canlı etkinlikler bu istisnayla dışarıda kalmaz.

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

Web için kod örnekleri

1. Kullanıcılara canlı altyazıya nasıl ulaşacaklarını söyleyin

Etkinlik sayfasında altyazı sunulduğunu ve nerede bulunacağını belirtin. Altyazıcı ayrı bir hizmette çalışıyorsa altyazı akışına bağlantı verin.

Hatalı
<h1>Ürün lansmanı, canlı</h1>
<iframe src="https://yayin.example.com/lansman"
        title="Canlı yayın"></iframe>
Doğru
<h1>Ürün lansmanı, canlı</h1>
<iframe src="https://yayin.example.com/lansman"
        title="Ürün lansmanı canlı yayını"></iframe>
<p>Türkçe canlı altyazı bir altyazıcı tarafından sağlanır.
   <a href="https://altyazi.example.com/lansman"
      target="_blank" rel="noopener noreferrer">Canlı altyazıyı
   yeni pencerede açın<span class="sr-only">, yeni sekmede
   açılır</span></a></p>
<p>Gözden geçirilmiş altyazılı kayıt 48 saat içinde
   yayımlanacaktır.</p>

2. HLS yayınında canlı altyazı

HLS ile yayın yapıyorsanız altyazıyı ana oynatma listesinde bir altyazı sürümü olarak yayımlayın ve konuşmanın yazıya dökümü olarak işaretleyin. Oynatıcılar böylece bir altyazı menüsü gösterebilir.

Hatalı
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720
video/720p.m3u8
Doğru
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Türkçe",
  LANGUAGE="tr",DEFAULT=YES,AUTOSELECT=YES,
  CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog",
  URI="altyazi-tr/canli.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,
  SUBTITLES="subs"
video/720p.m3u8

3. Özel canlı oynatıcıda altyazı paneli

Bir altyazı hizmetinden metin alıyorsanız bunu videonun yanında ya da üstünde görünür metin olarak gösterin. Ekran okuyucuların duyurduğu bir canlı bölge yapmayın: ekran okuyucu kullanıcıları sesi zaten duyar ve ikinci bir duyuru sesin üstüne biner.

Hatalı
<div id="altyazi" aria-live="assertive"></div>
Doğru
<section aria-label="Canlı altyazı" lang="tr">
  <div id="altyazi" class="canli-altyazi"></div>
</section>

<script>
const kutu = document.getElementById("altyazi");
const soket = new WebSocket("wss://altyazi.example.com/lansman");

soket.addEventListener("message", (event) => {
  const satir = document.createElement("p");
  satir.textContent = event.data;
  kutu.appendChild(satir);
  // Yalnızca son satırları tutun
  while (kutu.children.length > 3) kutu.firstChild.remove();
});
</script>

4. Altyazıyı etkinlikten önce planlayın

Canlı altyazı hazırlık ister. Altyazıcıyı bilgilendirin, isimleri ve terimleri önceden paylaşın ve yayına girmeden önce akışı kontrol edin.

Hatalı
Etkinlik kontrol listesi:
- Kamerayı dene
- Mikrofonu dene
- Yayına gir
Doğru
Etkinlik kontrol listesi:
- Altyazıcı ayarla; gündemi, konuşmacı adlarını, ürün
  adlarını ve terimleri gönder
- Kamerayı ve mikrofonu dene
- Altyazı akışını bir prova ile dene
- Altyazıyı etkinlik sayfasında duyur
- Kayıt için gözden geçirilmiş altyazıyı planla

Mobil için kod örnekleri

Yerel mobil uygulamalarda aynı kural geçerlidir. Canlı yayınınızın taşıdığı altyazıyı gösterebilen ve kullanıcının sistem ayarlarını izleyen platformun video oynatıcısını kullanın.

iOS (SwiftUI)

import SwiftUI
import AVKit

struct CanliEtkinlik: View {
    // Canlı HLS akışı, yukarıdaki oynatma listesindeki gibi
    // bir altyazı sürümü (WebVTT veya CEA-608/708) taşımalıdır.
    @State private var player = AVPlayer(
        url: URL(string: "https://example.com/canli/lansman.m3u8")!
    )

    var body: some View {
        VStack(alignment: .leading, spacing: 8) {
            // AVKit altyazı menüsünü gösterir ve "Closed
            // Captions + SDH" sistem ayarını izler.
            VideoPlayer(player: player)
                .frame(height: 220)
                .accessibilityLabel("Ürün lansmanı canlı yayını")

            Text("Canlı altyazı, oynatıcının altyazı menüsünde bulunur.")
                .font(.footnote)
        }
    }
}

Android (Jetpack Compose, Media3)

import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.viewinterop.AndroidView
import androidx.media3.common.C
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.ui.PlayerView

@Composable
fun CanliEtkinlik(player: ExoPlayer) {
    // Altyazı kanalını, varsa Türkçe olarak tercih edin
    LaunchedEffect(Unit) {
        player.trackSelectionParameters = player
            .trackSelectionParameters
            .buildUpon()
            .setPreferredTextLanguage("tr")
            .setPreferredTextRoleFlags(C.ROLE_FLAG_CAPTION)
            .build()
    }

    AndroidView(factory = { context ->
        PlayerView(context).apply {
            this.player = player
            // Kontrollerde altyazı düğmesini gösterir
            setShowSubtitleButton(true)
        }
    })
}

Nasıl test edilir?

  • Katılımcı olarak katılın: Canlı etkinliği bir kullanıcının yapacağı gibi masaüstünde ve mobilde açın. Altyazıyı yardım almadan bulabiliyor musunuz?
  • Sesi kapatıp izleyin: Yalnızca görüntü ve altyazıyla etkinliği takip edebiliyor musunuz?
  • Gecikmeyi ve doğruluğu kontrol edin: Bir prova sırasında altyazıyı konuşmayla karşılaştırın. İsimler, sayılar ve teknik terimler doğru mu? Gecikme takip edilebilecek kadar kısa mı?
  • Okunabilirliği kontrol edin: Metin yeterince büyük, kontrastı yeterli ve ekranda yeterince uzun kalıyor mu? Görüntünün önemli bir kısmını örtüyor mu?
  • Denetimleri test edin: Altyazıyı klavyeyle ve ekran okuyucuyla açıp kapatabiliyor musunuz? Denetim adını ve durumunu bildiriyor mu?
  • Duyuruyu kontrol edin: Etkinlik sayfası altyazı sunulduğunu ve ona nasıl ulaşılacağını belirtiyor mu?
  • Kaydı planlayın: Etkinlikten sonra, söz verilen sürede kayda gözden geçirilmiş altyazı ekleniyor mu?
  • Otomatik araçların sınırı: Otomatik araçlar canlı altyazıyı test edemez. Altyazının doğru ve zamanında olup olmadığını ancak gerçek bir kişiyle yapılan prova gösterir.

Sık yapılan hatalar

  • Canlı etkinliği altyazısız yapmak: Bu kriterin en sık görülen ihlali.
  • Altyazının var olduğunu kimseye söylememek: Özellik gizliyse kullanıcılar kullanamaz.
  • Yayına girmeden altyazı akışını denememek: Hiçbir şey göstermeyen ya da yanlış dilde olan bir akış çok geç fark edilir.
  • Altyazıcıyı ya da konuşma motorunu bilgilendirmemek: İsimler, ürün terimleri ve kısaltmalar hazırlık olmadan çoğu zaman yanlış çıkar.
  • Konuşmanın çok gerisinde kalan altyazı: Birkaç saniyelik gecikme altyazıyı takip etmeyi zorlaştırır.
  • Altyazı panelini ekran okuyucu canlı bölgesi yapmak: Ekran okuyucu kullanıcıları sesi zaten duyar.
  • Görüntüyü örten altyazı: Yüzleri, slaytları ya da ekrandaki metni gizlemeyecek şekilde konumlandırın.
  • Kaydı ham canlı altyazıyla yayımlamak: Kayıtlar, 1.2.2 kriteri uyarınca gözden geçirilmiş altyazı gerektirir.

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.