<fencedframe>: Das Fenced Frame-Element
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Das <fencedframe>
HTML Element repräsentiert einen verschachtelten Browsing-Kontext, der eine andere HTML-Seite in die aktuelle einbettet. <fencedframe>
s sind in Form und Funktion sehr ähnlich zu <iframe>
-Elementen, außer dass:
- Die Kommunikation zwischen dem
<fencedframe>
-Inhalt und der einbettenden Seite eingeschränkt ist. - Ein
<fencedframe>
kann auf datenübergreifende Seiten zugreifen, aber nur in einem sehr spezifischen, kontrollierten Umfeld, das die Privatsphäre der Benutzer schützt. - Ein
<fencedframe>
kann nicht manipuliert oder seine Daten über reguläres Skripting abgerufen werden (z.B. das Lesen oder Setzen der Quell-URL).<fencedframe>
-Inhalte können nur über spezifische APIs eingebettet werden. - Ein
<fencedframe>
kann nicht auf das DOM des einbettenden Kontexts zugreifen, noch kann der einbettende Kontext auf das DOM des<fencedframe>
zugreifen.
Das <fencedframe>
-Element ist eine Art von <iframe>
mit mehr eingebauten Datenschutzfunktionen. Es behebt Schwächen von <iframe>
s wie die Abhängigkeit von Drittanbieter-Cookies und andere Datenschutzrisiken. Weitere Details finden Sie in der Fenced Frame API.
Attribute
Dieses Element umfasst die globalen Attribute.
allow
Experimentell-
Gibt eine Berechtigungsrichtlinie für das
<fencedframe>
an, die definiert, welche Funktionen dem<fencedframe>
basierend auf dem Ursprung der Anfrage zur Verfügung stehen. Weitere Details, welche Funktionen über eine auf einem fenced frame gesetzte Richtlinie gesteuert werden können, finden Sie unter Berechtigungsrichtlinien für fenced frames. height
Experimentell-
Ein ganzzahliger Wert ohne Einheit, der die Höhe des fenced frames in CSS-Pixeln darstellt. Der Standardwert ist
150
. width
Experimentell-
Ein ganzzahliger Wert ohne Einheit, der die Breite des fenced frames in CSS-Pixeln darstellt. Der Standardwert ist
300
.
Berechtigungsrichtlinien für fenced frames
Berechtigungen, die vom obersten Kontext an ein fenced frame delegiert werden, um Funktionen zu erlauben oder zu verweigern, könnten als Kommunikationskanal genutzt werden und stellen daher eine Datenschutzbedrohung dar. Daher sind standardmäßige Webfunktionen, deren Verfügbarkeit über eine Berechtigungsrichtlinie gesteuert werden kann (zum Beispiel, camera
oder geolocation
), nicht verfügbar innerhalb von fenced frames.
Die einzigen Funktionen, die durch eine Richtlinie innerhalb von fenced frames aktiviert werden können, sind spezifische Funktionen, die dafür ausgelegt sind, innerhalb von fenced frames verwendet zu werden:
- Protected Audience API
attribution-reporting
private-aggregation
shared-storage
shared-storage-select-url
- Shared Storage API
attribution-reporting
private-aggregation
shared-storage
shared-storage-select-url
Derzeit sind diese immer innerhalb von fenced frames aktiviert. In Zukunft wird steuerbar sein, welche davon aktiviert sind, indem das <fencedframe>
allow
-Attribut verwendet wird. Das Blockieren von Funktionen der Privacy Sandbox auf diese Weise wird auch das Laden des fenced frames blockieren – es wird überhaupt keinen Kommunikationskanal geben.
Fokussierung über fenced frame-Grenzen hinweg
Die Möglichkeit, den aktiven Fokus des Dokuments über fenced frame-Grenzen hinweg zu verschieben (d.h. von einem Element außerhalb des fenced frames zu einem innerhalb oder umgekehrt), ist begrenzt. Benutzerinitiierte Aktionen wie ein Klick oder ein Tab können dies tun, da hier kein Fingerabdruckrisiko besteht.
Der Versuch, die Grenze über einen API-Aufruf wie HTMLElement.focus()
zu überschreiten, ist jedoch untersagt – ein bösartiges Skript könnte eine Reihe solcher Aufrufe verwenden, um abgeleitete Informationen über die Grenze hinweg zu leaken.
Positionierung und Skalierung
Als ein ersetztes Element erlaubt das <fencedframe>
, die Position des eingebetteten Dokuments innerhalb seines Rahmens mit der Eigenschaft object-position
zu justieren.
Hinweis:
Die Eigenschaft object-fit
hat keine Auswirkung auf <fencedframe>
-Elemente.
Die Größe des eingebetteten Inhalts kann durch interne contentWidth
und contentHeight
Eigenschaften des config
Objekts des <fencedframe>
festgelegt werden. In solchen Fällen wird das Ändern der width
oder height
des <fencedframe>
die Größe des eingebetteten Containers auf der Seite ändern, jedoch wird das Dokument innerhalb des Containers visuell angepasst, um zu passen. Die gemeldete Breite und Höhe des eingebetteten Dokuments (d.h. Window.innerWidth
und Window.innerHeight
) bleibt unverändert.
Barrierefreiheit
Personen, die mit unterstützender Technologie navigieren, wie z. B. einem Screenreader, können das title
-Attribut auf einem <fencedframe>
verwenden, um dessen Inhalt zu kennzeichnen. Der Wert des Titels sollte den eingebetteten Inhalt kurz beschreiben:
<fencedframe
title="Advertisement for new Log. From Blammo!"
width="640"
height="320"></fencedframe>
Ohne diesen Titel müssen sie in das <fencedframe>
navigieren, um festzustellen, was sein eingebetteter Inhalt ist. Dieser Kontextwechsel kann verwirrend und zeitraubend sein, insbesondere für Seiten mit mehreren <fencedframe>
s und/oder wenn Einbettungen interaktive Inhalte wie Video oder Audio enthalten.
Beispiele
Um festzulegen, welcher Inhalt in einem <fencedframe>
angezeigt wird, generiert eine nutzende API (wie Protected Audience oder Shared Storage) ein FencedFrameConfig
Objekt, welches dann als Wert der config
-Eigenschaft des <fencedframe>
gesetzt wird.
Das folgende Beispiel erhält eine FencedFrameConfig
von einer Werbeauktion der Protected Audience API, die dann verwendet wird, um die gewinnende Anzeige in einem <fencedframe>
anzuzeigen:
<fencedframe width="640" height="320"></fencedframe>
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true,
});
const frame = document.querySelector("fencedframe");
frame.config = frameConfig;
Note:
resolveToConfig: true
muss in denrunAdAuction()
Aufruf übergeben werden, um einFencedFrameConfig
-Objekt zu erhalten. Wenn es nicht gesetzt ist, wird die resultierendePromise
zu einem URN aufgelöst, der nur in einem<iframe>
verwendet werden kann.
Technische Zusammenfassung
Inhaltskategorien | Fließender Inhalt, Textinhalt, eingebetteter Inhalt, interaktiver Inhalt, greifbarer Inhalt. |
---|---|
Zulässiger Inhalt | Kein. |
Tag-Auslassung | Keine, sowohl das Start- als auch das End-Tag sind obligatorisch. |
Erlaubte Eltern | Jedes Element, das eingebetteten Inhalt akzeptiert. |
Implizite ARIA-Rolle | Keine entsprechende Rolle |
Erlaubte ARIA-Rollen |
application , document ,
img , none ,
presentation
|
DOM-Schnittstelle | [`HTMLFencedFrameElement`](/de/docs/Web/API/HTMLFencedFrameElement) |
Spezifikationen
Specification |
---|
Fenced Frame # the-fencedframe-element |
Browser-Kompatibilität
Siehe auch
- Fenced Frame API
- Fenced frames auf privacysandbox.google.com
- Die Privacy Sandbox auf privacysandbox.google.com