Attributen
Dit element bevat de globale attributen.
| 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. |
|---|---|
| Een eenheidloos geheel getal dat de hoogte van het fenced frame in CSS-pixels voorstelt. De standaardwaarde is 150. |
| 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-reportingprivate-aggregationshared-storageshared-storage-select-url
- Shared Storage API
attribution-reportingprivate-aggregationshared-storageshared-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.
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:
<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:
<fencedframe width="640" height="320"></fencedframe>const frameConfig = await navigator.runAdAuction({
// … auction configuration
resolveToConfig: true,
});
const frame = document.querySelector("fencedframe");
frame.config = frameConfig;
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 |