Abusare di una caratteristica dei CSS è dannoso

Abusare di una caratteristica dei CSS è dannoso

Quella che segue è la traduzione di un articolo di David Baron (Mozilla) apparso alcuni anni fa sul suo blog. L'idea alla base dell'articolo può di fatto essere estesa a qualsiasi caratteristica dei CSS.

Avevo intenzione di scrivere sull'argomento nei mesi scorsi, da quando fu pubblicato l'articolo di Alex Robinson In search of the One True Layout (dopo una discussione al riguardo su Bugzilla). Meglio tardi che mai, comunque.

L'articolo descrive una tecnica che usa i float in modo differente dal loro uso designato. I float sono stati progettati al fine di estrarre piccole porzioni di contenuto fuori dal flusso, lasciando il resto del testo ad avvolgerle. Non sono stati progettati per essere usati per il contenuto principale di una pagina e neppure sviluppati per questo scopo. Nondimeno, l'uso dei float per il contenuto principale di una pagina è abbastanza comune oggi.

Cosa ancor peggiore, tale uso dipende da dettagli estremamente oscuri dell'implementazione attuale dei float, dettagli così oscuri che nessuno ha precedentemente pensato di descrivere nelle specifiche CSS. Ciò significa che l'uso diffuso di questa tecnica farà in modo che tutti i futuri browser dovranno correggere questi dettagli oscuri.

Questa situazione è simile all'uso delle tabelle per l'impaginazione, uso che ora è ampiamente riconosciuto come abuso. L'abuso attuale dei float è perseguito allo scopo di risolvere uno dei problemi causati dall'abuso delle tabelle: l'uso scorretto della marcatura semantica. Tuttavia, esso sta perpetuando altri problemi causati dall'abuso delle tabelle:

  • Rende più difficile scrivere browser web.

    Significa che i browser web (e gli autori delle specifiche) hanno bisogno di conoscere gli stessi dettagli, anche quando questi dettagli non avrebbero importanza. Significa che si deve impiegare un lavoro maggiore per un numero più esiguo di caratteristiche, e che le nuove caratteristiche (che potrebbero diminuire il bisogno di questo abuso) non ricevono attenzione (e non vengono implementate) o ne ricevono meno (e hanno più bug).

  • Rende più difficile sviluppare standard per il Web.

    La dipendenza degli autori da dettagli molto oscuri dell'impaginazione dei float sta a significare che questi dettagli non potranno essere perfezionati in seguito (proprio come la resa predefinita delle tabelle sul Web non può essere migliorata). Ciò significa che le future versioni dei CSS non saranno mai in grado di migliorare quello che accade quando gli autori vogliono estrarre una piccola porzione di testo o un'immagine fuori dal flusso (l'uso designato dei float) senza che essi abbiano la necessità di specificare una proprietà extra che dica "fallo nel modo giusto". Gli autori (collettivamente) dovrebbero sia evitare l'abuso di standard esistenti sia riconoscere che il comportamento predefinito degli standard, una volta implementato, non può mai essere perfezionato. Ho sentito richieste degli autori per entrambe le cose, ma è una scelta che non può procedere su due fronti.

  • Riduce la spinta all'implementazione di tecnologie migliori.

    Oltre a sottrarre risorse allo sviluppo di soluzioni migliori al problema, l'abuso di tecniche esistenti riduce la spinta all'organizzazione degli standard e dei browser per sviluppare queste nuove soluzioni. In questo caso, ciò significa una soluzione migliore per il riordinamento del contenuto. Per gli altri usi dei float, questo implica un modo migliore di costruire layout basati sulle dimensioni intrinseche.

In sintesi, l'abuso degli standard del Web (1) colpisce l'uso designato e (2) riduce la probabilità di trovare una soluzione migliore al problema in futuro. Rallentare la velocità del "progresso" oggi potrebbe aiutare ad aumentarla in futuro.

Torna su