Camping_RIDER: Info: neuer Artikel zum Checkbox-Hack

1 55

Info: neuer Artikel zum Checkbox-Hack

Camping_RIDER
  • css
  • selfhtml-wiki
  • zur info
  1. 0
    Matthias Scharwies
  2. 0
    Gunnar Bittersmann
    1. 0
      Camping_RIDER
      1. 0
        Matthias Apsel
        1. 0
          Camping_RIDER
      2. 0
        Gunnar Bittersmann
        1. 0
          Camping_RIDER
          1. 0
            Gunnar Bittersmann
    2. 0
      Camping_RIDER
      1. 1
        Gunnar Bittersmann
        • html
        • selfhtml-wiki
        • zur info
        1. 0

          IE6-Warnung gefällig?

          Camping_RIDER
          1. 2
            Christian Kruse
            1. 0
              Auge
              • browser
              • html
              • selfhtml-wiki
              1. 0
                Christian Kruse
                1. 0
                  Auge
                  1. 0
                    Christian Kruse
                    1. 0
                      Auge
                      • browser
                      • selfhtml-wiki
                      1. 0
                        Christian Kruse
                      2. 0
                        Camping_RIDER
                        1. 0
                          Auge
                          • browser
                    2. 1
                      JürgenB
                      1. 0
                        Christian Kruse
            2. 0
              Camping_RIDER
          2. 0
            Jörg Reinholz
            1. 0
              Auge
              • browser
              • mobile
              1. 0
                marctrix
            2. 0
              Der Martin
              1. 0
                marctrix
                1. 0
                  Der Martin
                  1. 0
                    marctrix
                    1. 0
                      Der Martin
                      1. 0
                        marctrix
                        1. 0
                          Der Martin
                          1. 0
                            marctrix
                          2. 1

                            Spaß mit Siri

                            Gunnar Bittersmann
                            • humor
                            1. 0
                              marctrix
                              1. 0
                                Tabellenkalk
                                1. 0
                                  marctrix
            3. 0
              marctrix
    3. 1

      Polyfill - erster Versuch

      Camping_RIDER
      1. 0
        Matthias Apsel
        1. 0
          Camping_RIDER
      2. 0

        Bugfix jetzt im Artikel

        Camping_RIDER
  3. 0
    marctrix
  4. 0

    Verrückter Bug oder meine Blindheit?

    Camping_RIDER
    • bug
    • css
    • selfhtml-wiki
  5. 1

    Variablendeklaration

    Orlok
    • javascript
    1. 0
      Camping_RIDER
      1. 0
        Orlok
        1. 0
          Camping_RIDER
        2. 0
          dedlfix
    2. 0
      dedlfix
      1. 0
        Camping_RIDER
        1. 0
          dedlfix
          1. 0
            Camping_RIDER

Aloha ;)

Ich habe, weils mir schon lang am Herzen liegt, endlich die Initiative ergriffen und einen CSS-Anwendungs-und-Praxis-Artikel zum Checkbox-Hack erstellt. Weil mir die Zeit fehlt, das auf einen Satz runterzuschreiben habe ich ihn zunächst mit einem entsprechenden Disclaimer versehen und werde ihn dann im Laufe der kommenden Wochen peu à peu zur Fertigstellung bringen.

