Linki zastępcze
Silktide znajduje linki wskazujące na #, adres internetowy oznaczający „górę tej
strony”. Zwykle są to zastępniki — linki dodane, zanim istniał ich cel,
i nigdy nieaktualizowane — lub linki przejęte w celu uruchamiania skryptów.
<!-- Pozostawiony zastępnik: nie prowadzi do niczego użytecznego -->
<a href="#">Czytaj więcej</a>
<!-- Link wykorzystany do uruchomienia skryptu -->
<a href="#" onclick="openMenu()">Menu</a>
Dlaczego to ważne
Odwiedzający, który klika link #, oczekuje przejścia w inne miejsce; zamiast tego strona tylko
przewija się do góry, co wygląda jak błąd. Gdy ten wzorzec jest używany do uruchamiania
, wprowadza również w błąd technologie wspomagające:
ogłasza go jako link,
sugerując nawigację, podczas gdy w rzeczywistości działa jak przycisk — a jeśli skrypty
nie załadują się, nie robi niczego.
Takie linki bywają pozostałościami: szablon został dostarczony z zastępczą nawigacją albo nikt nie wrócił do linku „wkrótce”.
Jak to naprawić
- Jeśli link miał gdzieś prowadzić, ustaw jego
hrefna rzeczywisty cel. - Jeśli uruchamia skrypt, zastąp go elementem
<button>, którego oczekują w przypadku działań:
<!-- Przed: link udający przycisk -->
<a href="#" onclick="openMenu()">Menu</a>
<!-- Po: prawdziwy przycisk, ostylowany według uznania -->
<button onclick="openMenu()">Menu</button>
- Jeśli link nie służy żadnemu celowi, usuń go lub zastąp zwykłym tekstem.
- Jeśli link
#jest rzeczywiście zamierzony — na przykład dodawany przez framework, który niezawodnie go rozszerza — wynik, aby nie był ponownie zgłaszany.
Jak Silktide to testuje
- Znajdź każdy standardowy link na każdej stronie.
- Zgłoś każdy link, którego
hrefjest dokładnie równe#.
Linki do nazwanych pozycji na stronie, takich jak #news, są prawidłowe i nie są
zgłaszane.
Rozwiązywanie problemów
Link działa, ponieważ obsługuje go JavaScript
Działa dla użytkowników myszy, gdy skrypty ładują się poprawnie, ale nadal jest
ogłaszany jako link przez technologie wspomagające i nadal przewija stronę do góry, gdy
skrypt zawiedzie. Element <button> zachowuje się poprawnie we wszystkich tych przypadkach; jeśli zmiana
znaczników jest niepraktyczna, zatwierdź wynik.
# pochodzi z komponentu frameworka lub CMS
Komponenty menu i kart w niektórych frameworkach oraz motywach
domyślnie generują href="#". Sprawdź
w dokumentacji komponentu, czy można zamiast tego renderować przycisk lub rzeczywisty
cel.