Krótko
Elementy, które użytkownik klika albo dotyka, nie mogą być zbyt małe ani upchane tak blisko siebie, że łatwo trafić w zły element.
Funkcjonalność · Poziom AA
Elementy, które użytkownik klika albo dotyka, nie mogą być zbyt małe ani upchane tak blisko siebie, że łatwo trafić w zły element.
Elementy, które użytkownik klika albo dotyka, nie mogą być zbyt małe ani upchane tak blisko siebie, że łatwo trafić w zły element.
Użytkownik widzi małe ikonki w tabeli, ciasne numery paginacji albo przycisk zamykania w rogu okna. Próbuje stuknąć jedną akcję, ale trafia w sąsiednią. Problem jest szczególnie dotkliwy na ekranach dotykowych, przy powiększeniu, w ruchu albo przy ograniczonej precyzji ruchu.
2.5.8 dotyczy celu aktywnego, czyli obszaru, który reaguje na kliknięcie, dotknięcie albo rysik. Cel powinien mieć co najmniej 24 na 24 piksele CSS albo być tak odsunięty od innych celów, żeby przypadkowe trafienie w sąsiednią akcję było mniej prawdopodobne.
Nie oznacza to, że każda widoczna ikonka musi mieć fizyczny prostokąt 24 na 24 px. Liczy się rzeczywisty obszar aktywny, odstęp od innych celów oraz wyjątki opisane w WCAG, np. linki w zdaniu, kontrolki przeglądarki albo prezentacja istotna dla informacji.
Dobry interfejs nie musi być wielki i toporny. Wystarczy, że realny obszar aktywny ma co najmniej 24 na 24 px CSS albo mniejsze cele mają wystarczający odstęp od innych celów.
Zły wzorzec upycha kilka małych akcji obok siebie i zakłada, że użytkownik zawsze trafi idealnie.
Kod — HTML
<button class="icon-button" type="button">
<span aria-hidden="true">×</span>
<span class="sr-only">Zamknij panel</span>
</button>
Kod — CSS
.icon-button {
align-items: center;
display: inline-flex;
justify-content: center;
min-height: 24px;
min-width: 24px;
padding: 4px;
}
Ikona może być mała, ale przycisk ma większy obszar aktywny. Użytkownik nie musi trafić dokładnie w sam znak.
Kod — HTML
<ul class="row-actions">
<li><button type="button">Edytuj</button></li>
<li><button type="button">Pobierz</button></li>
<li><button type="button">Usuń</button></li>
</ul>
Kod — CSS
.row-actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
list-style: none;
padding: 0;
}
Odstęp między akcjami zmniejsza ryzyko przypadkowego kliknięcia sąsiedniego przycisku.
Kod — CSS
.tiny-actions button {
height: 16px;
margin: 0;
padding: 0;
width: 16px;
}
To zły przykład. Przyciski są mniejsze niż 24 na 24 px i nie mają odstępu. W takim układzie łatwo trafić w złą akcję.
Kod — HTML
<nav aria-label="Strony wyników">
<ol class="pagination">
<li><a href="/wyniki?page=1">1</a></li>
<li><a href="/wyniki?page=2" aria-current="page">2</a></li>
<li><a href="/wyniki?page=3">3</a></li>
</ol>
</nav>
Kod — CSS
.pagination {
display: flex;
gap: 0.25rem;
list-style: none;
}
.pagination a {
align-items: center;
display: inline-flex;
justify-content: center;
min-height: 24px;
min-width: 24px;
}
Paginacja ma minimalny obszar aktywny i odstęp. Jeśli wizualnie numery mają być drobne, można powiększyć aktywny obszar przez padding albo kontener.
Małe cele są bardzo blisko siebie. Łatwo trafić w złą akcję.
Cele są trochę większe, ale aktywny obszar i odstęp nadal są niejasne.
Obszary aktywne mają co najmniej 24 na 24 px albo czytelny odstęp.