Randevu tutma süreleri ve oturum zaman aşımları insanları dışarıda bırakabilir. WCAG 2.2.1 her sınır için kapatma, ayarlama ya da uyarıdan sonra uzatmadan birini ister.
Ekran okuyucu, anahtar cihazı ya da ses denetimi kullanan bir kişi bir formu okumak, doldurmak ve göndermek için çoğu zaman daha fazla zamana ihtiyaç duyar. Bilişsel engeli olan biri bir belgeyi bulmak için zamana ihtiyaç duyabilir. Sabit ve sessiz bir zaman aşımı bunu başarısız bir görevle sonuçlandırır.
2.2.1 başarı ölçütü, içeriğin koyduğu her zaman sınırı için geçerlidir. Şunlardan en az biri doğru olmalıdır:
Üç istisna vardır: alternatifi olmayan, gerçek zamanlı bir olayın gerektirdiği sınır, örneğin bir açık artırma; uzatmanın etkinliği geçersiz kılacağı zorunlu bir sınır; ve 20 saatten uzun sınırlar. Yalnızca içeriğin koyduğu sınırlar sayılır; yazarın denetimindeki sunucu tarafı zaman aşımları da buna dahildir.
Kaçırılan sürenin gerçek bir bedeli olan sayfalar bunlardır: kaybedilen bir saat, reddedilen bir dosya, gerçekleşmeyen bir ödeme. Uzatma klavyeyle erişilebilir olmalı ve ekran okuyuculara duyurulmalıdır; yalnızca görsel bir geri sayım yeterli değildir.
En basit uyumlu örüntü, tutmayı uzatan bir düğmeyle birlikte verilen uyarıdır. Burada tutma süresi beş dakikadır ve uyarı bir dakika kala çıkar; bu, 20 saniyeden fazladır. Tekrarlanabilir.
setTimeout(releaseSlot, 5 * 60 * 1000); // sessizce bırakılıyorconst HOLD_MS = 5 * 60 * 1000, WARN_MS = 60 * 1000;
let warnTimer, releaseTimer;
function scheduleWarning() {
warnTimer = setTimeout(() => {
holdWarning.hidden = false; // role="alert" kapsayıcı
releaseTimer = setTimeout(releaseSlot, WARN_MS);
}, HOLD_MS - WARN_MS);
}
extendBtn.addEventListener("click", async () => {
clearTimeout(releaseTimer);
holdWarning.hidden = true;
await extendHold(); // sunucu 5 dakika daha ekler
scheduleWarning(); // tekrarlanabilir
});
scheduleWarning();Zaman sınırı bir güvenlik gereksiniminden değil uygulamadan geliyorsa, ilk ekrandaki bir seçenek en güçlü yanıttır; çünkü hiç uyarıya gerek kalmaz.
<p>Bu kayıt formunu tamamlamak için 10 dakikanız var.</p><form action="/enroll/start" method="post">
<label>
<input type="checkbox" name="no_time_limit">
Daha fazla zamana ihtiyacım var: bu başvuru için süre sınırını kaldır
</label>
<button type="submit">Kaydı başlat</button>
</form>Otomatik kapanan bir bildirim, okuma üzerine bir zaman sınırıdır. Kullanıcının ihtiyaç duyduğu bilgiyi taşıyorsa, kapatılana kadar ekranda tutun ya da aynı bilgiyi başka bir yerde de verin.
setTimeout(() => toast.remove(), 3000); // izin numarası kayboldutoast.innerHTML =
'PRM-4471 numaralı izin başvurusu alındı. <button type="button" id="t-close">Kapat</button>';
document.getElementById("t-close").addEventListener("click", () => toast.remove());
// Başvuru durum sayfasında da gösterilir.Bir bilet ya da rezervasyon uygulamasındaki tutma süresinde de aynı sorun vardır. Uyarı yalnızca çizilmemeli, VoiceOver ve TalkBack'e de sunulmalıdır.
SwiftUI:
.onReceive(timer) { _ in
if remaining <= 0 { releaseSlot() }
remaining -= 1
}.onReceive(timer) { _ in
remaining -= 1
if remaining == 60 { showExtend = true }
if remaining <= 0 { releaseSlot() }
}
.alert("Rezervasyonunuzun süresi 1 dakika içinde doluyor", isPresented: $showExtend) {
Button("Yerimi koru") { extendHold(); remaining += 300 }
}Jetpack Compose:
LaunchedEffect(Unit) {
delay(5 * 60 * 1000L)
releaseSlot()
}var deadline by remember(holdId) {
mutableStateOf(System.currentTimeMillis() + 5 * 60 * 1000L)
}
// Keyed on deadline: extending moves it, which restarts this effect
LaunchedEffect(deadline) {
delay(deadline - 60 * 1000L - System.currentTimeMillis())
showExtend = true
delay(60 * 1000L)
releaseSlot()
}
if (showExtend) {
AlertDialog(
onDismissRequest = {},
title = { Text("Rezervasyonunuzun süresi 1 dakika içinde doluyor") },
confirmButton = {
TextButton(onClick = {
extendHold(); deadline += 5 * 60 * 1000L; showExtend = false
}) {
Text("Yerimi koru")
}
}
)
}setTimeout, setInterval, meta http-equiv="refresh", oturum ömrü ayarlarını ve randevu tutma mantığını arayın.Sık yapılan hatalar: 10 saniye gösterilen uyarı, yalnızca bir kez çalışan uzatma düğmesi, duyurusu olmayan görsel geri sayım ve güvenli biçimde uzatılıp uzatılamayacağına bakmadan bir sınıra "güvenlik" demek. Güvenlik sınırları zorunlu olabilir, ancak bu varsayılmamalı, doğru olmalıdır.
Kurumlar zaman aşımlarını çoğu zaman tedarikçi platformundan devralır ve değiştirilemeyeceğini varsayar. Bunu kabul etmeden önce tedarikçiden ayarlanabilir sınırlar isteyin.
Şunlar tamamsa yayına alın:
İlgili okuma: tedarikçiler ve üçüncü taraf içerik.
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.