Czy <a href=____##> link </a> jest uszkodzonym linkiem?

12

W przypadku korzystania z pustych fragmentów adresów URL, aby wysłać użytkownika na górę strony (np. <a href="#">return to top</a>), Czy linki te są uważane za uszkodzone lub nieprawidłowe? Jedno z moich narzędzi zwraca je wszystkie jako uszkodzone linki.

Nathan
źródło
Jakie „narzędzie” uważa je za zepsute?
MrWhite
Program PHP, którego używam do generowania mapy witryny.
Nathan
@Su: dlaczego usunąłeś moje podziękowania? Byłem szczery!
Nathan
4
@Nathan Jestem pewien, że byłeś. Ale strony SE nie są tak naprawdę forami dyskusyjnymi i jest to po prostu strata czasu i przestrzeni. Po prostu zadaj pytanie . Wyraź swoją wdzięczność, oceniając / akceptując odpowiedzi. Odpowiedź Jeffa brzmi „kanoniczna”, ale zobacz inne z różnych ujęć.
Su '17

Odpowiedzi:

11

Technicznie „#” to dobrze zdefiniowane odwołanie do adresu URL, które wskazuje na początek bieżącego dokumentu, więc nie jest „zepsute” w sensie formalnym. Można go jednak uznać za zły pod względem dostępności , a także jest częstym objawem „fałszywych” linków, tj. aElementów, które powinny linkować do czegoś zewnętrznego, ale zależą od JavaScript. (W dawnych czasach <a href="..." onclick="...">był to jedyny element, który wspierał ten onclickatrybut, więc ludzie pisali href="#"atrybut „obojętny” , który tak naprawdę nie jest obojętny).

Możesz więc uznać to za niepoprawny komunikat błędu lub przydatny komunikat ostrzegawczy, który może być nieco źle sformułowany.

Jukka K. Korpela
źródło
1
Czy masz źródło #, które jest dobrze zdefiniowane i wskazuje na początek dokumentu (tj. Specyfikację w3c)?
Disgruntled Goo
2
@DisgruntledGoat, jest określony w standardowym Internecie STD 66, „Uniform Resource Identifier (URI): Generic Syntax”, klauzula 4.4. Odniesienia do tego samego dokumentu, dostępne np. Na tools.ietf.org/html/std66#section-4.4
Jukka K. Korpela
1
Wyrazy uznania za udostępnienie źródła, chociaż nie widzę niczego, co określa #samo w sobie, odnosi się do początku dokumentu.
DisgruntledGoat
1
Cóż, tak, standard nie jest zbyt jasny, ale naturalne jest założenie, że dokument odniesienia jest początkowo umieszczony na początku. Jego poprzednik RFC 2396 był bardziej precyzyjny: „4.2. Odniesienia do tego samego dokumentu. Odwołanie URI, które nie zawiera URI, jest odniesieniem do bieżącego dokumentu. Innymi słowy, puste odniesienie URI w dokumencie jest interpretowane jako odniesienie do początku tego dokumentu, a odwołanie zawierające tylko identyfikator fragmentu jest odniesieniem do zidentyfikowanego fragmentu tego dokumentu. ”
Jukka K. Korpela,
3

Nie sądzę, że uważa się to za uszkodzony link.

Uszkodzony link to link, który wskazuje na brak zasobów (odpowiedź HTTP 404).

Zistoloen
źródło
1
Nie zabezpieczaj tej odpowiedzi słowem „Moim zdaniem”. To nie jest kwestia opinii, to fakt (i masz rację).
msanford,
1
@ msanford: Masz rację, zredagowałem swoją odpowiedź.
Zistoloen,