Oliver: JAvaScript oder NEINvaScript?

Hallo Gemeinde!

Ich habe mich entschlossen ein ganzes Webprojekt komplett zu überarbeiten - unter anderem mit dem Wunsch nach mehr Barrierefreiheit. Nun steh ich vor einer kleinen Zwickmühle:

Es wird empfohlen, auf JavaScript zu verzichten. Die ursprüngliche Seite verwendete Java an mehreren Stellen, wo ich es auch problemlos "wegfallen" lassen konnte. Jetzt habe ich allerdings eine Seite in meinem Projekt, wo ich das JavaScript durchaus für sinnvoll erachte.

Es geht um eine Auflistung von Produkten zu denen es jeweils einen Link mit Informationen über deren Anwendungsgebiete gibt. Diese zusätzlichen Informationen sind für den Besucher definitiv interessant. Zwar sind es je Produkt nur ein paar Sätze, jedoch würde das Aufführen dieser Informationen innerhalb der eigentlichen Auflistung der Produkte die Seite extrem aufblähen und unübersichtlich machen.

Daher wurde früher der Teil "Anwendungsgebiete" auf ein extra HTML Dokument verfrachtet (je Produkt ein eigenes) und dieses dann per JavaScript in einem kleinen Zusatzfenster bei Klick auf den Link geladen.

Mein Problem:

  • Mit JavaScript kann ich das Fenster zwar zum "klein sein" zwingen (sofern der User das mit seinen Einstellungen nicht wieder explizit übersteuert natürlich), aber mit JavaScript ist es nicht mehr so barrierefrei.
  • Ohne JavaScript weiss ich nicht wie ich die Informationen sinnvoll einbinden kann, ohne das Hauptdokument zu überladen oder "normale" links zu verwenden, die dann allerdings unkontrolliert große Fenster öffnen, die den Besucher der Seite dann vielleicht verwirren, weil sie keinerlei Navigationselemente haben.

Am liebsten hätte ich ne Art Weiche die prüft ob der Anwender JavaScript zulässt und die dementsprechend das weitere Vorgehen bestimmt, zumal es genug User gibt, die JavaScript aus guten Gründen blocken.

Was ich mir erhoffe sind Antworten, die mir Lösungsalternativen aufzeigen, an die ich nicht gedacht habe, oder die mir sagen das ich das alles viel zu eng sehe *g*

Gruß

