HTML lernen (1): Einführungskurs
Frames - Warum Sie keine Frames einsetzen sollten
Frames - Warum Sie keine Frames einsetzen sollten
Auf dieser Seite
Mit Bild
Ein umstrittenes Kapitel in HTML - die Frames.
Mit Bild
Frames-Definition
Mit Bild
Wörtl. Rahmen - rechteckiger Bereich eines Browserfensters. Die Anordnung aller Einzelframes nennt man Frameset. In WWW-Browsern kann das Anzeigefenster so in Frames aufgeteilt werden, dass mehrere HTML-Seiten gleichzeitig angezeigt werden können. Üblicherweise bleibt ein kleiner Frame konstant und zeigt Navigationselemente für eine Seite an, und ein großer Frame zeigt die Inhalte der einzelnen Seiten. Frames können tückisch sein, wenn der Webdesigner es unterlässt, beim Verlinken fremder Sites das Frameset wieder zu entfernen.
Mit Bild
Deutsche Gerichte vertreten hier gelegentlich die Meinung, man mache sich damit die Inhalte der fremden Seiten zu Eigen. Noch ungeklärt ist die Frage, ob nur direkte Links strafbar sind oder auch Links "um drei Ecken". Frames haben ein semantisches Problem: jede Seite im Internet hat eine URL - bei Frames ist das nicht so. Da hat eine URL mehrer Dateien! Hinter index.html versteckt sich also die ganze Seite. Es ist nicht so einfach möglich direkt auf eine der Unterseiten zu springen. Und wenn man die Unterseiten separat öffnet, ist die Navigation nicht vorhanden.
Mit Bild
Unterschiedliches Aussehen
Mit Bild
Verschiedene Browser stellen Frames unterschiedlich dar, was viel weiter reichendere Auswirkungen hat, als die unterschiedliche Darstellung von normalen HTML-Elementen.
Mit Bild
Bookmarking
Frames verhindern Bookmarking! Sie können keine einzelne Seite als Lesezeichen speichern. Man kann z.B. auch niemanden den direkten Link geben, sondern muss den Weg beschreiben. So sollte es nicht sein, denn wir benutzen ja nicht umsonst Hyper Text Markup Language (HTML), mit dem man ganz gezielt auf Homepage-Inhalte verlinken kann und nicht nur auf ganze Seiten.
History
Die Browser History wird verkompliziert. Einige Browser steigen ganz aus, andere können gut damit umgehen, aber dennoch ist es für den User komplizierter zurück zu gehen.
Direkter Link
Wenn das Frameset umgangen wird, und nur der Inhalt-Frame angezeigt wird, dann hat der User keine Navigation. Als Beispiel besuchen Sie diese Seite: http://www.gss-dt.de Der User kann sich nicht selber aussuchen was er angezeigt bekommen will. Z.B. klickt er auf 'Link in neuem Fenster öffnen' und schon hat er keine Navigation mehr: http://www.gss-dt.de/kontakt.htm
Scrolling
Wenn man nicht gut aufpasst, ist die Navigation breiter als der frame und der user muss scrollen. Wenn man scrollen verboten hat, schaut der User dumm drein. Das hat nicht unbedingt etwas mit der Unfähigkeit des Webdesigners zu tun (außer, dass er Frames einsetzt :-) ), sondern hängt komplett vom Medium ab, über das der Webdesigner keine Annahme machen kann.
Aktiver Frame
Die Browser/Benutzer können sich nicht immer sicher sein, welcher Frame das aktive ist. Auf welchem Frame werden die Tastdrücke jetzt angewendet? Wo wird mit meiner Scrollmaus gescrollt?
Frames zu drucken ist eine Qual. Einige Browser beherrschen das nicht ordentlich.
Suchmaschinen
Framesets können von Suchmaschinen nicht vernünftig ausgelesen werden. Viele Suchmaschinen nutzen nicht nur die Meta Tags. Oft wird dann in den Suchmaschinen auf eine Unterseite verlinkt (was ja auch sinnvoll ist). Bei Frames fehlt hier aber die Navigation.
Mehr Aufwand
Frames zu warten ist komplizierter als ein CSS-Layout.
Man muss ein <noframe> anbieten, oder man verzichtet absichtlich (und unnütz) auf Besucher! Auch wenn jeder PC Browser Frames unterstützt, der Trend geht immer weiter hin zu Handys und Handhelds, die nicht die gewünschte Fenstergröße und Leistungsfähigkeit haben so etwas darzustellen.
Copyright
Bei Frames kann es vorkommen, dass man (aus versehen) eine andere Seite im eigenen Frame öffnet, das kann eine Copyright Verletzung sein.
Blindenschrift - Barrierefreies Internet
Werden Frames verwendet ist für einen sehbehinderten Menschen bereits jetzt schon Schluss. Der Hinweis "Diese Seite verwendet Frames. Frames werden von Ihrem Browser nicht unterstützt." ist ihm dabei auch nicht sehr hilfreich.
Frames bereiten blinden und sehbehinderten Menschen erhebliche Schwierigkeiten. Zum einen benutzen sie zum Teil noch Spezialbrowser, die Frames nicht unterstützen, zum anderen haben sie Probleme, per Tastatur von einem Frame zum anderen zu gelangen.
Gem. dem am 1.5.2002 in Kraft getretenen Behindertengleichstellungsgesetz sind Ministerien und Behörden sogar dazu verpflichtet, ihre Internetauftritte so zu gestalten, dass sie von behinderten Menschen grundsätzlich uneingeschränkt genutzt werden können (§ 11 I 1 BGG). Damit für blinde Menschen eine Website nicht als unübersichtlich erscheint, sollte daher auf Frames am besten ganz verzichtet werden
Mit Frames spart man keine Ladezeit
Oft wird als Pro-Argument von Frames aufgeführt, dass der eine Teil der Seite doch nicht jedes Mal neu geladen werden muss und das man deshalb Ladezeit vorteile hat. Das ist nicht so. Alle Bilder werden vom Browser sowieso im Cache gespeichert und müssen nicht noch mal gelesen werden. Also muss nur der Text neu geladen werden. Dafür hat man aber den Vorteil, dass man den (X)HTML overhead nicht mehrmals laden muss (wie im Frameset, wo jeder Bereich seinen Doctype, seinen Head usw. braucht).
Frames sind sehr unflexibel!
Möchte man irgendwas etwas exotischer gestalten, ufert das in unzählig viele Frames aus, was dann schlecht wartbar und auch schlecht zu benutzen ist. Eine Anpassung an die Größe des Anwendungsfenster ist sehr schwierig.
Frames gehören nicht zum XHTML Standard
Zum Beispiel ist das target Attribut nicht mehr im Standard enthalten (ohne das kann man aber praktisch keine Frames benutzen). Das hat auch einen Grund, denn der Benutzer soll lernen seinen Browser zu bedienen und nicht von der Webseite bevormundet werden. Ich möchte entscheiden, wann eine neue Seite geladen wird und wann nicht. Genauso sind solche Sachen, wie das weglassen des Randes usw. nicht mehr möglich.
Frames verleiten dazu JavaScript einzusetzen
Auf Seiten, die Frames benutzen kommt man nur selten um JavaScript herum (weshalb JavaScript nicht für elementare Dinge eingesetzt werden soll, ist eine andere Sache. Nur so viel dazu: Nicht jeder hat JavaScript aktiviert und möchte damit belästigt werden - Mozilla für Linux hat es z.B. standardmäßig deaktiviert). Zum Beispiel ist es normalerweise nicht möglich zwei Frames gleichzeitig zu ändern. Und das nachladen von Framesets ist auch nur mit JavaScript möglich.
Anpassung des Menüs ist kaum möglich!
Wo bin ich denn gerade auf der Seite? Das fragt man sich öfter auf Seiten, die Frames zur Navigation einsetzen. Der Grund ist, dass sich das Menü nicht der Seite anpasst. Oft findet man auch die Untermenüpunkte ganz woanders, weil es ohne viel JavaScript eben nicht möglich ist, das Menü zu erweitern.
Mit Bild
Fazit:
Die oben beschriebene Liste beansprucht keine Vollständigkeit. Dennoch sprechen die Argumente eine deutliche Sprache. Fast alle informationsvermittelnden Seiten, die auf Suchmaschinen angewiesen sind, verzichten deshalb auf Frames.
Ausgehend von komplexen Sitestrukturen ist die Entwicklung mit einer auf jeder Seite präsenten Navigationsleiste mit modernen Methoden wie CSS oder bei dynamischen Seiten mit serverseitig eingebundenen Navigationen in Summe schneller und daher auch kostengünstiger realisierbar.
Deshalb empfehle ich aus oben beschriebenen Gründen, auf Frames ganz zu verzichten.