Frame or not to frame – Vorteile und Nachteile von Frames

-- 14.Juni 2005 (#5)

Frames sind eine beliebte Technik, um schnell und einfach wiederkehrende Elemente (z. B. ein Menü/Navigation oder Banner) auf allen Internetseiten zu platzieren. Der Vorteil liegt auf der Hand: das Element muss nur einmal erstellt werden und eine Änderung daran wird sofort auf allen Seiten angezeigt. Aufgrund seiner Einfachheit werden Frames besonders gerne von Anfängern eingesetzt.

Welche weiteren Vorteile haben Frames und was sind vor allen Dingen die Nachteile und Alternativen?

Zu den Vorteilen von Frames:


Auf der anderen Seite bringt die Frame-Technik einige Nachteile mit sich, so dass man sich durchaus mit den Alternativen beschäftigen sollte, welche am Ende auch nochmal kurz angerissen werden. Die Basis jeglicher Frameproblematik ist, dass Frame-Seiten anders als normale Internetseiten, gegen ein grundlegendes Prinzip verstoßen, sie bestehen nämlich aus mindestens 2 Seiten (Frames). Die klassische Internetseite besteht aus einer einzigen Seite, einem HTML-Dokument und
ist über die Adresse, welche in der Adressleiste zu sehen ist, eindeutig identifizierbar. Eine Frame-Seite hingegen enthält zunächst einmal gar nichts, das Frameset ist (abgesehen von dem <noframes>-Bereich, auf den ich noch eingehen werde) ein leerer, inhaltsloser Container, welcher lediglich in verschiedene Frames eingeteilt ist und mit dem jeweiligen Frame auf ein HTML-Seite verweist.

Der Code einer Frame-Seite ist ähnlich wie folgt aufgebaut:

<frameset cols=20%, 80%>
<frame name=menu src=menu.html>
<frame name=inhalt src=inhalt.html>

Dieses Beispiel ist in 2 Frames aufgeteilt: ein Menü mit 20% Breite und der eigentliche Inhalt mit 80% Breite. In den beiden Frames werden die Seiten menu.html und inhalt.html angezeigt, das eigentliche Frameset ist aber leer.

Wozu führt dieser Verstoß gegen das Prinzip, dass eine Seite nur aus einer HTML-Seite besteht?
Es bringt gleich eine ganze Reihe von Nachteilen mit sich. Alle folgenden Probleme sind nur verschiedene Phänomene für die selbe Ursache. Zwar können sie viele dieser Probleme durch Hacks und Griffe in die Trickkiste minimieren, aber diese haben wiederum selbst Nachteile und sind für den Perfektionisten allesamt nicht zufriedenstellend.


Die Nachteile von Frames:

Weitere Nachteile der Frame-Technik:


Ich kam auf die Nachteile von Frame-Technik bezüglich Suchmaschinen zu sprechen. Wie kann man aber trotz Frames eine suchmaschinenfreundliche Seite erstellen und ein gutes Ranking bekommen?
Hierfür gibt es den <noframes>-Bereich. Das ist der einzige Bereich, der in einem Frameset auch tatsächlichen Inhalt haben kann und der besonders für die Suchmaschinen interessant ist. Der <noframes>-Bereich wird angezeigt, wenn ein Besucher eine Frames-Seite besucht, aber der Browser (respektive der Suchmaschinenspider) keine Frames unterstützt (z.B. Textbrowser). Sie können in diesem Bereich ganz normales HTML verwenden.
Wenn sie es auf die Spitze treiben wollen, können sie im <noframes>-Bereich sogar eine zweite Version ihrer Webseite anfertigen, für Menschen die keine Frames sehen können. Aber eigentlich ist das übertrieben, da gemessen am Aufwand der <noframes>-Bereich nur für (Such-)Maschinen sinnvoll einsetzbar ist. Machen sie also folgendes:

(Fast) zum Schluss der letzte Nachteil von Frames.
HTML hat die besondere Eigenschaft, besonders dynamisch und anpassungsfähig zu sein, was seine Darstellung angeht. Frames schränken diese Flexibilität der HTML-Darstellung ein. Dazu möchte ich ein kurzes Beispiel zeigen:

Die linke Seite ist eine simple Frame-Seite. Sie ist so aufgeteilt, wie die meisten Seiten: links ein Menü, rechts der Inhalt. Die Trennung dieser beiden Elemente wird durch die Farben hervorgehoben.
Rechts wird die gleiche Seite ohne Frames angezeigt, also eine mögliche Realisierung mit Tabellen oder CSS.


Was passiert nun, wenn ein Benutzer eine andere Schrift einsetzt, wie sie als Autor der Seite? Oder wenn jemand seine Schriftgröße erhöht hat, z.B. wegen einer Sehschwäche oder weil der Besucher eine sehr hohe Auflösung hat und ihre Schrift nicht skaliert und ohne Vergrößerung kaum lesbar wäre?

Links ist wieder die Version mit Frames zu sehen, rechts dieselbe Variante ohne Frames.
Folgendes ist zu sehen: Rechts verbreitert sich das Menü automatisch, die Seite passt sich also den Inhalten an.
Links bei der Frame-Seite bleibt das Menü starr, Teile des Menüs sind plötzlich gar nicht mehr sichtbar, weil sie sich „unter den Inhalt schieben“, es entstehen (unschöne) Scrollbalken.
Woran liegt das? Man kann es so abkürzen: Frames sind dumm. Ein Frame weiß nichts davon, dass es ein Frame ist. Es wird als eigenständige Seite behandelt. Die Flexibilität von HTML geht dadurch verloren, Scrollbalken entstehen. Manche Autoren versuchen diesen Schönheitsfehler zu kaschieren, indem sie
den Scrollbalken ganz verbieten (lässt sich im Frameset ausschalten), Fazit: der Besucher kann womöglich einige Bereiche der Seite (wie hier das Menü) gar nicht mehr sehen, Informationen gehen verloren.

Welche Alternativen gibt es zu Frames?

Wenn sie immer wiederkehrende Elemente auf ihrer Seite einfügen wollen, dann können sie als Alternative so genannte SSI- oder PHP-Includes verwenden. Sie müssen vorher nur überprüfen, ob ihr Webspace-Provider dies unterstützt.

Beispiele hierzu:
PHP (benutzen sie die Endung php für ihre Seiten, z.B. index.php):

include 'menue.html';

SSI (benutzen sie die Endung shtml, shtm oder sht für ihre Seiten, z.B. index.shtml):

<!--#include virtual="menue.html" -->



Fazit:

Aus den genannten Gründen ist von der Frame-Technik eher abzuraten und auf die Alternativen zurückzugreifen. Wie sie gesehen haben, lassen sich zwar viele Nachteile von Frames größtenteils umgehen, aber da dem Webautoren dadurch ein gewisses Know-How in Dingen wie JavaScript und Co. abverlangt wird, wird damit auch einer der großen Vorteile von Frames zerstört: die Einfachheit.

Unter Umständen kann es aber auch sinnvolle Anwendungsgebiete für Frames geben, nämlich wenn sie als Webautor bewusst eine Indexierung durch Suchmaschinen verhindern wollen oder wenn sie nicht darauf angewiesen sind, in Suchmaschinen gut gelistet zu werden. Das kann z.B. der Fall sein, wenn sie eine Intranet-Lösung realisieren wollen. Auch für andere Projekte, wie die Programmierung eines Web-Chats, kann die Frame-Technik seine Stärke ausspielen. Weiterhin können Frames natürlich auch als Notlösung herhalten, wenn sie nur mal schnell und einfach eine kleine Seite erstellen oder ihr Webspace-Provider kein SSI oder PHP unterstützt.