Gunther: HTML5 und IE 8

Hallo werte Selfgemeinde!

Ich hätte gerne mal wieder eure Meinungen & Ansichten gehört/ gelesen.
Und zwar geht es um die Frage, welche "Strategie" man am besten verwendet?

Angenommen man hat eine Firmen-Website, die möglichst in allen "gängigen" Browsern ordentlich dargestellt werden soll. Dann ist heutzutage ja eigentlich nur noch der IE 8 das "Sorgenkind". Denn nehmen wir weiter an, die Seite verwendet HTML5.

Nun kennt der IE 8 die neuen HTML5 Elemente ja nicht und "stylt" diese deswegen auch nicht.
AFAIK gibt es 3 Varianten, dieses Problem zu lösen:

1. Ein Shim wie bspw. html5shiv verwenden
2. Conditional Comments verwenden

  
<!--[if gte IE 9]><!--><nav id="menu" role="navigation"><!--<![endif]-->  
<!--[if lt IE 9]><div id="menu" role="navigation"><![endif]-->  
	...  
<!--[if gte IE 9]><!--></nav><!--<![endif]-->  
<!--[if lt IE 9]></div><![endif]-->  

3. Kein HTML5 verwenden

Gut, Variante 3 ist eigentlich keine Option ...! ;-)

Kennt ihr noch eine andere Variante?

Der "Knackpunkt" ist ja eigentlich nur die Frage, ob man zumindest für die IE 8 User "zwangsweise" auf Javascript setzt, oder nicht?

Mir widerstrebt es ansich, die Darstellung einer Website von JS abhängig zu machen.

Wie seht ihr die Sache, bzw. wie geht ihr für eure Seiten vor?

