Il Tag Soup è un fenomeno tipico delle pagine Web create prevalentemente da sviluppatori hobbisti o semi-professionisti ed è rappresentato dalla presenza di un gran quantità di comuni errori di scrittura del codice e di progettazione.

Gli esempi più tipici di Tag Soup sono:

  • Utilizzo dei tag HTML allo scopo di creare effetti grafici non rispettandone lo scopo semantico
  • Uso non appropriato di caratteri del tipo &, <, >.
  • Impiego non necessario di applet Java, per esempio allo scopo di ridefinire le funzionalità del pulsanti HTML (alcune versioni di FrontPage usano questa tecnica)
  • Elementi, attributi X-HTML e/o plug-in proprietari non conformi alle specifiche del W3C
  • Elementi d’intestazione <hx> che non rappresentano correttamente la struttura del documento
  • Markup ridondante ed inutilmente “esteso”, anche se valido, come per esempio una lunga, interminabile lista di parole chiave nell’intestazione del documento, oppure tabelle multiple innestate una nell’altra.
  • Utilizzo di trucchi ed artifici come la DOM injection per aggirare le limitazioni imposte da alcuni requisiti e garantire funzionalità non previste, come l’apertura di nuove finestre (target=blank) in XHTML 1.1

Il Tag Soup, in buona sostanza, equivale all’insieme di tutte quelle pagine non conformi alle specifiche “strict” del W3C sull’X-HTML e sui CSS.

In particolare, è utile rimarcare la differenza fra le varie grammatiche utilizzabili per una pagina Web, transitional e strict (https://webaccessibile.org/argomenti/argomento.asp?cat=475)   presenti nell’HTML 4, 4.01 e nell’XHTML 1.0.

La versione transitional prevede una serie di marcature deprecate presenti nelle precedenti versioni   permettendo così un passaggio – non a caso si chiama transitional – per quei siti che volevano migrare, per esempio, dall’HTML 3.2 al 4.0. Questo approccio, dichiaratamente provvisorio, rende possibile l’inserimento di tag dedicati alla formattazione del contenuto e quindi considera accettabile la mancata separazione fra contenuto e formato, separazione che è alla base di una pagina correttamente strutturata secondo la grammatica strict.

Appare quindi evidente che sviluppando pagine in HTML o XHTML strict si evita di cadere nel Tag Soup.