Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Nieuw en experimenteel

Het element <fencedframe> Experimenteel

Dit is een experimenteel element. Het werkt nog niet in alle browsers.

Attributen

Dit element bevat de globale attributen.

allow Experimenteel

Geeft een Permissions Policy op voor de <fencedframe>, die bepaalt welke functies beschikbaar zijn voor de <fencedframe> op basis van de oorsprong van het verzoek. Zie Permissiebeleid dat beschikbaar is voor fenced frames voor meer details over welke functies kunnen worden geregeld via een beleid dat voor een fenced frame is ingesteld.

height Experimenteel

Een eenheidloos geheel getal dat de hoogte van het fenced frame in CSS-pixels voorstelt. De standaardwaarde is 150.

width Experimenteel

Een eenheidloos geheel getal dat de breedte van het fenced frame in CSS-pixels voorstelt. De standaardwaarde is 300.

Permissiebeleid dat beschikbaar is voor fenced frames

Rechten die vanuit de context op het hoogste niveau aan een fenced frame worden gedelegeerd om functies toe te staan of te weigeren, zouden als communicatiekanaal kunnen worden gebruikt en vormen dus een privacyrisico. Als gevolg hiervan zijn standaard webfuncties waarvan de beschikbaarheid kan worden geregeld via Permissions Policy (bijvoorbeeld camera of geolocation) niet beschikbaar binnen fenced frames.

De enige functies die via een beleid binnen fenced frames kunnen worden ingeschakeld, zijn de specifieke functies die zijn ontworpen om binnen fenced frames te worden gebruikt:

  • 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

Momenteel zijn deze altijd ingeschakeld binnen fenced frames. In de toekomst zal welke ervan zijn ingeschakeld, regelbaar zijn via het allow-attribuut van <fencedframe>. Het op deze manier blokkeren van privacysandboxfuncties zal er ook toe leiden dat het fenced frame niet meer wordt geladen — er zal dan helemaal geen communicatiekanaal meer zijn.

Focus verplaatsen over fenced-frame-grenzen

Het vermogen van de actieve focus van het document om over fenced-frame-grenzen te worden verplaatst (dat wil zeggen, van een element buiten het fenced frame naar een element erbinnen, of andersom) is beperkt. Door de gebruiker geïnitieerde acties, zoals een klik of een tabtoets, kunnen dit wel doen, omdat daar geen fingerprinting-risico bestaat.

Het proberen om de grens te overschrijden via een API-aanroep zoals HTMLElement.focus() is echter verboden — een kwaadaardig script zou een reeks van dergelijke aanroepen kunnen gebruiken om afgeleide informatie over de grens heen te lekken.

Positionering en schaling

Als vervangen element maakt de <fencedframe> het mogelijk om de positie van het ingesloten document binnen zijn box aan te passen met de eigenschap object-position.

Opmerking

De eigenschap object-fit heeft geen effect op <fencedframe>-elementen.

De grootte van de ingesloten inhoud kan worden ingesteld door de interne eigenschappen contentWidth en contentHeight van het config-object van de <fencedframe>. In dat geval verandert het wijzigen van de width of height van de <fencedframe> de grootte van de ingesloten container op de pagina, maar wordt het document binnen de container visueel geschaald om te passen. De gerapporteerde breedte en hoogte van het ingesloten document (dat wil zeggen Window.innerWidth en Window.innerHeight) blijven ongewijzigd.

Toegankelijkheid

Mensen die navigeren met ondersteunende technologie, zoals een schermlezer, kunnen het title-attribuut op een <fencedframe> gebruiken om de inhoud ervan te labelen. De waarde van de titel moet de ingesloten inhoud beknopt beschrijven:

HTML
<fencedframe
  title="Advertisement for new Log. From Blammo!"
  width="640"
  height="320"></fencedframe>

Zonder deze titel moeten zij in de <fencedframe> navigeren om te bepalen wat de ingesloten inhoud is. Deze contextwisseling kan verwarrend en tijdrovend zijn, vooral bij pagina's met meerdere <fencedframe>-elementen en/of als de embeds interactieve inhoud bevatten zoals video of audio.

Voorbeelden

Om in te stellen welke inhoud in een <fencedframe> wordt getoond, genereert een API die dit gebruikt (zoals Protected Audience of Shared Storage) een FencedFrameConfig-object, dat vervolgens wordt ingesteld als de waarde van de config-eigenschap van de <fencedframe>.

Het volgende voorbeeld haalt een FencedFrameConfig op uit een advertentieveiling van de Protected Audience API, die vervolgens wordt gebruikt om de winnende advertentie in een <fencedframe> weer te geven:

HTML
<fencedframe width="640" height="320"></fencedframe>
JS
const frameConfig = await navigator.runAdAuction({
  // … auction configuration
  resolveToConfig: true,
});

const frame = document.querySelector("fencedframe");
frame.config = frameConfig;
Opmerking

resolveToConfig: true moet worden meegegeven aan de aanroep van runAdAuction() om een FencedFrameConfig-object te verkrijgen. Als dit niet is ingesteld, wordt de resulterende Promise omgezet in een URN die alleen in een <iframe> kan worden gebruikt.

Technische samenvatting

Contentcategorieën Flow content, phrasing content, embedded content, interactive content, palpable content.
Toegestane inhoud Geen.
Weglaten van tags Geen, zowel de begin- als eindtag zijn verplicht.
Toegestane bovenliggende elementen Elk element dat embedded content accepteert.
Impliciete ARIA-rol Geen bijbehorende rol
Toegestane ARIA-rollen application, document, img, none, presentation
DOM-interface HTMLFencedFrameElement

Verwante elementen