Gruß Gunther

  1. Hallo Gunther,

    ich verwende 1.. Der IE8 ohne JS sieht dann ja immer noch die Inhalte, nur das Design geht verloren. Ansonsten bleibe ich bei meiner Meinung zur Zukunft von XP und IE8.

    Allerdings betreibe ich auch nur eine kleine private Seite und kann es mir erlauben, alte Browser bei neuen Features zu ignorieren.

    Gruß, Jürgen

    1. Hallo Jürgen!

      ich verwende 1.. Der IE8 ohne JS sieht dann ja immer noch die Inhalte, nur das Design geht verloren. Ansonsten bleibe ich bei meiner Meinung zur Zukunft von XP und IE8.

      Allerdings betreibe ich auch nur eine kleine private Seite und kann es mir erlauben, alte Browser bei neuen Features zu ignorieren.

      Ja, sehe ich prinzipiell genauso.
      Kommt halt immer auch auf die "potentielle Zielgruppe/ zu erwartende Besuchergruppe" an. Aber irgendwo muss man auch mal einen Schlussstrich unter "alte Klamotten" ziehen.

      Auch dir besten Dank fürs "Outen" - ist ja in diesem Forum manchmal "gefährlich" ...! ;-)

      Gruß Gunther

  2. Hallo!

    Setze JavaScript voraus oder verwende kein HTML5. Variante 2 ist keine ernsthafte Option, solch kaputtes und unwartbares Markup sollte man nicht schreiben.

    Grüße,
    Mathias

    1. Hallo Mathias!

      Setze JavaScript voraus oder verwende kein HTML5. Variante 2 ist keine ernsthafte Option, solch kaputtes und unwartbares Markup sollte man nicht schreiben.

      Du weißt ja, dass ich deine Meinung sehr schätze.
      Aber jetzt mal ernsthaft die Frage, warum Variante 2 "kaputtes und unwartbares Markup" darstellt?

      Kaputt - das Markup ist weder invalid, noch tut es irgendeinem Browser "weh"
      Unwartbar - das lässt sich quasi zu 100% automatisiert generieren und genauso automatisiert später mal wieder entfernen, wenn man den Support für IE 8 einstellt

      "Setze JavaScript voraus" ist aber wahrscheinlich gepaart mit einem dezenten Hinweis, falls JS deaktiviert ist, die bessere Option.

      Besten Dank für deine Meinung.

      Gruß Gunther

      1. Kaputt - das Markup ist weder invalid, noch tut es irgendeinem Browser "weh"

        Es tut der Entwicklung weh.

        Unwartbar - das lässt sich quasi zu 100% automatisiert generieren

        Angenommen man kann die verwendete Template-Engine so erweitern, dass man mit einer Helferfunktion diesen Code generiert. Wenn man das transparent hinbekommt und z.B. sämtliche Attribute verdoppelt werden, nervt es die Entwickler nicht sehr.

        Trotzdem müssen sie darauf achten, diese Art der Einbindung zu verwenden. Sie müssen verstehen, was der generierte Code macht. Sie müssen verstehen, dass je nach Browser einmal z.B. ein section- und einmal ein div-Element erzeugt wird. Typselektoren dürfen also nicht im CSS oder JS verwendet werden.

        Selbst wenn man das halbwegs schön löst, so wird trotzdem ein Haufen Müllcode erzeugt, der die Übersicht im Code verschlechtert und zum Client übertragen werden muss. Mit Conditional Comments bekommen Kommentare, die in allen anderen Fällen unwichtig sind und entfernt werden könnten, plötzlich eine enorm wichtige Bedeutung im DOM.

        Wenn man Conditional Comments verwendet, hat man auf JavaScript-Ebene wieder die Qual der Wahl: Erzeugt man per JavaScript nun z.B. section- oder div-Elemente? Im ersteren Fall braucht man ohnehin den html5shiv/innerShiv.

        Grüße,
        Mathias

        1. Hi Mathias!

          Besten Dank für die Argumente - die überzeugen absolut!
          Und nur damit kein falscher Eindruck entsteht: Ich bin kein Verfechter dieser Variante, denn sie hat unbestritten sehr viele Nachteile. Ist aber imho mehr oder weniger die einzige Option, wenn man nicht zwingend auf JS setzen will.

          Fazit:
          HTML5 für IE 8 mit Shim!

          Gruß Gunther

  3. Angenommen man hat eine Firmen-Website, die möglichst in allen "gängigen" Browsern ordentlich dargestellt werden soll. Dann ist heutzutage ja eigentlich nur noch der IE 8 das "Sorgenkind". Denn nehmen wir weiter an, die Seite verwendet HTML5.

    1. Conditional Comments verwenden

    <!--[if gte IE 9]><!--><nav id="menu" role="navigation"><!--<![endif]-->
    <!--[if lt IE 9]><div id="menu" role="navigation"><![endif]-->
    ...
    <!--[if gte IE 9]><!--></nav><!--<![endif]-->
    <!--[if lt IE 9]></div><![endif]-->

      
    Das halte ich für Bockmist, schon alleine, weil es beim Anblick des Codes Depressionen auslöst. Du kannst nicht ernsthaft die Hälfte des Codes in bedingte Kommentare setzen wollen, das ist irre.  
      
    Aber mal abgesehen von diesem Gefühlsaspekt stellt sich die Frage, warum überhaupt HTML5 eingesetzt werden muss, wenn's dann offensichtlich auch mit "normalem" HTML geht und gleichzeitig absehbar ist, dass ein nennenswerter Teil der Besucher mit dem neumodischen Schnickschnack Probleme bekommt. Man kann den Gaul auch zum Wasser prügeln, bis der tot ist ..  
      
    
    > 1. Ein Shim wie bspw. [html5shiv](http://code.google.com/p/html5shiv/) verwenden  
      
    
    > Der "Knackpunkt" ist ja eigentlich nur die Frage, ob man zumindest für die IE-8-User "zwangsweise" auf Javascript setzt, oder nicht?  
    >   
    > Mir widerstrebt es ansich, die Darstellung einer Website von JS abhängig zu machen.  
      
    Grundsätzlich richtig, aber in der Praxis kannst du alleine schon die Besucher ohne Javascript an einer Hand abzählen. Und unter diesen wenigen dürften die IE-Benutzer nur noch einen homöopathischen Anteil haben, denn der einzige vernünftige Grund, Javascript komplett abzuschalten, sind Sicherheitsbedenken, und die Sicherheitsfanatiker sind doch eher mit Firefox, Opera oder einem Exoten unterwegs. Zudem wird keiner, der noch ganz bei Verstand ist, unter normalen Umständen der Sicherheit halber Javascript abschalten \_und\_ mit einem veralteten Browser unterwegs sein.  
      
    Wer also bei dir mit dem IE 8 und abgeschaltetem Javascript vorbeischaut, der hat entweder einen trifftigen Grund und kann Fehldarstellung verschmerzen, weil er das Problem bei sich sieht, nicht bei dir - oder er ist einfach zu blöd.  
    
    
    1. Hallo Erich!

      Das halte ich für Bockmist, schon alleine, weil es beim Anblick des Codes Depressionen auslöst. Du kannst nicht ernsthaft die Hälfte des Codes in bedingte Kommentare setzen wollen, das ist irre.

      Aber mal abgesehen von diesem Gefühlsaspekt stellt sich die Frage, warum überhaupt HTML5 eingesetzt werden muss, wenn's dann offensichtlich auch mit "normalem" HTML geht und gleichzeitig absehbar ist, dass ein nennenswerter Teil der Besucher mit dem neumodischen Schnickschnack Probleme bekommt. Man kann den Gaul auch zum Wasser prügeln, bis der tot ist ..

      Natürlich kannst du heutzutage im Prinzip auch noch dieselben Ergebnisse mit HTML 4 erreichen (abgesehen von ein paar Features, die HTML5 spezifisch sind). Es gibt aber durchaus einige Gründe, heutzutage durchaus eher HTML5 zu verwenden.

      Und die Variante mag vom Quellcode her "unansehnlich" sein, aber du kennst das Totschlag-Argument ...?

      Außerdem bekommen alle Browser außer dem IE <= 8 nur das reine HTML5 zu sehen. Lediglich die jeweiligen IEs kriegen stattdessen die alten HTML Elemente serviert (und sehen die neuen HTML5 Elemente gar nicht).

      1. Ein Shim wie bspw. html5shiv verwenden

      Der "Knackpunkt" ist ja eigentlich nur die Frage, ob man zumindest für die IE-8-User "zwangsweise" auf Javascript setzt, oder nicht?

      Mir widerstrebt es ansich, die Darstellung einer Website von JS abhängig zu machen.

      Wer also bei dir mit dem IE 8 und abgeschaltetem Javascript vorbeischaut, der hat entweder einen trifftigen Grund und kann Fehldarstellung verschmerzen, weil er das Problem bei sich sieht, nicht bei dir - oder er ist einfach zu blöd.

      Prinzipiell stimme ich dir da zu. Nur blöd, wenn du genau Letztere als Kunden gewinnen willst. ;-)

      Gruß Gunther

      1. Das halte ich für Bockmist, schon alleine, weil es beim Anblick des Codes Depressionen auslöst. Du kannst nicht ernsthaft die Hälfte des Codes in bedingte Kommentare setzen wollen, das ist irre.

        Und die Variante mag vom Quellcode her "unansehnlich" sein, aber du kennst das Totschlag-Argument ...?

        Sicher, deshalb hatte ich das ja auch unter Gefühl eingeordnet. Letztlich interessiert es keine Sau, ob ich abends im Bettchen liege und kein Auge zukriege ob der Grausamkeiten, die ich auf anderer Leute Wunsch in HTML gegossen habe ;]

        Wer also bei dir mit dem IE 8 und abgeschaltetem Javascript vorbeischaut, der hat entweder einen trifftigen Grund und kann Fehldarstellung verschmerzen, weil er das Problem bei sich sieht, nicht bei dir - oder er ist einfach zu blöd.

        Prinzipiell stimme ich dir da zu. Nur blöd, wenn du genau Letztere als Kunden gewinnen willst. ;-)

        Du hast einen Kunden mit IE8 und abgeschaltetem Javascript? Mein Beileid. Das ist aber eine Einzelfallentscheidung, du musst dir überlegen, ob dein Gewissen und dein Portemonnaie es zulassen, dem Kunden diese oder jene Lösung anzudrehen und damit Gefahr zu laufen, ihn zu vergraulen.

        Lohnen die Vorteile von HTML 5 die Nachteile, namentlich undurchsichtiger, schwer zu wartender Kommentar-Code oder zuzugeben müssen, dass vielleicht 0,01% Besucher in die Röhre schauen könnten?

        Insbesondere wäre die Frage, ob es den Ärger mit dem Kunden lohnt, HTML 5 statt Althergebrachtem einzusetzen. Wenn der schon mit seinem kaputtgespielten IE 8 mault, dann wird es womöglich nicht bei diesem einen Problem bleiben und man steht in zwei, drei Jahren besser da (lies: mit weniger Beschwerden, mithin Arbeit), wenn man bewährte und einfach zu wartende Techniken einsetzt, anstatt wegen kleiner Bequemlichkeiten das Allerneueste zu nehmen.

    2. Aber mal abgesehen von diesem Gefühlsaspekt stellt sich die Frage, warum überhaupt HTML5 eingesetzt werden muss, wenn's dann offensichtlich auch mit "normalem" HTML geht

      "Gehen" wirds meistens noch mit alten Methoden. Aber mir kommen auch regelmäßig die Tränen wenn ich sehe was (ich darf Felix Formulierung verwenden die mir gefällt :-) Browser alles schon lange können, während der IE einen immer noch zum bremsen zwingt.
      Meine Lösung: moderne Seiten und einen Hinweis wenn man mit einem alten Browser daher kommt.

      Zudem wird keiner, der noch ganz bei Verstand ist...

      Ja. Nur, was PC Dinge angeht gibts nicht so viele die wirklich bei Verstand sind...

      weil er das Problem bei sich sieht

      Darauf würde ich nicht hoffen. Gerade die die keine Ahnung haben sind die ersten und lautesten, wenns ums maulen geht, weils sch... aussieht.

    3. Hallo,

      Wer also bei dir mit dem IE 8 und abgeschaltetem Javascript vorbeischaut, der hat entweder einen trifftigen Grund und kann Fehldarstellung verschmerzen, weil er das Problem bei sich sieht, nicht bei dir

      so kann man es sagen. Zwar benutze ich keinen IE (außer wenn's nicht anders geht).
      Aber ich bin gern bereit, Darstellungsfehler oder ästhetische Unzulänglichkeiten hinzunehmen, anstatt Javascript zu aktivieren und dann irgendwelche "gutgemeinten", aber unerwünschten Nebeneffekte zu bekommen.

      Anders ist es bei Webangeboten, wo ohne JS die Funktion (Zugänglichkeit oder Nutzbarkeit) eingeschränkt ist. Wenn mir das Angebot an sich wichtig genug ist, lasse ich JS für diese Site mal zu - meist läuft es aber eher darauf hinaus, dass ich mir die gewünschte Information dann woanders hole.

      • oder er ist einfach zu blöd.

      Dann müsste man sich aber fragen: Wie hat derjenige es in seiner Blödheit geschafft, Javascript im IE zu deaktivieren? Das ist ja nicht so trivial, sondern die Einstellung ist relativ gut "vergraben". Also entweder kennt man sich mit dem IE schon sehr gut aus, oder man muss lange suchen.

      Ciao,
       Martin

      --
      "Drogen machen gleichgültig."
       - "Na und? Mir doch egal."
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Wer also bei dir mit dem IE 8 und abgeschaltetem Javascript vorbeischaut, der hat entweder einen trifftigen Grund und kann Fehldarstellung verschmerzen, weil er das Problem bei sich sieht, nicht bei dir

        • oder er ist einfach zu blöd.

        Dann müsste man sich aber fragen: Wie hat derjenige es in seiner Blödheit geschafft, Javascript im IE zu deaktivieren? Das ist ja nicht so trivial

        Mit der Blödheit meinte ich weniger das Wissen, welcher Schalter umgelegt werden muss, als das Einordnen der Folgen seines Handelns. Zum Vergleich: Jedes Kindergartenkind mit genug Knöf in den Fingern kann eine Schuko-Steckdose einwandfrei austauschen. Aber sollte es das auch tun?

        Nun ist es bei Kindergartenkindern im Allgemeinen und bei Messer-Gabel-Schere-Licht insbesondere selbstverständlich, dass man sich kümmert und ihnen die Folgen auseinanderklamüstert.
        Mit irgendeinem Wildfremden, einem (Fast- oder Ganz-) Erwachsenen, einem Einzelnen unter Hunderttausenden, der nun an seinem Rechner gefummelt und ihn dabei obendrein letztlich auch noch sicherer gemacht hat, würde ich mich hingegen nicht weiter rumärgern. Ich würde ihn bei Gelegenheit darauf hinweisen, ich lasse ja niemanden in Blödheit sterben, aber ganz grundsätzlich muss _er_ mit den Folgen seines Handelns leben, es ist _sein_ Problem. Ich werde es nicht zu dem meinigen machen.

      2. Om nah hoo pez nyeetz, Der Martin!

        Dann müsste man sich aber fragen: Wie hat derjenige es in seiner Blödheit geschafft, Javascript im IE zu deaktivieren? Das ist ja nicht so trivial, sondern die Einstellung ist relativ gut "vergraben". Also entweder kennt man sich mit dem IE schon sehr gut aus, oder man muss lange suchen.

        Oder man schaut ins Wiki ;-)

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Integral und Integralhelm.

      3. Hallo,

        • oder er ist einfach zu blöd.

        Dann müsste man sich aber fragen: Wie hat derjenige es in seiner Blödheit geschafft, Javascript im IE zu deaktivieren? Das ist ja nicht so trivial, sondern die Einstellung ist relativ gut "vergraben". Also entweder kennt man sich mit dem IE schon sehr gut aus, oder man muss lange suchen.

        Nein, meistens ist es in "kleinen Klitschen" so, dass der Chef/ Inhaber einen kennt, der "Ahnung von der Materie" hat, und die Kisten in der Firma administriert/ betreut. Und solche (vermeintlichen) Administratoren deaktivieren dann das JS und keiner von den Anwendern kann/ darf das wieder aktivieren, bzw. weiß wie!

        Oft genug schon erlebt ...!
        Das ist eben wie im richtigen Leben ... ;-)

        Gruß Gunther

  4. Lieber Gunther,

    Angenommen man hat eine Firmen-Website, die möglichst in allen "gängigen" Browsern ordentlich dargestellt werden soll. Dann ist heutzutage ja eigentlich nur noch der IE 8 das "Sorgenkind". Denn nehmen wir weiter an, die Seite verwendet HTML5.

    an unserer Schule gibt es noch immer Windows XP im Einsatz... und auf manchen dieser Rechner tatsächlich "schon" den IE8. Es scheint aber bei vielen der Firefox beliebter als der IE zu sein.

    Daher finde ich eine ideale Lösung, wenn ein IE eine IE-Version ausgeliefert bekommt, während ein Browser ein HTML-Dokument erhält. Diese Trennung muss aber idealerweise serverseitig vorgenommen werden. Alles mit Conditional Comments in einem "Dokument" unterzubringen ist aus meiner Sicht nicht sinnvoll.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Lieber Felix!

      Daher finde ich eine ideale Lösung, wenn ein IE eine IE-Version ausgeliefert bekommt, während ein Browser ein HTML-Dokument erhält. Diese Trennung muss aber idealerweise serverseitig vorgenommen werden.

      Diese Variante hat aber mindestens genauso viele Nachteile ..., wenn nicht noch mehr!

      Der gravierendste ist der bezüglich Proxys und Caching sobald du serverseitig anfängst verschiedene Versionen einer Seite auszuliefern.

      Hinzukommt, dass gegenüber der anderen Variante hierbei der Erstellungs- und Pflegeaufwand deutlich höher ist.

      Daher ja die CC-Variante, um verschiedene Versionen einer Seite zu vermeiden. Allerdings haben wir ja in diesem Thread bereits festgestellt, dass diese auch mit so vielen Nachteilen behaftet ist, dass es wohl vermutlich die einzig sinnvolle Variante ist, für diese Browser zwingend auf Javascript zu setzen. Und für die Verwender dieser Browser wiederum, besser auf einen aktuelleren Browser umzusteigen.

      BTW: Was mich mal interessieren würde ist, ob ihr denn dann an eurer Schule den FF auch immer updated, oder werden da dann auch noch ältere Versionen verwendet?

      Gruß Gunther

      1. Lieber Gunther,

        BTW: Was mich mal interessieren würde ist, ob ihr denn dann an eurer Schule den FF auch immer updated, oder werden da dann auch noch ältere Versionen verwendet?

        was wäre die Deiner Meinung nach (fast) übelste Variante? Diese wird es auch sein. Ich habe FF3.5 gesehen, danach hat es mich einfach nicht mehr interessiert...

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  5. @@Gunther:

    nuqneH

    1. Ein Shim wie bspw. html5shiv verwenden
    2. Conditional Comments verwenden
    3. Kein HTML5 verwenden

    Gut, Variante 3 ist eigentlich keine Option ...! ;-)

    Ist es nicht?

    Da kann man ja unterteilen:
    3a. Gar kein HTML5 verwenden.
    3b. Keine HTML5-Elemente verwenden, aber HTML5-Attribute.

    3a ist wirklich keine Option.

    3b? ARIA-Attribute hast du ja auch in deinen conditional comments verwendet. Denkbar sind dann auch die neuen input-Varianten mit clientseitiger Validierung.

    Da kommt natürlich kein valider HTML-4- bzw. XHTML-1-Code bei raus. Macht aber nichts.

    Dass 2 keine Option ist, hat molily ja schon dargelegt.

    Wie seht ihr die Sache, bzw. wie geht ihr für eure Seiten vor?

    1.

    Wie hoch ist denn bei dir der Anteil der Nutzer, die mit alten IEs *und* ausgeschaltetem JavaScript unterwegs sind?

    Kann aber dennoch nicht schaden so zu entwickeln, dass eine Website auch auf alten IEs ohne JavaScript funktioniert. Verhunzte Darstellung durch HTML5-Elemente egal.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)