W3docs

HTML <noframes>-Tag

Das <noframes>-Tag enthält Alternativtext für Browser ohne Frame-Unterstützung. Beispiele ansehen

Das <noframes>-Tag definierte den Fallback-Inhalt, der angezeigt wurde, wenn ein Browser kein Frameset darstellen konnte. Zusammen mit <frameset> und <frame> gehörte es zum alten „Frames"-Modell, bei dem ein Browserfenster in mehrere unabhängige Dokumente aufgeteilt wurde.

Gefahr

Verwenden Sie <noframes>, <frameset> oder <frame> nicht in neuen Projekten. Sie wurden in HTML5 als veraltet markiert (2014) und werden von modernen Browsern nicht mehr unterstützt. Diese Seite dient ausschließlich als Referenz — zum Lesen oder Warten von Legacy-Code, nicht zum Schreiben neuen Markups.

Diese Seite erklärt, wozu <noframes> diente, warum es entfernt wurde und was stattdessen zu verwenden ist.

Wofür <noframes> verwendet wurde

Im Zeitalter der Frames wurde eine Seite in mehrere Bereiche aufgeteilt, von denen jeder ein eigenes HTML-Dokument lud. Einige frühe Browser (und viele Screenreader) konnten Frames überhaupt nicht anzeigen. Das <noframes>-Element bot diesen Nutzern eine Alternative:

  • Eine kurze Meldung wie „Ihr Browser unterstützt keine Frames."
  • Ein Link zu einer nicht-framebasierten (einseitigen) Version der Website.
  • Beliebiger <body>-Inhalt als verwendbarer Fallback.

Wenn der Browser Frames unterstützte, wurde der <noframes>-Inhalt ignoriert. Das Element war innerhalb von <frameset> verschachtelt, das seinerseits den <body> der Seite ersetzte.

Warum Frames veraltet sind

Frames verursachten schwerwiegende, bekannte Probleme, die zu ihrer Abschaffung führten:

  • Defektes Lesezeichen-Setzen und URLs — die Adressleiste zeigte die Frameset-URL, nicht das Dokument, das der Nutzer tatsächlich betrachtete, sodass Links und Lesezeichen auf den falschen Ort zeigten.
  • Schlechte Barrierefreiheit — Screenreader hatten Schwierigkeiten, mehrere unabhängige Dokumente in einem Fenster zu vermitteln.
  • SEO-Schäden — Suchmaschinen indizierten einzelne Frame-Dokumente ohne Kontext und ohne die umgebende Navigation.
  • Keine Responsivität — feste Frame-Größen passten sich nicht an mobile Bildschirme an.

Aus diesen Gründen wurde das gesamte Frames-Modell — einschließlich <noframes> — aus dem HTML-Standard entfernt.

Was stattdessen zu verwenden ist

Weder Frames noch ein Fallback-Element werden benötigt. Modernes HTML und CSS decken jeden Anwendungsfall ab, dem Frames einst dienten:

  • Seitenlayout — erstellen Sie Spalten, Seitenleisten und Kopfzeilen mit normalen HTML-Elementen und CSS Flexbox oder Grid, anstatt das Fenster in Frame-Bereiche aufzuteilen.
  • Einbettung eines anderen Dokuments — verwenden Sie das <iframe>-Element, um eine Seite (eine Karte, ein Video oder ein externes Widget) in eine andere einzubetten. Anders als <frameset> wird <iframe> vollständig unterstützt und bricht nicht die Seiten-URL.
  • Gemeinsame Kopf-/Fußzeile/Navigation — anstatt einen Navigations-Frame einmalig zu laden, rendern Sie das gemeinsame Markup mit einer Template-Engine, einem Static-Site-Generator oder einer JavaScript-Komponente.
Info

Das <iframe>-Element ist das einzige „frame-ähnliche" Tag, das noch Teil von HTML ist. Wenn Sie externes Inhalte einbetten möchten, greifen Sie auf <iframe> zurück — nicht auf <frameset>.

Syntax

Das <noframes>-Tag wurde paarweise verwendet. Der Inhalt wurde zwischen das öffnende (<noframes>) und schließende (</noframes>) Tag geschrieben, innerhalb eines <frameset>.

Beispiel des HTML-<noframes>-Tags (veraltet, nur zur Referenz):

HTML <noframes>-Tag

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <frameset cols="50%,50%">
    <frame src="https://www.w3docs.com/learn-html.html">
    <noframes>Sorry, your browser doesn’t support frames. </noframes>
  </frameset>
</html>

In einem frames-fähigen Browser der damaligen Zeit hätte dies das Fenster in zwei Spalten aufgeteilt. Heutzutage ignorieren Browser die <frameset>- und <frame>-Elemente, sodass die Seite so gerendert wird, als wäre sie leer — genau deshalb sollte dieses Markup niemals in einem neuen Projekt eingesetzt werden.

Browser-Unterstützung

Entfernt. Die Frame-Unterstützung wurde aus modernen Browsern entfernt. Es gibt keine Version von Chrome, Firefox, Safari oder Edge, in der das Schreiben von <frameset> / <frame> / <noframes> funktionierende Frames erzeugt. Die Elemente sind nicht Teil des aktuellen HTML-Standards, und Validatoren kennzeichnen sie als veraltet. Behandeln Sie sie als historisches Feature ohne Zukunft.

Attribute

Das <noframes>-Tag verwendete nur die globalen Attribute. Wie das Element selbst sind auch diese in diesem Kontext veraltet.

Übung

Übung
Was war der ursprüngliche Zweck des <noframes>-Tags in Legacy-HTML?
Was war der ursprüngliche Zweck des <noframes>-Tags in Legacy-HTML?
Was this page helpful?