Maria: href="" <- ist leer, Warnung: <a> attribute "href" lacks value

Ich habe in meiner Seite mittels Javascript Bilder eingefügt, jetzt sieht eine HTML Anweisung folgendes vor:

<a class="back" href=""></a>

Doch eigentlich darf das Feld href="" ja nicht leer sein, da sonst beim validieren eine Warnung erscheint:

Warnung: <a> attribute "href" lacks value

Ich weis das es kein Grundlegener Fehler ist (auch wenn jetzt wieder welche sagen, doch...) aber wie bekomme ich meinen Validator dazu dies nicht mehr als Fehler zu sehen und darüber wegzugehen.

  1. Ich habe in meiner Seite mittels Javascript Bilder eingefügt, jetzt sieht eine HTML Anweisung folgendes vor:

    <a class="back" href=""></a>

    Das ist ein Verweis, kein Bild ;-)

    Doch eigentlich darf das Feld href="" ja nicht leer sein, da sonst beim validieren eine Warnung erscheint:

    Warnung: <a> attribute "href" lacks value

    Ich weis das es kein Grundlegener Fehler ist (auch wenn jetzt wieder welche sagen, doch...) aber wie bekomme ich meinen Validator dazu dies nicht mehr als Fehler zu sehen und darüber wegzugehen.

    Du kannst das href-Attribut auch weglassen.
    Möglicherweise wird dann auch die Klasse nicht länger benötigt, da du das Element dann von anderen Elementen (denen mit href-Attribut) unterscheiden kannst.

    Aber: Wenn der Verweis ein Ereignis in JavaScript auslöst (z.B. Bildvergrößerung), wäre es besser, eine skriptlose Alternative anzubieten (z.B. Verweis auf Bild im Großformat).

    Gruß, Daniel

  2. @@Maria:

    nuqneH

    <a class="back" href=""></a>
    Doch eigentlich darf das Feld href="" ja nicht leer sein

    Richtig.

    Wie Daniel.S schon sagte: Nicht @href mit leerem Wert, sondern kein @href-Attribut.

    Statt @class="back" bietet sich @rel="prev" an. Für die Vorwärtsrichtung @rel="next".

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. <a class="back" href=""></a>
      Doch eigentlich darf das Feld href="" ja nicht leer sein

      Richtig.

      Es darf durchaus leer sein, href="" ist valide, denn »« ist m.W. eine gültige URL. Oder worauf wolltest du mit dem Spec-Verweis hinweisen?

      Dass irgendein Validator eine Warnung meint schmeißen zu müssen, weist wie gesagt nur darauf hin, dass man den Wert sinnvoller füllen könnte bzw. den Link erst mit JavaScript einfügen sollte, sofern er nur durch JavaScript-Event-Handling eine Funktion bekommt.

      Mathias

      1. Hi,

        Es darf durchaus leer sein, href="" ist valide, denn »« ist m.W. eine gültige URL. Oder worauf wolltest du mit dem Spec-Verweis hinweisen?

        Er wollte vielleicht seine Lieblingsseite (die mit den angeblich schlimmsten Fehlern beim Webdesign) verlinken, auf der behauptet wird, daß ein Link auf die aktuelle Seite eine Todsünde ist und mit mindestens 42 Jahren Fegefeuer bestraft wird.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. @@MudGuard:

          nuqneH

          Er wollte vielleicht seine Lieblingsseite (die mit den angeblich schlimmsten Fehlern beim Webdesign) verlinken, auf der behauptet wird, daß ein Link auf die aktuelle Seite eine Todsünde ist und mit mindestens 42 Jahren Fegefeuer bestraft wird.

          Nee, wollte er ausnahmsweise mal nicht.

          Er wollte den Links in der Spec folgen, jetzt alles zurücknehmen und das Gegenteil behaupten: "" ist ein gültiger URL.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. "" ist ein gültiger URL.

            Ja und zwar nach RFC 3986 Abschnitt 4.4 um das zu vervöllständigen.

            1. @@suit:

              nuqneH

              "" ist ein gültiger URL.

              Ja und zwar nach RFC 3986 Abschnitt 4.4 um das zu vervöllständigen.

              Seit wann schert sich HTML5 um irgendwelche RFCs?

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Ja und zwar nach RFC 3986 Abschnitt 4.4 um das zu vervöllständigen.

                Seit wann schert sich HTML5 um irgendwelche RFCs?

                Gutes Argument :)

                1. Seit wann schert sich HTML5 um irgendwelche RFCs?

                  Gutes Argument :)

                  Der Fehler liegt hier nicht bei HTML5, sondern im Validator.

                  Die Warnung ist aber durchaus angebracht, da nicht alle Browser korrekt mit "" als URI umgehen.

                  1. Moin!

                    Seit wann schert sich HTML5 um irgendwelche RFCs?

                    Gutes Argument :)

                    Der Fehler liegt hier nicht bei HTML5, sondern im Validator.

                    Die Warnung ist aber durchaus angebracht, da nicht alle Browser korrekt mit "" als URI umgehen.

                    Welche wären das?

                    - Sven Rautenberg

                    1. Die Warnung ist aber durchaus angebracht, da nicht alle Browser korrekt mit "" als URI umgehen.

                      Welche wären das?

                      Na wer wohl? ;-)

                      Der Leerstring ist ein Verweis auf das gerade geöffnete Dokument. IE öffnet stattdessen aber das aktuelle Verzeichnis (aus einem Reload von "/test.html" wird das Öffnen von "/") oder about:blank, wenn der Verweis in einem neuen Fenster/Tab geöffnet wird.

                      Alle anderen machen es richtig (bei Safari geh ich mal davon aus, weil ich momentan nur Chrome testen kann).

                  2. @@Daniel.S:

                    nuqneH

                    Der Fehler liegt hier nicht bei HTML5, sondern im Validator.

                    Die Warnung ist aber durchaus angebracht, da nicht alle Browser korrekt mit "" als URI umgehen.

                    Warum sollte es ein Fehler im Validator sein, eine Warnung (keine Fehlermeldung) auszugeben, um den Nutzer anzuregen, nochmals nachzudenken, ob er das wirklich will?

                    Qapla'

                    --
                    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                    (Mark Twain)
                    1. Grüße dich, Gunnar,

                      Warum sollte es ein Fehler im Validator sein, eine Warnung (keine Fehlermeldung) auszugeben, um den Nutzer anzuregen, nochmals nachzudenken, ob er das wirklich will?

                      Wie gesagt, ich zähle es dem Validator nicht an.
                      Würde alles nach RFC funktionieren wäre der Hinweis aber unnötig (wobei sich über die Notwendigkeit von Warnungen, wie du bemerkst, durchaus streiten lässt).

                2. @@suit:

                  nuqneH

                  Seit wann schert sich HTML5 um irgendwelche RFCs?

                  Gutes Argument :)

                  Fairerweise sollte man sagen, dass die HTML5-Spec schon den jeweiligen RFC angibt, der gerade „willful violatet“ wird.

                  Qapla'

                  --
                  Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                  (Mark Twain)
              2. Tach!

                "" ist ein gültiger URL.
                Ja und zwar nach RFC 3986 Abschnitt 4.4 um das zu vervöllständigen.
                Seit wann schert sich HTML5 um irgendwelche RFCs?

                Die RFCs sind meiner Meinung nach an dieser Stelle nebensächlich. Ich folgte der Verlinkung und fand den Satz:

                The href attribute on a and area elements must have a value that is a valid URL potentially surrounded by spaces.

                Folgt man dem Link und rollt ein wenig nach oben, sieht man eine Unterscheidung zwischen "valid URL" und "valid non-empty URL".

                Für das a-element reicht eine "valid URL". Eine Same-Document Reference ist nur für Herrn Nielsen tödlich, also darf man auch durch Leerstring selbstreferenzieren.

                Das src-Attribut von iframe hingegen ist als non-empty definiert. Eine Selbstreferenz führt (ohne Gegenmaßnahmen) zu einer unendlichen Rekursion. Mit dem non-empty ist damit schon eine Variante ausgeschlossen. Hilft nur nicht viel, weil man auch nicht-leere Selbstreferenzen hinbekommt.

                dedlfix.

            2. Om nah hoo pez nyeetz, suit!

              um das zu vervöllständigen.

              Völlerei ist eine der 7 Todsünden.

              Matthias

              --
              1/z ist kein Blatt Papier.

              1. Om nah hoo pez nyeetz, suit!

                um das zu vervöllständigen.

                Völlerei ist eine der 7 Todsünden.

                Das kümmert mich jetzt eigentlich nicht - ich habe wie die meisten Menschen ein gewisses moralisches Grundverständnis, das hat aber genau nichts mit christlichen Werten oder einer christlichen Erziehung zu tun.

                Von Seite: ich schlag' mir den Bauch voll wann immer ich will :p