Struttura base di una pagina HTML
DOCTYPE, html, head, body — lo scheletro di ogni pagina web
Lo scheletro minimo obbligatorio
FONDAMENTALE
Ogni pagina HTML valida deve contenere questi elementi nell'ordine corretto:

<!DOCTYPE html> — dichiara al browser che usiamo HTML5 (deve essere la prima riga)
<html lang="it"> — elemento radice, l'attributo lang specifica la lingua
<head> — informazioni sulla pagina (non visibili all'utente): charset, titolo, CSS, meta
<body> — tutto il contenuto visibile della pagina va qui
HTML
RISULTATO
Commenti HTML
SINTASSI
I commenti si scrivono tra <!-- e -->. Sono ignorati dal browser e non appaiono nella pagina. Utili per documentare il codice o disabilitare temporaneamente del markup.
HTML
RISULTATO
Testo & Tipografia HTML
Titoli, paragrafi, enfasi, apici, pedici e tutti i tag di testo
Titoli h1–h6 e paragrafo p
FONDAMENTALE
HTML ha 6 livelli di titolo: da <h1> (il più importante, uno per pagina) a <h6> (il meno importante). Il tag <p> crea un paragrafo con spazio sopra e sotto. <br> inserisce un'interruzione di riga (tag vuoto, senza chiusura). <hr> crea una riga orizzontale di separazione.
HTML
RISULTATO
Enfasi, grassetto, apici, pedici e altri tag di testo
TESTO
TagSignificato semanticoAspetto default
<strong>importanza fortegrassetto
<em>enfasicorsivo
<b>senza semantica (solo grassetto)grassetto
<i>termine tecnico, straniero, ecc.corsivo
<mark>testo evidenziato/rilevantesfondo giallo
<small>testo secondario, note legalipiù piccolo
<del>testo cancellato/rimossosbarrato
<ins>testo inserito/aggiuntosottolineato
<sub>pedicebasso e piccolo
<sup>apicealto e piccolo
<abbr>abbreviazione (tooltip con title)puntini sotto
<cite>titolo di un'operacorsivo
<dfn>definizione di un terminecorsivo
<s>non più accurato (prezzo barrato)sbarrato
<u>annotazione non verbalesottolineato
HTML
RISULTATO
Citazioni: blockquote, q, pre, code, kbd
SEMANTICO
<blockquote> — citazione estesa (blocco), cite indica la fonte
<q> — citazione breve inline (aggiunge virgolette automatiche)
<pre> — testo preformattato (conserva spazi e a-capo)
<code> — frammento di codice inline
<kbd> — input da tastiera (tasti)
<samp> — output di un programma
<var> — variabile matematica o di programmazione
HTML
RISULTATO
Immagini
img, srcset, picture, figure, figcaption, lazy loading
Il tag <img> e gli attributi fondamentali
FONDAMENTALE
<img> è un tag vuoto (non ha tag di chiusura). Attributi obbligatori:
src — percorso dell'immagine (URL o relativo)
alt — testo alternativo (obbligatorio per accessibilità: descrive l'immagine agli screen reader)
Attributi opzionali: width, height (in px, senza unità), loading="lazy" (carica quando visibile), title (tooltip hover).
HTML
RISULTATO
figure, figcaption, picture e srcset
SEMANTICO
<figure> — contenitore semantico per immagini, diagrammi, codice con didascalia
<figcaption> — didascalia dell'immagine (prima o dopo l'img dentro figure)
srcset — fornisce versioni diverse per schermi diversi (responsive images)
<picture> — contenitore per sorgenti multiple (es. WebP + JPG come fallback), anche per art direction
HTML
RISULTATO
🔗 Vedi anche: Tag semantici Video HTML5
Liste
ul, ol, li, dl, dt, dd — liste nidificate
ul, ol, li — liste non ordinate e ordinate
FONDAMENTALE
<ul> (unordered list) — lista con pallini (bullet points)
<ol> (ordered list) — lista numerata. Attributi: start (numero iniziale), reversed (conta al contrario), type (1, A, a, I, i)
<li> — elemento di lista (si usa dentro ul e ol)
Le liste possono essere nidificate mettendo ul/ol dentro un <li>.
HTML
RISULTATO
dl, dt, dd — lista di definizioni
SEMANTICO
<dl> (description list) — lista di coppie termine/definizione
<dt> (description term) — il termine
<dd> (description details) — la definizione
Un <dt> può avere più <dd>, e viceversa. Usata per glossari, metadati, FAQ.
HTML
RISULTATO
Tabelle HTML
table, thead, tbody, tfoot, tr, th, td, caption, colspan, rowspan
Struttura completa di una tabella
FONDAMENTALE
<table> — contenitore della tabella
<caption> — titolo/didascalia della tabella (primo figlio di table)
<thead> — sezione di intestazione (righe di titolo)
<tbody> — corpo della tabella (dati principali)
<tfoot> — piè di pagina della tabella (totali, note)
<tr> — riga (table row)
<th> — cella di intestazione (grassetto, centrata di default, con scope)
<td> — cella dati normale
HTML
RISULTATO
colspan e rowspan — celle che occupano più spazio
AVANZATO
colspan="N" — la cella occupa N colonne orizzontalmente
rowspan="N" — la cella occupa N righe verticalmente
<colgroup> / <col> — per stilare colonne intere (span su col per più colonne)
HTML
RISULTATO
Tag Semantici HTML5
header, footer, main, nav, section, article, aside, div, span
Layout semantico di una pagina
SEMANTICO
I tag semantici descrivono il significato del contenuto (non solo la forma), migliorando accessibilità e SEO.

<header> — intestazione di pagina o sezione (logo, navigazione, titolo)
<nav> — blocco di navigazione principale
<main> — contenuto principale unico della pagina (uno solo per pagina)
<section> — sezione tematica generica con heading
<article> — contenuto autonomo (post, notizia, commento)
<aside> — contenuto laterale/correlato (sidebar, widget, note)
<footer> — piè di pagina o di sezione
<div> — contenitore generico (NO semantica, solo per layout/stile)
<span> — contenitore inline generico (NO semantica)
HTML
RISULTATO
📐 div vs section vs article: usa article se il contenuto ha senso da solo (puoi rsindicarlo), section per raggruppare contenuti correlati con heading, div solo per esigenze di stile/layout senza significato semantico.
Sezionamento & Outline
section, article, aside, hgroup, address e l'outline del documento
Tutti i tag di sezionamento in dettaglio
SEMANTICO
TagUsoContiene heading?
<section>Raggruppamento tematico con h1-h6Sì (obbligatorio)
<article>Contenuto autonomo e sindicabileSì (obbligatorio)
<aside>Contenuto tangenzialmente correlatoOpzionale
<nav>Blocco di link di navigazione principaleOpzionale
<hgroup>Raggruppa titolo + sottotitoloContiene h1-h6
<address>Informazioni di contatto dell'autore/proprietarioNo
<main>Contenuto principale (uno solo per pagina)No (non è sectioning)
HTML
RISULTATO
Elementi Inline
span, time, data, ruby, wbr e tutti gli inline semantici
Tag inline meno conosciuti ma utili
SEMANTICO
TagUsoAttributo chiave
<time>Data/ora leggibile da macchinadatetime="2025-01-15"
<data>Collegamento a valore numericovalue="42"
<ruby>Annotazione fonetica (lingue asiatiche)
<rt>Testo di annotazione ruby (sopra)
<rp>Parentesi fallback ruby
<wbr>Suggerisce punto di a-capo opzionale
<bdi>Isola testo bidirezionale
<bdo>Override direzione del testodir="rtl"
HTML
RISULTATO
Form HTML — Base
form, action, method, fieldset, legend, label
Struttura di un form completo
FONDAMENTALE
<form> — contenitore del modulo. Attributi principali:
action — URL di destinazione dei dati (dove vengono inviati)
methodGET (dati nell'URL) o POST (dati nel corpo, per dati sensibili)
enctypemultipart/form-data per upload file
novalidate — disabilita la validazione HTML5
<fieldset> — raggruppa campi correlati (con bordo)
<legend> — titolo del fieldset
<label> — etichetta per un input. L'attributo for deve corrispondere all'id dell'input.
HTML
RISULTATO
Tutti i tipi di <input>
text, email, password, number, date, color, range, file, checkbox, radio e tutti gli altri
La lista completa dei type di input
HTML5
typeUsoInterfaccia mobile
textTesto libero (default)
emailIndirizzo email (validato)Tastiera email
passwordTesto nascosto
numberNumero con min/max/stepTastiera numerica
telNumero di telefonoTastiera telefono
urlURL (validato)Tastiera URL
searchCampo di ricerca (X per cancellare)
dateData (year-month-day)Date picker
timeOra (HH:MM)Time picker
datetime-localData + ora localeDateTime picker
monthAnno e meseMonth picker
weekAnno e settimanaWeek picker
colorSelettore coloreColor picker
rangeSlider tra min e maxSlider
fileUpload file (accept, multiple)
checkboxCasella sì/no
radioScelta esclusiva (stesso name)
hiddenCampo invisibile (dati extra)
imageSubmit con immagine
submitPulsante invio
resetPulsante reset
buttonPulsante generico (JS)
HTML
RISULTATO
Attributi degli Input
required, placeholder, value, min, max, pattern, autocomplete, autofocus, readonly, disabled
Tabella completa degli attributi
HTML5
AttributoTipoDescrizione
nametuttiNome del campo (chiave nei dati inviati)
idtuttiIdentificatore univoco (per label for=)
valuetuttiValore iniziale del campo
placeholdertext, email…Testo suggerito (scompare al focus)
requiredtuttiCampo obbligatorio
disabledtuttiDisabilitato (non inviato)
readonlytext, email…Sola lettura (inviato comunque)
min / maxnumber, date…Valore minimo/massimo
stepnumber, rangeIncremento per frecce
minlength / maxlengthtext, emailLunghezza minima/massima
patterntext, email…Espressione regolare di validazione
autocompletetext, email…on/off o nome campo (email, name…)
autofocustuttiFocus automatico al caricamento
multipleemail, filePermette più valori
acceptfileTipi di file accettati (.pdf, image/*)
checkedcheckbox, radioSelezionato di default
sizetextLarghezza in caratteri
listtextID di un datalist per suggerimenti
inputmodetuttiTipo tastiera mobile (numeric, email…)
HTML
RISULTATO
textarea, select, button, datalist, output
Tutti gli elementi di un form oltre agli input
select, optgroup, textarea, button, output
FORM
<select> — menu a tendina. multiple permette selezione multipla, size mostra N opzioni visibili
<optgroup> — raggruppa opzioni con un'etichetta
<option> — singola voce del select. value = valore inviato, contenuto = testo visualizzato
<textarea> — area di testo multiriga. rows, cols, resize (CSS)
<button> — pulsante. type="submit" (default), type="reset", type="button"
<datalist> — suggerimenti per input text
<output> — risultato di un calcolo (collegato a un form)
HTML
Volume: 50
RISULTATO
Validazione HTML5
required, pattern, min, max, minlength — validazione nativa del browser
Validazione integrata: niente JavaScript
HTML5
HTML5 offre validazione nativa senza scrivere JavaScript. Il browser mostra messaggi di errore automatici quando si invia il form con dati non validi.

:valid / :invalid — pseudo-classi CSS per stilare i campi in base alla validità
:required — stilare i campi obbligatori
novalidate sull'elemento form — disabilita la validazione (per gestirla manualmente con JS)
HTML
RISULTATO
Video HTML5
video, source, track, controls, autoplay, loop, muted, poster
Il tag <video> e i suoi attributi
MEDIA
AttributoDescrizione
srcPercorso del file video (alternativa a <source>)
controlsMostra i controlli del player (play/pausa/volume…)
autoplayParte automaticamente (richiede muted sui browser moderni)
mutedSilenziato (obbligatorio per autoplay)
loopRiproduzione in loop
posterImmagine da mostrare prima del play
preloadauto, metadata, none
width / heightDimensioni del player
playsinlineVideo inline su iOS (non fullscreen)

<source> dentro <video> permette più formati (il browser usa il primo supportato).
<track> aggiunge sottotitoli/didascalie (formato WebVTT).
HTML
RISULTATO
Audio HTML5
audio, source, controls, autoplay, loop, muted, preload
Il tag <audio>
MEDIA
Identico a <video> ma senza immagine. Attributi analoghi: controls, autoplay, muted, loop, preload.
Usa <source> per fornire più formati (MP3, OGG, WAV) per compatibilità cross-browser.
HTML
RISULTATO
iframe & Embed
iframe, embed, object — contenuto esterno e incorporato
iframe — contenuto esterno in una finestra
MEDIA
<iframe> incorpora un'altra pagina HTML all'interno della pagina corrente. Usi comuni: video YouTube/Vimeo, mappe Google, widget social, documenti PDF.

src — URL del contenuto
width / height — dimensioni
title — obbligatorio per accessibilità
loading="lazy" — carica solo se visibile
allowfullscreen — per video fullscreen
sandbox — restringe le capacità dell'iframe (sicurezza)
HTML
RISULTATO
⚠️ L'attributo sandbox su iframe limita JS, form, popup. Usa sandbox="allow-scripts allow-same-origin" per concedere solo le autorizzazioni necessarie.
SVG inline
circle, rect, path, line, polygon, text, viewBox
SVG direttamente nell'HTML
AVANZATO
SVG (Scalable Vector Graphics) può essere incorporato direttamente nell'HTML con il tag <svg>. Vantaggi: stilabile con CSS, animabile, accessibile, niente richiesta HTTP aggiuntiva.

viewBox — "0 0 width height" definisce il sistema di coordinate
xmlns — necessario solo in file SVG standalone
Forme principali: circle, rect, ellipse, line, polyline, polygon, path
Attributi di stile: fill, stroke, stroke-width, opacity
HTML
RISULTATO
Meta tag & SEO
charset, viewport, description, og:, twitter:, robots
I meta tag fondamentali
HEAD
TagUso
<meta charset="UTF-8">Codifica caratteri (sempre per prima)
<meta name="viewport">Responsive design su mobile
<meta name="description">Descrizione per i motori di ricerca (160 car.)
<meta name="keywords">Parole chiave (ignorata da Google)
<meta name="author">Autore della pagina
<meta name="robots">index/noindex, follow/nofollow
<meta name="theme-color">Colore barra browser mobile
<meta property="og:title">Open Graph — titolo per social
<meta property="og:image">Open Graph — immagine per social
<meta name="twitter:card">Twitter Card type
<meta http-equiv="refresh">Redirect automatico (secondi;url=…)
HTML <head>
RISULTATO
Script & JavaScript
script, defer, async, type="module", noscript, posizionamento
defer vs async vs posizionamento
PRESTAZIONI
MetodoParsing HTMLEsecuzione JSConsigliato per
<script> in <head>BloccatoSubito⛔ Da evitare
<script> in fondo al <body>ContinuaDopo il DOM✓ Compatibile
deferNon bloccatoDopo parsing (in ordine)✓ Consigliato
asyncNon bloccatoSubito dopo downloadSolo per script indipendenti
type="module"Non bloccatodefer di defaultES6 Modules
HTML
RISULTATO
Attributi Globali
id, class, style, title, tabindex, hidden, contenteditable, lang, dir
Attributi validi su qualsiasi elemento HTML
GLOBALE
AttributoValoriUso
idstringa unicaIdentificatore univoco per CSS/JS/ancore
classlista classiClassi per CSS e JS (più valori separati da spazio)
styleCSS inlineStile diretto (specificità massima)
titlestringaTooltip al hover, info aggiuntiva
langit, en, fr…Lingua del contenuto dell'elemento
dirltr, rtl, autoDirezione del testo
hiddenbooleanNasconde l'elemento (equivale a display:none)
tabindexnumeroOrdine di tabulazione. 0=focus, -1=non tabulabile
contenteditabletrue/falsePermette modifica del testo da parte dell'utente
draggabletrue/falseElemento trascinabile (Drag and Drop API)
spellchecktrue/falseControllo ortografico del browser
translateyes/noSe tradurre l'elemento (es. nomi propri: no)
accesskeycharTasto di scelta rapida da tastiera
autocapitalizeon/off/words…Maiuscola automatica mobile
HTML
RISULTATO
Attributi data-*
Custom data attributes — dataset API in JavaScript
data-* — dati personalizzati nell'HTML
AVANZATO
Gli attributi data-* permettono di memorizzare dati personalizzati direttamente negli elementi HTML, senza dover usare attributi non standard o classi JS.

Sintassi HTML: data-nome-attributo="valore"
Accesso JS: element.dataset.nomeAttributo (camelCase automatico)

Esempi d'uso: ID di prodotti, configurazioni, tooltip personalizzati, stati UI, parametri animazione.
HTML
RISULTATO
ARIA & Accessibilità
role, aria-label, aria-hidden, aria-expanded, aria-live, tabindex
ARIA — Accessible Rich Internet Applications
ACCESSIBILITÀ
ARIA aggiunge semantica aggiuntiva agli elementi per gli screen reader. Usare sempre prima HTML semantico (il div non è un bottone!); ARIA è il completamento, non il sostituto.

AttributoUso
roleRuolo: button, dialog, alert, navigation, banner, main, complementary
aria-labelEtichetta testuale (alternativa al testo visibile)
aria-labelledbyID dell'elemento che funge da etichetta
aria-describedbyID dell'elemento che descrive (es. messaggio errore)
aria-hidden="true"Nasconde agli screen reader (icone decorative)
aria-expandedStato aperto/chiuso di un menu/accordion
aria-requiredCampo obbligatorio (per screen reader)
aria-liveRegioni aggiornate dinamicamente (polite, assertive)
aria-currentElemento corrente in navigazione (page, step)
aria-disabledElemento disabilitato semanticamente
HTML
RISULTATO
Template & Web Components
<template>, <slot>, Shadow DOM, Custom Elements
<template> — HTML inerte riusabile
AVANZATO
<template> — contiene HTML che non viene renderizzato né eseguito finché non viene clonato via JavaScript. Perfetto per componenti riutilizzabili.
<slot> — segnaposto per contenuto iniettato dall'esterno (usato con Shadow DOM)
Custom ElementscustomElements.define('tag-mio', Classe) crea tag HTML personalizzati
Shadow DOM — albero DOM incapsulato (stili e JS isolati dal documento principale)
HTML
RISULTATO
details, summary, dialog, popover
Componenti interattivi nativi senza JavaScript
details + summary — accordion nativo
INTERATTIVO
<details> — widget di disclosure: nasconde/mostra il contenuto al click.
<summary> — primo figlio di details, funge da titolo cliccabile.
open — attributo booleano: se presente, il details è aperto di default.
<dialog> — modale/dialog nativo HTML5. Metodi JS: .show(), .showModal(), .close().
popover — attributo HTML per popup non bloccanti (HTML 2024+).
HTML
RISULTATO
Attributi Interattivi
contenteditable, draggable, inputmode, enterkeyhint, autocapitalize
Attributi per interazione e mobile
INTERATTIVO
AttributoValoriUso
contenteditabletrue/false/plaintext-onlyRende modificabile qualsiasi elemento
draggabletrue/falseAbilita drag and drop HTML5
inputmodenumeric, decimal, email, url, search, tel, text, noneTipo di tastiera su mobile
enterkeyhintenter, done, go, next, previous, search, sendEtichetta del tasto Invio su mobile
autocapitalizenone, sentences, words, charactersMaiuscola automatica mobile
autocorrecton/offCorrezione automatica (Safari/iOS)
spellchecktrue/falseControllo ortografico browser
HTML
RISULTATO
Entità HTML
Caratteri speciali, simboli, spazi — &amp; &lt; &gt; &nbsp;
Le entità HTML principali
SINTASSI
Le entità HTML si usano per inserire caratteri che altrimenti verrebbero interpretati come codice (< > &) o non presenti sulla tastiera. Si scrivono come &nome; oppure &#codice; (decimale) o &#xHEX; (esadecimale).

EntitàCarattereDescrizione
&amp;&E commerciale
&lt;<Minore di
&gt;>Maggiore di
&quot;"Virgolette doppie
&apos;'Apostrofo
&nbsp; Spazio non separabile
&copy;©Copyright ©
&reg;®Marchio registrato ®
&trade;Trademark ™
&euro;Euro €
&pound;£Sterlina £
&yen;¥Yen ¥
&mdash;Trattino lungo —
&ndash;Trattino medio –
&laquo; &raquo;« »Virgolette caporali
&hellip;Puntini di sospensione …
&#9829;Cuore ♥ (decimale)
&#x1F600;😀Emoji 😀 (hex)
HTML
RISULTATO
Versioni HTML & DOCTYPE
Storia di HTML, DOCTYPE, differenze tra versioni
L'evoluzione di HTML
STORIA
VersioneAnnoNote
HTML 1.01991Tim Berners-Lee al CERN — solo testo e link
HTML 2.01995Prima specifica formale IETF
HTML 3.21997Tabelle, applet, scripting base (W3C)
HTML 4.011999CSS separato, frame, form avanzati. Tre varianti: Strict, Transitional, Frameset
XHTML 1.02000HTML recritto come XML. Più rigido (tutto lowercase, chiusura obbligatoria)
HTML52014Rivoluzione: video, audio, canvas, semantica, localStorage, API. DOCTYPE semplificato
HTML Living Standard2019+WHATWG — non più versioni, spec sempre aggiornata

DOCTYPE HTML5 — l'unico che usi oggi: <!DOCTYPE html>
DOCTYPE HTML 4.01 Strict (storico): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "...">
Il DOCTYPE dice al browser in quale modalità renderizzare (standards mode vs quirks mode).
HTML
RISULTATO
Quiz HTML
Testa le tue conoscenze — 20 domande su tutti gli argomenti
0
punti
0
corrette
0/20
Cheatsheet HTML
Riepilogo rapido di tutti i tag e attributi principali
📐 Struttura
<!DOCTYPE html>sempre prima riga
<html lang="it">elemento radice
<head>metadati, CSS, title
<body>contenuto visibile
<!-- commento -->ignorato dal browser
📝 Testo
<h1>…<h6>titoli (h1 = principale)
<p>paragrafo
<br>interruzione riga
<hr>riga orizzontale
<strong>importanza (grassetto)
<em>enfasi (corsivo)
<mark>evidenziato
<del> <ins>cancellato / inserito
<sub> <sup>pedice / apice
<abbr title="">abbreviazione
🔗 Link & Media
<a href="">link
target="_blank"nuova scheda
rel="noopener"sicurezza blank
<img src="" alt="">immagine
loading="lazy"lazy load immagine
<figure> <figcaption>immagine + didascalia
<picture> <source>img responsive/formati
<video controls>video HTML5
<audio controls>audio HTML5
<iframe src="">embed contenuto
📋 Liste
<ul> <li>lista puntata
<ol> <li>lista numerata
ol type="A/a/I/i"tipo numerazione
ol start="3"numero iniziale
ol reversedconta al contrario
<dl> <dt> <dd>lista definizioni
🗂️ Tabelle
<table>contenitore
<caption>titolo tabella
<thead> <tbody> <tfoot>sezioni
<tr> <th> <td>riga, intestazione, cella
colspan="2"occupa 2 colonne
rowspan="3"occupa 3 righe
scope="col/row"accessibilità th
🏗️ Semantica
<header>intestazione
<nav>navigazione
<main>contenuto principale (1x)
<section>sezione tematica
<article>contenuto autonomo
<aside>sidebar / correlato
<footer>piè di pagina
<address>info contatto
<div> <span>generici (no semantica)
📝 Form
<form method="">GET / POST
<input type="">22 tipi disponibili
<label for="id">etichetta accessibile
<textarea>testo multiriga
<select> <option>menu a tendina
<fieldset> <legend>raggruppa campi
<button type="">submit/reset/button
<datalist>suggerimenti input
<output>risultato calcolo
✅ Attributi input
requiredobbligatorio
placeholdertesto suggerimento
disableddisabilitato (non inviato)
readonlysola lettura (inviato)
min / max / steplimiti numerici
minlength / maxlengthlunghezza testo
pattern=""regex validazione
autofocusfocus automatico
autocompleteon/off/campo
⚙️ Attributi Globali
ididentificatore unico
classclassi CSS/JS
styleCSS inline
titletooltip
hiddennasconde elemento
tabindexordine tabulazione
lang / dirlingua / direzione
contenteditabletesto modificabile
draggabledrag & drop
data-*dati personalizzati
🧠 Head
<title>titolo scheda browser
meta charsetUTF-8 sempre prima
meta viewportresponsive mobile
meta descriptionsnippet Google (160ch)
meta og:*Open Graph social
link rel=stylesheetCSS esterno
link rel=canonicalSEO URL preferito
link rel=preloadprecarica risorsa
script deferJS non bloccante
♿ ARIA
role=""ruolo semantico
aria-labeletichetta screen reader
aria-hidden="true"nasconde da SR
aria-expandedstato aperto/chiuso
aria-live="polite"aggiornamento dinamico
aria-current="page"pagina corrente nav
✨ HTML5 Avanzato
<details> <summary>accordion nativo
<dialog>modale nativo
<template>HTML inerte riusabile
<svg> inlinevettoriale stilabile
<canvas>grafica 2D via JS
<time datetime>data leggibile da macchina
inputmodetastiera mobile
srcset / pictureimmagini responsive