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.
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.
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.