Nase
2004-08-06, 11:46:09
Frames – lieber links liegen lassen?
Allgemeines zu Framesets
Mit Framesets hat man die Möglichkeit, das Browserfenster bzw. den Anzeigebereich des Fensters frei in beliebig viele Bereiche zu unterteilen. In jedem dieser Bereiche kann eine HTML-Seite eingebettet werden.
Unterstützung fanden Frames ab Netscape 2.0 und Internet Explorer 3.0. Seit 1997 ist die Frame-Technik mit HTML 4.0 auch offiziell vom World Wide Web Consortium (W3C) in den HTML-Standard aufgenommen. Dafür wurde extra ein HTML 4.0 Frameset-Dokumententyp (Doctype) entwickelt.
Probleme, die durch Frames hervorgerufen werden (können)[list=1] Nicht jeder Browser unterstützt Frames. Wie anfangs schon erwähnt ermöglichen erst Netscape 2.0 und der Internet Explorer in der Version 3.0 die Anzeige von Frames. Jedoch können Handys oder PDAs damit überhaupt nichts anfangen. Der Grund dafür ist recht simpel – es ist schlichtweg kein Platz für Frames. Reine Textbrowser brauche ich erst gar nicht zu erwähnen.
Ein Internetauftritt müsste zweigleisig ermöglicht werden. Einmal mit Frames und einmal ohne. Der Aufwand wäre immens, da ein Frameset eine andere Struktur an den Tag legt als ein frameloses Projekt. Viele Anbieter scheinen dies aber einfach zu „vergessen“ und man findet Sätze wie „Ihr Browser unterstützt keine Frames“ vor, womit wir schon bei Punkt 3 wären.
„Ihr Browser unterstützt keine Frames“. Dieser Satz eingegeben in z.B. Google liefert alleine schon ungefähr 291.000 Ergebnisse. Das heisst, dass mindestens 291.000 Seiten so gut wie unbrauchbar sind. Eine andere Suchabfrage wird mit Sicherheit noch ein Vielfaches mehr an den Tag bringen. Gerade für Unternehmen sehr sinnvoll, wenn die Kunden nicht auf die Internetseite kommen.
Frames skalieren sehr schlecht. Das bedeutet, dass bei einer kleinen Bildschirmauflösung das Navigieren in einem Frameset zu einer nahezu unüberwindbaren Hürde wird. Besonders dann, wenn die Frames mit prozentualer Breite angegeben wurden, passiert es schnell, dass auf einmal die Navigation verschwindet oder das Lesen des Inhaltes zu einer regelrechten Qual wird.
Thema Bookmarks. Wer schon mal versucht hat, ein Lesezeichen auf eine Seite zu setzen, die Frames verwendet, weiß wovon ich spreche. Entweder setzt man das Lesezeichen auf die Frameset-Seite, dann gelangt man allerdings bei einem erneuten Besuch immer wieder auf die Startseite. Die zweite Möglichkeit ist, das Lesezeichen direkt auf eine Seite innerhalb des Framesets zu setzen. Problem dabei ist aber, dass dann beim Aufruf des Lesezeichens die anderen Frames nicht angezeigt werden und man womöglich ohne Navigation auskommen muss. Es gibt zwar Workarounds, die mit Hilfe von Javascript das Frameset und somit die fehlenden Teile laden. Doch immer mehr Internetnutzer deaktivieren die Verwendung von Javascript bzw. haben es nicht einmal installiert.
Wie druckt man einen Frame? Richtig, man muss dem Browser genauestens sagen, welcher Frame gerade aktiv ist und somit ausgedruckt werden soll. Doch wie viele Nutzer kennen sich damit wirklich aus?
Der Titel der Internetseite wird im Frameset festgelegt. Somit ist er auf allen Unterseiten gleich. Die Titel der Unterseiten werden nicht berücksichtigt.
Das gleiche gilt für Verweise. In der Adressleiste des Browser wird immer nur die Eingangsadresse angezeigt. Somit wird dem Nutzer vorgegaukelt, er befinde sich noch immer auf der Eingangsseite. Punkt 7 und 8 tragen beide zur Verwirrung des Nutzers bei.
Der Aspekt der Sicherheit ist auch ganz entscheidend. So können Inhalte aus den Weiten des Internets in die eigene Seite eingebunden werden und nicht zu unterschätzende Risiken mit sich bringen. Frames können von Angreifern manipuliert werden, trotzdem aber den Eindruck wecken, man befände sich auf einer vertrauenswürdigen Seite (Phishing). Eingegebene Benutzerdaten und/oder Passwörter können dann von dem Angreifer ausgelesen und verwendet werden.
Ein Frameset hat keinen Inhalt! Ein Frameset bietet nur die Information, welche Unterseite in welchem Frame angezeigt werden und wie groß ein Frame sein soll. Zudem kann noch der Titel der Seite ausgelesen werden. Der <noframes>-Teil in einem Frameset wird von einem Browser, der Frames unterstützt, nicht berücksichtigt.
Die Suchmaschinen haben auch ihre Probleme mit den Frames. So wird unter Umständen nur ein Frame gefunden und die anderen bleiben außer Acht. Ergebnis sieht dann in etwa so aus wie bei Punkt 5. Wie in 10. bereits erwähnt, ist ein Frameset leer, hat also keinen Inhalt. Demnach kann eine Suchmaschine, die nach Inhalten sucht, nur die Informationen auslesen und verwenden, die ein Frameset bietet. Diese sind lediglich der Titel und der <noframes>-Bereich. Doch da im <noframes>-Bereich so gut wie immer nur Müll steht (siehe Punkt 3) bleibt nur noch der Titel für eine Einordnung der Seite übrig. Ob das genügt, um eine zutreffende Aussage über diese Seite zu treffen, kann sich wohl jeder selbst beantworten.
[/list=1]
Einwände und Proteste
In zahlreichen Diskussionen mit Verfechtern von Frames über das Für und Wider derselben kamen immer wieder folgende Einwände zu den aufgeführten Problemen und Hindernissen von Frames zur Sprache.
„Die Anzahl der Browser, die keine Frames unterstützen, ist so gering, dass es kaum einen Nachteil darstellt, diese zu vernachlässigen.“
Es ist sicherlich richtig, dass nur wenige solcher Browser im Einsatz sind gemessen an Browsern, die Frames unterstützen. Doch befürwortet dies, dass man diese Benutzergruppe vernachlässigen kann? Vor allem die Arroganz einiger Webautoren ist doch bemerkenswert. So wird man des Öfteren dazu aufgefordert, sich den Internet Explorer in der neusten Version herunter zuladen. Andernfalls wird einem der Zutritt zur Internetseite verwehrt bzw. man bekommt ein vollkommen fehlerhaftes Layout zu Gesicht. Das muss nicht sein! Vor allem heutzutage nicht, wo es andere Möglichkeiten gibt, diese Probleme zu umgehen (CSS).
„Wer hat heute schon noch eine Bildschirmauflösung kleiner als 1024x768?“
Ein berechtigter Einwand, da der Trend zu immer höheren Auflösungen geht. Aber will ich jetzt dem Nutzer vorschreiben, dass er mindestens 1024x768 Punkte verwenden soll? Es sollte doch wohl jedem selbst überlassen sein, wie er seinen Monitor einstellt. Wenn man nur 640x480 Bildpunkte haben will, dann soll das möglich sein. Die wunderbare Skalierbarkeit von HTML macht diesem Vorhaben keinen Strich durch die Rechnung. Framesets allerdings schon. Auch wenn die Frames prozentual angegeben werden, stoßen sie schnell an ihre Grenzen in punkto Übersicht und Bedienbarkeit.
„Framesets sind einfacher zu gestalten als dieser ganze CSS-Kram.“
Zustimmung. Ein Frameset kommt mit weniger Befehlen aus und man erhält das gewünschte Ergebnis. Dennoch muss man mit den ganzen oben genannten Problemen rechnen. CSS kennt diese nicht und kann darüber hinaus noch viel mehr, als nur Inhalt an der richtigen Stelle zu platzieren.
„Man spart sich einiges an Wartungsarbeit, da z.B. die Navigation nur einmal verändert werden muss.“
Das stimmt auch. Doch lässt sich dieser Vorteil auch mit SSI (Server Side Includes) oder PHP erreichen, indem die benötigte Seite, in diesem Beispiel die Navigation, in den Inhaltsteil eingefügt wird. Da beide Verfahren aber serverseitig sind, entsteht kein Nachteil bzw. Inkompatibilität beim Nutzer.
„Es muss nur immer eine Seite übertragen werden, und nicht zusätzlich die Navigation, der Kopf etc., wie es der Fall wäre, wenn immer alles in einem Dokument stehen würde.“
Auf den ersten Blick auch richtig. Verwendet man allerdings CSS zur Formatierung des Inhalts, spart man sich einiges an HTML-Code. Die CSS-Datei wird (falls das nicht vom Browser verhindert wird) im Cache gespeichert und steht somit auch bei einem erneuten Besuch der Internetseite direkt wieder zur Verfügung und muss nicht mehr neu geladen werden. Auf diese Art und Weise lässt sich generell eine Unmenge an Traffic einsparen.
„Mit Frames kann man seinen Internetauftritt so gestalten, dass z.B. die Navigation immer im sichtbaren Bereich des Nutzers bleibt, und wenn dieser nach unten scrollt.“
Nichts, was CSS nicht auch könnte.
Fazit
Die Probleme, die Framesets mit sich bringen, liegen klar auf der Hand. Nicht nur dass einige Nutzer von den Inhalten der Webseite ausgeschlossen werden, sondern auch die nicht minder schweren Sicherheitsrisiken überwiegen eventuelle Vorteile der Frame-Technik. Alle Vorteile, die Frames vereinigt, können mit Hilfe von CSS mit Unterstützung von SSI oder PHP nachgeahmt werden. Die Probleme werden dabei natürlich ausgeschlossen. Unter diesen Gesichtspunkten, macht es in den aller seltensten Fällen Sinn, über die Verwendung von Frames nachzudenken. Doch bevor dies jemand macht, denkt zukunftsorientiert und optimiert eure Seiten auf höchstmögliche Kompatibilität und bedingungslose Bedienbarkeit.
Allgemeines zu Framesets
Mit Framesets hat man die Möglichkeit, das Browserfenster bzw. den Anzeigebereich des Fensters frei in beliebig viele Bereiche zu unterteilen. In jedem dieser Bereiche kann eine HTML-Seite eingebettet werden.
Unterstützung fanden Frames ab Netscape 2.0 und Internet Explorer 3.0. Seit 1997 ist die Frame-Technik mit HTML 4.0 auch offiziell vom World Wide Web Consortium (W3C) in den HTML-Standard aufgenommen. Dafür wurde extra ein HTML 4.0 Frameset-Dokumententyp (Doctype) entwickelt.
Probleme, die durch Frames hervorgerufen werden (können)[list=1] Nicht jeder Browser unterstützt Frames. Wie anfangs schon erwähnt ermöglichen erst Netscape 2.0 und der Internet Explorer in der Version 3.0 die Anzeige von Frames. Jedoch können Handys oder PDAs damit überhaupt nichts anfangen. Der Grund dafür ist recht simpel – es ist schlichtweg kein Platz für Frames. Reine Textbrowser brauche ich erst gar nicht zu erwähnen.
Ein Internetauftritt müsste zweigleisig ermöglicht werden. Einmal mit Frames und einmal ohne. Der Aufwand wäre immens, da ein Frameset eine andere Struktur an den Tag legt als ein frameloses Projekt. Viele Anbieter scheinen dies aber einfach zu „vergessen“ und man findet Sätze wie „Ihr Browser unterstützt keine Frames“ vor, womit wir schon bei Punkt 3 wären.
„Ihr Browser unterstützt keine Frames“. Dieser Satz eingegeben in z.B. Google liefert alleine schon ungefähr 291.000 Ergebnisse. Das heisst, dass mindestens 291.000 Seiten so gut wie unbrauchbar sind. Eine andere Suchabfrage wird mit Sicherheit noch ein Vielfaches mehr an den Tag bringen. Gerade für Unternehmen sehr sinnvoll, wenn die Kunden nicht auf die Internetseite kommen.
Frames skalieren sehr schlecht. Das bedeutet, dass bei einer kleinen Bildschirmauflösung das Navigieren in einem Frameset zu einer nahezu unüberwindbaren Hürde wird. Besonders dann, wenn die Frames mit prozentualer Breite angegeben wurden, passiert es schnell, dass auf einmal die Navigation verschwindet oder das Lesen des Inhaltes zu einer regelrechten Qual wird.
Thema Bookmarks. Wer schon mal versucht hat, ein Lesezeichen auf eine Seite zu setzen, die Frames verwendet, weiß wovon ich spreche. Entweder setzt man das Lesezeichen auf die Frameset-Seite, dann gelangt man allerdings bei einem erneuten Besuch immer wieder auf die Startseite. Die zweite Möglichkeit ist, das Lesezeichen direkt auf eine Seite innerhalb des Framesets zu setzen. Problem dabei ist aber, dass dann beim Aufruf des Lesezeichens die anderen Frames nicht angezeigt werden und man womöglich ohne Navigation auskommen muss. Es gibt zwar Workarounds, die mit Hilfe von Javascript das Frameset und somit die fehlenden Teile laden. Doch immer mehr Internetnutzer deaktivieren die Verwendung von Javascript bzw. haben es nicht einmal installiert.
Wie druckt man einen Frame? Richtig, man muss dem Browser genauestens sagen, welcher Frame gerade aktiv ist und somit ausgedruckt werden soll. Doch wie viele Nutzer kennen sich damit wirklich aus?
Der Titel der Internetseite wird im Frameset festgelegt. Somit ist er auf allen Unterseiten gleich. Die Titel der Unterseiten werden nicht berücksichtigt.
Das gleiche gilt für Verweise. In der Adressleiste des Browser wird immer nur die Eingangsadresse angezeigt. Somit wird dem Nutzer vorgegaukelt, er befinde sich noch immer auf der Eingangsseite. Punkt 7 und 8 tragen beide zur Verwirrung des Nutzers bei.
Der Aspekt der Sicherheit ist auch ganz entscheidend. So können Inhalte aus den Weiten des Internets in die eigene Seite eingebunden werden und nicht zu unterschätzende Risiken mit sich bringen. Frames können von Angreifern manipuliert werden, trotzdem aber den Eindruck wecken, man befände sich auf einer vertrauenswürdigen Seite (Phishing). Eingegebene Benutzerdaten und/oder Passwörter können dann von dem Angreifer ausgelesen und verwendet werden.
Ein Frameset hat keinen Inhalt! Ein Frameset bietet nur die Information, welche Unterseite in welchem Frame angezeigt werden und wie groß ein Frame sein soll. Zudem kann noch der Titel der Seite ausgelesen werden. Der <noframes>-Teil in einem Frameset wird von einem Browser, der Frames unterstützt, nicht berücksichtigt.
Die Suchmaschinen haben auch ihre Probleme mit den Frames. So wird unter Umständen nur ein Frame gefunden und die anderen bleiben außer Acht. Ergebnis sieht dann in etwa so aus wie bei Punkt 5. Wie in 10. bereits erwähnt, ist ein Frameset leer, hat also keinen Inhalt. Demnach kann eine Suchmaschine, die nach Inhalten sucht, nur die Informationen auslesen und verwenden, die ein Frameset bietet. Diese sind lediglich der Titel und der <noframes>-Bereich. Doch da im <noframes>-Bereich so gut wie immer nur Müll steht (siehe Punkt 3) bleibt nur noch der Titel für eine Einordnung der Seite übrig. Ob das genügt, um eine zutreffende Aussage über diese Seite zu treffen, kann sich wohl jeder selbst beantworten.
[/list=1]
Einwände und Proteste
In zahlreichen Diskussionen mit Verfechtern von Frames über das Für und Wider derselben kamen immer wieder folgende Einwände zu den aufgeführten Problemen und Hindernissen von Frames zur Sprache.
„Die Anzahl der Browser, die keine Frames unterstützen, ist so gering, dass es kaum einen Nachteil darstellt, diese zu vernachlässigen.“
Es ist sicherlich richtig, dass nur wenige solcher Browser im Einsatz sind gemessen an Browsern, die Frames unterstützen. Doch befürwortet dies, dass man diese Benutzergruppe vernachlässigen kann? Vor allem die Arroganz einiger Webautoren ist doch bemerkenswert. So wird man des Öfteren dazu aufgefordert, sich den Internet Explorer in der neusten Version herunter zuladen. Andernfalls wird einem der Zutritt zur Internetseite verwehrt bzw. man bekommt ein vollkommen fehlerhaftes Layout zu Gesicht. Das muss nicht sein! Vor allem heutzutage nicht, wo es andere Möglichkeiten gibt, diese Probleme zu umgehen (CSS).
„Wer hat heute schon noch eine Bildschirmauflösung kleiner als 1024x768?“
Ein berechtigter Einwand, da der Trend zu immer höheren Auflösungen geht. Aber will ich jetzt dem Nutzer vorschreiben, dass er mindestens 1024x768 Punkte verwenden soll? Es sollte doch wohl jedem selbst überlassen sein, wie er seinen Monitor einstellt. Wenn man nur 640x480 Bildpunkte haben will, dann soll das möglich sein. Die wunderbare Skalierbarkeit von HTML macht diesem Vorhaben keinen Strich durch die Rechnung. Framesets allerdings schon. Auch wenn die Frames prozentual angegeben werden, stoßen sie schnell an ihre Grenzen in punkto Übersicht und Bedienbarkeit.
„Framesets sind einfacher zu gestalten als dieser ganze CSS-Kram.“
Zustimmung. Ein Frameset kommt mit weniger Befehlen aus und man erhält das gewünschte Ergebnis. Dennoch muss man mit den ganzen oben genannten Problemen rechnen. CSS kennt diese nicht und kann darüber hinaus noch viel mehr, als nur Inhalt an der richtigen Stelle zu platzieren.
„Man spart sich einiges an Wartungsarbeit, da z.B. die Navigation nur einmal verändert werden muss.“
Das stimmt auch. Doch lässt sich dieser Vorteil auch mit SSI (Server Side Includes) oder PHP erreichen, indem die benötigte Seite, in diesem Beispiel die Navigation, in den Inhaltsteil eingefügt wird. Da beide Verfahren aber serverseitig sind, entsteht kein Nachteil bzw. Inkompatibilität beim Nutzer.
„Es muss nur immer eine Seite übertragen werden, und nicht zusätzlich die Navigation, der Kopf etc., wie es der Fall wäre, wenn immer alles in einem Dokument stehen würde.“
Auf den ersten Blick auch richtig. Verwendet man allerdings CSS zur Formatierung des Inhalts, spart man sich einiges an HTML-Code. Die CSS-Datei wird (falls das nicht vom Browser verhindert wird) im Cache gespeichert und steht somit auch bei einem erneuten Besuch der Internetseite direkt wieder zur Verfügung und muss nicht mehr neu geladen werden. Auf diese Art und Weise lässt sich generell eine Unmenge an Traffic einsparen.
„Mit Frames kann man seinen Internetauftritt so gestalten, dass z.B. die Navigation immer im sichtbaren Bereich des Nutzers bleibt, und wenn dieser nach unten scrollt.“
Nichts, was CSS nicht auch könnte.
Fazit
Die Probleme, die Framesets mit sich bringen, liegen klar auf der Hand. Nicht nur dass einige Nutzer von den Inhalten der Webseite ausgeschlossen werden, sondern auch die nicht minder schweren Sicherheitsrisiken überwiegen eventuelle Vorteile der Frame-Technik. Alle Vorteile, die Frames vereinigt, können mit Hilfe von CSS mit Unterstützung von SSI oder PHP nachgeahmt werden. Die Probleme werden dabei natürlich ausgeschlossen. Unter diesen Gesichtspunkten, macht es in den aller seltensten Fällen Sinn, über die Verwendung von Frames nachzudenken. Doch bevor dies jemand macht, denkt zukunftsorientiert und optimiert eure Seiten auf höchstmögliche Kompatibilität und bedingungslose Bedienbarkeit.