A Ovest Di Paperino

Welcome to the dark side.

Standard e trasparenza

Ieri giochicchiavo con una piccola feature da inserire in Blogoo che avevo stimato in mezz’ora di research and development (ma poi è andata a finire in leggera contro-tendenza). Volevo fare in modo che nel momento in cui si invia un commento comparisse una finestra trasparente con una ruota che gira stile boot loader di OS X. La parte più difficile dell’impresa è stata trovare la gif animata: l’avevo vista in giro usata come avatar in diversi forum, ma non ne ho mai annotato la URL e ritrovarla è stata una missione quasi impossibile. Come vuole Murphy oggi ho notato una GIF molto simile e a tratti meglio indicata navigando per caso.

Trovata la GIF è stato abbastanza semplice generare il codice JavaScript che implementasse la funzionalità voluta: un bel DIV in primo piano ma nascosto che diventa visibile con il click del pulsante, roba che si trova in giro al primo secondo colpo ravanando su stackoverflow.com.

Le ultime difficoltà le ho trovate implementando il livello di trasparenza in maniera tale che funzionasse con i tre motori di rendering principali e le varie sub-version. Il browser più problematico è stato – manco a dirlo – IE8, che nella modalità di rendering di default non ne voleva proprio sapere di gestire la direttiva. Bingolando tra i forum si trova solo gente incazzata e poca razionalità: se ci penso mi sono incazzato anche io pensando quanto fosse stupido scegliere di non supportare l’opacità così come era disponibile in IE7. La realtà invece è molto più pragmatica: la vecchia sintassi non è “conforme” e lo standard dice chiaramente cosa fare in presenza di tag non conformi e cioè vanno ignorati. I dettagli sono racchiusi in questo post. La cosa che mi ha fatto più riflettere è che la totalità delle lamentele di cui ho letto era critica nei confronti di tale scelta giustificando l’astio con qualche pregiudizio. E mi son reso conto che quanto avevo letto in passato e cioè che molti hanno chiesto a gran voce il supporto agli standard non sapendo neanche quanto di ciò che usassero lo fosse davvero; chi scriveva faceva l’esempio dei bordi arrotondati che “tutti gli altri browser” supportano tranne IE. Esempi che poi sono alla base di test suites come gli (in)famosi Acid Test v. 3.

Morale della favola: non sempre quello che si desidera è quello che si dice di voler desiderare. Si è desiderato a gran voce il pieno supporto degli standard quando in realtà si voleva “un rendering che fosse compatibile quanto più possibile tra i vari browser”.

L’ultimo ostacolo era la mancata animazione della GIF in IE8 su Win7/RC; ho notato subito che era un problema legato al caching delle GIF ed è bastato aggiungere un parametro casuale fasullo alla fine della URL per risolverlo. Questo ad ulteriore supporto del fatto che non ritengo che questo sia il miglior mondo possibile dal punto di vista dell’HTML e dintorni bachi inclusi. Come ci si muove da questo al prossimo (HTML 5? Flash/Gears/SL vNext?) è un problema per niente banale.

-quack

P.S. funziona?