Browserweiche

Browserweichen sind mittlerweile unnötig gewordene Techniken um Unterschiede in der Darstellung von Webseiten in verschiedenen Webbrowsern zu umgehen, indem für unterschiedliche Browser unterschiedlicher Code angeboten wird.

Bei der Gestaltung von Webseiten ergaben sich dadurch Probleme, dass nicht alle Webbrowser gleichermaßen die standardisierten Webtechnologien HTML, CSS und JavaScript unterstützten. Insbesondere ältere Browser unterstützten diese nur unzureichend und interpretieren manches anders, als vorgesehen. Beispielsweise verwendet der Internet-Explorer vor Version 8 im Quirks-Modus ein vom Standard abweichendes Box-Modell. Das hat zur Folge, dass u.U. Webseiten im einen Browser richtig dargestellt werden und in anderen falsch. Um dennoch eine einheitliche Darstellung bzw. Funktionalität zu erreichen, werden von den Autoren der Webseiten teilweise Browserweichen (engl. browser sniffing, dt. Browser (er-)schnüffeln) benutzt, um die unterschiedlichen Browser unterschiedlichen Code interpretieren zu lassen.

Da jedoch alle aktuellen Browser die von der W3C empfohlenen finalen Web-Standards beherrschen, sind die Hauptursachen für Darstellungsprobleme, auf Syntaxfehler-behafteter Code in Webseiten zurückzuführen.

Um Webseiten auf korrekten Code hin zu untersuchen, bietet unter anderem die W3C kostenlose Testmöglichenkeiten an: http://validator.w3.org/

Techniken

Browserweichen können serverseitig (für gewöhnlich durch Auslesen des User-Agent-Headers des Browsers) mittels SSI[1], PHP[2] oder Perl[3] und clientseitig mittels CSS[4], JavaScript[5] (z. B. durch Testen auf das Vorhandensein bestimmter Objekte) oder (bei Weichen speziell für den Internet Explorer) Conditional Comments[6] realisiert werden.

Aufgrund der Vielzahl an Browsern ist es nicht möglich, für jeden Browser und jede Version eine eigene Version einer Webseite anzubieten, daher können Browserweichen auch ganze Familien von Browsern (Browser mit Gecko-Engine, Internet Explorer mit Version >= 5, etc.) unterscheiden[7].

Eine weitere Methode sind sogenannte CSS-Hacks[8], bei denen die fehlerhafte CSS-Interpretation von älteren Versionen der Browser gezielt genutzt wird, um diese zu speziellem Verhalten zu bringen. Von dieser Technik wird aber abgeraten, da sie zu Problemen mit neueren Versionen der Browser führen kann.

Probleme

Die Browsererkennung ist im Allgemeinen nicht zuverlässig, da die meisten Browser erlauben, einen benutzerdefinierten User-Agent-Header zu übertragen und JavaScript zu deaktivieren.

Da Suchmaschinen für gewöhnlich einen eigenen User-Agent-Header benutzen, können Browserweichen auch dazu benutzt werden, in Suchmaschinen falsche Informationen über den Inhalt einer Webseite einzutragen (Search Engine Spoofing, Cloaking), z. B. um für mehr Werbeeinnahmen durch Bannerwerbung die Zugriffszahl zu erhöhen.

Browserweichen

Conditional Comments

Einzelnachweise

  1. Browserweichen mit SSI
  2. Browserweichen mit PHP
  3. Browserweichen mit Perl
  4. Browserweichen mit CSS
  5. Browserweichen mit JavaScript
  6. Browserweichen mit Conditional Comments
  7. Unterscheidung von Browserfamilien
  8. SELFHTML – CSS Hacks