Odaktaki bileşenin yapışkan üst bilgi, banner ya da bileşen gibi yazar içeriği tarafından tamamen gizlenmemesini ister.
Sabit bir üst bilgi, bir çerez bannerı ya da bir sohbet bileşeni, klavye odağı olan öğeyi örtebilir. Kullanıcı Tab'a basar ve odak taşınır, ama odaktaki öğe sabit bir çubuğun arkasında gizlidir. Neyi etkinleştireceğini göremez.
WCAG 2.2'ye yeni olan bu kriter, bir kullanıcı arayüzü bileşeni klavye odağı aldığında bileşenin yazar tarafından oluşturulan içerik yüzünden tamamen gizlenmemesini ister. Bu düzeyde kısmi örtüşmeye izin verilir, ama en aza indirilmelidir.
scroll-padding kullanın (C43). Odaktaki öğeleri tamamen gizleyen yapışkan bir üst ya da alt bilgi ihlaldir (F110).Etkinleştirecekleri öğeyi görmesi gereken yalnızca klavye ve anahtar kullanıcıları. Büyütme kullanan ve sayfanın küçük bir görünümü olan az gören kişiler. Odağı ekranda tutması gereken ekran büyüteci kullanıcıları. Yerlerini odakla koruyan bilişsel engelli kişiler.
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. Odağı görünümde tutmak, "işletilebilirlik" ilkesinin parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 2.4.11'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.2.4.11 | Web sayfaları | Web içeriğinin WCAG 2.4.11 kriterini karşılamasını ister. |
Bu kriter yeni olduğu için, dokümanlar ve yazılım için geçerli satırları V4.1.1'in 10. ve 11. maddelerinden kontrol edin. 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ü: 2.4.11 kriteri WCAG 2.2'ye yenidir; bu yüzden WCAG 2.1'i esas alan EN 301 549 V3.2.1'in parçası değildir. EAA için hazırlanan ilk sürüm olan EN 301 549 V4.1.1'de (Eylül 2026) yer alır. V4.1.1 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 uygunluk karinesi sağlayacaktır. AA düzeyinde bir kriterdir.
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
Tab odağı sabit bir üst bilginin altına taşıdığında tarayıcı öğeyi yalnızca üst kenara kadar kaydırabilir; orada üst bilgi onu gizler. Üst bilgi yüksekliğine eşit bir kaydırma dolgusu ekleyin (C43).
.site-ust { position: sticky; top: 0; height: 72px; }.site-ust { position: sticky; top: 0; height: 72px; }
html { scroll-padding-top: 88px; } /* üst bilgi yüksekliği artı boşluk */Altta sabit çubuklar için de aynısını yapın.
.yapiskan-cta { position: fixed; bottom: 0; height: 64px; }.yapiskan-cta { position: fixed; bottom: 0; height: 64px; }
html { scroll-padding-bottom: 80px; }Sayfayı örten bir banner, odaktaki öğeyi gizlememelidir. Odağı alan kipli bir pencere yapın ya da sayfaya yeterli dolgu verin.
.cerez-banner { position: fixed; inset: auto 0 0 0; } /* odaktaki bağlantıları örter */<div role="dialog" aria-modal="true" aria-labelledby="ck" class="cerez-banner">
<h2 id="ck">Çerezler</h2>
<button>Kabul et</button> <button>Reddet</button>
</div>
<!-- Odak banner'a taşınır ve arkadaki sayfa etkisiz olur -->Bir köşeye sabitlenmiş bir düğme içeriği örtebilir. Boşluk bırakın ya da kullanıcıların taşımasına izin verin.
.sohbet { position: fixed; right: 0; bottom: 0; width: 320px; height: 400px; }.sohbet { position: fixed; right: 1rem; bottom: 1rem; }
.sohbet[hidden] { display: none; } /* varsayılan olarak kapalı; isteyince açılır */Kullanıcının açtığı bir panel, odağı kaybetmeden Escape ile kapatılabiliyorsa içeriği örtebilir.
<div class="panel">…</div> <!-- kapatmanın yolu yok -->panel.addEventListener("keydown", e => {
if (e.key === "Escape") { panel.hidden = true; tetikleyici.focus(); }
});Kaydırmayı bir betik yönetiyorsa, odaktaki öğenin sabit bir çubuktan uzakta bittiğinden emin olun.
el.focus({ preventScroll: true }); // üst bilginin altında kalırel.focus();
el.scrollIntoView({ block: "center" });Mobilde ekran klavyesi, bir alt çubuk ya da yüzen bir düğme odaktaki alanı örtebilir. Odaktaki alanın görünümde kaldığından emin olun.
import SwiftUI
struct YorumFormu: View {
@FocusState private var odaktakiAlan: Alan?
enum Alan: Hashable { case ad, yorum }
@State private var ad = ""
@State private var yorum = ""
var body: some View {
ScrollViewReader { proxy in
ScrollView {
VStack(spacing: 16) {
TextField("Ad", text: $ad)
.id(Alan.ad)
.focused($odaktakiAlan, equals: .ad)
TextEditor(text: $yorum)
.id(Alan.yorum)
.frame(height: 120)
.focused($odaktakiAlan, equals: .yorum)
}
.padding()
}
// Odaktaki alanı klavyeden ve çubuklardan uzağa kaydırın
.onChange(of: odaktakiAlan) { alan in
if let alan { withAnimation { proxy.scrollTo(alan, anchor: .center) } }
}
}
}
}import androidx.compose.foundation.layout.*
import androidx.compose.foundation.relocation.BringIntoViewRequester
import androidx.compose.foundation.relocation.bringIntoViewRequester
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.OutlinedTextField
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.onFocusChanged
import kotlinx.coroutines.launch
@OptIn(androidx.compose.foundation.ExperimentalFoundationApi::class)
@Composable
fun YorumFormu() {
var yorum by remember { mutableStateOf("") }
val istekci = remember { BringIntoViewRequester() }
val kapsam = rememberCoroutineScope()
Column(
Modifier.verticalScroll(rememberScrollState()).imePadding() // klavyeden uzak tutun
) {
OutlinedTextField(
value = yorum,
onValueChange = { yorum = it },
modifier = Modifier
.bringIntoViewRequester(istekci)
.onFocusChanged { if (it.isFocused) kapsam.launch { istekci.bringIntoView() } }
)
}
}position: sticky ve position: fixed öğelerini ve scroll-padding ayarlı olup olmadığını arayın.preventScroll özensiz kullanımı: Odak taşınır ama sayfa kaymaz.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.