WCAG 1.4.2 · A Seviyesi
Ses Kontrolü
Sayfa açıldığında kendiliğinden başlayan ve 3 saniyeden uzun süren sesler için kullanıcıya sesi durdurma, kapatma veya sistemden bağımsız olarak kısma imkânı verilmesini ister.
Kısaca
Sayfa açılır açılmaz çalmaya başlayan bir tanıtım videosu veya arka plan müziği, ekran okuyucu kullanan bir kişinin bilgisayarının sesini duymasını engeller. Kullanıcı sesi kapatacak düğmeyi bulmaya çalışırken o düğmenin adını bile duyamayabilir.
Bu kriter, kendiliğinden başlayan ve 3 saniyeden uzun süren sesler için sesi durdurma, duraklatma veya sistem ses düzeyinden bağımsız olarak kısma imkânı ister. En iyi çözüm, sesi hiç otomatik başlatmamaktır.
Neleri kapsar?
- Otomatik oynatılan video sesi: Sayfa veya ekran açıldığında kendiliğinden sesli başlayan videolar.
- Arka plan müziği: Sayfa boyunca çalan müzik veya ortam sesleri.
- Sesli reklamlar: Kendiliğinden ses çıkaran reklam alanları.
- 3 saniye eşiği: 3 saniye veya daha kısa süren bildirim sesleri bu kriterin kapsamına girmez.
- Bağımsız kontrol: Ses düzeyi denetimi, işletim sisteminin genel ses ayarından ayrı olmalıdır; aksi hâlde ekran okuyucunun sesi de kısılır.
- Kapsam dışı notlar: Kendiliğinden hareket eden görsel içeriğin durdurulması Duraklatma, Durdurma, Gizleme kriterinin konusudur.
Kimleri etkiler?
Ekran okuyucu kullanan kör ve az gören kişiler en çok etkilenen gruptur; çünkü sayfadaki ses, ekran okuyucunun konuşmasının üzerine biner. Dikkat dağınıklığı yaşayan veya bilişsel engeli olan kullanıcılar arka plan sesleri nedeniyle içeriğe odaklanamayabilir. İşitme cihazı kullanan kişiler ve sessiz ortamlarda bulunanlar da beklenmedik seslerden olumsuz etkilenir.
Kontrol listesinde
Bu kriter, Bakanlığın A Seviyesi Kontrol Listesi'nde 54–55 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? |
|---|---|---|
| 54 | Yönlendirme | Kullanıcı başlatmadan kendiliğinden çalan ve 3 saniyeyi aşan bir ses olup olmadığını sorar. |
| 55 | ★ Zorunlu | Bu ses için kullanıcıya durdurma veya kapatma imkânı, ya da sistem ses düzeyinden bağımsız bir ses ayarı sunulup sunulmadığını kontrol eder. |
Resmî kontrol listesini indirin (PDF), yeni sekmede açılır
Web için kod örnekleri
1. Otomatik oynatmayı kaldırmak
En güvenli çözüm, videoyu kullanıcı başlatana kadar beklemektir.
<video src="/video/belediye-tanitim.mp4" autoplay></video><video src="/video/belediye-tanitim.mp4" controls
preload="metadata"></video>2. Sessiz başlayan arka plan videosu
Görsel amaçlı arka plan videolarında ses kapalı başlatılmalıdır. Bu durumda ses kriteri sorun oluşturmaz; ancak hareketi durduracak bir düğme yine gerekir (Duraklatma, Durdurma, Gizleme kriteri).
<video src="/video/sahil-manzarasi.mp4"
autoplay muted loop playsinline
aria-hidden="true"></video>3. Arka plan müziği için durdurma düğmesi
Müzik otomatik başlıyorsa, durdurma düğmesi sayfanın en başında ve klavyeyle ilk ulaşılan öğelerden biri olmalıdır.
<audio src="/ses/fon-muzigi.mp3" autoplay loop></audio><body>
<button type="button" id="muzik-dugmesi">
Müziği durdur
</button>
<audio id="fon" src="/ses/fon-muzigi.mp3" autoplay loop></audio>
…
<script>
const fon = document.getElementById("fon");
const dugme = document.getElementById("muzik-dugmesi");
dugme.addEventListener("click", () => {
if (fon.paused) {
fon.play();
dugme.textContent = "Müziği durdur";
} else {
fon.pause();
dugme.textContent = "Müziği başlat";
}
});
</script>Düğmenin metni durumla birlikte değiştiği için ayrıca aria-pressed kullanmaya gerek yoktur.
4. Bağımsız ses düzeyi denetimi
Sayfa içi ses düzeyi denetimi yalnızca o medyanın sesini etkiler; ekran okuyucunun sesi değişmez.
<label for="ses-duzeyi">Tanıtım videosu ses düzeyi</label>
<input type="range" id="ses-duzeyi" min="0" max="100" value="50">
<script>
const video = document.querySelector("video");
document.getElementById("ses-duzeyi")
.addEventListener("input", (e) => {
video.volume = e.target.value / 100;
});
</script>5. Gömülü YouTube videosu
Gömülü oynatıcılarda otomatik oynatma parametresini kullanmayın. Kullanmak zorundaysanız sesi kapalı başlatın.
<iframe title="Kurumsal tanıtım filmi"
src="https://www.youtube.com/embed/VIDEO_KIMLIGI?autoplay=1"
allow="autoplay"></iframe><iframe title="Kurumsal tanıtım filmi"
src="https://www.youtube.com/embed/VIDEO_KIMLIGI"></iframe>Mobil için kod örnekleri
iOS (SwiftUI)
Karşılama ekranında ses çalınacaksa kullanıcının başlatmasını bekleyin; otomatik başlıyorsa görünür ve erişilebilir bir durdurma düğmesi sunun.
import SwiftUI
import AVFoundation
struct KarsilamaEkrani: View {
@State private var oynatici: AVAudioPlayer?
@State private var caliyor = false
var body: some View {
VStack(spacing: 16) {
Text("Hoş geldiniz")
.font(.title)
.accessibilityAddTraits(.isHeader)
Button(caliyor ? "Müziği durdur" : "Müziği başlat") {
if caliyor { oynatici?.pause() } else { oynatici?.play() }
caliyor.toggle()
}
Slider(value: Binding(
get: { Double(oynatici?.volume ?? 0.5) },
set: { oynatici?.volume = Float($0) }
), in: 0...1)
.accessibilityLabel("Müzik ses düzeyi")
}
.onAppear {
if let url = Bundle.main.url(forResource: "karsilama", withExtension: "mp3") {
oynatici = try? AVAudioPlayer(contentsOf: url)
oynatici?.numberOfLoops = -1
// Otomatik başlatılmaz; kullanıcı "Müziği başlat" ile başlatır.
}
}
.onDisappear { oynatici?.stop() }
}
}Android (Jetpack Compose)
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer
@Composable
fun TanitimSesi() {
val context = LocalContext.current
val oynatici = remember {
ExoPlayer.Builder(context).build().apply {
setMediaItem(MediaItem.fromUri("https://ornek.gov.tr/ses/tanitim.mp3"))
prepare()
playWhenReady = false // Kendiliğinden başlamaz.
}
}
var caliyor by remember { mutableStateOf(false) }
var duzey by remember { mutableFloatStateOf(0.5f) }
DisposableEffect(Unit) { onDispose { oynatici.release() } }
Column {
Button(onClick = {
if (caliyor) oynatici.pause() else oynatici.play()
caliyor = !caliyor
}) {
Text(if (caliyor) "Sesi durdur" else "Sesi başlat")
}
Slider(
value = duzey,
onValueChange = {
duzey = it
oynatici.volume = it // Yalnızca bu oynatıcının sesi
},
modifier = Modifier.semantics { contentDescription = "Tanıtım sesi düzeyi" }
)
}
}Nasıl test edilir?
- Sayfayı sesle açın: Hoparlör açıkken sayfayı veya uygulama ekranını açın ve 3 saniyeden uzun süren bir ses başlayıp başlamadığını dinleyin.
- Denetimi bulun: Ses başlıyorsa, durdurma veya kısma denetimi sayfanın başında ve kolayca bulunur durumda mı?
- Ekran okuyucuyla deneyin: Ekran okuyucu açıkken denetime klavye veya kaydırma hareketiyle ulaşıp sesi kapatabiliyor musunuz? Ekran okuyucunun konuşması anlaşılıyor mu?
- Otomatik araçların sınırı: Otomatik araçlar
autoplayözniteliğini ve bazen sessiz olmayan medya öğelerini işaretleyebilir. Ancak gömülü oynatıcılarda veya betikle başlatılan seslerde sesin gerçekten çalıp çalmadığını, ne kadar sürdüğünü ve denetimin kullanılabilir olup olmadığını belirleyemez; bu kriter elle doğrulanmalıdır.
Sık yapılan hatalar
- Tarayıcının engellediğini varsaymak: Tarayıcılar sesli otomatik oynatmayı çoğu durumda engeller, ama her durumda değil. Kullanıcı daha önce siteyle etkileşime girdiyse ses çalabilir.
- Durdurma düğmesini sayfanın sonuna koymak: Ekran okuyucu kullanıcısı düğmeye ulaşana kadar sesi duymaya devam eder.
- Yalnızca sistem ses düzeyine güvenmek: Sistem sesini kısmak ekran okuyucunun sesini de kısar; bu bir çözüm değildir.
- Sesli reklamları denetimsiz bırakmak: Üçüncü taraf reklam alanları da sayfanın bir parçası olarak değerlendirilir.
- Ekran değişince sesi durdurmamak: Mobilde kullanıcı ekrandan çıktığında sesin arka planda çalmaya devam etmesi.
Kaynaklar
- Understanding SC 1.4.2: Audio Control (W3C), İngilizce, yeni sekmede açılır
- Erişilebilirlik blogu — Uygulamadan örnekler ve güncel yazılar.
- Erişilebilirlik sözlüğü — Otomatik oynatma, ekran okuyucu, yardımcı teknoloji 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
Sesli Betimleme veya Medya Alternatifi (Önceden Kaydedilmiş)
Önceden kaydedilmiş videolarda yalnızca görüntüde yer alan önemli bilgilerin sesli betimleme veya ayrıntılı bir metin alternatifiyle aktarılmasını ister.
Kriteri inceleTekrarlanan Blokların Atlanabilmesi
Birden fazla sayfada tekrar eden menü, başlık ve gezinti blokları için kullanıcının bu blokları atlayıp doğrudan ana içeriğe ulaşabileceği bir yol sunulmasını ister.
Kriteri inceleTekrarlanan Giriş
Aynı işlem sürecinde kullanıcının daha önce girdiği bilgilerin yeniden istenmemesini; gerekiyorsa otomatik doldurulmasını veya seçilebilir olarak sunulmasını ister.
Kriteri incele