WCAG 2.5.8: Wielkość celu (minimalna)
Wielkość celu (minimalna): Kryterium Sukcesu WCAG 2.5.8
Kryterium sukcesu WCAG 2.5.8, zatytułowane "Wielkość celu (minimalna)", jest częścią wytycznych WCAG 2.1 na poziomie dostępności AA.
Jego głównym celem jest zapewnienie, aby interaktywne elementy na stronach internetowych i w aplikacjach cyfrowych były wystarczająco duże,
by użytkownicy mogli je łatwo aktywować bez przypadkowego dotykania sąsiednich elementów.
Zgodnie z tym kryterium, obszar docelowy dla wskaźnika (np. palca, myszy) musi mieć co najmniej 24 na 24 piksele CSS.
Jest to kluczowe dla użytkowników korzystających z urządzeń dotykowych, a także dla osób z niepełnosprawnościami ruchowymi, takimi jak drżenia rąk, ograniczona precyzja lub
korzystających z alternatywnych urządzeń wskazujących (np. pałeczki ustnej, myszy sterowanej wzrokiem).
Zapewnienie odpowiedniej wielkości celu pomaga zmniejszyć liczbę błędów, frustracji i zwiększa ogólną użyteczność serwisu.
Dlaczego to jest ważne?
Niewystarczająca wielkość celów interaktywnych może stanowić poważną barierę dla wielu grup użytkowników:
- Osoby z niepełnosprawnościami ruchowymi: Użytkownicy z drżeniami, osłabioną kontrolą mięśniową lub ograniczoną zręcznością mają trudności z precyzyjnym celowaniem w małe obszary. Większe cele minimalizują ryzyko przypadkowych aktywacji i ułatwiają interakcję.
- Użytkownicy urządzeń dotykowych: Na smartfonach i tabletach, gdzie głównym sposobem interakcji jest dotyk palcem, małe cele są trudne do trafienia. Palce są znacznie mniej precyzyjne niż kursor myszy.
- Użytkownicy alternatywnych urządzeń wskazujących: Osoby korzystające z pałeczek ustnych, myszy sterowanych głową lub wzrokiem wymagają większych celów ze względu na inherentną mniejszą precyzję tych metod wprowadzania.
- Użytkownicy w specyficznych warunkach: Osoby używające urządzeń mobilnych w ruchu (np. w autobusie, podczas spaceru) lub w trudnych warunkach oświetleniowych czy z ograniczoną uwagą również czerpią korzyści z większych obszarów dotyku.
- Użytkownicy o dużych palcach: Prosta fizjologia może sprawić, że małe cele są trudne do obsługi.
Spełnienie tego kryterium przyczynia się do bardziej inkluzywnego i bezproblemowego doświadczenia użytkownika, redukując frustrację i zwiększając efektywność korzystania z serwisu.
Kryterium Sukcesu 2.5.8 – Wielkość celu (minimalna) (AA)
Formalna definicja kryterium 2.5.8 mówi: "Wielkość celu dla interakcji wskaźnikiem ma co najmniej 24 na 24 piksele CSS, chyba że:".
-
Na linii (Inline): Cel jest w zdaniu lub bloku tekstu.
Oznacza to, że linki osadzone bezpośrednio w treści paragrafu lub zdania nie muszą spełniać minimalnego rozmiaru 24x24px, jeśli zwiększenie ich rozmiaru zaburzyłoby czytelność lub układ tekstu. Ważne jest jednak, aby były one nadal łatwe do aktywacji.
Przykład: Zwykły link w tekście. -
Kontrola agenta użytkownika (User Agent Control): Wielkość celu jest określona przez agenta użytkownika i nie jest modyfikowana przez autora.
Dotyczy to elementów, których wygląd i rozmiar są kontrolowane przez przeglądarkę i nie są zmieniane za pomocą CSS lub JavaScript przez autora strony.
Przykład: Domyślne paski przewijania przeglądarki lub standardowe elementy formularzy, których styl nie został nadpisany. -
Niezbędny (Essential): Określona prezentacja celu jest niezbędna do przekazywanej informacji.
Ten wyjątek ma zastosowanie, gdy zmniejszenie rozmiaru celu jest fundamentalne dla jego funkcji lub dla wizualnego przekazania informacji. Należy go stosować z dużą ostrożnością. Jeśli większy cel mógłby przekazać tę samą informację bez utraty sensu, wyjątek ten nie ma zastosowania.
Przykład: Małe punkty danych na złożonym wykresie lub precyzyjne narzędzia w aplikacji graficznej, gdzie rozmiar jest kluczowy dla precyzyjnej manipulacji. -
Równoważny (Equivalent): Cel jest dostępny poprzez link lub kontrolkę na tej samej stronie, która ma co najmniej 24 na 24 piksele CSS.
Jeśli mały cel (np. miniaturowa ikona) ma identyczną funkcjonalność dostępną poprzez inny, większy element na tej samej stronie (np. większy przycisk lub obszar aktywacji), to pierwotny mały cel nie musi spełniać kryterium 24x24px.
Przykład: Bardzo mała ikona "zamknij" obok większego, dotykalnego obszaru, który również zamyka okno modalne.
Praktyczne wytyczne dla zgodności
Aby zapewnić zgodność z WCAG 2.5.8, należy przestrzegać następujących zasad:
- Zawsze dąż do minimum 24×24 pikseli CSS: Upewnij się, że wszystkie interaktywne elementy, takie jak przyciski, linki, pola formularzy, przełączniki, pola wyboru i inne, posiadają obszar dotykowy o wymiarach co najmniej 24×24 piksele CSS.
-
Wykorzystaj padding i marginesy: Aby zwiększyć obszar dotykowy bez konieczności powiększania samej ikony czy tekstu, można użyć właściwości CSS takich jak
padding
(wypełnienie wewnętrzne) lubmargin
(margines zewnętrzny) w połączeniu z odpowiednim modelem pudełkowym (np.box-sizing: border-box
). Pamiętaj, żepadding
jest częścią klikalnego obszaru, podczas gdymargin
tworzy przestrzeń wokół elementu. - Pamiętaj o responsywności: Upewnij się, że rozmiary celów dotykowych są zachowane lub odpowiednio skalowane na różnych rozmiarach ekranu i urządzeniach. Piksele CSS są abstrakcyjną jednostką i przeglądarka zajmuje się ich skalowaniem na fizyczne piksele urządzenia, ale zawsze warto to przetestować.
- Testowanie: Regularnie testuj interaktywne elementy na różnych urządzeniach dotykowych, aby upewnić się, że są łatwe do trafienia. Możesz również użyć narzędzi deweloperskich przeglądarki do symulacji dotyku i podglądu rozmiarów elementów.
Przykłady
Implementacja poprawna:
Poniżej przedstawiono przykłady elementów, które spełniają kryterium minimalnej wielkości celu:
Przycisk z odpowiednimi wymiarami:
<button style="min-width: 24px; min-height: 24px; padding: 8px 12px; font-size: 1em;">Akceptuj</button>
Tutaj użyto min-width
i min-height
, aby zapewnić minimalny rozmiar wizualny i interaktywny.
Dodatkowy padding
zwiększa obszar klikalności.
Link z większym obszarem dotyku dzięki paddingowi:
<a href="#" style="display: inline-block; padding: 10px; border: 1px solid blue;">Dowiedz się więcej</a>
Ustawienie display: inline-block
dla linku pozwala na zastosowanie paddingu
, co efektywnie powiększa obszar klikalności.
Link zachowuje się jak blokowy element w kontekście rozmiaru, ale nadal może być w linii z tekstem.
Mała ikona z powiększonym, niewidzialnym obszarem dotyku (za pomocą CSS):
<!-- HTML -->
<button class="close-icon-button" aria-label="Zamknij">
<img src="close-icon.svg" alt="Ikona zamknięcia" width="16" height="16">
</button>
<!-- CSS -->
<style>
.close-icon-button {
position: relative;
width: 16px; /* Wizualny rozmiar ikony */
height: 16px;
border: none;
background: none;
padding: 0;
cursor: pointer;
display: flex; /* Do centrowania obrazka */
align-items: center;
justify-content: center;
}
/* Pseudo-element tworzy większy obszar dotyku */
.close-icon-button::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 24px; /* Minimalna szerokość obszaru dotyku */
min-height: 24px; /* Minimalna wysokość obszaru dotyku */
width: max(24px, 100%); /* Dopasuj do większego z 24px lub 100% elementu */
height: max(24px, 100%);
/* background: rgba(0, 128, 0, 0.1); /* Odkomentuj dla debugowania */
pointer-events: auto; /* Zapewnia, że pseudo-element jest interaktywny */
z-index: 0; /* Upewnij się, że jest pod ikoną */
}
.close-icon-button img {
position: relative;
z-index: 1; /* Upewnij się, że ikona jest nad pseudo-elementem */
}
</style>
W tym przykładzie wizualna ikona ma 16×16 pikseli, ale dzięki pseudo-elementowi ::after
,
który rozszerza obszar dotykowy,
spełnione jest kryterium 24x24px. Użytkownik może kliknąć w obszar wokół ikony,
a akcja zostanie wywołana.
Implementacja niepoprawna:
Poniżej przedstawiono przykłady elementów, które naruszają kryterium minimalnej wielkości celu:
Przycisk o zbyt małych wymiarach:
<button style="width: 16px; height: 16px; font-size: 0.8em;">X</button>
Ten przycisk jest zbyt mały, by zapewnić łatwą aktywację, szczególnie na urządzeniach dotykowych.
Zbyt mały link tekstowy bez powiększonego obszaru dotyku:
<a href="#">Mały link</a>
Domyślny rozmiar linku tekstowego jest często mniejszy niż 24x24px, co sprawia, że jest on trudny do trafienia.
Wyjątek "na linii" dotyczy tylko linków wkomponowanych w tekst, a nie samodzielnych linków.
Niestandardowy checkbox lub radio button o zbyt małym obszarze dotyku:
<input type="checkbox" style="width: 18px; height: 18px; border: 1px solid #ccc;">
Jeśli kontrolki formularzy są stylowane niestandardowo i ich efektywny obszar dotykowy jest mniejszy niż 24x24px,
nie spełniają one kryterium. Należy zadbać o odpowiedni rozmiar lub padding.
Najlepsze praktyki i częste błędy
Najlepsze praktyki:
- Celuj w większe cele: Chociaż WCAG 2.5.8 wymaga minimum 24x24px, najlepsze praktyki w projektowaniu interfejsów dotykowych (np. wytyczne Apple Human Interface Guidelines, Material Design) często rekomendują cele o rozmiarze 44x44px lub większe. Zapewnia to jeszcze lepsze doświadczenie użytkownika.
- Zapewnij odpowiednie odstępy: Oprócz zapewnienia minimalnej wielkości celu, ważne jest również, aby między interaktywnymi elementami znajdowała się wystarczająca przestrzeń. Pomaga to zapobiegać przypadkowym kliknięciom na sąsiednie elementy.
-
Używaj semantycznego HTML: Korzystanie z natywnych elementów HTML (
<button>
,<a>
,<input>
) często zapewnia podstawową dostępność, którą można łatwo rozszerzyć o wymagane rozmiary. - Testuj na prawdziwych urządzeniach: Symulacja dotyku w narzędziach deweloperskich przeglądarki jest pomocna, ale nic nie zastąpi testowania na prawdziwych smartfonach i tabletach.
Częste błędy:
- Zakładanie, że rozmiar wizualny to rozmiar celu: Sama grafika lub tekst może być mała, ale otaczający ją obszar klikalności musi spełniać kryterium. Wizualne 16x16px z 4px paddingu dookoła da efektywne 24x24px.
- Ignorowanie elementów dynamicznych: Elementy pojawiające się dynamicznie (np. elementy rozwijane w menu, sugestie autouzupełniania) również muszą spełniać to kryterium.
- Niestandardowe kontrolki: Tworzenie własnych kontrolek formularzy lub przycisków od podstaw bez dbałości o obszar dotykowy często prowadzi do naruszeń.
- Nadmierne poleganie na wyjątkach: Wyjątki są po to, by radzić sobie z sytuacjami, gdzie spełnienie kryterium jest niemożliwe lub niepraktyczne. Nie powinny być wykorzystywane jako usprawiedliwienie dla braku przestrzegania zasady.
Przestrzeganie kryterium WCAG 2.5.8 "Wielkość celu (minimalna)" to nie tylko kwestia zgodności z wytycznymi, ale przede wszystkim znacząca poprawa doświadczenia użytkownika dla szerokiego grona osób. Projektując i rozwijając interfejsy z myślą o odpowiedniej wielkości celów dotykowych, tworzymy bardziej dostępne, użyteczne i przyjazne dla każdego środowisko cyfrowe.