Philipp: Neues Fenster: XHTML-strict + Barrierefrei ??

Moin,

ich schreibe meine Webseiten bereits seit einiger Zeit XHTML Strict bzw. XHTML-1.1 konform und validiere sie auch.

Jetzt stellt sich folgendes Problem: Wie mach ich ein neues Fenster auf?
target="_blank" is deprecated, weil es mit frames zu tun hat, fällt also weg.

und javascript mag ich nicht benutzen, eben wegen Barrierefreiheit. Ich selbst bin übrigens fast immer mit ausgeschaltetem Js unterwegs.

Also, was tun??

Schönen Sonntag noch

  1. Hallo Philipp,

    Jetzt stellt sich folgendes Problem: Wie mach ich ein neues Fenster auf?

    Gar nicht. Zumindest nicht mit XHTML 1.1 [1] / XHTML 1.0 Strict ohne Javascript.

    target="_blank" is deprecated, weil es mit frames zu tun hat,

    target fällt nicht nur wegen der Frames weg, sondern _auch_ wegen den neuen Fenstern. Diejenigen, die HTML 4.01 Strict / XHTML 1.0 Strict / XHTML 1.1 entworfen haben, gemeint haben, Dinge, die mit dem Verhalten der Webseite zu tun haben (wozu target ja auch zählt), sollten mit Scripten gelöst werden.

    Also, was tun??

    Transitional nehmen, JavaScript nehmen oder schlichtweg keine neuen Fenster öffnen. Quartum non datur.

    Viele Grüße,
    Christian

    [1] Für die Korinthenkacker unter uns: XHTML 1.1 mit der Standard-DTD.

  2. Hallo!

    ich schreibe meine Webseiten bereits seit einiger Zeit XHTML Strict bzw. XHTML-1.1 konform und validiere sie auch.

    Jetzt stellt sich folgendes Problem: Wie mach ich ein neues Fenster auf?
    target="_blank" is deprecated, weil es mit frames zu tun hat, fällt also weg.

    und javascript mag ich nicht benutzen, eben wegen Barrierefreiheit.

    Ich mache es so:
    <a onclick="void(window.open('http://www.aua.com', '_blank', '')); return false;" href="http://www.aua.com">Flugzeug</a>
    Javascript dem der es aktiviert hat, kein neues Fenster für jene die JS deaktiviert haben.
    Im </archiv/> wurde die Sache x-mal diskutiert.

    Beste Grüße
    Viennamade

  3. Hi,
    Deine Frage wurde ja schon von meinen Vorrednern beantwortet. Ich möchte dazu noch sagen, dass du dein Vorhaben überhaupt überdenken solltest, da neue Fenster eigentlich unerwünscht sind.
    Ich habe diese lästige Funktion sogar im Browser deaktiviert, da ich selbst entscheiden will, ob ich ein neues Fenster öffnen will oder nicht, und auch nicht eines geöffnet bekomme, wenn ich mit der linken Maustaste einmal kein neues Fenster öffnen will, wie es manche Webseiten meinen tun zu müssen.

    Markus.

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|
    1. Hallo!

      ... da ich selbst entscheiden will, ob ich ein neues Fenster öffnen will oder nicht ...

      Warum die Browserhersteller eigentlich nicht anzeigen - zB. per Maussymbol - ob bei Standardklick ein neues Fenster aufgeht oder nicht?

      Beste Grüße
      Viennamade

      1. Hallo,

        ... da ich selbst entscheiden will, ob ich ein neues Fenster öffnen will oder nicht ...

        Warum die Browserhersteller eigentlich nicht anzeigen - zB. per Maussymbol - ob bei Standardklick ein neues Fenster aufgeht oder nicht?

        Diese Funktion kann man doch ganz einfach selbst einbauen:
        (zumindest in Firefox, userContent.css)

        a[target="_new"], a[target="_blank"] {
        cursor: wait !important ;
        /* trage hier deinen bevorzugten Cursor ein. */
        }

        Gruß
        Alexander Brock

        --
        SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
        http://emmanuel.dammerer.at/selfcode.html
        Deshalb können Pinguine nicht fliegen:
        Was nicht fliegt kann auch nicht abstürzen
        <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
        http://againsttcpa.com
        1. Hallo.

          Diese Funktion kann man doch ganz einfach selbst einbauen:
          (zumindest in Firefox, userContent.css)

          a[target="_new"], a[target="_blank"] {
          cursor: wait !important ;
          /* trage hier deinen bevorzugten Cursor ein. */
          }

          Schreibst du mir das dann bitte noch für jeden für ein neu zu öffnendes Fenster möglichen Fensternnamen, außer für die Namen der Fenster, die bereits offen sind?
          MfG, at

          1. Hallo at,

            Diese Funktion kann man doch ganz einfach selbst einbauen:
            (zumindest in Firefox, userContent.css)

            a[target="_new"], a[target="_blank"] {
            cursor: wait !important ;
            /* trage hier deinen bevorzugten Cursor ein. */
            }

            Schreibst du mir das dann bitte noch für jeden für ein neu zu öffnendes Fenster möglichen Fensternnamen,

            Das geht:
            a[target], a[onclick], a[onmousedown], a[onmouseup], a[onmouseover], a[onmouseout], a[onfocus], a[onblur], a[ondblclick], a[onblur] {
            cursor: wait !important;
            }

            <strong>;-)</strong>

            Das enthält IMHO alle <a></a> Elemente, bei denen die Möglichkeit
            besteht, dass der WebCoder vorgesehen hat, dass ein neues Fenster
            geöffnet wird. Leider sind alle Verweise auf Frames und
            alle JavaScript Spielereien (Bilderwechsel...) auch betroffen.

            Aber a[target="_blank"], a[target="_new"] ist doch schonmal
            ein guter Ansatz, so eine Markierung mit den aktuell
            vorhandenen Möglichkeiten von Mozilla zu realisieren, oder?

            Eine andere wäre vielleicht
            a[target]:after {
            content: "[" attr(target) "] ";
            /* kann halt nicht jeder was damit anfangen */
            }

            [...] außer für die Namen der Fenster, die bereits offen sind?

            Seeehr witzig. Du kannst dich ja mal dran versuchen.
            Mir reicht im Moment das, was ich geschrieben habe.
            Im Notfall such ich mir halt eine Extension,
            die neue Fenster verbietet, außer ich öffne
            sie manuell.

            Gruß
            Alexander Brock

            --
            SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
            http://emmanuel.dammerer.at/selfcode.html
            Deshalb können Pinguine nicht fliegen:
            Was nicht fliegt kann auch nicht abstürzen
            <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
            http://againsttcpa.com
            1. Hallo.

              Seeehr witzig. Du kannst dich ja mal dran versuchen.

              Das hatte ich bereits vor einiger Zeit getan und mein Egebnis war leider auch nicht besser als deines.

              Mir reicht im Moment das, was ich geschrieben habe.

              Mir leider nicht; daher meine Frage.
              MfG, at

              1. Hallo at,

                Mir reicht im Moment das, was ich geschrieben habe.

                Mir leider nicht; daher meine Frage.

                Willst du die Markierung
                nur in deinem Browser auf allen Seiten im Internet oder
                für deine Webseiten?

                Zweiteres dürfte ja kein Problem sein,
                dazu würde ich in das title Attribut
                der betroffenen Links
                "$beschreibung - Neues Fenster"
                schreiben.

                Gruß
                Alexander Brock

                --
                SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                http://emmanuel.dammerer.at/selfcode.html
                Deshalb können Pinguine nicht fliegen:
                Was nicht fliegt kann auch nicht abstürzen
                <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
                http://againsttcpa.com
                1. Hallo.

                  Willst du die Markierung
                  nur in deinem Browser auf allen Seiten im Internet oder
                  für deine Webseiten?

                  Beides.
                  MfG, at

                  1. Hallo,

                    Beides.

                    Wie ersteres geht, habe ich bereits beschrieben,
                    für das zweite habe ich eine Firefox Extension gefunden:

                    http://texturizer.net/firefox/extensions/#targetalert

                    <zitat src="http://texturizer.net/firefox/extensions">
                    TargetAlert puts icons after certain hyperlinks to alert you of their destinations. It has icons for PDF documents, mailtos, and links that open in a new window.
                    </zitat>

                    Zufrieden?

                    Gruß
                    Alexander Brock

                    --
                    SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                    http://emmanuel.dammerer.at/selfcode.html
                    Deshalb können Pinguine nicht fliegen:
                    Was nicht fliegt kann auch nicht abstürzen
                    <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
                    http://againsttcpa.com
                    1. Hallo.

                      Zufrieden?

                      Wirklich vielen Dank für deine Mühe, aber ich wollte meinen Browser eigentlich nicht wechseln. Aber vielleicht finde ich ja auch noch etwas.
                      MfG, at

                      1. Hallo at,

                        Wirklich vielen Dank für deine Mühe,

                        Bitte, gern geschehen, hat sich auch für mich gelohnt,
                        ich werde diese Extension verwenden.

                        aber ich wollte meinen Browser eigentlich nicht wechseln.

                        Welchen Browser verwendest du denn?

                        (nur damit ich für den auch noch eine Extension suchen
                        oder bei Bedarf eine schreiben kann <strong>;-))</strong>)

                        Gruß
                        Alexander Brock

                        --
                        SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                        http://emmanuel.dammerer.at/selfcode.html
                        Deshalb können Pinguine nicht fliegen:
                        Was nicht fliegt kann auch nicht abstürzen
                        <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
                        http://againsttcpa.com
                        1. Hallo.

                          Welchen Browser verwendest du denn?

                          Nach Möglichkeit Opera oder OmniWeb.

                          (nur damit ich für den auch noch eine Extension suchen
                          oder bei Bedarf eine schreiben kann <strong>;-))</strong>)

                          strong {display: none;}
                          MfG, at

                  2. Hallo,

                    Willst du die Markierung
                    nur in deinem Browser auf allen Seiten im Internet oder
                    für deine Webseiten?

                    Beides.

                    Warum schreibst du die besagten Regeln dann nicht ins Opera-Benutzerstylesheet (Preferences -> Page Style -> My Style Sheet)? Wenn du unter Configure Modes »My Style Sheet« für den Author Mode aktivierst, wird dieses auf jede Seite angewendet.
                    Oder missverstehe ich dich?

                    Mathias

                    1. Hallo.

                      Oder missverstehe ich dich?

                      Nein, du überschätzt lediglich meine Fähigkeiten.
                      MfG, at

                      1. Hallo,

                        Oder missverstehe ich dich?

                        Nein, du überschätzt lediglich meine Fähigkeiten.

                        Wo kommst du nicht weiter? Im besagten Opera-Einstellungsdialog ist der Pfad einer CSS-Datei angegeben, diese kannst du editieren und Regeln hinzufügen. Die Regel wurde ja schon gesagt, z.B.

                        a[target]:after {content: " [" attr(target) "]"; color:#a00;}

                        a[target] zielt auf alle a-Elemente mit einem target-Attribut.
                        a[target]:after bezieht sich auf den eingefügten Textinhalt am Ende des Elements.
                        Mit dem content-Attribut lässt sich festlegen, welcher Inhalt eingefügt werden soll, z.B. content:"bla".
                        attr() ist eine Sonderfunktion, mit der sich der Wert eines Attribut des jeweiligen Elements einfügen lässt. content:attr(target) fügt also den target-Attributwert ein. Drumherum kommen statische Zeichenketten, die beiden eckige Klammern. Die Teile werden einfach hintereinander notiert.
                        Das ganze dann noch dunkelrot gefärbt mit color.

                        Der Link <a href="bla" target="_blank">bla</a> sollte dadurch so dargestellt werden:

                        bla [_blank]

                        [_blank] ist Teil des Linktexts.

                        Bei mir habe ich etwas ähnliches im Einsatz nur für _blank-Links, weil mich die targets bei Framesets nicht stören:

                        a[target="_blank"]:before {content:"[^]"; color:#ff0000; font-weight:bold;}

                        Das Prinzip ist dasselbe, nur soll das target-Attribut nicht nur einfach existieren wie oben, sondern exakt den Wert _blank haben. Und das rote »[^]« soll am Anfang des Links (:before) eingefügt werden.

                        Mathias

                        1. Hallo.

                          Wo kommst du nicht weiter?

                          Oh, jetzt hast du so viel Mühe gemacht, und das für genau den Teil, der mir völlig klar ist.
                          Was mir fehlt ist ein Bookmarklet oder ähnliches, das die Funktion übernimmt, die von dir beschrieben CSS-Eigenschaften nicht anzuwenden, wenn das mittels "target" engegebene Fenster bereits offen ist und nur einen neuen Inhalt bekommt.
                          In CSS dürfte sich das nicht regeln lassen, während es in Javascript sicher eine einfache Übung darstellen sollte -- wenn man eben mit JS/DOM umgehen kann.
                          MfG, at

                          1. Hallo,

                            Was mir fehlt ist ein Bookmarklet oder ähnliches, das die Funktion übernimmt, die von dir beschrieben CSS-Eigenschaften nicht anzuwenden, wenn das mittels "target" engegebene Fenster bereits offen ist und nur einen neuen Inhalt bekommt.
                            In CSS dürfte sich das nicht regeln lassen, während es in Javascript sicher eine einfache Übung darstellen sollte -- wenn man eben mit JS/DOM umgehen kann.

                            Das ist einfach, aber ein Bookmarklet müsstest du manuell durch Klicken eines Buttons oder Drücken einer Taste für jedes Dokument erneut ausführen. Eine einfache Möglichkeit, ein JavaScript-Script automatisch auf jede aufgerufene Seite anzuwenden, gibt es nicht. Da die meisten Zweitfenster mit target="_blank" und nicht mit target="bestimmter_fenstername" geöffnet werden, sehe ich auch den Sinn nicht ganz. Die restlichen Zweitfenster sind dann Popup-Fenster. Es gibt keine zuverlässige Möglichkeit, ausgehend von einem Element herauszufinden, welchen Namen das Fenster hat, das beim Klick über JavaScript geöffnet wird.

                            Mathias

                            1. Hallo.

                              Eine einfache Möglichkeit, ein JavaScript-Script automatisch auf jede aufgerufene Seite anzuwenden, gibt es nicht.

                              Dann lag es also doch nicht unbedingt an mir, dass ich keine Lösung finden konnte.

                              Da die meisten Zweitfenster mit target="_blank" und nicht mit target="bestimmter_fenstername" geöffnet werden, sehe ich auch den Sinn nicht ganz.

                              Der Sinn liegt bei den "übrigen" -- in Abgrenzung zu den "meisten".

                              Es gibt keine zuverlässige Möglichkeit, ausgehend von einem Element herauszufinden, welchen Namen das Fenster hat, das beim Klick über JavaScript geöffnet wird.

                              Das muss es ja auch nur, wenn "target" oder "window.open" im Spiel sind -- dachte ich jedenfalls.
                              MfG, at

          2. Hallo,

            Hallo.

            Diese Funktion kann man doch ganz einfach selbst einbauen:
            (zumindest in Firefox, userContent.css)

            a[target="_new"], a[target="_blank"] {
            cursor: wait !important ;
            /* trage hier deinen bevorzugten Cursor ein. */
            }

            Schreibst du mir das dann bitte noch für jeden für ein neu zu öffnendes Fenster möglichen Fensternnamen, außer für die Namen der Fenster, die bereits offen sind?

            Ich kann leider nicht in CSS programmieren, weil CSS keine
            Programmiersprache ist und man eine solche für dieses
            Vorhaben bräuchte.

            Ich habe allerdings noch eine Verbesserungsmöglichkeit gefunden:
            a[target]:after {
            content: "[" attr(target) "] ";
            }

            Gruß
            Alexander Brock

            --
            SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
            http://emmanuel.dammerer.at/selfcode.html
            Deshalb können Pinguine nicht fliegen:
            Was nicht fliegt kann auch nicht abstürzen
            <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
            http://againsttcpa.com
            1. Hallo.

              Ich kann leider nicht in CSS programmieren, weil CSS keine
              Programmiersprache ist und man eine solche für dieses
              Vorhaben bräuchte.

              Man kann CSS übrigens server- wie client-seitig zur Laufzeit generieren lassen. Damit wollte ich mich als nächstes befassen.
              MfG, at

              1. Hallo,

                Man kann CSS übrigens server- wie client-seitig zur Laufzeit generieren lassen. Damit wollte ich mich als nächstes befassen.

                Es ging um Einträge in der userContent.css im Firefox,
                die Links, die sich in neuen Fenstern öffnen, irgendwie
                markieren. Dass man CSS Serverseitig zur Laufzeit erzeugen
                kann, wusste ich

                (meine CSS Dateien heißen alle *.css.php
                und enthalten alle folgenden Code:

                <?php
                ob_start("ob_gzhandler");
                header("Content-Type: text/css");
                ?>
                In dem Zusammenhang wäre eine serverseitige Browserweiche
                vielleicht interessant (IE-Hacks nur dem IE anbieten)

                )

                aber wie willst du die CSS Eigenschaften ohne JavaScript
                (und darauf würde ich gerne (bei SdN) verzichten)
                zur Laufzeit ändern?

                Gruß
                Alexander Brock

                --
                SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                http://emmanuel.dammerer.at/selfcode.html
                Deshalb können Pinguine nicht fliegen:
                Was nicht fliegt kann auch nicht abstürzen
                <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
                http://againsttcpa.com
  4. Hi,

    vielleicht machst Du es einfach so: http://www.dm-formationen2004.de/formationen.html?

    freundliche Grüße
    Ingo

    1. Hallo Ingo!

      vielleicht machst Du es einfach so: http://www.dm-formationen2004.de/formationen.html?

      Du hast ja nicht um Kritik gebeten, den Mund verbieten laße ich mir aber schon gar nicht - g.
      Eine _wunderschöne_ Seite! Der Plan der Sitzhalle sollte mE. am linken Rand sein (ich arbeite mit 1600x1200 ...).
      Beste Grüße
      Viennamade

      1. Hi,

        Du hast ja nicht um Kritik gebeten, den Mund verbieten laße ich mir aber schon gar nicht - g.

        nö. Die Seite hatte ich nur verlinkt, weil ich die Bedenken der Verantwortlichen gegen die Öffnung externer Seiten im selben Fenster durch den Hinweis auf der Seite ausräumen konnte.

        Eine _wunderschöne_ Seite! Der Plan der Sitzhalle sollte mE. am linken Rand sein (ich arbeite mit 1600x1200 ...).

        Danke. Und Du hast Recht. Ich habe den Sitzplan (und übrigens auch die Anfahrtskizze) jetzt nicht mehr zentriert.

        freundliche Grüße
        Ingo

    2. Hi,

      vielleicht machst Du es einfach so: http://www.dm-formationen2004.de/formationen.html?

      Sorry, aber was soll diese Seite?
      Bei mir geht da nirgendswo ein neues Fester auf!

      1. Hi,

        vielleicht machst Du es einfach so: http://www.dm-formationen2004.de/formationen.html?
        Sorry, aber was soll diese Seite?
        Bei mir geht da nirgendswo ein neues Fester auf!

        Lies, was auf der Seite steht.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.