Beş saniyeden uzun süren hareketli, yanıp sönen, kayan ya da kendiliğinden güncellenen içeriği duraklatmanın, durdurmanın ya da gizlemenin bir yolunu ister.
Kendiliğinden dönen atlı karıncalar, kayan yazılar, hareketli bannerlar ve kendiliğinden güncellenen akışlar kullanması zor öğelerdir. Dikkat ya da okuma güçlüğü olan kişiler odaklanamaz, az gören kişiler yerini kaybeder, ekran okuyucu kullanıcıları ise içeriğin altlarında değiştiğini duyar.
Bu kriter, kendiliğinden başlayan, beş saniyeden uzun süren ve başka içerikle birlikte sunulan hareketli, yanıp sönen ya da kayan her bilgi için duraklatmanın, durdurmanın ya da gizlemenin bir yolunun bulunmasını ister. Kendiliğinden güncellenen bilgi için de, zorunlu olmadıkça, aynısı geçerlidir.
Hareketli içeriğin yanındaki içeriğe odaklanamayan dikkat, bilişsel ya da okuma güçlüğü olan kişiler. Yerini kaybedebilen az gören kişiler. Hareketten rahatsız olan vestibüler bozukluğu olanlar. İçerik değiştiğinde okuması kesintiye uğrayan ekran okuyucu kullanıcıları.
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. Hareketli içerik üzerindeki denetim, "işletilebilirlik" ilkesinin parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 2.2.2'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.2.2.2 | Web sayfaları | Web içeriğinin WCAG 2.2.2 kriterini karşılamasını ister. |
| 10.2.2.2 | Web dışı dokümanlar (PDF, Office dosyaları) | Standardın uyguladığı hâllerde hareketli ya da kendiliğinden güncellenen içeriği olan dokümanların aynı kuralı karşılamasını ister. |
| 11.2.2.2 | Web dışı yazılım (yerel mobil uygulamalar) | Hareketli, yanıp sönen, kayan ya da kendiliğinden güncellenen içeriği olan yazılımın, kullanıcıların onu duraklatmasına, durdurmasına ya da gizlemesine izin vermesini ister. |
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. 2.2.2 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır.
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
Kendiliğinden dönen bir atlı karınca, görünür ve klavyeyle erişilebilir bir duraklatma düğmesi gerektirir.
<div class="atli-karinca" data-autoplay="3000">…</div><div class="atli-karinca" aria-roledescription="atlı karınca" aria-label="Öne çıkanlar">
<button type="button" id="degistir" aria-pressed="false">Slaytları duraklat</button>
<div class="slaytlar" aria-live="off">…</div>
</div>
<script>
degistir.addEventListener("click", () => {
const durdu = degistir.getAttribute("aria-pressed") === "true";
degistir.setAttribute("aria-pressed", String(!durdu));
degistir.textContent = durdu ? "Slaytları duraklat" : "Slaytları oynat";
durdu ? donmeyiBaslat() : donmeyiDurdur();
});
</script>Kendiliğinden kayan metinden kaçının. Gerekiyorsa durdurmanın bir yolunu sunun.
<marquee>İndirim bugün bitiyor!</marquee><p>İndirim bugün bitiyor!</p>Sistemden hareketi azaltmasını isteyen kullanıcılar için animasyonları kapatın.
.kahraman { animation: yuz 6s infinite; }.kahraman { animation: yuz 6s infinite; }
@media (prefers-reduced-motion: reduce) {
.kahraman { animation: none; }
}Kullanıcılara onu duraklatmak için görünür bir kontrol verin ya da döngüye almayın.
<video autoplay muted loop src="arka.mp4"></video><video id="arka" autoplay muted loop src="arka.mp4"></video>
<button type="button" onclick="arka.paused ? arka.play() : arka.pause()">
Arka plan videosunu duraklat
</button>Kullanıcıların canlı güncellemeleri duraklatmasına ya da ne sıklıkla yenilendiğini denetlemesine izin verin.
setInterval(skorlariYenile, 5000);let zamanlayici = setInterval(skorlariYenile, 5000);
duraklatDugmesi.addEventListener("click", () => {
clearInterval(zamanlayici);
zamanlayici = null;
});Beş saniyeden uzun süre dönen bir GIF duraklatma gerektirir. Bunun yerine denetimli bir video kullanın.
<img src="tanitim.gif" alt="Tanıtım"><video src="tanitim.mp4" autoplay muted loop playsinline controls
aria-label="Tanıtım"></video>Yerel uygulamalarda da hareketli içerik vardır: bannerlar, atlı karıncalar ve animasyonlar. Sistemdeki Hareketi Azalt ayarına saygı gösterin ve beş saniyeden uzun süre kendiliğinden hareket eden her şey için bir duraklatma kontrolü verin.
import SwiftUI
struct AnaBanner: View {
@Environment(\.accessibilityReduceMotion) private var hareketiAzalt
@State private var duraklatildi = false
var body: some View {
VStack {
BannerAtliKarinca(otomatikIlerle: !hareketiAzalt && !duraklatildi)
// Hareketi duraklatmak için görünür bir kontrol
Button(duraklatildi ? "Banner'ı oynat" : "Banner'ı duraklat") {
duraklatildi.toggle()
}
}
}
}import android.provider.Settings
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.*
import androidx.compose.ui.platform.LocalContext
@Composable
fun AnaBanner() {
val context = LocalContext.current
// 0f, sistem ayarlarında animasyonların kapalı olduğu anlamına gelir
val animasyonAcik = Settings.Global.getFloat(
context.contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1f
) != 0f
var duraklatildi by remember { mutableStateOf(false) }
Column {
BannerAtliKarinca(otomatikIlerle = animasyonAcik && !duraklatildi)
TextButton(onClick = { duraklatildi = !duraklatildi }) {
Text(if (duraklatildi) "Banner'ı oynat" else "Banner'ı duraklat")
}
}
}autoplay, marquee, setInterval, hareketli GIF'leri ve infinite ile CSS animation ifadelerini arayın.prefers-reduced-motion ayarını yok saymak: Sistem ayarı tam da bunun için vardır.aria-pressed.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.