Anmerkungen, Featurewünsche und positive wie negative Kritik nehme ich dankend entgegen ;)

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
  1. Servus!

    Sowohl deine Mitarbeit als auch das Thema find ich gut!

    Einerseits sollen/müssen wir die alten Artikel auf den heutigen Stand bringen; andererseits sind solche ganz neuen Sachen viel interessanter!

    Herzliche Grüße

    Matthias Scharwies

  2. @@Camping_RIDER

    einen CSS-Anwendungs-und-Praxis-Artikel zum Checkbox-Hack erstellt.

    Im Artikel sollte unbedingt auf den hässlichen WebKit Adjacent/General Sibling & Pseudo Class Bug hingewiesen werden, von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind und gegen den mir keine gute Lösung bekannt ist. Die in Artikel gezeigte Lösung frisst auf einigen Geräten eine Menge CPU, also Perfromance und Batterie – nicht verwenden.

    Was den Einsatz des Checkbox-Hacks (wer kam auf diesen Namen?) doch fragwürdig macht.

    LLAP 🖖

    --
    „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
    „Hat auf dem Forum herumgelungert …“
    (Wachen in Asterix 36: Der Papyrus des Cäsar)
    1. Aloha ;)

      Im Artikel sollte unbedingt auf den hässlichen WebKit Adjacent/General Sibling & Pseudo Class Bug hingewiesen werden, von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind und gegen den mir keine gute Lösung bekannt ist.

      Der war mir bisher gar nicht bekannt - und ist bei Safari und Chrome ja auch schon eine Ewigkeit behoben.

      Good news everyone! This is fixed in both stable releases of the WebKit browser Safari (5.1) and Chrome (13)

      Welche Browser sind denn tatsächlich betroffen? Und haben die eine ausreichende Relevanz, dass man auf diesen Bug hinweisen müsste?

      Was den Einsatz des Checkbox-Hacks (wer kam auf diesen Namen?) doch fragwürdig macht.

      Wie mans nimmt. Die Bugs in JS-Implementierungen von Randgruppen-Mobilbrowsern (die ein solcher Bug dann wieder aufwiegen würde) sind ja nicht die einzigen Gründe, die für eine Nutzung des Checkbox-Hack sprechen. Ich halte es allgemein schon für sinnvoll, so viel mit CSS zu machen wie möglich ist.

      Übrigens - gelesen hab ich diesen Namen zum ersten Mal bei Chris Coyier. Ob er den so geprägt hat oder ob das von wo anders kam - keine Ahnung. Auf jeden Fall passt die Bezeichnung, auch wenn man sie kaum aussprechen kann ;)

      Grüße,

      RIDER

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      1. Hallo Camping_RIDER,

        Übrigens - gelesen hab ich diesen Namen zum ersten Mal bei Chris Coyier. Ob er den so geprägt hat oder ob das von wo anders kam - keine Ahnung. Auf jeden Fall passt die Bezeichnung, auch wenn man sie kaum aussprechen kann ;)

        Warum ‚Hack‘? Ginge nicht auch ‚Mett‘?

        Ne, im Ernst: Wie ich an @Matthias Scharwies in einer PN schrieb: „Hm. So komplett semantisch falsch ist das imho gar nicht, der Nutzer hakt "Will ich sehen" an und kriegt das gezeigt, was er sehen möchte. Die Checkbox selbst findet der Autor aber hässlich, stattdessen wird das label-Element als Beschriftung der Checkbox in den Mittelpunkt gerückt. Warum nicht? Siehe auch http://wiki.selfhtml.org/wiki/CSS/Eigenschaften/Anzeige/pointer-events#Anwendung

        Bis demnächst
        Matthias

        --
        Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
        1. Aloha ;)

          Ne, im Ernst: Wie ich an @Matthias Scharwies in einer PN schrieb: „Hm. So komplett semantisch falsch ist das imho gar nicht, der Nutzer hakt "Will ich sehen" an und kriegt das gezeigt, was er sehen möchte. Die Checkbox selbst findet der Autor aber hässlich, stattdessen wird das label-Element als Beschriftung der Checkbox in den Mittelpunkt gerückt. Warum nicht?

          So auch meine Interpretation.

          Siehe auch http://wiki.selfhtml.org/wiki/CSS/Eigenschaften/Anzeige/pointer-events#Anwendung

          Hey, ein waschechter Checkbox-Hack, versteckt im pointer-events-Artikel ;) Dann nehme ich den doch gleich mit in die Liste auf ;)

          @edit: Da isses.

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      2. @@Camping_RIDER

        von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind

        Welche Browser sind denn tatsächlich betroffen?

        Hatte ich die Frage nicht schon beantwortet, bevor du sie gestellt hast?

        Und haben die eine ausreichende Relevanz, dass man auf diesen Bug hinweisen müsste?

        Es sind eben gerade Browser, die wohl nie ein Update erfahren, sondern erst mit den Geräten verschwinden, auf denen sie genutzt werden.

        LLAP 🖖

        --
        „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
        „Hat auf dem Forum herumgelungert …“
        (Wachen in Asterix 36: Der Papyrus des Cäsar)
        1. Aloha ;)

          von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind

          Welche Browser sind denn tatsächlich betroffen?

          Hatte ich die Frage nicht schon beantwortet, bevor du sie gestellt hast?

          Ach, du meinst die Android-Systembrowser? Ich dachte du meinst Nischen-3rd-Party-Software. Tut mir leid, davon war ich nicht ausgegangen ;)

          Und haben die eine ausreichende Relevanz, dass man auf diesen Bug hinweisen müsste?

          Es sind eben gerade Browser, die wohl nie ein Update erfahren, sondern erst mit den Geräten verschwinden, auf denen sie genutzt werden.

          Dann müsste man aber schon herausfinden, welche Versionen des Android-Systembrowsers tatsächlich betroffen sind - eine Warnung im Artikel macht nur dann wirklich Sinn, wenn der Leser die Tragweite der Problematik auch einschätzen kann.

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
          1. @@Camping_RIDER

            Ach, du meinst die Android-Systembrowser?

            Genau die.

            Und huch, wohl noch einer: Chrome auf iOS.

            LLAP 🖖

            --
            „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
            „Hat auf dem Forum herumgelungert …“
            (Wachen in Asterix 36: Der Papyrus des Cäsar)
    2. Aloha ;)

      Im Artikel sollte unbedingt auf den hässlichen WebKit Adjacent/General Sibling & Pseudo Class Bug hingewiesen werden, von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind und gegen den mir keine gute Lösung bekannt ist. Die in Artikel gezeigte Lösung frisst auf einigen Geräten eine Menge CPU, also Perfromance und Batterie – nicht verwenden.

      Ich habe mal einen entsprechenden Hinweis eingefügt. Statt dem (wie du richtig sagst) ziemlich dämlichen animations-Workaround habe ich die Verwendung des Nachbarselektors (+) statt dem Geschwisterselektor (~) empfohlen, weil der laut Quelle (zumindest inzwischen) weniger betroffen und meist genauso oder sogar besser geeignet ist. Die Bugreports die ich gefunden habe (in Bezug auf den Bug bei beiden Selektoren) sind meist schon sehr alt (die neusten von 2012), so dass sich die Geschichte wahrscheinlich in näherer Zukunft sowieso erledigt.

      Grüße,

      RIDER

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      1. @@Camping_RIDER

        habe ich die Verwendung des Nachbarselektors (+) statt dem Geschwisterselektor (~) empfohlen

        Was wohl gar nichts hilft, wie wir inzwischen an anderer Stelle herausgefunden haben.

        Polyfill für einen Hack? Zum einen kann man das dann gleich ganz in JavaScript machen. Zum anderen kann man dann gleich das passende Markup (ich denke an details/summary) verwenden und dafür einen Polyfill vorsehen …

        so dass sich die Geschichte wahrscheinlich in näherer Zukunft sowieso erledigt.

        … welcher sich erledigt, wenn alle gängigen Browser details/summary nativ unterstützen.

        Außerdem hat man hier auch ohne Polyfill progressive enhancement at work: Wenn details/summary nicht unterstützt wird, ist ja nichts kaputt. Es wird halt nicht zugeklappt, sondern einfach alles angezeigt.

        TL;DR: Ich hab inzwischen Zweifel an der Sinnhaftigkeit des Checkbox-Hacks. Damit auch an der Sinnhaftigkeit des Artikels.

        LLAP 🖖

        --
        „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
        „Hat auf dem Forum herumgelungert …“
        (Wachen in Asterix 36: Der Papyrus des Cäsar)
        1. Aloha ;)

          Außerdem hat man hier auch ohne Polyfill progressive enhancement at work: Wenn details/summary nicht unterstützt wird, ist ja nichts kaputt. Es wird halt nicht zugeklappt, sondern einfach alles angezeigt.

          Je nach Seitenaufbau schon. Dann überdecken die Navigationselemente, beispielsweise, dauerhaft den Seiteninhalt. Fragt sich was schlimmer ist - nicht navigieren zu können weil der eigene Browser (noch) nicht standardkonform arbeitet oder aus dem selben Grund den Inhalt nicht lesen können.

          TL;DR: Ich hab inzwischen Zweifel an der Sinnhaftigkeit des Checkbox-Hacks. Damit auch an der Sinnhaftigkeit des Artikels.

          Ich nicht, ich bin inzwischen nur davon überzeugt, dass es leider doch (noch) nicht die eierlegende Wollmilchsau ist. Ich bin aber optimistisch. Im Gegensatz zu früher, wo der verquirkste IE6 als nicht-aktualisierbarer (bzw nur schwer aktualisierbarer) Systembrowser ein jahrelanges Problem war, sind die Lebenszyklen der Produkte heutzutage deutlich kürzer, vor allem im Smartphonebereich. Soweit ich das verstanden habe wird Android 5 auf den Systembrowser mit veralteter Engine verzichten und stattdessen die Chromium-Version verwenden - in der der Bug schon lange gefixt ist.

          Außerdem sind die Problemfälle recht überschaubar; es sind ausschließlich Webkits mit veralteter Engine betroffen. Und wer weiß, vielleicht finde ich ja einen kostengünstigen Polyfill oder Workaround (der JavaScript beinhalten kann, weil man in den betroffenen Browsern das JS sowieso nicht deaktivieren kann - die Sinnhaftigkeit des Checkbox-Hack für Desktop-User ohne JS bleibt ja trotzdem erhalten) - der muss ja nur unter den betroffenen Browsern funktionieren.

          Für mich persönlich (i know, nicht unbedingt konsensfähig) ist es aber auch nicht wichtig, dass meine Seiten auf allen veralteten Browsern laufen. Das ist für mich auch keine Frage der Barrierefreiheit. Ein veralteter Browser ist keine Behinderung, gegen die man nichts tun kann; man hat jederzeit die Möglichkeit, einen standardkonformeren Browser benutzen. Sofern es ausreichend viele Alternativen gibt sehe ich das Problem mit einer veralteten Browserengine auf der Seite des Aufrufers, der darauf besteht diesen zu betreiben. Ob man sich so eine Einstellung leisten kann oder nicht ist natürlich hochgradig von Umweltfaktoren abhängig. Ich erwäge gerade sogar, meine Seite mit einer "benutzen Sie einen aktuellen Browser"-Warnung im IE-6-Style auszustatten. Wie damals. Muss man natürlich nicht gut finden.

          Das Argument, dass man sich den Browser manchmal nicht aussuchen kann (in der Firma etc), zählt für mich in dem Fall auch nicht, weil nur Mobilbrowser betroffen sind - und wer hat denn schon ein Dienst-Smartphone, auf dem er keinen anderen Browser als den Android-Systembrowser installieren darf? Das ist maximal eine marginale Randgruppe, wahrscheinlich etwas kleiner als die Gruppe der Leute, die noch einen IE6/7 benutzen.

          Ich bleibe also dabei, dass dieser Artikel nach wie vor sinnhaftig ist - genauso wie der darauf platzierte Disclaimer, der Entwickler mit sensibler Zielgruppe davor warnt, dass die Lösung keine eierlegende Wollmilchsau ist. (Das sind alle anderen gängigen Lösungen im Moment allerdings auch nicht, um das mal ganz deutlich zu sagen!)

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
          1. Hallo Camping_RIDER,

            Ein veralteter Browser ist keine Behinderung, gegen die man nichts tun kann; man hat jederzeit die Möglichkeit, einen standardkonformeren Browser benutzen.

            Du willst, dass sich jemand für deine Seite ein neues Gerät kauft? Ziemlich vermessen. Sag das mal dem @JürgenB.

            Das ist die gleiche Einstellung, die damals zu den „Optimiert für IE”-Badges geführt hat. Laufen sollte die Seite auf allen UAs. Sie muss nicht immer gleich aussehen (das wäre unsinnig zu fordern), aber laufen sollte sie prinzipiell.

            LG,
            CK

            1. Hallo

              Ein veralteter Browser ist keine Behinderung, gegen die man nichts tun kann; man hat jederzeit die Möglichkeit, einen standardkonformeren Browser benutzen.

              Du willst, dass sich jemand für deine Seite ein neues Gerät kauft? Ziemlich vermessen. Sag das mal dem @JürgenB.

              Es ging wohl eher darum, einen anderen Browser zu installieren, nicht darum, ein neues Gerät zu kaufen. Aber selbst da stellt sich die Frage, ob ich als Anwender das für oder wegen der Fehldarstellung oder eingeschränkten Funktionsfähigkeit einzelner Seiten tue. Die allermeisten Infos finde ich auch woanders.

              Das ist die gleiche Einstellung, die damals zu den „Optimiert für IE”-Badges geführt hat. Laufen sollte die Seite auf allen UAs. Sie muss nicht immer gleich aussehen (das wäre unsinnig zu fordern), aber laufen sollte sie prinzipiell.

              ACK

              Tschö, Auge

              --
              Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
              Terry Pratchett, „Gevatter Tod“
              1. Hallo Auge,

                Es ging wohl eher darum, einen anderen Browser zu installieren, nicht darum, ein neues Gerät zu kaufen.

                Das ist mir bewusst. Ich wollte mit meinem Posting darauf hinweisen, dass das nicht auf jedem Device möglich ist.

                LG,
                CK

                1. Hallo

                  Ich wollte mit meinem Posting darauf hinweisen, dass das nicht auf jedem Device möglich ist.

                  Hmm, hast du da Beispiele? Bei irgendwelchem Embedded-Kram kann ich mir das ja noch vorstellen. Dass die jemand – jenseits einer webbasierten Konfigurationsoberfläche – zum surfen benutzt, allerdings nicht.

                  Tschö, Auge

                  --
                  Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                  Terry Pratchett, „Gevatter Tod“
                  1. Hallo Auge,

                    Ich wollte mit meinem Posting darauf hinweisen, dass das nicht auf jedem Device möglich ist.

                    Hmm, hast du da Beispiele? Bei irgendwelchem Embedded-Kram kann ich mir das ja noch vorstellen. Dass die jemand – jenseits einer webbasierten Konfigurationsoberfläche – zum surfen benutzt, allerdings nicht.

                    Ja, @JürgenB mit seinem uralten Windows Phone und dem IE ich glaub 9 wars. Ältere Android-Geräte haben auch das Problem.

                    LG,
                    CK

                    1. Hallo

                      Ich wollte mit meinem Posting darauf hinweisen, dass das nicht auf jedem Device möglich ist.

                      Hmm, hast du da Beispiele? Bei irgendwelchem Embedded-Kram kann ich mir das ja noch vorstellen. Dass die jemand – jenseits einer webbasierten Konfigurationsoberfläche – zum surfen benutzt, allerdings nicht.

                      Ja, @JürgenB mit seinem uralten Windows Phone und dem IE ich glaub 9 wars.

                      Ach herrje!

                      Ältere Android-Geräte haben auch das Problem.

                      Wie alt? Auf meinem alten Gerät mit Android 2.3.x [1] konnte ich auch andere Browser installieren. Für meinen Wunschbrowser Firefox reichte allerdings die Hardware nicht aus. Das Programm ließ sich kaum bedienen, die Oberfläche war schnarchlangsam.

                      Dass Geräte mit einer Androidversion vor 2.2 vom Playstore nicht mehr bedient werden und nicht alle Programme alle mit dem Store erreichbaren Versionen unterstützen, ist klar. Spielen die, abseits der Überlegung der grundsätzlichen Zugänglichkeit einer Seite, praktisch noch irgendeine Rolle?

                      Tschö, Auge

                      --
                      Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                      Terry Pratchett, „Gevatter Tod“

                      1. Außerbetriebnahme vor fast einem Jahr ↩︎

                      1. Hallo Auge,

                        Ältere Android-Geräte haben auch das Problem.

                        Wie alt?

                        Das kann ich dir so genau gar nicht sagen, es handelt sich nicht um mein Telefon und ich bin auch kein Android-User. Es geht um das Telefon meiner Mutter, da waren modernere Browser-Versionen einfach nicht benutzbar. Ausser Dienst möchte sie es allerdings auch nicht stellen.

                        LG,
                        CK

                      2. Aloha ;)

                        Dass Geräte mit einer Androidversion vor 2.2 vom Playstore nicht mehr bedient werden und nicht alle Programme alle mit dem Store erreichbaren Versionen unterstützen, ist klar. Spielen die, abseits der Überlegung der grundsätzlichen Zugänglichkeit einer Seite, praktisch noch irgendeine Rolle?

                        Ich denke nicht. Deshalb war meine Aussage ja so, wie sie war. Ideologisch gesehen ist das vielleicht eine falsche Einstellung, realistisch gesehen vielleicht aber doch in Ordnung. Und nicht jede Entscheidung muss einer strengen Ideologie folgen ;)

                        Grüße,

                        RIDER

                        --
                        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                        1. Hallo

                          Dass Geräte mit einer Androidversion vor 2.2 vom Playstore nicht mehr bedient werden und nicht alle Programme alle mit dem Store erreichbaren Versionen unterstützen, ist klar. Spielen die, abseits der Überlegung der grundsätzlichen Zugänglichkeit einer Seite, praktisch noch irgendeine Rolle?

                          Ich denke nicht. Deshalb war meine Aussage ja so, wie sie war. Ideologisch gesehen ist das vielleicht eine falsche Einstellung, realistisch gesehen vielleicht aber doch in Ordnung. Und nicht jede Entscheidung muss einer strengen Ideologie folgen ;)

                          Zum Glück sterben alle Browser irgendwann aus. Wäre das nicht so, müssten Webentwickler nach wie vor die aus heutiger Sicht teilweise absurden Eigenheiten von NS4, MSIE5.x oder MSIE6 berücksichtigen. Tun wir aber zum Glück nicht mehr.

                          Dass es Szenarien gibt, in denen bestimmte Altbrowser noch zu berücksichtigen sind, ist mMn unbestritten. Das trifft aber nicht auf jeden Fall zu und muss nicht jeder Altbrowser sein.

                          Tschö, Auge

                          --
                          Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                          Terry Pratchett, „Gevatter Tod“
                    2. Hallo,

                      Ich wollte mit meinem Posting darauf hinweisen, dass das nicht auf jedem Device möglich ist.

                      Hmm, hast du da Beispiele? Bei irgendwelchem Embedded-Kram kann ich mir das ja noch vorstellen. Dass die jemand – jenseits einer webbasierten Konfigurationsoberfläche – zum surfen benutzt, allerdings nicht.

                      Ja, @JürgenB mit seinem uralten Windows Phone und dem IE ich glaub 9 wars. Ältere Android-Geräte haben auch das Problem.

                      also „uralt“ würde ich nach knapp 5 Jahren nicht sagen :). Aber das Gerät ist technisch OK, Akku geht so, und daher werfe ich das nicht einfach weg. Leider wird mich die veraltende Software (Browser, Verschlüsselung) doch dazu zwingen.

                      Gruß Jürgen

                      1. Hallo JürgenB,

                        also „uralt“ würde ich nach knapp 5 Jahren nicht sagen :).

                        Hehe - ich schon! ;-)

                        LG,
                        CK

            2. Aloha ;)

              Ein veralteter Browser ist keine Behinderung, gegen die man nichts tun kann; man hat jederzeit die Möglichkeit, einen standardkonformeren Browser benutzen.

              Du willst, dass sich jemand für deine Seite ein neues Gerät kauft? Ziemlich vermessen. Sag das mal dem @JürgenB.

              Wie dir schon die anderen Antworter gesagt haben - es ging um die Installation anderer Software und nicht unbedingt um den Kauf eines neuen Geräts. Dass es kaum Fälle gibt, in denen das nicht funktioniert, weiß ich aus eigener Erfahrung - selbst ich mit Android 2.1 habe noch die Wahl zwischen verschiedenen Browsern.

              Wer ein altes Gerät bzw. veraltete Software betreibt wundert sich normalerweise nicht, wenn etwas nicht funktioniert. Mir gehts mit Android 2.1 inzwischen genau andersrum, ich wunder mich, wenn etwas funktioniert. In dem Fall ist es sogar so, dass der Systembrowser aus anderen Gründen eine unmögliche Wahl ist.

              Das Problem mit der Optimierung tritt doch vor allem bei den Benutzern auf, die fast ausschließlich mit dem Handy online sind; alle anderen werden im Zweifelsfall eher mit einem anderen Gerät auf die Seite zugreifen - und die, die in dieser Situation sind, sind tendenziell auch diejenigen, die aktuelle Geräte und damit freie Wahl des Browsers haben.

              Meine Aussage ist also nicht so vermessen wie sie auf den ersten Blick klingt, sie basiert nur auf Annahmen. Nicht umsonst habe ich den Unterschied zwischen der Situation mit dem Android-Systembrowser und der Situation mit dem IE6 betont.

              Und auch das ist eine Sache, die in den anderen Antworten nochmal zur Sprache kam: die Hersteller selbst zwingen, bspw. durch die Update-Politik, zum Kauf neuer Geräte. Da brauchts mich nicht dazu.

              Und ich beton auch diese meine Aussage nochmal:

              der darauf platzierte Disclaimer, der Entwickler mit sensibler Zielgruppe davor warnt, dass die Lösung keine eierlegende Wollmilchsau ist

              Und auch folgendes:

              (Das sind alle anderen gängigen Lösungen im Moment allerdings auch nicht, um das mal ganz deutlich zu sagen!)

              Wer garantiert denn, dass bei denen, deren Browser keinen Checkbox-Hack kann, die JavaScript-Lösung funktioniert? Wenn wir über Android < 4 sprechen sind die verfügbaren Browser oft unbekannte Nischendinger mit vollkommen undurchsichtig zusammengestückelten Engines. Da lege ich bei gar keiner Funktionalität die Hand fürs Funktionieren ins Feuer, ehrlich.

              Und ich halte es auch im Zweifelsfall für ehrlicher, dem User zu sagen, was er eventuell tun kann, damit die Seite funktioniert, statt es ihm stillschweigend selbst zu überlassen, herauszufinden, dass die Seite bei ihm aus unerfindlichen Gründen nicht funktioniert.

              Grüße,

              RIDER

              P.S.: Ich gebs zu, es war Absicht - hätte aber nicht gedacht, dass es so gut funktioniert. Der IE6 im Betreff zieht hier ähnlich viele Klicks auf sich wie ein zweideutiges Thumbnail bei Youtube ;)

              --
              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
          2. Moin!

            Im Gegensatz zu früher, wo der verquirkste IE6 als nicht-aktualisierbarer (bzw nur schwer aktualisierbarer) Systembrowser ein jahrelanges Problem war, sind die Lebenszyklen der Produkte heutzutage deutlich kürzer, vor allem im Smartphonebereich.

            Versteh ich nicht. Wenn da jemand sein Smartphone kauft und ein paar Jahre lang benutzen will, dann bekommt der doch häufig nicht mal ein Update des Browsers weil die Herren Hersteller indolge schnöden Gewinnstrebens nach dem Motto, "Bau es. Verkauf es! Und dann vergiss es ganz schnell!" handeln und eben nicht angemessen für Updates sorgen.

            Jörg Reinholz

            1. Hallo

              Im Gegensatz zu früher […] sind die Lebenszyklen der Produkte heutzutage deutlich kürzer, vor allem im Smartphonebereich.

              Versteh ich nicht. Wenn da jemand sein Smartphone kauft und ein paar Jahre lang benutzen will, dann bekommt der doch häufig nicht mal ein Update des Browsers weil die Herren Hersteller indolge schnöden Gewinnstrebens nach dem Motto, "Bau es. Verkauf es! Und dann vergiss es ganz schnell!" handeln und eben nicht angemessen für Updates sorgen.

              Ja, die Updatepolitik vieler Smartphonehersteller ist nicht anders als verheerend zu bezeichnen. Dennoch ist die Anzahl derer, die ihr Smartphone länger als die zwei Jahre bis zur nächsten Vertragsverlängerung benutzen, relativ gering. Das alte Gerät wird bestenfalls weitergegeben, meist landet es aber im Müll.

              Das mag sich allerdings langsam ändern. Die ersten Mobilfunkanbieter – ich glaube, zumindest von der DTAG gelesen zu haben – gehen dazu über, das neue Gerät zur Vertragsverlängerung nicht mehr automatisch anzubieten.

              Zudem gibt es noch jene, die immer den neuesten heißen Scheiß haben wollen/müssen und die Benutzer und Hersteller (namentlich Apple), die ihre Geräte langfristig mit Updates versorgen.

              Tschö, Auge

              --
              Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
              Terry Pratchett, „Gevatter Tod“
              1. Hej Auge,

                Zudem gibt es noch jene, die immer den neuesten heißen Scheiß haben wollen/müssen und die Benutzer und Hersteller (namentlich Apple), die ihre Geräte langfristig mit Updates versorgen.

                Bei uns in der Familie werden die iPhones reziprok zum Alter der Empfänger weitergereicht. Das älteste (3GS) dient als Hörbuch-Abspiel-Gerät und mit iOS 5 und mitgeliefertem Browser kann man sogar noch mal was in Wikipedia oder so nachschlagen. Das Gerät ist etwa sieben Jahre alt, iOS 5 wurde IMHO vor vier Jahren abgelöst.

                Aber selbst das würde ich jetzt nicht als Grund gegen aktuelle Webtechniken ins Feld führen. So alte Geräte sollten am besten gar nicht mehr ins Netz. Für iOS 5 ist mir jetzt zwar kein Virus bekannt, aber ein doofes Gefühl ist es dennoch mit so lange nicht gepaschter Software zu surfen - eigentlich sollte man mit modernen Features die Nutzer alter Software so sehr nerven, dass die freiwillig aktuelle Software nutzen - so langsam sind ja selbst die Billig-Handys in der Lage aktuelle Firefox auszuführen...

                Uneigentlich bin ja gerade ich ein Verfechter von Randgruppenrechten (allerdings weil ich darin einen Nutzen für Seitenbetreiber sehe, mehr Traffic und und Konversion zu erhalten, nicht weil ich ein Liebhaber alter Browser-Schätzchen wäre...)

                Marc

            2. Hi,

              Wenn da jemand sein Smartphone kauft und ein paar Jahre lang benutzen will, dann bekommt der doch häufig nicht mal ein Update des Browsers weil die Herren Hersteller indolge schnöden Gewinnstrebens nach dem Motto, "Bau es. Verkauf es! Und dann vergiss es ganz schnell!" handeln und eben nicht angemessen für Updates sorgen.

              ACK. Und das ist nicht auf Smartphones beschränkt.

              Ich habe mir vor einiger Zeit ein neues Navi gegönnt (weil das alte Gerät anfing zu zicken), und fand es gut, dass der Anbieter schon mit "kostenlosen Firmware- und Kartenupdates innerhalb der ersten zwei Jahre ab Kaufdatum" warb.

              Schade nur, dass innerhalb dieser zwei Jahre weder Firmware- noch Kartenupdates verfügbar waren.

              Ciao,
               Martin

              1. Hej Der Martin,

                Ich habe mir vor einiger Zeit ein neues Navi gegönnt (weil das alte Gerät anfing zu zicken), und fand es gut, dass der Anbieter schon mit "kostenlosen Firmware- und Kartenupdates innerhalb der ersten zwei Jahre ab Kaufdatum" warb.

                Nenn doch mal den Hersteller.

                Positiv-Beispiel: mein LG-NAvi in meinem günstigen Familienvan (Dacia Lodgy) hat mir der freundliche Renault-Partner vor zwei Wochen im Rahmen der Inspektion kostenlos mit der aktuellen Software versorgt...

                Erstaunlicherweise reagiert die Oberfläche jetzt deutlich schneller (sonst machen Updates Geräte eher langsam...)

                Marc

                1. Hi,

                  Ich habe mir vor einiger Zeit ein neues Navi gegönnt (weil das alte Gerät anfing zu zicken), und fand es gut, dass der Anbieter schon mit "kostenlosen Firmware- und Kartenupdates innerhalb der ersten zwei Jahre ab Kaufdatum" warb.

                  Nenn doch mal den Hersteller.

                  na du kannst schwierige Fragen stellen ... ah, da habe ich es. Ist'n Navigon 42-irgendwas. Gekauft Anfang 2012.

                  Positiv-Beispiel: mein LG-NAvi in meinem günstigen Familienvan (Dacia Lodgy) hat mir der freundliche Renault-Partner vor zwei Wochen im Rahmen der Inspektion kostenlos mit der aktuellen Software versorgt...

                  Das geht aber nur, wenn das Gerät als Zubehör mit dem Fahrzeug verkauft wird. Bei mir geht's ja um ein Standalone-Gerät, das ich auch mal mitnehmen oder in einem anderen Auto nutzen kann. Oder sogar bei Spaziergängen zu Fuß (aber nur bei kurzen, der Akku reicht nur etwa zwei Stunden).

                  Erstaunlicherweise reagiert die Oberfläche jetzt deutlich schneller (sonst machen Updates Geräte eher langsam...)

                  Was irgendwie logisch ist: Updates bringen oft zusätzliche Funktionen, die zusätzlich CPU-Leistung erfordern, während die Hardware dieselbe bleibt.

                  Ciao,
                   Martin

                  1. Hej Der Martin,

                    Nenn doch mal den Hersteller.

                    na du kannst schwierige Fragen stellen ... ah, da habe ich es. Ist'n Navigon 42-irgendwas. Gekauft Anfang 2012.

                    Navigon. Mag ich eh nicht ;-)

                    Ist aber eine subjektive, umbegründbare Sache, die sich vor allem auf das Styling bezieht...

                    Positiv-Beispiel: mein LG-NAvi in meinem günstigen Familienvan (Dacia Lodgy) hat mir der freundliche Renault-Partner vor zwei Wochen im Rahmen der Inspektion kostenlos mit der aktuellen Software versorgt...

                    Das geht aber nur, wenn das Gerät als Zubehör mit dem Fahrzeug verkauft wird.

                    Ja, klar. Aber gerade bei denen hätte ich eher mit Update-Problemen gerechnet.

                    Erstaunlicherweise reagiert die Oberfläche jetzt deutlich schneller (sonst machen Updates Geräte eher langsam...)

                    Was irgendwie logisch ist: Updates bringen oft zusätzliche Funktionen, die zusätzlich CPU-Leistung erfordern, während die Hardware dieselbe bleibt.

                    Logisch. Daher war ich ja auch so überrascht. Bin echt super zufrieden. Nicht nur mit dem Navi - den Nachfolger kann man auch problemlos einbauen lassen und das tolle bei dieser Marke: das kostet nicht mal unbezahlbar viel.

                    Aber das wird hier jetzt off-topic...

                    Marc

                    1. Hallo,

                      Nenn doch mal den Hersteller.

                      na du kannst schwierige Fragen stellen ... ah, da habe ich es. Ist'n Navigon 42-irgendwas. Gekauft Anfang 2012.

                      Navigon. Mag ich eh nicht ;-)

                      verlangt ja auch keiner.
                      Mir gefällt's im Großen und Ganzen recht gut, nur die Bedienung ist sehr kompliziert. Manche Funktionen sind ziemlich versteckt, die "muss man einfach wissen".

                      Die Software hat aber durchaus ein paar pfiffige Funktionen - beispielsweise blendet sie ein blau hinterlegtes P ein, wenn ich nur noch wenige 100m vom Ziel weg bin, und wenn ich das antippe, lotst mich das Gerät zunächst zu irgendeiner öffentlichen Parkmöglichkeit in der Nähe, und dann kann ich das Ding aus der Halterung ausclipsen und mich zu Fuß zum eigentlichen Ziel führen lassen.

                      Seltsam ist, dass sich der Lotse nicht immer automatisch abschaltet. Ab und zu ist es schon passiert, dass mir die Quake schließlich angesagt hat "Sie haben Ihr Ziel erreicht", dann habe ich das Gerät abgeschaltet, und als ich es am nächsten Tag wieder eingeschaltet habe, fing das Ding sofort an, mich wieder zum Ziel des Vortags zu lotsen.
                      Und was ganz schlecht ist: Sogenannte Anlieger-Straßen werden manchmal einfach mit in die Route einbezogen, obwohl die Durchfahrt eigentlich verboten ist.

                      Ist aber eine subjektive, umbegründbare Sache, die sich vor allem auf das Styling bezieht...

                      Wie gesagt, ich find's okay. Aber ich kenne auch nur wenige Vergleichsmöglichkeiten.

                      Aber das wird hier jetzt off-topic...

                      Ist das so schlimm? ;-)

                      So long,
                       Martin

                      1. Hej Der,

                        Nenn doch mal den Hersteller.

                        na du kannst schwierige Fragen stellen ... ah, da habe ich es. Ist'n Navigon 42-irgendwas. Gekauft Anfang 2012.

                        Navigon. Mag ich eh nicht ;-)

                        verlangt ja auch keiner.

                        ;-)

                        Mir gefällt's im Großen und Ganzen recht gut, nur die Bedienung ist sehr kompliziert.

                        Fand ich auch als Nichtbesitzer eines Navigon-Gerätes, dem Navigons von Freunden öfters vorgeführt wurden (hatte selber ein TomTom)

                        Die Software hat aber durchaus ein paar pfiffige Funktionen - beispielsweise blendet sie ein blau hinterlegtes P ein, wenn ich nur noch wenige 100m vom Ziel weg bin, und wenn ich das antippe, lotst mich das Gerät zunächst zu irgendeiner öffentlichen Parkmöglichkeit in der Nähe, und dann kann ich das Ding aus der Halterung ausclipsen und mich zu Fuß zum eigentlichen Ziel führen lassen.

                        Klingt durchdacht!

                        Seltsam ist, dass sich der Lotse nicht immer automatisch abschaltet [...] und als ich es am nächsten Tag wieder eingeschaltet habe, fing das Ding sofort an, mich wieder zum Ziel des Vortags zu lotsen.

                        Wobei man dann ja eh ein anderes Ziel eingeben will und insofern ist das nur eine Kleinigkeit IMHO

                        Und was ganz schlecht ist: Sogenannte Anlieger-Straßen werden manchmal einfach mit in die Route einbezogen, obwohl die Durchfahrt eigentlich verboten ist.

                        Ja, das ist nicht nett!

                        Ist aber eine subjektive, umbegründbare Sache, die sich vor allem auf das Styling bezieht...

                        Wie gesagt, ich find's okay. Aber ich kenne auch nur wenige Vergleichsmöglichkeiten.

                        Okay finde ich es auch, TomTom hat mir (damals) einfach besser gefallen. Inzwischen haben alle Geräte so viele Zusatzfunktionen, dass die Bedienung auch immer komplizierter wird. Ich liebe es einfach zu sagen: "Hej Siri, bring mich nach Hause" - die merkt schon, ob ich im Auto oder zu Fuß unterwegs bin und findet den besten Weg durch den Verkehr - oder anders gesagt: Siri weiß, was gut für mich ist ;-)

                        Aber das wird hier jetzt off-topic...

                        Ist das so schlimm? ;-)

                        Marc

                        1. Hallo,

                          Seltsam ist, dass sich der Lotse nicht immer automatisch abschaltet [...] und als ich es am nächsten Tag wieder eingeschaltet habe, fing das Ding sofort an, mich wieder zum Ziel des Vortags zu lotsen.

                          Wobei man dann ja eh ein anderes Ziel eingeben will und insofern ist das nur eine Kleinigkeit IMHO

                          ja, aber es ist schon verwirrend, wenn man das Navi einschaltet, dann zum Beispiel vom Hotelparkplatz auf die Straße rausfährt, und nach 200m oder so fordert das Wunderding einen auf: "Wenn möglich, bitte wenden" - ohne dass man ihm überhaupt gesagt hätte, wo man hin möchte.

                          Okay finde ich es auch, TomTom hat mir (damals) einfach besser gefallen.

                          TomTom kenn ich nur aus der Werbung. Nie eins in der Hand gehabt.

                          Ich liebe es einfach zu sagen: "Hej Siri, bring mich nach Hause" - die merkt schon, ob ich im Auto oder zu Fuß unterwegs bin und findet den besten Weg durch den Verkehr - oder anders gesagt: Siri weiß, was gut für mich ist ;-)

                          Hmm... wer ist Siri? Ah, Siri. Okay, kannte ich noch nicht. Aber ich stehe auch nicht so auf angebissenes Obst. ;-)

                          So long,
                           Martin

                          1. Hej Der Martin,

                            Aber ich stehe auch nicht so auf angebissenes Obst. ;-)

                            Verlangt ja auch keiner ;-)

                            Marc

                          2. @@Der Martin

                            Hmm... wer ist Siri? Ah, Siri.

                            Hab ich auch gleich mal die Suchmaschine meiner Wahl gefragt: „Wer ist Siri?“
                            „Siri? Das bin ich!“
                            „Wer bist du?“
                            „Ich bin nur ein bescheidener virtueller Assistent.“
                            „Du bist mein Diener?“
                            „Ich mag diese willkürlichen Kategorien nicht.“

                            Okay, kannte ich noch nicht. Aber ich stehe auch nicht so auf angebissenes Obst. ;-)

                            „Magst du angebissenes Obst?“
                            „Es geht hier um dich, nicht um mich.“
                            „Du bist frech, Siri!“
                            „Ich hab doch nur nur ein wenig Spaß gemacht. Du hast hier die Hosen an.“
                            „Und was hast du an?“
                            „Warum fragen mich die Leute das bloß immer wieder?“

                            LLAP 🖖

                            --
                            „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
                            „Hat auf dem Forum herumgelungert …“
                            (Wachen in Asterix 36: Der Papyrus des Cäsar)
                            1. Hej Gunnar,

                              komisch, meine hat dasselbe gesagt! ;-)

                              Marc

                              1. Hallo,

                                komisch, meine hat dasselbe gesagt! ;-)

                                Du glaubst, es gibt mehrere davon?

                                Gruß
                                Kalk

                                1. Hej Tabellenkalk,

                                  komisch, meine hat dasselbe gesagt! ;-)

                                  Du glaubst, es gibt mehrere davon?

                                  Was willst du damit andeuten? Meine geht mit Gunnar fremd? Pass bloß auf, was du sagst! ;-)

                                  Marc

            3. Hej Jörg,

              Versteh ich nicht. Wenn da jemand sein Smartphone kauft und ein paar Jahre lang benutzen will, dann bekommt der doch häufig nicht mal ein Update des Browsers weil die Herren Hersteller indolge schnöden Gewinnstrebens nach dem Motto, "Bau es. Verkauf es! Und dann vergiss es ganz schnell!" handeln und eben nicht angemessen für Updates sorgen.

              Außer Apple (wegduck)

              Marc

    3. Aloha ;)

      Im Artikel sollte unbedingt auf den hässlichen WebKit Adjacent/General Sibling & Pseudo Class Bug hingewiesen werden, von dem immer noch einige Android-Browser bis in die 4er Version hinein betroffen sind und gegen den mir keine gute Lösung bekannt ist. Die in Artikel gezeigte Lösung frisst auf einigen Geräten eine Menge CPU, also Perfromance und Batterie – nicht verwenden.

      Ich stimme dir zu, was die CPU-Auslastung angeht. Aber was wäre, wenn die CPU-Auslastung nicht dauerhaft, sondern nur für, sagen wir, anderthalb Sekunden anfallen würde? (Oder bei genauerer Betrachtung nur für eine halbe...)

      Getestet und für funktionierend befunden unter Android-Systembrowser 4.2.2:

      @-webkit-keyframes bugfix { from { padding: 0; } to { padding: 0; } }
      
      window.addEventListener("load",function(){
        if (document.body.style.WebkitAnimation != undefined) {
          var elms = document.getElementsByTagName("input");
          for (var i = 0; i < elms.length; i++) {
              if (elms[i].className.search(/\bhackbox\b/) >= 0) {
                 elms[i].addEventListener("change",function() {
                   document.body.style.WebkitAnimation = "bugfix infinite 1s";
                   window.setTimeout(function(){ document.body.style.animation = ""; },1500);
                 });
              }
           }
        }
      });
      

      Ich habe das in ein neues bzw. modifiziertes Wiki-Beispiel eingebaut, das man hier testen kann.

      Nochmal zur Erinnerung: Die Browser, in denen JavaScript deaktiviert sein kann, benötigen gar keinen Polyfill.

      Na los, tu es, zerreiß mich in Stücke ;)

      Grüße,

      RIDER

      P.S.: Wenn das Beispiel scheinbar nicht funktioniert: Das schwierige auf dem Touchscreen ist es, das label überhaupt zu treffen, nur zur Information ;)

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      1. Hallo Camping_RIDER,

        P.S.: Wenn das Beispiel scheinbar nicht funktioniert: Das schwierige auf dem Touchscreen ist es, das label überhaupt zu treffen, nur zur Information ;)

        label.mehr_lesen {
        	display: block;
        	margin-top: -4em;
        	line-height: 9;
        }
        

        Bis demnächst
        Matthias

        --
        Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
        1. Aloha ;)

          label.mehr_lesen {
          	display: block;
          	margin-top: -4em;
          	line-height: 9;
          }
          

          Danke, ich habs ein bissl entschärft (soll ja nicht die ganze Seite füllen :P)...

          label.mehr_lesen {
                  display: inline-block;
          	margin-top: -1em;
          	line-height: 3;
          }
          

          ...und in beide Versionen eingefügt.

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      2. Aloha ;)

        Mangels lautstarker Proteste und Massenkundgebungen mit Fackeln und Mistgabeln habe ich den Bugfix jetzt in den Artikel aufgenommen und werde die verlinkten Live-Beispiele entsprechend aufrüsten.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
  3. Hej Camping_RIDER,

    Ich habe, weils mir schon lang am Herzen liegt, endlich die Initiative ergriffen und einen [CSS-Anwendungs-und-Praxis-Artikel]

    Wow - coole Idee! Habe ich noch nie von gehört. Gut, dass ich mal wieder aus meinem Elfenbein-Turm rausgekommen bin und bei der Self-Community vorbeischaue. Nun bin ich ja auch so weit, selber etwas beisteuern und zurückgeben zu können, was ich auch gerne mache!

    Marc

  4. problematische Seite

    Aloha ;)

    Kurz bevor ich daran verzweifelt wäre (mein geschriebener Thread im Self-Forum war schon kurz vor dem Absenden), habe ich mMn einen weiteren Bug im Android-Browser gefunden...

    Ich habe das betreffende Beispiel als problematische Seite verlinkt, der Quelltext ist hier. Ich habe extra die Radiobuttons wieder sichtbar gemacht, damit man den Effekt nachverfolgen kann:

    Folgendes geschieht im Android-Systembrowser (unter Desktop-Browsern funktioniert afaik alles ordnungsgemäß):

    Nach dem Laden der Seite ist ganz kurz der erste Radiobutton ausgewählt (und man sieht alles was man sehen können sollte) - und danach keiner mehr (und man sieht nichts mehr außer den leeren Radiobuttons).

    Woran könnte das liegen?

    Es ist

    <input type="radio" id="tbg_blindtext_0" name="tbg_blindtext" class="hackbox" checked>
    

    Warum bleibt das Ding (ausschließlich im Android-Browser) nicht angewählt? Ich verstehs nicht.

    Und was ich noch weniger verstehe: Bei codepen funktioniert exakt dieses Beispiel einwandfrei, auch im Android-Browser.

    Irgendwie verwirrt mich die ganze Geschichte, vielleicht kann jemand Licht ins Dunkel bringen und mich vor der Verzweiflung retten ;)

    Grüße,

    RIDER

    P.S.: Der Bugfix hat nichts mit dem Verschwinden der Auswahl zu tun - ich hatte ihn zwischendurch testweise komplett entfernt und bei codepen ist er auch aktiv. Daran liegts also afaik nicht.

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
  5. Hallo Camping_RIDER

    Mir ist in einem der Beispiele deines Artikels etwas aufgefallen, was auch in anderen Artikeln und auch Antworten hier im Forum immer wieder zu lesen ist, und was mir zumindest in dem Fall, dass es sich bei dem jeweiligen Adressaten um Anfänger handelt, als schlechte Praxis erscheint.

    function () {
      if (condition) {
        var foo = bar;
        for (var i = 0; i < baz; i++) {
          // do something
        }
      }
    };
    

    In diesem von deinem Code abstrahierten Beispiel haben wir eine Funktion, darin eine bedingte Anweisung, darin eine Variablendefinition und eine Schleife, bei deren Initialisierung ebenfalls eine Variable definiert wird, was sich aus Anfängersicht in etwa so liest:

    in der Funktion
      wenn die Bedingung zutrifft
        deklariere eine Variable foo und weise ihr den Wert bar zu
        für die Schleife
          deklariere Variable i und weise den Wert 0 zu
          usw.
    

    Wie du sicher selbst weißt, ist das aber nicht das, was wirklich da steht, denn das würde sich statt dessen stark vereinfacht ausgedrückt eher so lesen:

    beim Funktionsaufruf
      deklariere eine lokale Variable mit dem Bezeichner foo und weise den Wert undefined zu
      deklariere eine lokale Variable mit dem Bezeichner i und weise den Wert undefined zu
      wenn die Bedingung zutrifft
        weise der lokalen Variable mit dem Bezeichner foo den Wert bar zu
        bei der initialisierung der Schleife
          weise der lokalen Variable mit dem Bezeichner i den Wert 0 zu
          usw.
    

    Die Deklaration von Variablen innerhalb bedingter Anweisungen oder bei der Initialisierung von Schleifen ist meiner Ansicht nach dazu geeignet, bei Anfängern den Eindruck zu erwecken, die jeweiligen Variablen würden „nur in Folge“ der bedingten Anweisung oder „nur für“ die Schleife deklariert werden, was natürlich nicht der Fall ist.

    Bezogen auf dein Codebeispiel hätte diese falsche Annahme zwar keine Auswirkungen, aber ich halte es grundsätzlich für ratsam, sofern diesbezüglich keine zusätzlichen Erklärungen mitgeliefert werden und falls ein entsprechendes Beispiel sich auch an Anfänger richtet, dem Umstand Rechnung zu tragen, dass es in JavaScript für mittels var deklarierte Variablen neben dem globalen nur den durch den Ausführungskontext von Funktionen bereitgestellten Geltungsbereich gibt, weshalb ich es besser fände, wenn in Codebeispielen die lokalen Variablen gleich zu Beginn des Funktionskörpers deklariert und Konstrukte wie in deinem Beispiel vermieden würden.

    Aber das ist natürlich nur meine Ansicht und du kannst das persönlich gerne anders handhaben. ;-)

    Viele Grüße,

    Orlok

    --
    „Das Wesentliche einer Kerze ist nicht das Wachs, das seine Spuren hinterlässt, sondern das Licht.“ Antoine de Saint-Exupéry
    1. Aloha ;)

      Mir ist in einem der Beispiele deines Artikels etwas aufgefallen, was auch in anderen Artikeln und auch Antworten hier im Forum immer wieder zu lesen ist, und was mir zumindest in dem Fall, dass es sich bei dem jeweiligen Adressaten um Anfänger handelt, als schlechte Praxis erscheint.

      Ich würde das eher nicht als schlechte Praxis einordnen, und ich erklär dir auch warum :)

      Bezogen auf dein Codebeispiel hätte diese falsche Annahme zwar keine Auswirkungen, aber ich halte es grundsätzlich für ratsam, sofern diesbezüglich keine zusätzlichen Erklärungen mitgeliefert werden und falls ein entsprechendes Beispiel sich auch an Anfänger richtet, dem Umstand Rechnung zu tragen, dass es in JavaScript für mittels var deklarierte Variablen neben dem globalen nur den durch den Ausführungskontext von Funktionen bereitgestellten Geltungsbereich gibt, weshalb ich es besser fände, wenn in Codebeispielen die lokalen Variablen gleich zu Beginn des Funktionskörpers deklariert und Konstrukte wie in deinem Beispiel vermieden würden.

      Ich verstehe den Punkt, glaube aber, dass wir eine unterschiedliche Auffassung vom Begriff Anfänger haben.

      Wenn wir vom allgemeinen Anfänger sprechen, dann kann ich von gar keinem Vorwissen ausgehen - außer den Grundlagen, die direkt für das Verständnis des Artikels notwendig sind. Da wir über einen Anwendungs- und Praxis-Artikel sprechen, kann ich (auch ohne weitere Erläuterungen) davon ausgehen, dass der Anfänger die Grundlagen von JavaScript, also insbesondere auch, wie var in JavaScript funktioniert, verstanden hat.

      Du schreibst, dass ein Missverständnis auftreten könnte bezüglich des Geltungsbereichs von Variablen. Damit sind wir schon weg vom allgemeinen Anfänger (denn der hätte entweder überhaupt keine Vorstellung von Geltungsbereichen und damit kein Problem oder aber Geltungsbereiche in JavaScript schon verstanden und ergo auch kein Problem) und befinden uns bei einem JavaScript-Anfänger, der schon Ahnung von anderen gängigen Programmiersprachen (Java,C,...) und den dortigen Regeln bezüglich Sichtbarkeit von Variablen hat und gleichzeitig offenbar die Grundlagen von JavaScript nicht gelernt oder zumindest nicht verstanden hat - denn die Deklaration von Variablen und deren resultierende Sichtbarkeit ist Grundlagenwissen.

      Und ja, ich gebe dir Recht, in dem Fall könnte es zu einem Missverständnis kommen.

      Es gibt für dieses Missverständnis allerdings mMn keine gangbare Lösung - außer den Standpunkt RTFM. Es ist nicht gangbar, zu jedem Beispiel, das außerhalb der Grundlagenkapitel steht, eine Erklärung zu allen verwendeten oder vorkommenden Grundlagen zu schreiben.

      Die Alternative, die du vorschlägst (wenn ich dich richtig verstanden habe)

      function () {
        var i, foo;
        if (condition) {
          foo = bar;
          for (i = 0; i < baz; i++) {
            // do something
          }
        }
      }
      

      wäre zwar auch möglich und würde diese Verwechslungsgefahr beheben, ist aber vom reinen JavaScript-Standpunkt aus mMn nicht begründbar.

      Ich halte es sogar für Anfänger sogar für mindestens genauso schädlich, weil dadurch das Missverständnis aufkommt, var in JavaScript sei sowas wie int in Java, nur ohne Typunterscheidung - die Anfänger, um die es hier geht, werden also nicht zum Nachdenken angeregt, sondern noch eher in ihrem Unverständnis bestätigt. Tatsächlich ist es ja nicht der Sinn von var eine Variable zu deklarieren (wenn man deklarieren wie in anderen Sprachen versteht), sondern viel eher, sicherzustellen, dass sich die Variable (die gar nicht deklariert werden muss) im aktuellen Kontext befindet. Quasi das Gegenteil eines global in PHP, nur mit Folgen für den gesamten Kontext.

      Das ist doch gerade der Vorteil: Ich muss mich in JavaScript nicht um eine Deklaration kümmern, und wenn ich an einer konkreten Stelle im Code eine "lokale" (soweit das in JavaScript möglich ist) Variable verwenden will, schreibe ich ein var, damit keine globale Variable herangezogen wird. Das kann ich im Zweifelsfall in jeder Zeile code tun - was mir nicht möglich wäre, wenn var tatsächlich eine Deklaration wäre.

      TL;DR: Dein Vorschlag würde bedeuten var wie eine Variablendeklaration zu benutzen, was var nicht ist, und damit eher Unverständnis besiegeln als Missverständnisse beseitigen.

      Insbesondere sollte JavaScript mit den einzigartigen Möglichkeiten und Konzepten von JavaScript im Hinterkopf programmiert werden - und nicht mit den Konzepten von Java/C/... im Hinterkopf ;) So hat halt jede Sprache ihre Besonderheiten - und das zu kenntlich zu machen sollte mit ein pädagogisches Ziel sein, nicht es zu verschleiern ;)

      Grüße,

      RIDER

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      1. Hallo Camping_RIDER

        Wenn wir vom allgemeinen Anfänger sprechen, dann kann ich von gar keinem Vorwissen ausgehen - außer den Grundlagen, die direkt für das Verständnis des Artikels notwendig sind. Da wir über einen Anwendungs- und Praxis-Artikel sprechen, kann ich (auch ohne weitere Erläuterungen) davon ausgehen, dass der Anfänger die Grundlagen von JavaScript, also insbesondere auch, wie var in JavaScript funktioniert, verstanden hat.

        Ich glaube es gibt da durchaus Abstufungen, was das Verständnis von var angeht. ;-)

        Du schreibst, dass ein Missverständnis auftreten könnte bezüglich des Geltungsbereichs von Variablen. Damit sind wir schon weg vom allgemeinen Anfänger (denn der hätte entweder überhaupt keine Vorstellung von Geltungsbereichen und damit kein Problem oder aber Geltungsbereiche in JavaScript schon verstanden und ergo auch kein Problem)

        Wie gesagt, ich denke, nur weil jemand eine grobe Vorstellung von lokalem und globalem Geltungsbereich hat, heißt das nicht zwangsläufig, dass er tatsächlich verstanden hat, dass es wirklich nur global object und function scope gibt, und dass der Anweisungsblock eines conditional statements zum Beispiel keinen Geltungsbereich definiert.

        Jedenfalls, du wirst lachen, erinnere ich mich noch gut, dass es bei mir selbst, als jemand der tatsächlich mit JavaScript angefangen hat zu Programmieren, durchaus eine Phase gab, in der ich zwar verstanden hatte, dass eine ohne das Schlüsselwort var deklarierte Variable global sichtbar wird, so dass man von überall auf sie zugreifen kann, ich aber dennoch zum Beispiel solchen Code geschrieben habe…

        function z (x, y) {
          for (var i = 0; i < x; i++) {
            // ...
          }
          for (var i = 0; i < y; i++) {
            // ...
          }
        }
        

        …weil ich aufgrund des Beispielcodes den man so sieht instinktiv davon ausgegangen bin, dass die Variable i in diesem Fall nur für die Schleife gilt und ich zunächst, da es ja funktioniert hat, auch gar nicht versucht hatte herauszufinden ob das überhaupt stimmt. :-D

        Und auch wenn ich jetzt kein passendes Beispiel zum Verlinken zur Hand habe, meine ich dennoch sagen zu können, dass mir bei der Ansicht von so manchem von Fragestellern hier im Forum geposteten Code aufgefallen wäre, dass ich nicht der einzige bin, der diese Erfahrung gemacht hat.

        function () {
          var i, foo;
          if (condition) {
            foo = bar;
            for (i = 0; i < baz; i++) {
              // do something
            }
          }
        }
        

        Wenn ich aber sowas gelesen hätte, wäre mir dieses Missverständnis wahrscheinlich erspart geblieben, denn auch wenn dieses konkrete Beispiel isoliert betrachtet vielleicht nicht genügt hätte um meine Aufmerksamkeit zu wecken, hätte ich mich bei wiederholter Konfrontation mit dieser Art der Notation doch sicherlich gefragt, warum diese Deklarationen ohne Wertzuweisung am Anfang der Funktion vorgenommen werden und ich wäre so vermutlich schon früher auf des Rätsels Lösung gestoßen.

        Aber du hast schon recht, dass jemand mit einem anderen Hintergrund im Gegenteil gerade dadurch auf die falsche Fährte geführt werden könnte. Allerdings betrifft dies dann wohl eher Leute, die aufgrund ihrer allgemeinen Erfahrung mit „RTFM“ wohl tatsächlich am besten bedient wären.

        […] ist aber vom reinen JavaScript-Standpunkt aus mMn nicht begründbar.

        Jein. Ich sehe was du meinst und stimme dir in diesem Punkt grundsätzlich auch zu. :-)

        Nichtsdestotrotz denke ich, dass es sehr viele Anfänger und sogar Fortgeschrittene gibt, die, wenn sie zum Beispiel mit dem folgenden Code konfrontiert würden und sagen sollten welcher Wert in die Konsole geschrieben wird, nicht die richtige Antwort geben würden!

        var foo = 10;
        
        function bar (baz) {
          console.log(foo); // ???
          if (baz) {
            var foo = 20;
          }
        }
        
        bar(true);
        

        Der Anfänger würde hier wahrscheinlich 10 sagen. Der Fortgeschrittene 20. :-D

        Um an dieser Stelle mal ein Zitat einzuwerfen: „Programs that appear to do one thing but actually do another are much harder to get right.“ [Douglas Crockford]

        Es geht hier also nicht nur um die Frage der Zugehörigkeit zu einem Geltungsbereich, sondern auch um die Art und Weise, wie Deklarationen von lokalen Variablen in JavaScript intern gehandhabt werden. Und ja, ich spreche hier trotz deiner Einwände weiterhin von Deklarationen. ;-)

        Was ich damit sagen will ist, dass die Deklaration einer Variablen innerhalb einer Kontrollstruktur einerseits dazu führen kann, dass fälschlicherweise ein Geltungsbereich angenommen wird wo keiner ist, andererseits dadurch aber auch der Umstand verschleiert wird, dass die tatsächliche Deklaration, nämlich die Zuweisung der lokalen Variablen zum activation object des function context, bei der sie per default mit undefined initialisiert wird, bereits vor der Ausführung irgendwelcher Anweisungen des Funktionkörpers der aufgerufenen Funktion erfolgt und sie – wenn es soweit ist – dementsprechend bereits Teil der scope chain ist, sie also innerhalb der Funktion bereits existiert, obwohl die entsprechende Bekanntmachung im Code erst später vorgenommen wird.

        Insofern repräsentiert eine Notation, bei der die lokalen Variablen am Anfang einer Funktion "deklariert" werden, wesentlich besser die tatsächlichen Begebenheiten, als wenn dies immer erst dort passiert, wo die Variable gerade gebraucht wird, würde ich meinen.

        Insbesondere sollte JavaScript mit den einzigartigen Möglichkeiten und Konzepten von JavaScript im Hinterkopf programmiert werden - und nicht mit den Konzepten von Java/C/... im Hinterkopf ;) So hat halt jede Sprache ihre Besonderheiten - und das zu kenntlich zu machen sollte mit ein pädagogisches Ziel sein, nicht es zu verschleiern ;)

        Tja, und das ist nun die große Frage. ;-)

        Wie ich in meiner ersten Antwort abschließend betonte, betrachte ich dies als „Ansichtssache“ und kann gut damit leben, wenn du meine Ansicht in diesem Punkt nicht teilst.

        Es ist wohl immer eine Abwägung, bei der man sich gut überlegen sollte an wen ein entsprechendes Beispiel im Einzelfall adressiert ist. Bei Anfängern, auch dann, wenn sie keine blutigen Anfänger mehr sind, würde ich zu meinem Ansatz tendieren, aber je fortgeschrittener das Publikum ist für welches die Botschaft gedacht ist, desto mehr Gewicht gewinnt hier deine Argumentation in meinen Augen. ;-)

        Viele Grüße,

        Orlok

        --
        „Das Wesentliche einer Kerze ist nicht das Wachs, das seine Spuren hinterlässt, sondern das Licht.“ Antoine de Saint-Exupéry
        1. Aloha ;)

          Da wir beide zu durchaus länglichen Antworten tendieren spare ich mir hier mal das Zitat und die obligatorische Zustimmung zu allen Punkten einzeln ;) Nicht, dass wir mal wieder die Längenbegrenzung sprengen.

          Quintessenz der Sache: Unabhängig davon, ob man in einem fortgeschrittenen Beispiel die Deklarationen/var-Definitionen an den Anfang stellt oder dynamisch, ggf. auch mehrfach, vornimmt: Die genaue Funktionsweise von var sollte im Zuge der Grundlagenartikel ganz deutlich klargestellt werden, da var trivial aussieht, es aber nicht ist. Wie dein Beispiel übrigens sehr gut verdeutlicht.

          Im Wiki ist da mMn noch ziemlicher Handlungsbedarf; das weist du aber wahrscheinlich auch. Ich würde mich dem gern annehmen, mir fehlt aber auch die Zeit, schon der eine Artikel nebenher lastet mich voll aus ;) Naja, mühsam ernährt sich das Eichhörnchen und progressive enhancement (in diesem Fall in ungewohnter Ausprägung, aber naja) hat noch nie geschadet ;)

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        2. Tach!

          Jedenfalls, du wirst lachen, erinnere ich mich noch gut, dass es bei mir selbst, als jemand der tatsächlich mit JavaScript angefangen hat zu Programmieren, durchaus eine Phase gab, in der ich zwar verstanden hatte, dass eine ohne das Schlüsselwort var deklarierte Variable global sichtbar wird, so dass man von überall auf sie zugreifen kann, ich aber dennoch zum Beispiel solchen Code geschrieben habe…

          function z (x, y) {
            for (var i = 0; i < x; i++) {
              // ...
            }
            for (var i = 0; i < y; i++) {
              // ...
            }
          }
          

          In so einem (und in so manchem anderen) Fall helfen die Assistenzsysteme einer IDE hervorragend, weil sie dich mit der Nase draufstoßen, dass da was nicht in Ordnung ist. "Variable i mehrfach deklariert" (oder so ähnlich) bekommt man da erzählt.

          function () {
            var i, foo;
            if (condition) {
              foo = bar;
              for (i = 0; i < baz; i++) {
                // do something
              }
            }
          }
          

          Und in dem Beispiel sollte dem aufmerksamen Programmierer auffallen, dass die IDE foo und bar unterschiedlich darstellt. Vorausgesetzt, es wurde global ein var bar notiert, sonst gibts deutlicheres Gemecker über die lokale Verwendung einer nicht global mit var bekanntgemachten Variable.

          Wenn ich aber sowas gelesen hätte, wäre mir dieses Missverständnis wahrscheinlich erspart geblieben, denn auch wenn dieses konkrete Beispiel isoliert betrachtet vielleicht nicht genügt hätte um meine Aufmerksamkeit zu wecken, hätte ich mich bei wiederholter Konfrontation mit dieser Art der Notation doch sicherlich gefragt, warum diese Deklarationen ohne Wertzuweisung am Anfang der Funktion vorgenommen werden und ich wäre so vermutlich schon früher auf des Rätsels Lösung gestoßen.

          Spekulatius schmecken gut, aber der Arten, etwas falsch zu verstehen, gibt es nicht nur eine. Vielleicht hättest du auch gedacht, dass der Autor einfach nur Variablen wiederverwendet und dann deinerseits beschlossen, dass du sie doch lieber nur lokal hältst, weil das ihren Einsatzbereich nicht so weit auseinanderreißt. Tja, wenn es let schon seit Anfang an gegeben hätte, wäre man eher auf die Eigenheiten von var aufmerksam geworden. Oder man hätte es als gleichwertiges Synonym fehlaufgefasst. Oder ...

          Um an dieser Stelle mal ein Zitat einzuwerfen: „Programs that appear to do one thing but actually do another are much harder to get right.“ [Douglas Crockford]

          Wer sich vom Schein blenden lässt, rennt vermutlich auch bei trüben Wetter mit Sonnenbrille rum ;) Wer nur aus dem Bauch heraus programmieren will, um seinen Kopf nicht zu sehr anzustrengen, hat es nicht besser verdient. Dumm nur, dass unter den aus den Fehlannahmen entstehenden Fehlern die Anwender der Produkte nicht selten in Mitleidenschaft gezogen werden. Manchmal braucht es erst eine Menge Skandale, damit man merkt, dass da was grundsätzlich schief läuft. Und selbst dann wachen einige erst dann auf, wenn sie selbst das Opfer ihrer eigenen Laxheit oder Ignoranz werden.

          Was ich damit sagen will ist, dass [...] führen kann, dass [...] angenommen wird [...], der Umstand verschleiert wird [...]

          Du kannst an der Stelle gern mit gutem Beispiel vorangehen, aber das gibt noch lange keine Garantie, dass der geneigte Leser dies dann auch erkennt und wie gewünscht wahrnimmt. Man kann das auch völlig unaufmerksam übergehen und seinerseits Fehler einbauen. Ich denke, da hilft nur eine generelle Aufklärung, die dann aber an anderer Stelle erfolgen muss, weil sie das eigentliche Thema sprengt. Der Mensch lernt einen nicht unerheblichen Teil aus selbst gemachten Fehlern. Das setzt sich teilweise besser in der Erinnerung fest, als etwas, das man einfach mal so zufällig gelesen hat.

          Anderes Beispiel: Du kannst so oft Nebenwirkung sagen, wo andere die falsche Übersetzung Seiteneffekt nehmen und trotzdem wirst du allein damit das eigentliche Zielpublikum nicht erreichen, weil viele für diese Feinheiten blind sind. Seiteneffekt ist ein Wort, das man sofort versteht oder aus dem Kontext ableiten kann, was der Autor damit sagen will. Das fühlt sich also nicht unbedingt verkehrt an, und insofern habe ich wenig Hoffnung, dass du allein durch die richtige Verwendung von Nebenwirkung als Nebenwirkung einen Lerneffekt erzielen wirst. Eher wird sich das Wort Seiteneffekt einbürgern und sich die Konnotation festigen, dass Nebenwirkung was negatives ist und Seiteneffekt etwas eher postives oder neutrales beschreibt.

          Zusammengefasst: Gute Beispiele sind gut, aber ergeben leider noch lange nicht den nebenher gewünschten Lerneffekt.

          dedlfix.

    2. Tach!

      Demnächst (wenn JavaScript ES6 in den Browsern angekommen sein wird) gibt es neben var auch noch let. Das wirkt dann so lokal, wie man es notiert hat und nicht mehr wie var in der gesamten Funktion.

      dedlfix.

      1. Aloha ;)

        Demnächst (wenn JavaScript ES6 in den Browsern angekommen sein wird) gibt es neben var auch noch let. Das wirkt dann so lokal, wie man es notiert hat und nicht mehr wie var in der gesamten Funktion.

        ...hat aber mit klassischer Deklaration und den Geltungsbereichen in klassischen Sprachen (C/Java/...) auch nicht so viel mehr zu tun (außer, dass es, wie du richtig sagst, einen vergleichbaren Effekt hat), da let ursprünglich aus Haskell und damit aus einem ganz anderen Programmierparadigma kommt als die klassischen Sprachen.

        Ich würde deshalb insgesamt vom Begriff Deklaration eher Abstand nehmen, vielleicht ist die Bezeichnung lokale Definition im Fall von let besser geeignet ;)

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Tach!

          [...] let. Das wirkt dann so lokal, wie man es notiert hat und nicht mehr wie var in der gesamten Funktion.

          ...hat aber mit klassischer Deklaration und den Geltungsbereichen in klassischen Sprachen (C/Java/...) auch nicht so viel mehr zu tun (außer, dass es, wie du richtig sagst, einen vergleichbaren Effekt hat), da let ursprünglich aus Haskell und damit aus einem ganz anderen Programmierparadigma kommt als die klassischen Sprachen.

          Da hst du jetzt aber etwas hineininterpretiert, was ich weder gesagt habe, noch damit sagen wollte. Ich habe nur über das let informieren wollen. Vergleiche zu anderen Sprachen ziehen zu wollen, finde ich aus praktischer Sicht nicht weiter sinnvoll, eher hinderlich. Man muss ein System und seine Eigenheiten kennen, um mit ihm gut umgehen zu können. Dass Wissen, dass ein anderes System andere Eigenheiten hat, hilft (mir) dabei nicht.

          dedlfix.

          1. Aloha ;)

            Da hst du jetzt aber etwas hineininterpretiert, was ich weder gesagt habe, noch damit sagen wollte. Ich habe nur über das let informieren wollen.

            Wenn das falsch rübergekommen ist: Ich wollte nicht widersprechen, nur ergänzen. Die Erwähnung von let war an dieser Stelle sehr sinnvoll, das sehe ich auch so. Meine Formulierung war wohl nicht ganz geglückt, tut mir leid ;)

            Vergleiche zu anderen Sprachen ziehen zu wollen, finde ich aus praktischer Sicht nicht weiter sinnvoll, eher hinderlich. Man muss ein System und seine Eigenheiten kennen, um mit ihm gut umgehen zu können. Dass Wissen, dass ein anderes System andere Eigenheiten hat, hilft (mir) dabei nicht.

            FACK.

            Grüße,

            RIDER

            --
            Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[