Sąsiadujące łącza
Silktide znajduje pary łączy umieszczonych bezpośrednio obok siebie, które prowadzą do tego samego miejsca docelowego. Te duplikaty prawie zawsze należy połączyć w jedno łącze.
Najczęstszy wzorzec to łącze z obrazem, po którym następuje łącze tekstowe prowadzące do tej samej strony:
<!-- Problem: dwa oddzielne łącza do tego samego miejsca docelowego -->
<a href="news.html">
<img src="photo.jpg" alt="">
</a>
<a href="news.html">
Aktualności
</a>
<!-- Poprawiono: jedno połączone łącze -->
<a href="news.html">
<img src="photo.jpg" alt="">
Aktualności
</a>
Dlaczego to jest ważne
Wiele osób korzysta ze strony sekwencyjnie — użytkownik klawiatury przechodzi klawiszem Tab przez każde łącze po kolei, a użytkownik słyszy komunikat o każdym łączu. Zduplikowane sąsiadujące łącza podwajają ten wysiłek bez żadnej korzyści: to samo miejsce docelowe jest komunikowane dwukrotnie, listy łączy wypełniają się powtórzeniami, a łącze z obrazem z pustym obok swojego tekstowego odpowiednika może zostać ogłoszone bez nazwy, co jest mylące.
Połączenie pary w jedno łącze daje każdemu jeden jasno nazwany cel i upraszcza kod .
Jak to naprawić
- Umieść obraz i tekst wewnątrz jednego elementu
<a>, tak jak w powyższym przykładzie. - Nadaj obrazowi wewnątrz połączonego łącza pusty atrybut
alt="", ponieważ tekst obok niego już nazywa miejsce docelowe — zobacz Zduplikowany tekst alternatywny. - Jeśli system lub motyw generuje zduplikowane łącza (co jest częste na listach aktualności i w układach kart), popraw szablon raz, aby rozwiązać problem we wszystkich wystąpieniach.
Jak Silktide to testuje
- Znajdź wszystkie łącza na każdej stronie.
- Pomiń łącza prowadzące do
#, które prawie zawsze są symbolami zastępczymi dla , oraz łącza, które nie mogą otrzymać , ponieważ nie są udostępniane jako łącza . - Dla każdego łącza sprawdź, co następuje bezpośrednio po nim. Jeśli cokolwiek poza białymi znakami rozdziela oba łącza, nie są one sąsiadujące i nie zostaną zgłoszone.
- Zgłoś parę, gdy następne łącze wskazuje ten sam bezwzględny adres URL.
Rozwiązywanie problemów
Dwa łącza wykonują różne działania
Łącza współdzielące adres URL, ale uruchamiające różny kod JavaScript, nie są zgłaszane, gdy różnica jest widoczna w ich atrybutach onclick. Jeśli para zachowuje się inaczej w sposób, którego Silktide nie może wykryć, możesz wynik — ale zastanów się, czy różnica jest równie niewidoczna dla osób odwiedzających Twoją stronę.
Łącza nie znajdują się obok siebie wizualnie
Sąsiedztwo jest mierzone w kodzie strony, a nie na ekranie. Dwa łącza mogą po zastosowaniu stylów wyglądać na bardzo odległe, a mimo to nadal sąsiadować ze sobą w kodzie HTML — a technologie wspomagające odczytują kolejność HTML, więc dla tych użytkowników duplikacja jest rzeczywista.