L'API Web Fonts proposta non arriva su WordPress 5.9, probabilmente atterrerà prima a Gutenberg

Pubblicato: 2021-11-12

Dopo quello che sembrava uno shoo-in per WordPress 5.9, una proposta API di font Web è stata sospesa. La funzione standardizzerebbe il modo in cui gli sviluppatori di temi e plugin caricano i caratteri e getterebbe le basi per future funzionalità rivolte agli utenti.

Jono Alderson ha aperto un ticket per il lungometraggio a febbraio 2019. Negli ultimi mesi, la proposta ha preso velocità. La richiesta pull aveva oltre 200 messaggi in-ticket, 93 commit e l'approvazione del codice da due committenti principali. L'API sembrava pronta. Tuttavia, negli ultimi giorni si è fermata.

Andrew Ozz, uno sviluppatore principale di WordPress, ha sostanzialmente interrotto la possibilità che la nuova API arrivi nella versione 5.9. Ha dichiarato di non ritenere che la proposta fosse pronta per WordPress.

"Solo come codice sembra buono", ha scritto nel biglietto. “È davvero ben documentato (grazie [Tonya Mark]!). Tuttavia, non riesco ancora a vedere come ciò renderebbe WordPress migliore a breve e lungo termine. Stavamo chattando con [Andrei Draganescu] e lui ha suggerito che idealmente questo avrebbe dovuto essere un plug-in di funzionalità, e sono d'accordo. Quindi sarebbe stato possibile testarlo davvero in produzione, verificare (o rifiutare) le ipotesi che sono state fatte durante la creazione e trasformarlo in un'aggiunta davvero degna di WordPress. Sfortunatamente è troppo tardi per questo ora per 5,9".

Uno dei problemi con i plug-in di funzionalità di test per le API è che non vengono spesso adottati, come altri hanno notato nel ticket. Gli sviluppatori non farebbero affidamento su di loro nella produzione nella maggior parte dei casi. E l'utente finale medio non installerebbe qualcosa di specifico per gli sviluppatori.

"Suggerire di farlo come plug-in di funzionalità è un modo elegante per ritardare qualcosa di alcuni anni", ha affermato Ari Stathopoulos, uno degli sviluppatori dietro l'API. Tuttavia, ha sottolineato che l'API REST è un'eccezione che ha funzionato abbastanza bene da essere trasferita in WordPress.

La proposta principale di WordPress verrà probabilmente inserita nel plug-in Gutenberg per ulteriori esplorazioni. Questa sarebbe una sorta di compromesso tra l'avvio come plug-in di funzionalità separato e l'ingresso in WordPress 5.9.

L'API dei caratteri Web non è direttamente correlata al sistema a blocchi. Sia i temi tradizionali che quelli a blocchi, così come i plug-in, potrebbero utilizzare la funzione oggi. Tuttavia, diverse proposte di Gutenberg si basano sull'esistenza dell'API, come consentire agli autori di temi di definire i caratteri Web tramite i loro file theme.json .

Ozz ha elencato diverse domande sulla proposta e diversi sviluppatori hanno risposto a ciascuna. Tuttavia, la sua argomentazione principale era imperniata sulla praticità del perché tutto nell'API fosse necessario, affermando che le risposte precedenti erano state "in linea di principio" e sembravano basate su ipotesi.

Al livello più elementare, l'API dei caratteri Web consentirebbe agli sviluppatori di registrare e caricare i caratteri ospitati localmente o quelli di Google Fonts. Gli sviluppatori potrebbero anche aggiungere provider personalizzati al di fuori delle due impostazioni predefinite. La prima iterazione dell'API proposta riguardava più la creazione di una base su cui costruire nelle future versioni di WordPress.

Il fascino della funzione non è semplicemente il caricamento dei caratteri. Tecnicamente, gli autori di temi potrebbero farlo con una singola riga di codice, se lo desiderassero. Quattro righe di codice se volessero seguire gli attuali standard di base di WordPress, almeno sul front-end.

Stathopoulos ha snocciolato un elenco di miglioramenti che tale API porterebbe a WordPress e alle sue estensioni.

  • I temi possono definire i caratteri tramite i loro file theme.json .
  • Anteprime dei caratteri nel selettore della famiglia di caratteri nell'editor.
  • Mostrare i pesi e gli stili dei caratteri validi per una famiglia di caratteri.
  • Prestazioni front-end migliorate.
  • Localizzazione lato server per prestazioni e privacy migliori.

Questo è stato un piccolo campione degli argomenti a favore dell'inclusione dell'API nel core di WordPress.

"Ci sono molti miglioramenti in Gutenberg che sono nel limbo, in attesa di un'API per i caratteri web", ha scritto Stathopolous nel ticket. “Non avere un'API per i font web è un ostacolo a questo punto. Non è un articolo utile nella nostra lista dei desideri, è un requisito per andare avanti".

Attualmente, nessuno standard si riferisce specificamente ai caratteri Web in WordPress. Gli autori di temi sfruttano le funzioni esistenti per accodare un foglio di stile di terze parti o uno personalizzato con le regole @font-face . Questa è stata generalmente una pratica accettata nella comunità degli autori di temi nel corso degli anni.

Tuttavia, molti lo hanno accettato a malincuore. Molti hanno creato script personalizzati per alleviare i punti deboli. Molti altri copiano semplicemente il metodo utilizzato dall'ultimo tema WordPress predefinito.

Uno degli obiettivi è fare in modo che gli sviluppatori non debbano preoccuparsi di fare tutto il lavoro extra necessario per caricare i font web. Non dovrebbe essere necessario un tema per capire come caricarli sia nell'editor che nel front-end, gestire il precaricamento o tenere conto della localizzazione. Poiché i temi invecchiano e le API di terze parti come Google Fonts cambiano, non ci sarebbe bisogno di aggiornare i temi se WordPress se ne occupasse sotto il cofano.

Il problema di come caricare al meglio i caratteri Web si moltiplica quando si aggiungono plug-in nel mix. In generale, i temi fanno tutto il lavoro pesante quando si tratta di design. Tuttavia, alcuni plugin saltano in quel lato del mondo di WordPress per aggiungere opzioni di stile extra. Non c'è modo di risolvere i conflitti quando si caricano più copie dello stesso font. Né ci sono modi infallibili per disabilitare i caratteri di un tema e sostituirli tramite il plug-in.

Uno di questi autori di plugin mi ha inviato un'e-mail per farmi sapere le notizie che avevo già saputo. L'API dei caratteri Web sembrava non essere più disponibile in WordPress 5.9. Lo sviluppatore si stava preparando per lanciare un nuovo sito Web e un servizio in aggiunta alla nuova funzionalità. Avevano anche una mascotte. A partire da ora, potrebbe solo dover aspettare.

La scadenza per il blocco delle funzionalità era di due giorni fa. Pertanto, è improbabile che l'API dei caratteri Web venga aggiunta di nuovo alla pietra miliare di WordPress 5.9. Forse gli sviluppatori lo vedranno quando arriverà la 6.0. Forse spingendolo al plug-in Gutenberg gli dà più vita, consentendo ai contributori di andare avanti con nuove funzionalità che si basano su di esso.