Salta al contenuto principale

Terminologia

a11y

a11y è il numeronimo di "accessibility" (accessibilità) - la lettera a, undici lettere elise e la lettera y. Indica la progettazione e la realizzazione di interfacce web utilizzabili da persone con disabilità, in linea con le linee guida WCAG. La sigla analoga i18n è usata per l'internazionalizzazione.

ARIA

ARIA sta per Accessible Rich Internet Applications, una specifica W3C di attributi HTML (ruoli, stati, proprietà) che trasmettono la semantica di interfacce dinamiche o personalizzate alle tecnologie assistive. La sua prima regola è usare un elemento HTML nativo invece di ARIA ogni volta che è possibile.

BEM

BEM sta per Block, Element, Modifier - una metodologia di naming delle classi CSS che struttura i nomi come block__element--modifier per mantenere gli stili piatti, prevedibili e a bassa specificità. Limita gli stili per convenzione anziché tramite tooling, riducendo i conflitti di cascade nei fogli di stile grandi.

CDN

CDN sta per Content Delivery Network - un insieme geograficamente distribuito di server edge che mettono in cache e servono asset statici vicino agli utenti, riducendo la latenza e alleggerendo l'origine. Le build front-end spesso pubblicano bundle e immagini con hash su una CDN, e i siti SSG possono essere serviti interamente da essa.

CLS

CLS sta per Cumulative Layout Shift, un Core Web Vital che quantifica il movimento inatteso del contenuto della pagina durante il caricamento. Un punteggio buono è 0,1 o meno; si migliora riservando spazio per immagini, annunci ed embed con dimensioni esplicite o aspect-ratio.

CORS

CORS sta per Cross-Origin Resource Sharing - un meccanismo di sicurezza del browser che usa header HTTP per permettere a un server di accettare richieste da origini diverse dalla propria. Il browser blocca per default le letture cross-origin secondo la same-origin policy; gli header CORS (come Access-Control-Allow-Origin) la allentano selettivamente.

CSR

CSR sta per Client-Side Rendering, dove il browser riceve HTML minimo e costruisce la pagina con JavaScript dopo il caricamento. È il comportamento predefinito delle SPA semplici e si contrappone a SSR (rendering lato server) e SSG (generazione statica).

CSS

CSS sta per Cascading Style Sheets - il linguaggio standard per descrivere la presentazione dell'HTML, inclusi layout, colore, tipografia e animazioni. Il termine "cascading" si riferisce all'algoritmo che risolve le regole in conflitto per origine, specificità e ordine.

CSSOM

CSSOM sta per CSS Object Model - l'albero in memoria delle regole CSS analizzate dal browser, la controparte di stile del DOM. Il browser combina DOM e CSSOM nel render tree, quindi il CSS render-blocking che ritarda il CSSOM ritarda anche il primo paint.

CWV

CWV sta per Core Web Vitals - l'insieme di metriche di performance misurate sul campo e centrate sull'utente di Google (LCP, INP, CLS) che valutano caricamento, reattività e stabilità visiva e contribuiscono ai segnali di ranking di ricerca.

DOM

DOM sta per Document Object Model - la rappresentazione strutturata ad albero e accessibile via script di un documento HTML che il browser costruisce e che JavaScript legge e modifica per aggiornare la pagina.

ESM

ESM sta per ECMAScript Modules - il sistema di moduli JavaScript standardizzato che usa import ed export, supportato nativamente in browser e Node.js. La sua struttura statica abilita il tree shaking, distinguendolo dal più vecchio formato CommonJS (require).

FCP

FCP sta per First Contentful Paint - il tempo dalla navigazione fino a quando il browser renderizza il primo elemento di contenuto del DOM (testo o immagine). È una metrica di caricamento in Lighthouse, più a inizio timeline rispetto a LCP.

FID

FID sta per First Input Delay - un ex Core Web Vital che misurava il ritardo tra la prima interazione di un utente e la capacità del browser di rispondere. È stato sostituito tra i Core Web Vitals da INP nel marzo 2024 perché INP cattura tutte le interazioni, non solo la prima.

HMR