Oliver

  1. Was ich mir erhoffe sind Antworten, die mir Lösungsalternativen aufzeigen, an die ich nicht gedacht habe, oder die mir sagen das ich das alles viel zu eng sehe *g*

    Du siehst das alles viel zu eng ;-)

    Grüße,
    neko

    1. Hallo neko!

      Du siehst das alles viel zu eng ;-)

      Ein fröhliches lol ;)

      Oliver

  2. Hallo,

    <a href="..." target="_blank" onclick="window.open(...): return false;">Link</a>

    Wer JavaScript anhat, kriegt das kleine Fenster, wer nicht, halt das unspezfiert größere, aber ohne Info-Verlust.

    Grüße,
    Utz

    --
    Mitglied im Ring Deutscher Mäkler
    1. Hallo Utz.

      <a href="..." target="_blank" onclick="window.open(...): return false;">Link</a>

      ^^^^^^^^^^^^^^^

      In einem Thread zum Thema Barrierearmut ist oben markiertes Pfui!

      Allgemein auch.

      Einen schönen Freitag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hallo,

        <a href="..." target="_blank" onclick="window.open(...): return false;">Link</a>
                         ^^^^^^^^^^^^^^^

        In einem Thread zum Thema Barrierearmut ist oben markiertes Pfui!

        Kann Deine Kritik nicht nachvollziehen - warum sollte target="_blank" diesbezüglich böser[tm] sein als window.open? Laut http://www.w3.org/TR/WCAG10/wai-pageauth.html (Punkt 10.1) ist Öffnen eines neuen Fensters mit egal welcher Technik zu vermeiden, Priorität 2. Beschränkt man sich auf Priorität 1 (und das muss man unter den Voraussetzungen des OP) gibt es keine Aussagen dazu, dass eine bestimmte Technik zum Öffnen eines Fensters barrierearmer sei als eine andere.

        Grüße,
        Utz

        --
        Mitglied im Ring Deutscher Mäkler
        1. Hallo Utz.

          <a href="..." target="_blank" onclick="window.open(...): return false;">Link</a>
                           ^^^^^^^^^^^^^^^

          In einem Thread zum Thema Barrierearmut ist oben markiertes Pfui!

          Kann Deine Kritik nicht nachvollziehen - warum sollte target="_blank" diesbezüglich böser[tm] sein als window.open?

          Weil man ersteres normalerweise nicht unterbinden kann, zweiteres schon.

          Ich kann in meinem Browser JavaScript deaktivieren (was normalerweise der Fall ist) und habe meine Ruhe.

          Das „target="_blank"“ dagegen werde ich nur dann los, wenn ich JavaScript aktiviere. Denn nur dann kann mein User-JS im Browser aktiv werden und alle „target="_blank"“ entfernen.

          Laut http://www.w3.org/TR/WCAG10/wai-pageauth.html (Punkt 10.1) ist Öffnen eines neuen Fensters mit egal welcher Technik zu vermeiden, Priorität 2. Beschränkt man sich auf Priorität 1 (und das muss man unter den Voraussetzungen des OP) gibt es keine Aussagen dazu, dass eine bestimmte Technik zum Öffnen eines Fensters barrierearmer sei als eine andere.

          Generell zu vermeiden ist es allerdings ja. JavaScript bietet in dieser Hinsicht aber eine flexiblere Handhabe und unterbindet nicht die Möglichkeit, einen Link im aktuellen Tab/Fenster zu öffnen.

          Beispiel Lightbox: Klicke ich direkt auf die jeweilige Grafik, verrichtet dieses hübsche Script sein Werk. Öffne ich auf der Grafik jedoch das Kontextmenü und wähle dort „Öffnen“, so wird die Grafik direkt im aktuellen Tab geöffnet. Wäre „target="_blank"“ gesetzt, wäre dies nicht ohne weiteres möglich. (Mir ist tatsächlich kein Client bekannt, der eine native nutzerseitige Manipulation der Auswertung von target-Attributen ermöglicht.)

          Aus diesem Grund sehe ich die feste Verankerung einer Zielangabe im HTML auch als größeres Übel an, als die Manipulation der Linkfunktion mit Hilfe von JS. (Wohlgemerkt nur dann, wenn der Link auf oben beschriebene Weise mit JS versehen wurde.)

          Einen schönen Freitag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
  3. Daher wurde früher der Teil "Anwendungsgebiete" auf ein extra HTML Dokument verfrachtet (je Produkt ein eigenes) und dieses dann per JavaScript in einem kleinen Zusatzfenster bei Klick auf den Link geladen.

    Wenn du per Link ein extra Dokument öffnen willst, dann ist die Lösung ganz einfach:

    <a href="info.html" onclick="window.open(this.href, 'Fenster', '....').focus();return false;">......</a>

    Dann öffnet sich entweder ein Fenster ohne ohne JS wird das Dokument im selben Fenster angezeigt und der Nutzer kann mit der Browserfunktion "zurück" wieder auf die Liste kommen.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hallo Struppi,

      Wenn du per Link ein extra Dokument öffnen willst, dann ist die Lösung ganz einfach:

      <a href="info.html" onclick="window.open(this.href, 'Fenster', '....').focus();return false;">......</a>

      Stimmt - den Lösungsansatz hab ich ja auch weiter oben schon von anderer Seite bekommen.

      Momentan halte ich das mal als Möglichkeit vor - JavaScript ganz zu vermeiden wäre natürlich schöner.

      Danke

      Oliver

  4. Moin!

    Was ich mir erhoffe sind Antworten, die mir Lösungsalternativen aufzeigen, an die ich nicht gedacht habe, oder die mir sagen das ich das alles viel zu eng sehe *g*

    1. Du siehst das alles viel zu eng.
    2. <a href="normalerlink.html" target="_blank" onclick="openpopup(this.href); return false;"> wäre deine gesuchte Weiche.

    3. Da ich es so oder so nicht als optimal empfinde, dass du für die Darstellung von nur wenigen Sätzen gleich ein komplett neues Dokument eröffnen willst, egal ob im Popup oder einem normalen Dokument, würde ich empfehlen, die Darstellungsform zu überarbeiten, und diese sinnvolle Information im "schlimmsten Fall" einfach auf einer neuen Komplettseite darzustellen, die dann problemlos im gleichen Browserfenster angezeigt werden kann, weil sie Navigation, Aufbau und neben den Sätzen auch die sonstigen Infos aus der Tabelle nochmal ausführlich wiederholt, und somit als vernünftige Produktinfoseite durchgehen kann.

    4. Alternativ kann man natürlich auch die Produkttabelle dynamisch serverseitig gestalten, und dem Besucher anbieten, welche Spalten er angezeigt bekommen soll. Die hilfreichen Sätze könnten dann ja beispielsweise als Tabellenzelle über die gesamte Tabellenbreite gehen und jeweils unterhalb der Produktzeile auftauchen.

    Ich denke, es gibt sehr viele Möglichkeiten, dein Popup zu vermeiden. Man muß nur etwas Phantasie entwickeln.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hoi :)

      1. Du siehst das alles viel zu eng.

      *g* - Ich bekomm was ich erhoffe - das ist doch schon mal nicht schlecht.

      1. <a href="normalerlink.html" target="_blank" onclick="openpopup(this.href); return false;"> wäre deine gesuchte Weiche.

      Nicht ganz. Ich möchte, falls Java geht, dann ja auch die Fenstereigenschaften festlegen... also wohl eher window.open...
      Aber ich verstehe das Prinzip.

      1. (...)

      Da denke ich mal drüber nach.

      1. Alternativ kann man natürlich auch die Produkttabelle dynamisch serverseitig gestalten, und dem Besucher anbieten, welche Spalten er angezeigt bekommen soll. Die hilfreichen Sätze könnten dann ja beispielsweise als Tabellenzelle über die gesamte Tabellenbreite gehen und jeweils unterhalb der Produktzeile auftauchen.

      Hmmm... auch darüber denke ich mal nach. Da ich PHP kann und es für diese Präsenz auch zur Verfügung steht könnte da was gehen.

      Ich denke, es gibt sehr viele Möglichkeiten, dein Popup zu vermeiden. Man muß nur etwas Phantasie entwickeln.

      Das glaub ich gut und gern. Nur wenn man sich mal in ein Problem verbeisst, sieht man die "größeren Zusammenhänge" oft nicht mehr -> der Grund weshalb ich auch um Denkanstösse gebeten hatte.

      Danke für deine Antwort - sie bringt mich definitiv weiter.

      Gruß

      Oliver

      1. Hi,

        1. <a href="normalerlink.html" target="_blank" onclick="openpopup(this.href); return false;"> wäre deine gesuchte Weiche.
          Nicht ganz. Ich möchte, falls Java geht, dann ja auch die Fenstereigenschaften festlegen... also wohl eher window.open...

        Warum willst Du die Festlegung der Fenstereigenschaften von der Verfügbarkeit einer Technik abhängig machen, die damit rein gar nichts zu tun hat?
        Ob Java aktiviert ist, spielt doch für Dein Javascript eigentlich überhaupt keine Rolle ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      2. Moin!

        1. <a href="normalerlink.html" target="_blank" onclick="openpopup(this.href); return false;"> wäre deine gesuchte Weiche.

        Nicht ganz. Ich möchte, falls Java geht, dann ja auch die Fenstereigenschaften festlegen... also wohl eher window.open...

        Was hast du gegen eine zentral definierte Funktion, die dein Popup öffnet? Warum müssen die Fensterparameter immer und immer wieder in jedem Link auftauchen?

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
    2. Hallo Sven.

      1. <a href="normalerlink.html" target="_blank" onclick="openpopup(this.href); return false;"> wäre deine gesuchte Weiche.

      Das hier Geschriebene gilt für dich ebenso.

      Würdest du das Aufzwingen eines neuen Fensters/Tabs als barrierearm ansehen?

      Einen schönen Freitag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
  5. Moin,

    Was ich mir erhoffe sind Antworten, die mir Lösungsalternativen aufzeigen, an die ich nicht gedacht habe, oder die mir sagen das ich das alles viel zu eng sehe *g*

    wie wäre es denn statt die Informationen auf einer eigenen Seite zu zeigen, das Einblenden einer CSS-Infobox, wenn der User mit der Maus über einen Eintrag fährt?

    MfG,
      Juan

    1. Hallo Juan,

      wie wäre es denn statt die Informationen auf einer eigenen Seite zu zeigen, das Einblenden einer CSS-Infobox, wenn der User mit der Maus über einen Eintrag fährt?

      Klingt zunächst mal gut - die Technik war mich noch gar nicht bekannt. Leider hilft es aber nicht. Nach rechts ist kein Platz mehr und nach unten würde es ja dann immer den nachfolgenden Text verschieben, wenn man auf den Button zeigt.

      Oder liegt die Box VOR dem Dokument?
      Und: kann man in der Box ganze HTML Seiten reinlinken?

      Weil dann wärs ne saubere Ersatzlösung.

      Gruß

      Oliver

      1. Hi Oliver!

        Oder liegt die Box VOR dem Dokument?

        Das lässt sich arrangieren. [1]

        Und: kann man in der Box ganze HTML Seiten reinlinken?

        Nein. Etwas Arbeit wird es wohl schon sein, die Inhalte für die Infobox aufzubereiten.

        [1] Lies: Positionieren. :)

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      2. Moin,

        Klingt zunächst mal gut - die Technik war mich noch gar nicht bekannt. Leider hilft es aber nicht. Nach rechts ist kein Platz mehr und nach unten würde es ja dann immer den nachfolgenden Text verschieben, wenn man auf den Button zeigt.

        Oder liegt die Box VOR dem Dokument?

        genau, sie schiebt sich quasi wie ein Layer darüber.

        Und: kann man in der Box ganze HTML Seiten reinlinken?

        Du brauchst ja nicht unbedingt eine ganze HTML-Seite, wenn du nur Zusatzinfos anzeigen willst.
        Guck dir einfach mal die Beispiele an, schau in den Quelltext und entscheide dann, ob du damit was anfangen kannst oder nicht.

        Weil dann wärs ne saubere Ersatzlösung.

        Das denke ich auch und du bräuchtest über Javascript keine Gedanken mehr machen.

        Grüsse,
          Juan

      3. Hi,

        Klingt zunächst mal gut - die Technik war mich noch gar nicht bekannt. Leider hilft es aber nicht. Nach rechts ist kein Platz mehr und nach unten würde es ja dann immer den nachfolgenden Text verschieben, wenn man auf den Button zeigt.

        wenn es "je Produkt nur ein paar Sätze" sind, würde ich die Infobox direkt in Höhe der Produkte darstellen. Siehe http://www.1ngo.de/web/infobox.html.

        freundliche Grüße
        Ingo

  6. Hi,
    kann man das Problem nicht auch mit CSS lösen??

    Grüssung,
    Andre

    1. Hi,
      kann man das Problem nicht auch mit CSS lösen??

      Grüssung,
      Andre

      Hallo Andre,

      wenn ich den Inhalt auf der gleichen Seite rechts neben den Produkten anzeigen möchte, wird die Seite zu breit für eine 1024er Auflösung - die Seite ist so wie sie ist schon recht breit...

      Ich hab einfach kein Platz mehr auf der aktuellen Seite. Wenn ich die Infos in einem neuen Fenster darstelle, dann hab ich zwar kein Platz-Problem mehr, das neue Fenster geht mir aber wenn ich Pech hab maximiert auf, was auch nicht wirklich hilfreich wäre.

      Gruß

      Oliver

  7. Tachchen!

    Es geht um eine Auflistung von Produkten zu denen es jeweils einen Link mit Informationen über deren Anwendungsgebiete gibt. Diese zusätzlichen Informationen sind für den Besucher definitiv interessant. Zwar sind es je Produkt nur ein paar Sätze, jedoch würde das Aufführen dieser Informationen innerhalb der eigentlichen Auflistung der Produkte die Seite extrem aufblähen und unübersichtlich machen.

    Würde dir das hier nicht helfen?

    Gruß

    Die schwarze Piste

    --
    ie:{ fl:( br:^ va:) ls:# fo:) rl:( n4:& ss:{ de:] js:| ch:? mo:) zu:$
    Smartbytes Webdesign in Oberhausen