Peter Thomassen: Links, bei deren Anklicken nichts passiert

Hi,
früher habe ich zu diesem Zwecke immer href="javascript:void(0)"
verwendet - und jetzt las ich
http://www.w3.org/TR/WAI-WEBCONTENT/#gl-new-technologies. Demzu-
folge soll man das also nicht verwenden, da es ja im Prinzip auch
JS ist.

href="#" ist auch nicht ideal, da ich meine, einen Browser gesehen
zu haben, der dabei wieder zum Seitenanfang springt. Soll man href
ganz weglassen? Dann gibt's aber wieder welche, die dann den Hover-
effekt nicht darstellen.

Was ratet ihr mir?

Danke,
Peter

  1. hi

    Was ratet ihr mir?

    Links gar nicht für Mausover-Effekte zu missbrauchen. Schreib halt ganz normales <irgendwas>:hover wie ex richtig ist... oder eben onmouseover=this.style..."

    gruss Kai

    1. Hi,

      Was ratet ihr mir?

      Links gar nicht für Mausover-Effekte zu missbrauchen. Schreib halt ganz normales <irgendwas>:hover wie ex richtig ist... oder eben onmouseover=this.style..."

      Nein, ich meinte das normale CSS-Hover bei Links. Ich möchte mit
      einem Link eine JS-Funktion aufrufen, diese aber nicht in href,
      sondern onclick schreiben. Was soll ich in href notieren?

      Bye,
      Peter

      1. hi

        Nein, ich meinte das normale CSS-Hover bei Links. Ich möchte mit
        einem Link eine JS-Funktion aufrufen, diese aber nicht in href,
        sondern onclick schreiben. Was soll ich in href notieren?

        wenn der Link anders überhaupt nichts sinnvolles tun kann, dann mach' <a href="javascript:das was sonst am onclick steht">

        gruss Kai

        1. Hi,

          Nein, ich meinte das normale CSS-Hover bei Links. Ich möchte mit
          einem Link eine JS-Funktion aufrufen, diese aber nicht in href,
          sondern onclick schreiben. Was soll ich in href notieren?

          wenn der Link anders überhaupt nichts sinnvolles tun kann, dann mach' <a href="javascript:das was sonst am onclick steht">

          Das widerspricht dann aber
          http://www.w3.org/TR/WAI-WEBCONTENT/#gl-new-technologies. Das
          ist ja das PRoblem.

          Bye,
          Peter

          1. hi

            Das widerspricht dann aber
            http://www.w3.org/TR/WAI-WEBCONTENT/#gl-new-technologies. Das
            ist ja das PRoblem.

            Der Verstoß besteht darin den Link so aufzubauen, dass er nur mit JS funktioniert.

            gruss Kai

          2. Hi!

            wenn der Link anders überhaupt nichts sinnvolles tun kann, dann mach' <a href="javascript:das was sonst am onclick steht">

            Das widerspricht dann aber
            http://www.w3.org/TR/WAI-WEBCONTENT/#gl-new-technologies. Das
            ist ja das PRoblem.

            Also Du willst Javascript-Links nicht benutzen, weil dann Leute ohne JS ausgeschlossen sind, aber gestaltest Deine Links trotzdem so, dass man sie nur mit JS benutzen kann? Das ist ja schon ein bisschen widersinnig, findest Du nicht? Vielleicht solltest Du Dich mal entscheiden.

            So long

            --
            Alle Verallgemeinerungen sind falsch.

          3. Moin

            Das widerspricht dann aber
            http://www.w3.org/TR/WAI-WEBCONTENT/#gl-new-technologies.

            Nö überhaupt nicht.
            Dort steht: "Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page."

            Wobei sich das Beispiel ("do not use 'javascript:' as the link target") eindeutig auf den letzten Satz bezieht. Der Verfasser hatte dabei wohl die allseits beliebten Popup-Fenster im Sinn.

            Wenn Du jetzt mit Deinem Link eine Javascript-Funktion aufrufst, die mit HTML nicht einmal ansatzweise zu simulieren ist, verstößt Du damit ohnehin schon gegen diese Guideline und kannst auch <a href="javascript:..."> benutzen.

            Wenn Du allerdings dieser Empfehlung buchstabengetreu und bis zur allerletzten Konsequenz folgen willst, bleibt Dir gar nichts anderes übrig, als mit <a href="..."> auf eine "alternative accessible page" mit "equivalent information" zu verlinken.

            Thomas J.

            PS: Man kann die W3C-Hörigkeit auch übertreiben.

            1. Hi,

              Nö überhaupt nicht.
              Dort steht: "Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page."

              Wobei sich das Beispiel ("do not use 'javascript:' as the link target") eindeutig auf den letzten Satz bezieht. Der Verfasser hatte dabei wohl die allseits beliebten Popup-Fenster im Sinn.

              Wenn Du jetzt mit Deinem Link eine Javascript-Funktion aufrufst, die mit HTML nicht einmal ansatzweise zu simulieren ist, verstößt Du damit ohnehin schon gegen diese Guideline und kannst auch <a href="javascript:..."> benutzen.

              Wenn Du allerdings dieser Empfehlung buchstabengetreu und bis zur allerletzten Konsequenz folgen willst, bleibt Dir gar nichts anderes übrig, als mit <a href="..."> auf eine "alternative accessible page" mit "equivalent information" zu verlinken.

              Nö. Ich hatte das so verstanden, dass man keine javascript:-
              Links verwenden solle, die evtl. eine Fehlermeldung erzeugen,
              weil der Browser das Protokoll nicht kennt (da fehlen zwar noch
              zwei Slashes, aber egal ...).
              Stefan Münz, was sagst du dazu? *g*

              PS: Man kann die W3C-Hörigkeit auch übertreiben.

              Eigentlich hast du Recht.

              Bye,
              Peter

  2. Moin!

    href="#" ist auch nicht ideal, da ich meine, einen Browser gesehen
    zu haben, der dabei wieder zum Seitenanfang springt. Soll man href
    ganz weglassen? Dann gibt's aber wieder welche, die dann den Hover-
    effekt nicht darstellen.

    Man kann bei so ziemlich allen Browsern onmouseover benutzen, und selbst im Netscape 4 kann man onmouseover funktionierend an Elemente dranbinden (ich hab's mit unverlinkten Bildern gemacht).

    irgendwas:hover funktioniert dort natürlich nicht. Es ist eine Frage des Wollens, ob man da drumherumarbeitet für alte und kaputte Browser, oder es ignoriert.

    Ansonsten: onclick="return false" im Link hilft zumindest bei eingeschaltetem Javascript, daß der Link nicht ausgeführt wird. Und href="#" neutralisiert ihn einigermaßen, wenn Javascript aus ist. Du hast allerdings immer das Problem, daß die Browser "hier ist ein Link" anzeigen, sei es durch Mausveränderungen, oder durch textliche Hervorhebungen, so daß du die Benutzer in die Irre führst. Ein Link sollte immer ein Link bleiben.

    - Sven Rautenberg

    1. Hi,

      Man kann bei so ziemlich allen Browsern onmouseover benutzen, und selbst im Netscape 4 kann man onmouseover funktionierend an Elemente dranbinden (ich hab's mit unverlinkten Bildern gemacht).

      Darum geht's nicht, lies mal den anderen Diskussionsfaden.

      Danke,
      Peter

  3. Hallo Peter,

    Was ratet ihr mir?

    Eine Moeglichkeit, die zumindest HTML-technisch sehr sauber ist, ist diese:
    <a name="hier" href="#hier">...</a>
    Nachteil dabei ist allerdings, dass nicht nichts passiert, sondern ein Sprung zur aktuellen Stelle ausgefuehrt wird. Und das ist nun mal leider was anderes als nichts.

    Noch eine Moeglichkeit ist der umgekehrte Weg:
    <span style="color:blue; text-decoration:underline; cursor:hand">...</span>
    Also ein fingierter Link ...

    viele Gruesse
      Stefan Muenz