Krótko
Element z fokusem nie może być całkowicie zasłonięty przez przyklejone lub nachodzące elementy strony.
Funkcjonalność · Poziom AA
Element z fokusem nie może być całkowicie zasłonięty przez przyklejone lub nachodzące elementy strony.
Element z fokusem nie może być całkowicie zasłonięty przez przyklejone lub nachodzące elementy strony.
Użytkownik przechodzi po stronie klawiaturą. Fokus trafia na link albo przycisk, ale element znika pod przyklejonym nagłówkiem, paskiem cookie, widgetem czatu, dolnym paskiem akcji, modalem albo panelem bocznym.
Problem widać szczególnie przy automatycznym przewijaniu do kotwicy, przy linkach „przejdź do treści”, po walidacji formularza, przy dynamicznie otwieranych panelach i na małych ekranach. Strona technicznie przenosi fokus, ale użytkownik nie widzi, gdzie aktualnie jest.
W 2.4.11 chodzi o minimum: element z fokusem nie może być całkowicie zasłonięty przez treść utworzoną przez autora strony. Częściowe zasłonięcie jest ryzykowne i może łączyć się z 2.4.12 albo 2.4.13, ale nie opisujemy go automatycznie jako naruszenia 2.4.11.
Strona ma przyklejony nagłówek, ale po przejściu do sekcji link lub nagłówek nie ląduje pod menu. Autor przewidział odstęp dla przewijania do kotwic i testuje stronę klawiaturą przy wszystkich nakładkach.
Użytkownik naciska Tab, ale aktualny link trafia dokładnie pod przyklejony nagłówek. Fokus istnieje w DOM i czytnik ekranu może go ogłosić, ale wizualnie użytkownik nie widzi aktywnego elementu.
Kod — CSS
html {
scroll-padding-top: 5rem;
}
.article-section {
scroll-margin-top: 5rem;
}
`scroll-padding-top` pomaga przy przewijaniu całej strony, a `scroll-margin-top` pomaga konkretnym sekcjom i kotwicom. Wartość powinna odpowiadać realnej wysokości przyklejonego nagłówka z zapasem.
Kod — CSS
.site-header {
position: sticky;
top: 0;
z-index: 10;
}
.main-content {
padding-top: 1rem;
}
.main-content :focus-visible {
outline: 3px solid #5b2aa0;
outline-offset: 4px;
}
Przyklejony nagłówek jest dopuszczalny, ale trzeba zostawić przestrzeń i testować, czy fokusowane elementy nie chowają się pod warstwą. Sam wyraźny outline nie wystarczy, jeśli cały element jest zasłonięty.
Kod — CSS
.site-header {
position: fixed;
top: 0;
z-index: 100;
}
.section-heading {
scroll-margin-top: 0;
}
To zły przykład. Nagłówek jest przyklejony nad treścią, ale sekcje nie mają żadnego marginesu przewijania. Po przejściu do kotwicy element z fokusem może znaleźć się całkowicie pod nagłówkiem.
Kod — HTML
<main inert>
<a href="/konto/ustawienia">
Ustawienia konta
</a>
</main>
<dialog open>
<h2>Potwierdź działanie</h2>
<p>Fokus powinien pozostać w tym oknie, dopóki jest otwarte.</p>
<button type="button">
Zamknij
</button>
</dialog>
To skrócony wzorzec koncepcyjny. Gdy warstwa modalna przykrywa stronę, treść pod spodem nie powinna dalej przyjmować fokusu. W realnym komponencie trzeba też zadbać o przeniesienie fokusu do okna i logiczny powrót po zamknięciu.
Element z fokusem jest całkowicie pod warstwą.
Fokus jest widoczny tylko częściowo albo za blisko warstwy.
Element z fokusem ma odstęp i jest widoczny w całości.