Łącza dla czytników ekranu
Silktide wykrywa elementy łączy, które są nieprawidłowo utworzone w sposób uniemożliwiający korzystanie z nich przez — łącza bez czytelnego tekstu, łącza bez miejsca docelowego i pozostałe na stronie puste znaczniki łączy.
Aby łącze działało z technologiami wspomagającymi, musi mieć zarówno miejsce docelowe (atrybut
href), jak i czytelną zawartość:
<!-- Działa: miejsce docelowe i czytelny tekst -->
<a href="/about">O nas</a>
<!-- Działa: łącze obrazkowe z tekstem alternatywnym -->
<a href="/apple"><img src="apple.png" alt="Jabłko"></a>
Dlaczego to jest ważne
ogłasza każde łącze za pomocą jego tekstu. Łącze z miejscem docelowym, ale bez tekstu, jest ogłaszane jedynie jako „łącze” — użytkownik może je aktywować, ale nie wie, dokąd prowadzi. Łącze z tekstem, ale bez miejsca docelowego, wygląda na klikalne, lecz nigdzie nie prowadzi. Oba wzorce naruszają podstawową zasadę, która umożliwia osobom korzystającym z technologii wspomagających nawigowanie po stronie za pomocą jej łączy.
Jak to naprawić
- W przypadku łącza z miejscem docelowym, ale bez czytelnego tekstu: dodaj tekst wewnątrz łącza albo , jeśli zawiera ono wyłącznie obraz.
- W przypadku łącza z tekstem, ale bez miejsca docelowego: dodaj brakujący atrybut
hrefalbo, jeśli element jest faktycznie celem, do którego mają przechodzić inne łącza, przenieś jegoiddo elementu niebędącego łączem:
<!-- Starsza kotwica docelowa, odradzana w HTML5 -->
<a name="example"></a>
<!-- Zalecane: id na zwykłym elemencie -->
<div id="example">...</div>
- W przypadku pustych znaczników
<a></a>bez żadnych atrybutów: usuń je, ponieważ nie służą żadnemu celowi. Często pozostawiają je edytory lub skrypty. - Jeśli element jest faktycznie przyciskiem — wywołuje działanie zamiast
nawigować — użyj elementu
<button>albo dodajrole="button"do istniejącego znacznika.
Jak Silktide przeprowadza tę kontrolę
- Znajdź każdy element
<a>na stronie i odczytaj jego tekst (w tym tekst alternatywny obrazu oraz tekst dodany przez CSS), jegohreforaz wszelkie atrybutyidlubname. - Oznacz trzy problematyczne wzorce:
- Łącze z
href, ale bez czytelnego tekstu. - Element z tekstem oraz
idlubname, ale bezhref— cel udający łącze albo łącze bez miejsca docelowego. - Całkowicie pusta kotwica bez tekstu,
href,idaniname.
- Łącze z
- Dwa wzorce celowo nie są oznaczane:
<a>z tekstem, ale bezhref,idaniname— HTML5 dopuszcza to jako „łącze zastępcze”, często uzupełniane później przez .- Puste kotwice z
idlubname, ale bezhref— są to starsze cele skoku, a nie łącza.