WCAG 1.2.2 · A Seviyesi
Altyazılar (Önceden Kaydedilmiş)
Önceden kaydedilmiş ve hem ses hem görüntü içeren medyada, konuşmaların ve anlam taşıyan seslerin senkronize altyazılarla sunulmasını ister.
Kısaca
Önceden kaydedilmiş ve hem ses hem görüntü içeren her medya (eğitim videosu, tanıtım filmi, webinar kaydı, röportaj) için senkronize altyazı sağlanmalıdır. Altyazı yalnızca konuşulanları değil, anlamı etkileyen diğer sesleri de içerir.
Amaç, sesi duyamayan veya duymak istemeyen kullanıcıların videodaki bilgiye eşit şekilde ulaşabilmesidir. Altyazı, video ile eşzamanlı ilerlemeli ve eksiksiz, doğru, anlaşılır olmalıdır.
Neleri kapsar?
- Konuşmalar: Videodaki tüm konuşmaların metne dökülmesi.
- Konuşmacı değişimleri: Birden fazla kişi konuşuyorsa kimin konuştuğunun anlaşılması.
- Anlam taşıyan sesler: Kapı zili, alkış, alarm, müzik gibi içeriğin anlaşılması için gerekli sesler.
- Senkronizasyon: Altyazının konuşma ile aynı anda görünmesi.
- Kapsam dışı notlar: Videodaki yalnızca görsel bilgilerin sesle veya metinle aktarılması sonraki kriterin (Sesli Betimleme veya Medya Alternatifi) konusudur. Yalnızca ses içeren kayıtlar için transkript, bir önceki kriterin konusudur.
Kimleri etkiler?
Sağır ve işitme güçlüğü olan kullanıcılar bu kriterden doğrudan yararlanır. Ayrıca sesi açamayan (toplu taşıma, ofis, kütüphane), gürültülü bir ortamda bulunan, konuşulan dili yeni öğrenen veya konuşmayı yazıyla daha rahat takip eden kullanıcılar da altyazıya ihtiyaç duyar. Yardımcı teknolojiyle gezinen kullanıcılar için ise altyazı seçeneğinin klavye ve ekran okuyucu ile açılabilmesi önemlidir.
Kontrol listesinde
Bu kriter, Bakanlığın A Seviyesi Kontrol Listesi'nde 21–23 numaralı soruları kapsar. Yönlendirme soruları sayfada ilgili içerik olup olmadığını belirler; yoksa liste sizi sonraki soruya geçirir. Aşağıdaki açıklamalar sorulardan alıntı değil, özetidir. Soruların tam metni için resmî listeye bakın.
| Soru | Türü | Ne kontrol eder? |
|---|---|---|
| 21 | Yönlendirme | Sayfada veya ekranda, önceden kaydedilmiş ve hem ses hem görüntü barındıran bir medya olup olmadığını sorar. Video, aynı sayfadaki bir metnin birebir karşılığı olarak sunulmuş ve bu açıkça belirtilmişse kapsam dışı bırakılabilir. |
| 22 | ★ Zorunlu | Bu medyalar için konuşmaları ve önemli sesleri içeren, görüntüyle eşzamanlı çalışan altyazı sunulup sunulmadığını kontrol eder. |
| 23 | ★ Zorunlu | Sunulan altyazının kalitesini sorgular: konuşmalar, konuşmacı değişimleri ve anlam taşıyan sesler eksiksiz, doğru ve anlaşılır biçimde yer almalıdır. |
Resmî kontrol listesini indirin (PDF), yeni sekmede açılır
Web için kod örnekleri
1. Videoya altyazı dosyası bağlamak
HTML5 video için altyazı, öğesiyle bir WebVTT dosyasına bağlanır. Altyazı dosyası olmayan video, 22. soruyu karşılamaz.
2. Altyazı içeriği: konuşmacı ve anlam taşıyan sesler
Yalnızca konuşulan sözleri yazmak yeterli değildir. Konuşmacı değişimi ve içeriği etkileyen sesler de altyazıda yer almalıdır (23. soru).
WEBVTT
00:00:02.000 --> 00:00:05.000
Başvurunuz alınmıştır.
00:00:05.500 --> 00:00:08.000
Evraklarınızı yarın getirebilir miyim?WEBVTT
00:00:01.000 --> 00:00:02.000
[Kapı zili çalıyor]
00:00:02.000 --> 00:00:05.000
Memur: Başvurunuz alınmıştır.
00:00:05.500 --> 00:00:08.000
Vatandaş: Evraklarımı yarın
getirebilir miyim?3. Altyazıyı açıp kapatan özel kontrol
Kendi oynatıcınızı yazıyorsanız altyazı düğmesi gerçek bir
4. Gömülü YouTube videosu
Gömülü oynatıcıda altyazının görünmesi için önce videonun kendisine altyazı yüklenmiş olmalıdır. cc_load_policy parametresi, altyazı varsa varsayılan olarak açık başlatır; altyazı yoksa bir şey eklemez.
5. Altyazının görünürlüğünü bozan stil
Altyazı metni arka plan ile yeterli kontrast taşımalı ve oynatıcı arayüzü tarafından kapatılmamalıdır. Tarayıcıların altyazı biçimlendirmesi ::cue ile ayarlanabilir.
video::cue {
color: #cccccc;
background: transparent;
}video::cue {
color: #ffffff;
background: rgba(0, 0, 0, 0.8);
font-size: 1.1em;
}Mobil için kod örnekleri
iOS (SwiftUI)
Standart oynatıcı, videoda gömülü veya HLS bildiriminde tanımlı altyazıları kendi denetim menüsünde sunar. Aşağıdaki örnek, Türkçe altyazı tercihini oynatıcıya bildirir.
import SwiftUI
import AVKit
struct DuyuruVideosu: View {
@State private var oynatici = AVPlayer(
url: URL(string: "https://ornek.belediye.gov.tr/video/duyuru.m3u8")!
)
var body: some View {
VideoPlayer(player: oynatici)
.frame(height: 220)
.onAppear {
// Altyazı (legible) kanalında Türkçe ve erişilebilirlik amaçlı iz tercih edilir.
let kriter = AVPlayerMediaSelectionCriteria(
preferredLanguages: ["tr"],
preferredMediaCharacteristics: [.transcribesSpokenDialogForAccessibility]
)
oynatici.setMediaSelectionCriteria(kriter, forMediaCharacteristic: .legible)
}
}
}Android (Jetpack Compose)
Media3 ExoPlayer ile altyazı dosyası, medya öğesine SubtitleConfiguration olarak eklenir. PlayerView altyazı düğmesini kendi denetimlerinde gösterir.
import android.net.Uri
import androidx.compose.runtime.*
import androidx.compose.ui.viewinterop.AndroidView
import androidx.compose.ui.platform.LocalContext
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.MimeTypes
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.ui.PlayerView
@Composable
fun DuyuruVideosu() {
val context = LocalContext.current
val oynatici = remember {
val altyazi = MediaItem.SubtitleConfiguration.Builder(
Uri.parse("https://ornek.belediye.gov.tr/video/duyuru.tr.vtt")
)
.setMimeType(MimeTypes.TEXT_VTT)
.setLanguage("tr")
.setLabel("Türkçe")
.setRoleFlags(C.ROLE_FLAG_CAPTION)
.setSelectionFlags(C.SELECTION_FLAG_DEFAULT)
.build()
val medya = MediaItem.Builder()
.setUri("https://ornek.belediye.gov.tr/video/duyuru.mp4")
.setSubtitleConfigurations(listOf(altyazi))
.build()
ExoPlayer.Builder(context).build().apply {
setMediaItem(medya)
prepare()
}
}
DisposableEffect(Unit) {
onDispose { oynatici.release() }
}
AndroidView(
factory = { ctx ->
PlayerView(ctx).apply {
player = oynatici
setShowSubtitleButton(true)
}
}
)
}Nasıl test edilir?
- Sesi kapatıp izleyin: Videoyu sessizde baştan sona izleyin. Anlatılan her şeyi altyazıdan takip edebiliyor musunuz?
- Senkronizasyonu kontrol edin: Altyazı, konuşma ile aynı anda mı görünüyor, belirgin bir gecikme veya öne geçme var mı?
- Anlam taşıyan sesleri arayın: Alarm, zil, alkış gibi içeriği etkileyen sesler ve konuşmacı değişimleri altyazıda belirtilmiş mi?
- Klavye ve ekran okuyucu ile deneyin: Altyazı düğmesine Tab ile ulaşabiliyor, açıp kapatabiliyor ve durumunu duyabiliyor musunuz?
- Mobilde cihaz ayarlarıyla deneyin: İşletim sisteminin altyazı tercihleri açıkken uygulama altyazıyı gösteriyor mu?
- Otomatik araçların sınırı: Otomatik tarayıcılar genellikle
öğesindebulunup bulunmadığını işaretleyebilir. Altyazının doğruluğunu, eksiksizliğini, senkronizasyonunu ve anlam taşıyan seslerin yazılıp yazılmadığını kontrol edemezler. Üçüncü taraf oynatıcılarda (gömülü videolar) altyazının varlığını da güvenilir biçimde göremeyebilirler. Bu nedenle bu kriter büyük ölçüde elle denetlenmelidir.
Sık yapılan hatalar
- Otomatik altyazıyı gözden geçirmeden yayınlamak: Otomatik üretilen altyazılar özel adları, Türkçe ekleri ve teknik terimleri yanlış yazabilir. Yayınlamadan önce düzeltilmelidir.
- Yalnızca konuşmayı yazmak: Konuşmacı değişimi ve anlam taşıyan sesler eksik kalır.
- Altyazıyı ayrı bir dosya olarak sunmak: Altyazı videoyla eşzamanlı görünmüyor, yalnızca ayrı bir metin olarak indiriliyorsa bu kriter karşılanmaz.
- Altyazıyı varsayılan olarak erişilemez bırakmak: Altyazı düğmesi klavyeyle odaklanamıyor veya ekran okuyucuya adı bildirilmiyorsa kullanıcı altyazıyı açamaz.
- Düşük kontrastlı veya kapanan altyazı: Altyazı metni arka planda okunmuyor ya da oynatıcı denetimlerinin altında kalıyorsa işlevini yitirir.
- Gömülü videoda altyazı olduğunu varsaymak: Videoyu YouTube veya benzeri bir hizmetten gömmek altyazının otomatik olarak doğru ve eksiksiz olduğu anlamına gelmez.
- Altyazı yerine transkript sunmak: Ses ve görüntü içeren medyada ayrı bir transkript, senkronize altyazının yerini tutmaz.
Kaynaklar
- Understanding SC 1.2.2: Captions (Prerecorded) (W3C), İngilizce, yeni sekmede açılır
- Erişilebilirlik blogu — Uygulamadan örnekler ve güncel yazılar.
- Erişilebilirlik kütüphanesi — Altyazı, transkript, WebVTT ve diğer terimler.
Sitenizde bu kriter nasıl görünüyor?
Ücretsiz tarama, bu kriterdeki sorunları ve diğerlerini Bakanlığın A Seviyesi Kontrol Listesi esas alınarak listeler.
Sıradaki kriterler
Anlamlı Sıralama
Okunma sırası anlamı etkileyen içeriğin, yardımcı teknolojilerin izlediği programatik sırada da doğru ve mantıklı bir düzende sunulmasını ister.
Kriteri inceleBağlantının Maksadı
Her bağlantının amacının, bağlantı metninden ya da bağlantıyla birlikte programatik olarak belirlenebilen bağlamından anlaşılabilmesini ister.
Kriteri inceleBilgi ve İlişkiler
Görsel olarak sunulan yapının ve ilişkilerin (başlıklar, listeler, tablolar, form etiketleri, gruplar) yardımcı teknolojilerin anlayabileceği şekilde kodda da tanımlanmasını ister.
Kriteri incele