Sallama, eğme ya da vücut hareketiyle tetiklenen işlevlerin kontrollerle de çalışmasını ve harekete yanıtın kapatılabilmesini ister.
Geri almak için sallamak, kaydırmak için eğmek, aramayı yanıtlamak için el sallamak. Cihazın ya da vücudun hareketiyle tetiklenen özellikler akıllıca görünür, ama cihazı tekerlekli sandalyeye sabitli kişiler için imkânsız olabilir ya da titremesi olanlar onları kazara tetikleyebilir.
Bu kriter, cihaz hareketiyle ya da kullanıcı hareketiyle çalıştırılan işlevlerin kullanıcı arayüzü bileşenleriyle de çalıştırılabilmesini ve kazara etkinleşmeyi önlemek için harekete yanıtın devre dışı bırakılabilmesini ister. İstisnalar: hareketin erişilebilirlik destekli bir arayüz üzerinden kullanılması ve işlev için zorunlu olması.
Hareketi yapamayan hareket engelli kişiler; örneğin cihazı tekerlekli sandalyeye ya da standa sabitlenmiş olanlar. Titremesi ya da istemsiz hareketleri olup işlevi kazara tetikleyenler. Cihazı yürürken, binerken ya da seyahat ederken kullananlar; hareketin sürekli olduğu yerlerde.
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. Cihazı hareket ettirmeye bağlı olmayan kontroller, "işletilebilirlik" ilkesinin parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 2.5.4'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.2.5.4 | Web sayfaları | Web içeriğinin WCAG 2.5.4 kriterini karşılamasını ister. |
| 11.2.5.4 | Web dışı yazılım (yerel mobil uygulamalar) | Yazılım, hareketle tetiklenen işlevlerin kontrollerle çalıştırılmasına ve harekete yanıtın kapatılmasına izin vermelidir. |
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.5.4 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
Hareketi görünür bir düğmeyle eşleştirin.
window.addEventListener("devicemotion", e => { if (isShake(e)) clearForm(); });<button type="button" id="clear">Formu temizle</button>
<script>
clear.addEventListener("click", clearForm);
// Sallama isteğe bağlı kısayol olarak kalır
</script>Kullanıcıların harekete yanıtı kapatmasına izin verin ve ayara uyun.
// Sallama algılama her zaman açık<label>
<input type="checkbox" id="motion" checked>
Sallayarak temizle
</label>
<script>
window.addEventListener("devicemotion", e => {
if (!motion.checked) return;
if (isShake(e)) clearForm();
});
</script>Eğmenin yanında sonraki ve önceki düğmeleri de sunun.
window.addEventListener("deviceorientation", e => scrollByTilt(e.gamma));<button type="button" id="next">Sonraki sayfa</button>
<button type="button" id="prev">Önceki sayfa</button>
<!-- Eğme kalır, ama ayarlardan kapatılabilir -->Bir kamera el sallamayı ya da baş hareketini algılıyorsa, aynı işlev için bir düğme ya da tuş sağlayın.
detectHandWave(video, () => answerCall());<button type="button" id="answer">Aramayı yanıtla</button>
<!-- El sallama isteğe bağlı kısayol olarak kalır ve kapatılabilir -->Tarayıcılar hareket sensörleri için izin ister. Özelliği hiçbir zaman zorunluluk değil, seçenek olarak sunun.
DeviceMotionEvent.requestPermission(); // izin verilene kadar uygulamayı engellerenableBtn.addEventListener("click", async () => {
const state = await DeviceMotionEvent.requestPermission?.();
if (state === "granted") enableShake();
});Adım sayar, işini yapmak için harekete ihtiyaç duyar. Alternatif gerekmez, ama nedenini açıklayın.
<!-- Yanıtlamanın başka yolu olmayan eğmeye dayalı bir test --><!-- Adım sayar: hareket zorunludur ve alternatif gerekmez -->Yerel uygulamalar hareketi en sık kullanır. Her hareket özelliği için bir düğme ve harekete yanıtı kapatan bir ayar sunun. Kullanıcıların kapatmasına izin veren sistem ayarını bozmayın.
import SwiftUI
struct NotesView: View {
@AppStorage("shakeToUndo") private var shakeToUndo = true
@State private var text = ""
var body: some View {
VStack {
TextEditor(text: $text)
// Aynı eylem için görünür bir kontrol
Button("Geri al") { undoLastChange() }
// Harekete yanıtı kapatan bir ayar
Toggle("Sallayarak geri al", isOn: $shakeToUndo)
}
// Sallama uygulamanın kendi hareket işlemesiyle iletilir (örneğin bildirim
// gönderen bir UIWindow alt sınıfı); ayara burada uyun
.onReceive(NotificationCenter.default.publisher(for: .deviceDidShake)) { _ in
if shakeToUndo { undoLastChange() }
}
}
}import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.*
import androidx.compose.runtime.*
@Composable
fun NotesScreen(shakeEnabled: Boolean, onShakeChange: (Boolean) -> Unit, onUndo: () -> Unit) {
Column {
// Aynı eylem için görünür bir kontrol
Button(onClick = onUndo) { Text("Geri al") }
// Harekete yanıtı kapatan bir ayar
Row {
Text("Sallayarak geri al")
Switch(checked = shakeEnabled, onCheckedChange = onShakeChange)
}
}
// SensorEventListener'ı yalnızca shakeEnabled true iken kaydedin
}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.