Ist der <a href="#"> Link </a> ein defekter Link?

12

Wenn Sie leere URL-Fragment-Links verwenden, um einen Benutzer an den oberen Rand der Seite zu senden (z. B. <a href="#">return to top</a>), werden diese Links als fehlerhaft oder ungültig angesehen? Eines meiner Tools gibt sie alle als defekte Links zurück.

Nathan
quelle
Welches "Werkzeug" betrachtet sie als defekt?
MrWhite
Ein PHP-Programm, mit dem ich eine Sitemap erstelle.
Nathan
@Su ': warum hast du meinen dank gelöscht? Ich war aufrichtig!
Nathan
4
@ Nathan Ich bin sicher, dass Sie waren. Aber die SE-Sites sind keine wirklichen Diskussionsforen und es ist im Grunde eine Verschwendung von Zeit und Raum. Stell einfach die Frage . Zeigen Sie Ihre Wertschätzung, indem Sie Antworten annehmen. Jeffs Antwort ist die "kanonische", aber sehen Sie einige der anderen für verschiedene Einstellungen.
,

Antworten:

11

Technisch gesehen ist "#" eine wohldefinierte URL-Referenz, die auf den Anfang des aktuellen Dokuments verweist, sodass es im formalen Sinne nicht "kaputt" ist. Es kann jedoch als schlecht für die Barrierefreiheit angesehen werden , und es ist auch ein häufiges Symptom für "gefälschte" Links, dh aElemente, die auf etwas Externes verlinken sollen, aber von JavaScript abhängen. (Früher <a href="..." onclick="...">war dies das einzige Element, das dieses onclickAttribut unterstützte. Daher wurde das Attribut "Dummy" geschrieben href="#", das eigentlich kein Dummy ist.)

Sie können dies also als falsche Fehlermeldung oder als nützliche Warnmeldung ansehen, die möglicherweise etwas schlecht formuliert ist.

Jukka K. Korpela
quelle
1
Haben Sie eine Quelle für #, die genau definiert ist und auf den Anfang des Dokuments verweist (z. B. eine w3c-Spezifikation)?
DisgruntledGoat
2
@ DisgruntledGoat, es ist im Internet-Standard STD 66, "Uniform Resource Identifier (URI): Generic Syntax", Abschnitt 4.4 spezifiziert. Same-Document Reference, verfügbar zB unter tools.ietf.org/html/std66#section-4.4
Jukka K. Korpela
1
Ein großes Lob für die Bereitstellung einer Quelle, obwohl ich nichts sehe, was #sich auf den Anfang des Dokuments bezieht.
DisgruntledGoat
1
Ja, der Standard ist nicht klar genug, aber es ist normal anzunehmen, dass ein Dokument, auf das verwiesen wird, anfänglich am Anfang positioniert ist. Sein Vorgänger RFC 2396 war expliziter: „4.2. Verweise auf dasselbe Dokument. Eine URI-Referenz, die keine URI enthält, ist eine Referenz auf das aktuelle Dokument. Mit anderen Worten, eine leere URI-Referenz in einem Dokument wird als Referenz auf den Anfang dieses Dokuments interpretiert, und eine Referenz, die nur eine Fragmentkennung enthält, ist eine Referenz auf das identifizierte Fragment dieses Dokuments. “
Jukka K. Korpela,
3

Ich denke nicht, dass es als defekter Link gilt.

Unterbrochener Link ist ein Link, der auf Ressourcen verweist, die nicht vorhanden sind (404 HTTP-Antwort).

Zistoloen
quelle
1
Diese Antwort nicht mit "Meiner Meinung nach" absichern. Es ist keine Ansichtssache, es ist eine Tatsache (und Sie haben Recht).
MSANFORD
1
@msanford: Du hast recht, ich habe meine Antwort bearbeitet.
Zistoloen