Önceden kaydedilmiş sesli videolarda sesli betimleme ya da tam bir metin alternatifi sunulmasını ister. Böylece kör ve az gören kullanıcılar önemli görsel bilgiye ulaşır.
Bir video çoğu zaman kimsenin yüksek sesle söylemediği şeyleri gösterir: bir slayttaki grafik, birinin hareketi, ekrandaki bir hata iletisi, bir sahne değişimi. Görüntüyü göremeyen kullanıcı, ses kanalı kusursuz çalsa bile bunların hepsini kaçırır.
Bu kriter, önceden kaydedilmiş sesli videoların iki seçenekten birini sunmasını ister. Ya sesli betimleme, yani önemli görsel ayrıntıları anlatan bir anlatım; ya da medya alternatifi, yani hem söyleneni hem gösterileni içeren tam bir metin sürümü. İkisinden biriyle kriteri karşılayabilirsiniz. Ancak AA düzeyindeki 1.2.5 kriteri özellikle sesli betimleme ister; bu yüzden yalnızca medya alternatifi A düzeyi için yeterlidir.
Kör ve az gören kullanıcılar, videonun görsel kısmına sesli betimleme ya da betimlemeli transkript aracılığıyla ulaşır. Görme ve işitme engeli birlikte olan kullanıcılar medya alternatifini braille ekranda okur. Betimlemeli transkript, videoyu izleyemeyenlere (araba kullanırken ya da yavaş bir bağlantıda), hızlı akan bir görüntüyü takip etmektense okumayı kolay bulan bilişsel ya da dikkat farklılıkları olan kullanıcılara ve arama motorlarına da yardımcı olur.
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. Bir videonun gösterdiklerine görmeden erişim sağlamak, algılanabilirliğin bir parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 1.2.3'ü atıfla alır ve ortama göre ayrı maddelere dönüştürür. Ayrıca standardın 7. maddesi, video oynatıcıların kendisi için gereksinimler koyar.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.1.2.3 | Web sayfaları | Web içeriğinin WCAG 1.2.3 kriterini karşılamasını ister. |
| 10.1.2.3 | Web dışı dokümanlar (PDF, Office dosyaları) | Aynı kriterin dokümanlara gömülü videoya uygulanmasını ister. |
| 11.1.2.3 | Web dışı yazılım (yerel mobil uygulamalar) | Ekran okuyucuyu destekleyen yazılımda kriterin karşılanmasını ister. |
| 7.2 | Video teknolojileri (sesli video gösteren oynatıcılar ve yazılımlar) | Oynatıcının sesli betimlemeyi çalabilmesini, senkronize tutabilmesini ve video aktarılırken koruyabilmesini ister. |
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; 7.2 maddesi de oynatma, senkronizasyon ve koruma için alt gereksinimlere ayrılı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.3 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır.
EAA bağlamında dikkat: Madde 2/4, 28 Haziran 2025'ten önce yayımlanmış önceden kaydedilmiş zamana dayalı medyayı ve şirketin kontrolü ya da finansmanı dışındaki üçüncü taraf içeriği kapsam dışında bırakır. Bu tarihten sonra yayımladığınız videolar ile yeniden yayımladığınız ya da önemli ölçüde değiştirdiğiniz eski videolar bu istisnanın dışındadır.
Directive (EU) 2019/882, EUR-Lex, İngilizce, yeni sekmede açılır
Ses kanalında betimleme bulunan ikinci bir video sürümü sunun ve bağlantıyı oynatıcının yanında kolay bulunur yapın.
<!-- Video bir formun doldurulmasını gösteriyor, ama
anlatım yalnızca "gördüğünüz gibi" diyor -->
<video controls src="tur.mp4"></video><video controls src="tur.mp4">
<track kind="captions" src="tur.tr.vtt"
srclang="tr" label="Türkçe" default>
</video>
<p><a href="/videolar/tur-betimlemeli">Ürün turunu
sesli betimlemeyle izleyin</a></p>Medya alternatifi yalnızca sözlerden ibaret değildir. Görülenleri de, olduğu sırayla ve ekranda gösterilen metinler dahil anlatır.
<details>
<summary>Transkript</summary>
<p><strong>Ayşe:</strong> Sonra buraya tıklıyorsunuz.</p>
<p><strong>Ayşe:</strong> Şimdi böyle görünüyor.</p>
</details><details>
<summary>Betimlemeli transkript</summary>
<p><em>[Görüntü: Ayarlar sayfası. Ayşe imleci "Kaydet"
yazan mavi bir düğmeye götürür.]</em></p>
<p><strong>Ayşe:</strong> Sonra buraya tıklıyorsunuz.</p>
<p><em>[Görüntü: Yeşil bir ileti belirir: "Değişiklikler
kaydedildi".]</em></p>
<p><strong>Ayşe:</strong> Şimdi böyle görünüyor.</p>
</details>Kriteri karşılamanın en ucuz yolu, senaryoyu ses kanalı zaten görüntüde olanı söyleyecek şekilde yazmaktır. O zaman ayrıca betimleme gerekmez.
Anlatım senaryosu:
"Bu düğmeye tıklayın, sonra şu seçeneklerden birini seçin.
Gördüğünüz gibi sonuç burada çıkıyor."Anlatım senaryosu:
"Sağ üst köşedeki mavi Dışa Aktar düğmesini seçin, sonra
listeden CSV'yi seçin. Dışa aktarılan dosya soldaki
İndirilenler panelinde görünür."kind="descriptions" olan bir track, betimlemeyi zamanlanmış metin olarak taşır. Tarayıcılar bunu kendiliğinden sesli okumaz; bu yüzden küçük bir betik her ipucunu ekran okuyucuların duyurduğu bir canlı bölgeye gönderir. Kaydedilmiş bir sesli betimleme bundan daha iyi bir deneyimdir; bunu tamamlayıcı olarak görün.
<video controls src="tur.mp4">
<track kind="descriptions" src="tur.betim.vtt"
srclang="tr">
</video>
<!-- Hiçbir şey ipuçlarını kullanıcıya okumuyor --><video id="tur" controls src="tur.mp4">
<track kind="descriptions" src="tur.betim.vtt"
srclang="tr" label="Betimleme">
</video>
<div id="betim-canli" class="sr-only" aria-live="polite"></div>
<script>
const video = document.getElementById("tur");
const canli = document.getElementById("betim-canli");
const track = video.textTracks[0];
track.mode = "hidden"; // İpuçlarını yükle, ekrana çizme
track.addEventListener("cuechange", () => {
const cue = track.activeCues[0];
if (cue) canli.textContent = cue.text;
});
</script>Yerel mobil uygulamalarda aynı kural geçerlidir. Platformun video oynatıcısını kullanın, betimlemeyi taşıyan ikinci bir ses kanalı ekleyin ve sistemin bulabilmesi için onu işaretleyin.
import SwiftUI
import AVKit
struct TurVideosu: View {
@State private var player = AVPlayer(
url: URL(string: "https://example.com/tur.m3u8")!
)
var body: some View {
VideoPlayer(player: player)
.frame(height: 220)
.task { await sesliBetimlemeyiSec() }
}
// Videoyu betimleyen ses kanalını seçin.
// HLS akışı bu kanalı public.accessibility.describes-video
// özelliğiyle işaretlemelidir. AVKit ayrıca Ayarlar >
// Erişilebilirlik altındaki "Sesli Betimleme" ayarını izler.
private func sesliBetimlemeyiSec() async {
guard let item = player.currentItem,
let group = try? await item.asset
.loadMediaSelectionGroup(for: .audible)
else { return }
let betimlemeli = AVMediaSelectionGroup.mediaSelectionOptions(
from: group.options,
withMediaCharacteristics: [.describesVideoForAccessibility]
)
if let option = betimlemeli.first {
item.select(option, in: group)
}
}
}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 TurVideosu(player: ExoPlayer, betimlemeTercih: Boolean) {
// Akış, rol bayrakları ROLE_FLAG_DESCRIBES_VIDEO
// içeren bir ses kanalı barındırmalıdır.
LaunchedEffect(betimlemeTercih) {
player.trackSelectionParameters = player
.trackSelectionParameters
.buildUpon()
.setPreferredAudioRoleFlags(
if (betimlemeTercih) C.ROLE_FLAG_DESCRIBES_VIDEO else 0
)
.build()
}
AndroidView(factory = { context ->
PlayerView(context).apply { this.player = player }
})
}video öğesinin varlığını saptayabilir, ancak bir betimlemenin eksiksiz ve yararlı olup olmadığına karar veremez. Buna ancak bir kişi karar verebilir.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.