Veramente tutti sono standard del W3C anche gli elementi del linguaggio che sono stati decretati come deprecati sono standard del W3C, semplicemente non bisogna usarli.
La questione va vista così:tu puoi parlare in latino se vuoi, il latino era il linguaggio standard in occidente duemila anni fa, oggi non ti capirebbe più nessuno, ma parleresti comunque un linguaggio standard, solo un po' obsoleto.
Il W3C suggerisce, bada bene che non obbliga mai, ma suggerisce DTD diverse per ogni linguaggio in diversi formati:
HTML 4.0.1
- Loose: serve per utilizzare parole del linguaggio non più in uso, obsolete appunto;
- Strict: che come dice la parola è la più rispondente alle specifiche del linguaggio;
- Frameset: semplicemente serve per usare i frame e va usata solo nella pagina che richiama i frame.
XHTML 1.0
- Transitional: è simile alla Loose dell'HTML 4.x ci sono gli elementi del linguaggio deprecati, serve per lo più a dare una mano a quegli sviluppatori che dovevano passare dall'HTML allo XHTML, non andrebbe usata sui progetti nuovi:
- Strict: è quella aderente allo standard del linguaggio ed è quella che andrebbe usata per i progetti ex novo;
- Frameset: come sopra.
Cosa usare? Il W3C suggerisce di usare sempre l'ultima versione, la pratica invece ti dice un bel "dipende"! Dipende dal tipo di progetto.
Su quirksmode trovi tanto materiale, sia per rendere simile ( non è mai uguale bada bene ) i tuoi progetti su vari user agent ( tu dirai browser, ma mica esistono solo quelli, quindi il W3C dice user agent ).
Insomma se il tuo target di lavoro è il Web, usa sempre lo XHTML Strict per il resto, cioè la corripondenza tra delle pagine che sviluppi su vai user agent ti devi affidare ai folgi di stile, d'altronde sono solo i fogli di stile che devono rendere la pagina non il linguaggio in cui è scritta, se qualcosa non ti torna devi riguardare il foglio di stile non il codice (X)HTML.
Considera che se scrivi una pagina non validata perché hai omesso un elemento di chiusura, è un esempio, non tutti i browser te la faranno vedere allo stesso modo, in fondo la validazione serve solo a questo e non ad essere dei talebani del linguaggio![]()