HMR sta per Hot Module Replacement - una funzionalità di sviluppo che inietta i moduli aggiornati in un'app in esecuzione senza ricaricamento completo, preservando lo stato e velocizzando l'iterazione. È fornita da dev server come Vite e webpack e non incide sulle build di produzione.

i18n

i18n è il numeronimo di internazionalizzazione - progettare il software in modo che possa essere adattato a lingue, regioni e formati diversi senza modifiche al codice. Il termine correlato l10n (localizzazione) è l'atto di adattarlo a una specifica locale.

INP

INP sta per Interaction to Next Paint - il Core Web Vital per la reattività, che riporta la latenza input-to-paint più lunga durante una visita. Un INP buono è 200 millisecondi o meno; ha sostituito FID nel marzo 2024.

JSX

JSX sta per JavaScript XML (o JavaScript Syntax eXtension) - la sintassi simile all'HTML resa popolare da React che compila in chiamate di funzione di creazione elementi. È una sintassi di espressione incorporata in JavaScript, non un template a stringa.

LCP

LCP sta per Largest Contentful Paint - il Core Web Vital che misura quando il blocco di testo o l'immagine più grande nella viewport termina il rendering. Un LCP buono è 2,5 secondi o meno.

PWA

PWA sta per Progressive Web App - un sito web arricchito con un service worker, un web app manifest e HTTPS così da essere installabile, capace di funzionare offline e simile a un'app. Offre una portata da app senza la distribuzione tramite app store.

SPA

SPA sta per Single-Page Application - un'app che carica una sola volta e aggiorna la vista lato client tramite routing JavaScript, evitando ricaricamenti completi di pagina. Le SPA sono spesso abbinate a SSR o SSG per correggere le debolezze di primo caricamento e SEO.

SSG

SSG sta per Static Site Generation - il rendering delle pagine in HTML al momento della build, così che una CDN possa servirle senza calcolo per richiesta. Offre prestazioni e sicurezza al top per contenuti che cambiano di rado.

SSR

SSR sta per Server-Side Rendering - la generazione di HTML completo per richiesta sul server, inviato al browser per visualizzazione immediata e poi idratato per l'interattività. Migliora primo paint e SEO rispetto al rendering puramente client.

TTI

TTI sta per Time To Interactive - una metrica di Lighthouse che indica quando una pagina è pienamente interattiva, cioè ha renderizzato contenuto utile e risponde rapidamente e in modo affidabile all'input. Il pesante lavoro sul main thread dovuto a grandi bundle JavaScript ritarda il TTI.

TTFB

TTFB sta per Time To First Byte - il tempo dall'inizio della richiesta fino all'arrivo del primo byte della risposta, che riflette elaborazione del server e latenza di rete. Un TTFB lento ritarda tutto ciò che segue, incluso LCP, e si migliora con caching, una CDN e origini più veloci.

UMD

UMD sta per Universal Module Definition - un pattern di modulo JavaScript che funziona come variabile globale del browser, come modulo AMD o come modulo CommonJS da un unico file. Precede l'ESM nativo ed è ancora usato per pubblicare librerie consumabili in molti ambienti.

WCAG

WCAG sta per Web Content Accessibility Guidelines - lo standard W3C che definisce come rendere accessibile il contenuto web, organizzato secondo i principi POUR (Perceivable, Operable, Understandable, Robust) e i livelli di conformità A, AA e AAA. WCAG 2.1 AA è la baseline legale e contrattuale comune.

XSS

XSS sta per Cross-Site Scripting - una vulnerabilità in cui uno script controllato dall'attaccante viene eseguito nel browser di una vittima su un sito fidato. Le difese front-end includono la codifica dell'output, l'evitare innerHTML non sanificato, l'escaping automatico dei framework e una CSP rigorosa.

CSP

CSP sta per Content Security Policy - un header HTTP che limita le sorgenti da cui il browser può caricare script, stili e altre risorse, mitigando XSS e iniezioni. Una policy rigorosa basata su nonce è un forte controllo di difesa in profondità.

SRI

SRI sta per Subresource Integrity - una funzionalità di sicurezza in cui un