L'API Popover è ora disponibile come baseline

Pubblicata: 7 febbraio 2025

Ad aprile 2024, un post su questo sito annunciava che l'API Popover era di recente disponibile come riferimento. Tuttavia, abbiamo commesso un errore e il popup verrà inserito nella linea di base a partire dal 27 gennaio 2025. Questo post spiega perché abbiamo sbagliato e cosa è cambiato da allora per ridurre la probabilità di commettere questi errori.

Che cos'è l'API Popover?

L'API Popover fornisce un modo integrato per creare vari tipi di popup utilizzati nelle applicazioni web. In precedenza, era necessario utilizzare JavaScript e prestare molta attenzione a implementarli in modo accessibile. L'API porta tutto questo nel browser e consente di creare un semplice popup in modo dichiarativo in HTML.

<button popovertarget="my-popover">Open Popover</button>

<div id="my-popover" popover>
  <p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>
Un esempio di base dell'utilizzo dell'attributo popover.

Perché non era Baseline ad aprile 2024?

Quando Firefox ha rilasciato l'implementazione dei popup ad aprile 2024, non avevamo ancora rilevato un problema significativo su iOS e iPadOS. Su questi browser per dispositivi mobili, fare clic all'esterno del popup non lo chiudeva, una funzionalità nota come chiusura rapida. Questo è un problema che impedirebbe alla maggior parte degli sviluppatori di utilizzare i popup. Ciò significa che non doveva essere incluso come linea di base ad aprile e che era necessario attendere che il bug fosse corretto in Safari 18.3.

Perché abbiamo sbagliato?

La funzionalità di riferimento si basa sul lavoro di web-features per calcolare quando le funzionalità sono incluse o escluse da Baseline. Se dai un'occhiata a un singolo file di funzionalità del progetto, ad esempio il file per il popup, vedrai le singole funzionalità elencate nei dati di compatibilità dei browser di Mozilla. Una funzionalità web in genere contiene una serie di queste inclusioni. Questo perché una funzionalità sul web non è solo una singola proprietà o un singolo metodo, ma richiede un numero di componenti per funzionare. Né una funzionalità è un'intera specifica. Le specifiche CSS, ad esempio, spesso includono sottofunzionalità che non sono mai state implementate o che vengono utilizzate solo in un contesto specifico. Il lavoro sulle funzionalità web utilizza una combinazione di dati di disponibilità esistenti e input umani per stabilire cosa costituisce una funzionalità della piattaforma web e, soprattutto, se un'implementazione parziale è sufficientemente grave da non essere inclusa nel baseline.

A febbraio, il lavoro sulle funzionalità web era ancora lontano dall'essere completato. Pertanto, per spiegare il funzionamento di Baseline, stavamo cercando di capire quali funzionalità chiave sarebbero state incluse in Baseline 2024 senza disporre di tutti i dati necessari. Sulla carta, o meglio nei dati di compatibilità del browser che non sono stati aggiornati fino a settembre, quando è stato rilevato il problema, il popover sembrava essere incluso. Tuttavia, poiché il bug su iOS era sufficientemente grave da impedire l'utilizzo del popup, non era pronto.

Mancava inoltre un'infrastruttura di test per i dispositivi mobili. Il progetto Test della piattaforma web ci offre un modo per verificare che le funzionalità della piattaforma web funzionino su tutti i browser. Se questo problema di chiusura rapida fosse avvenuto in un browser desktop, avremmo notato che i test non andavano a buon fine, ma non è stato così per i dispositivi mobili.

Come possiamo evitare che si ripeta in futuro?

Siamo già in una posizione molto migliore con i dati. I dati sulle funzionalità web sono quasi completi, quindi possiamo avere un grado di certezza maggiore per qualsiasi funzionalità che stiamo dichiarando come di riferimento.

In particolare, con questo problema, parte del problema era identificare un problema che si verifica solo su dispositivi mobili, su iOS. Stiamo adottando alcune misure che dovrebbero semplificare la identificazione dei problemi di interoperabilità sui dispositivi mobili in futuro. Stiamo lavorando per migliorare i test mobile nei test della piattaforma web, quindi dovremmo essere in grado di identificare meglio quando un browser mobile presenta problemi, separatamente da quelli del desktop. Inoltre, quest'anno prevediamo di esporre questi dati nella dashboard webstatus.dev. Se in futuro si verifica un problema simile, dovremmo ricevere indicazioni più rapide in merito, possibilmente prima di includere la funzionalità in Baseline.

Abbiamo sempre saputo che mappare l'intera piattaforma web come un insieme di funzionalità non sarebbe stato facile. Tuttavia, le discussioni che stiamo conducendo su implementazioni parziali, bug e su cosa costituisce effettivamente una funzionalità sono incredibilmente preziose. Ci aiutano a identificare ciò che è veramente importante per te e ci forniscono indicatori migliori da utilizzare per pianificare iniziative come Interop 2025.