Come sopportare IE6 e vivere felici

Mercoledì 26 Novembre, 2008

Trovo sempre un certo "malore" quando affronto l'argomento "compatibilità tra i browser". Inoltre, e devo ancora capirne il vero motivo, tra tutti i browser che conosco quello più "antipatico" rimane sempre lui: Microsoft Internet Explorer 6! Purtroppo la release 6 di IE è ancora in circolazione e sono frequenti le segnalazioni di problemi nella visualizzazione delle pagine.
Un Web Developer deve quindi organizzarsi in modo tale da avere a disposizione tutti gli strumenti per il controllo e la verifica del proprio (sudato) lavoro su tutti i possibili browser (e piattaforme) disponibili. Microsoft Internet Explorer, più degli altri, rende questo compito più arduo in quanto - ad oggi - è necessario verificare le proprie pagine web sia con la più recente versione 8 (ancora in beta) sia con le precedenti versioni, come la 6 o la 5.5. Esistono vari modi per far convivere versioni diverse di Explorer (vedi Usare Microsoft Internet Explorer 6 e 7 contemporaneamente) ed in alternativa esistono anche ottimi (anche se un po' lenti) servizi online.

image

Un'altra ottima possibilità, che funziona bene su Windows Vista, è rappresentata da IETester, un'applicazione completamente gratuita e realizzata dagli stessi sviluppatori di DebugBar e Companion.JS. IETester, nonostante sia ancora in beta e con qualche crash in agguato, permette rapidamente di verficare le nostre pagine - contemporaneamente - sia su IE5.5, IE6, IE7 e IE8 beta.

Patch CSS

Se grazie a IETester riusciamo a scovare un difetto negli stili, cioè un'interpretazione diversa tra IE6 e IE7, o IE6 e FireFox, ad esempio, trovata la soluzione dobbiamo far in modo che solo IE6 usi la nuova definizione. A me, ad esempio, è capitato con un margine! Avevo una classe che impostava il margine destro a 28px e, su tutti i browser, il risultato era identico, tranne che con IE6! Su quest'ultimo, per rendere il layout identico, dovevo usare un valore di 8px.
Un modo assai semplice, facile da ricordare ed estremamente immediato per risolvere il problema, è quello di "sovrascrivere" il nostro stile caricando un diverso file ad hoc solo se il browser è il - temuto - IE6:

CSS:
  1. /** ___ file ie_override.css
  2. * uso questo file per sovrascrivere uno stile
  3. */
  4. div.mystyle{margin-left:8px}

HTML:
  1. <!-- stili per tutti i browser -->
  2. <link rel="stylesheet" href="css/style.css" type="text/css">
  3. <!-- stili solo per IE6 -->
  4. <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="css/ie_override.css" /><![endif]-->

Post correlati

Riflettendo su Joost, Apollo e i Browser

Venerdì 20 Aprile, 2007

Perchè passare ad Apollo per visualizzare HTML e contenuto dinamico quando un browser già lo permette? Perchè usare Joost per vedere la Net TV quando un browser già lo permette?

Perchè chi produce browser non ha inserito due semplici funzioni al loro interno:

  • Finestre Windowless
  • P2P Object

Finestre Windowless

Questa semplice caratteristica permetterebbe di sfruttare al meglio la connessione HTTP e di rendere davvero utili i browser. Poter aprire finestre (popup nella pratica) con il solo titolo e senza bordi, casomai in trasparenza, aumenterebbe la produzione di Widget da sfruttare con i normali browser, al pari di quello che fa oggi Apollo. Con uno studio attento sulla sicurezza (in quanto penso sia oggi l'unico motivo di questo limite) si aprirebbero scenari davvero interessanti.

P2P Object

Come tutti sappiamo oramai tutti i browser supportono l'oggetto XMLHttpRequest, che ha dato vita ad una quantità sconfinata delle cosiddette applicazioni Ajax. Questo oggetto, utilizzabile tramite Javascript, è in grado di fornire un canale HTTP - parallelo - gestibile tramite script client, sia per l'ìinvio che per la ricezione dati.
Primo o poi, come anticipato in vari altri Blog, Adobe inserirà un P2P all'interno di Flash. Perchè non fare la stessa cosa nei Browser? Un oggetto di questo tipo unito a funzionalità Windowless permetterebbe di creare applicazioni simil-Joost senza installare nulla sulla propria macchina, garantendo una cross-compatibilità degna di Internet, aumentando quindi anche l'efficienza della produzione (ad oggi Joost è sviluppato per ogni singolo sistema operativo, cosa assai gravosa - sia in termini economici che temporali - infatti le beta si susseguono...).

Insomma finestre con RSS FEED testo, audio e video da posizionare dove vogliamo sul nostro desktop, in vero standard W3C. Apertura si canali TCP direttamente da Javascript, con possibilità di scambio dati sconfinate. Evidentemente la volontà è poca e la "criminalità" è alta; hackers, Spam e Phishing sono in agguato e mosse di questo tipo terrorizzano un po' tutti...

Post correlati

Accessibilità e Usabilità: unobtrusive Javascript

Martedì 27 Marzo, 2007

Permettere agli utenti di interagire con una pagina Web ha prodotto negli ultimi anni un notevole aumento nell'uso di script lato client: codice Javascript in grado di rispondere e manipolare in tempo reale tutta una serie di informazioni. Il Web2.0 è la massima espressione di questa capacità di interazione, dove l'utente finale - il navigatore -partecipa attivamente alla costruzione e all'evoluzione del sito Web, interagendo con esso e contribuendo personalmente. Si parla quindi di User-Generated Content (o UGC - contenuto generato dagli utenti) che vede il "navigatore" sicuramente meno passivo!

Per realizzare questa interazione, per permettere quindi all'utente finale di aggiungere il suo contributo, sono state sviluppate una serie di tecniche che hanno modificato l'aspetto e il comportamento delle pagine Web (statiche sino ad oggi, mentre adesso simili alle tradizionali applicazioni dei Desktop) negli ultimi anni. Modificare il contenuto di una pagina, inviare dei file, dare il proprio voto ad un video o a un documento, registrarsi o modificare i propri dati, sono solo alcune delle operazioni richeste in tanti servizi (2.0 beta) presenti sul Web.

Continua a leggere... »

Post correlati

Web2.0: Gran Paradiso-Firefox 3.0 e Apollo

Lunedì 12 Marzo, 2007

È disponibile online la versione Alpha 2 di Firefox 3.0, nome in codice Gran Paradiso. Tra le novità annunciate (la versione definitiva è attesa per fine 2007) troviamo la possibilità di utilizzare il browser in modalità off-line. Tutto questo ricorda Adobe Apollo che, nonostante non si presenti come browser, ne evoca i tratti essenziali.

Continua a leggere... »

Post correlati

Browser War: la guerra continua?

Martedì 6 Marzo, 2007

A Sunnyvale, California, Yahoo riunisce al Silicon Valley WebBuilder Mike Shaver di Mozilla, Chris Wilson del team Microsoft di IE e Hoon Lie di Opera, per confrontarsi sull'attuale state dell'eterna guerra tra i browser.

Da sottolineare sono le parole di Mike Shaver di Mozilla:

Don't look to the W3C for the future

E le critiche alla mancata presenza di Apple:

They refused to send someone saying that "we are busy writing software".

Che, tra l'altro, dista 10 miglia da dove si è tenuto l'incontro!

Post correlati

Web2.0: Adobe ci prova con Apollo?

Martedì 13 Febbraio, 2007

Apollo è il nome in codice (per ora) di un ambizioso progetto Adobe destinato al mondo  RIA (Rich Internet Applications) e Web2.0, Ajax compreso. A qualcuno ricorda Macromedia Contribute, a qualcun'altro Macromedia Central. C'è, altresì, chi vede in Apollo la mera unione -  o possibilità - di far convivere elementi Flash e PDF (cosa tra l'altro già fattibile con Flash Paper)!

Continua a leggere... »

Post correlati

browsershots.org: multiple browser output

Martedì 23 Gennaio, 2007

Ecco la risposta alla drammatica incompatibilità con i vari browser attualmente disponibili. Browsershots.org è un servizio - gratuito per ora e open source - che fornisce un modo semplice per verificare se un sito è visualizzato allo stesso modo su varie piattaforme e vari browser.

Grazie ad una piccola server-farm casalinga, gli autori di questo utilissimo servizio mettono a disposizione gli output video delle schermate generate dal vostro Web, così da poter verificare la correttezza dell'interpretazione HTML/CSS su varie macchine e browser: Linux PLD 2.0 (Ac), Windows 2003 (Server), Windows NT 5.1 (XP), Mac OS X 10.4 (Tiger) ed altre.

browsershot-serverform

Il sito è davvero ben curato, con tanto di documentazione wiki, sorgenti, roadmap e timeline. Inoltre è possibile visualizzare gli ultimi screenshots, lo stato delle code-di-processo e lo stato della factories. Unica nota dolente, ma superabile, è il tempo richiesto per la generazione degli screen-shot, un po' lento! Tuttavia è un grosso aiuto ai Web Developer per verificare la correttezza del loro lavoro, senza dover installare browser e/o macchine virtuali per far convivere - ad esempio - Internet Explorer 6 e 7. Sono supportati praticamente tutti i browser, da FireFox a Safari. Interessante è la possibilità di verifcare IE6 e IE7, insieme alle versioni 5.01 e 5.5.
Bravi!

Post correlati

Usare Microsoft Internet Explorer 6 e 7 contemporaneamente

Domenica 3 Dicembre, 2006

Sul Blog di IE7 è uscito un articolo (IE6 and IE7 Running on a Single Machine) che potrebbe migliorare le notti insonni di molti sviluppatori Web! Microsoft si è resa conto (fortunatamente) che l'avvento di Internet Explorer 7 causa, di fatto, l'abbandono della precedente versione 6. Infatti non è possibile far convivere entrambi i browser sulla stessa macchina. Per gli utenti finali questo non è un problema, ma per gli sviluppatori Web che vogliono mantenere una compatibilità con la versione 6 è un vero e proprio disastro. La soluzione, proposta su vari altri Blog, è quella di utilizzare una macchina virtuale, come VMWare o Virtual PC della setssa Microsoft.

L'indicazione è quella di installare sulla macchina reale principale l'ultima release del browser, la versione 7. Dotarsi poi di un player o di un software di virtualizzazione così da far girare virtualmente in questo ambiente separato la vecchia versione 6 di explorer.

NOTA BENE:

Microsoft mette a disposizione anche un file con un ambiente già virtualizzato, scaricabile all'indirizzo:
http://go.microsoft.com/fwlink/?LinkId=70868

Questo file si traduce in un .vhd file, non utilizzabile con VMWare. Inoltre chi possiede un Windows XP Home - come vedrà - non potrà utilizzare Virtual PC 2004 di Microsoft che richiede almeno Windows XP Professional (sul sito questa informazione è indicata davvero male!).

Tuttavia, quasi a voler essere un pesce d'aprile, il 1 Aprile 2007 questa macchina virtuale non sarà più utilizzabile! Nel Blog viene comunque sottolineato che il team di sviluppo spera di poter rilasciare in futuro ulteriori aggiornamenti di queste macchine virtuali preconfezionate.

Morale, questa soluzione è comunque approssimativa e non soddisfa davvero tutti! Andrebbe permesso l'uso di VMWare e quindi rilasciata una macchina virtuale compatibile con questo software, palesemente concorrente a Virtual PC 2004 - da poco rilasciato free da Microsoft ;) - o travare un modo per convertire il file .vhd di Microsoft in un file accettabile per VMWare. Se avete suggerimenti...

Post correlati

Internet Explorer 7 e Opera: un mondo a parte

Venerdì 24 Novembre, 2006

Conitnua a stupire la totale differenza di resa tra i vari browser in commercio. IE7 tratta i PNG (ad 8 bit o 24) in modo differente da FireFox. Anche Opera non è esente da qualche strana manifestazione a riguardo. Nel particolare i PNG usati come sfondo sono resi in modo differente da IE7, Opera e FireFox. Quest'ultimo è quello che si comporta meglio di tutti e a tal proposito sarebbe ora di nominarlo browser del "secolo"! Complimenti al team di sviluppo.

IE7 crea un simpatico effetto di taglio su un'immagine PNG usata come sfondo in repeat-x. Se provate a creare un immagine di 200x200 pixel con una sfumatura che va dal nero (0x000000) a grigio (0xeeeeee) in verticale e la posizionate nel CSS come sfondo del body in ripetizione orizzonale (repeat-x), impostando come sfondo del body il colore 0xeeeeee - ovvero la fine della sfumatura, noterete che solo FireFox rende perfettamente lo stacco, IE7 e Opera mostrano un simpatico effetto di taglio (ma leggermente diverso!!!): in pratica si vede la fine della nostra immagine 200x200 e l'inizio dello sfondo a colore piatto.

Un modo per risolvere il problema è quello di salvare la nostra immagine in GIF...

Ma i PNG non erano supportati da IE7?

Post correlati

Sciopero dei Web Developer: boicottiamo IE7

Martedì 21 Novembre, 2006

E' giunta l'ora - per gli sviluppatori Web - di prendere misure drastiche contro l'ostinata mania dell'incompatibilità tra i browser. Proponiamo, quindi, un simpatico boicottaggio di Microsoft Internet Explorer 7 che, dopo anni di sviluppo, blog, referendum e white paper, continua a mostrare evidenti sintomi di incompatibilità cronica. Ci dispiace in fin dei conti criticare continuamente il lavoro dei "colleghi" di Redmond, ma i difetti riscontrati nell'ultima release di Explorer sono così macroscopici che non possono essere percepiti come semplici sviste.
La cosa più preoccupante è la presenza di bachi clamorosi presenti già nella versione 6 di IE! Non è possibile, quindi, accettare un simile comportamento da chi possiede un monopolio incontrastato del software di navigazione Internet più diffuso. Purtroppo, infatti, Internet Explorer 6 risulta ancora il browser più utilizzato, anche se FireFox in questi anni ha percorso orgogliosamente la sua strada verso un successo tutto meritato.
Basta, quindi, con patch HTML, CSS e Javascript (o JScript?!)!

Browser tutti uguali?

C'è chi sostiene che una perfetta compatibilità tra i browser non sarà mai raggiunta. In effetti qual'è la vera differenza tra Internet Explorer e FireFox? Ad oggi le funzioni di feed, zoom, schede, ecc... sono presenti su praticamente tutti i browser in commercio, da Safari a Opera. Quindi quale scegliere? Forse non si deve scegliere! E' proprio questo quello che manca. Oggi, invece, siamo tutti costretti a scegliere, sia come Web Developer che come end-user. L'esperienza, infatti, ci insegna che quel sito è navigabile con Safari, ma quell'altro è funzionante solo con FireFox. In pratica, sulla propria macchina, bisognerebbe avere almeno 3/4 browser per essere sicuri di navigare con tranquillità nell'immmensità di Internet!
Il chè ci pare davvero assurdo!
E il bello è che è già così!!
Se aggiungi un sito tra i preferiti ti devi ricordarti di esportarlo negli altri quattro browser, altrimenti se non sia mai domani ti trovi a navigare con un browser diverso non trovi più il link che ti eri - giustamente - memorizzato. Se memorizzi un certificato delle tua banca? Le liste dei feed? Insomma, questo è un gioco al massacro, non certo informatica!
Bisognerebbe prima di tutto sistemare una volta per tutte la questione della resa visiva dei browser (CSS/HTML/XML, ... ) e della compatibilità di scripting (Javascript/JScript). Fatto questo, allora, stupire il mondo con un browser in grado di possedere delle caratteristiche proprie e non un copia di quelle di un'altro!

Ognuno di noi è libero - o dovrebbe essere libero - di installare sul proprio PC il browser che ritiene più idoneo. La questione è che questa libertà ci viene negata dall'incompatibilità dei browser e il lavoro dei Web Developer diventa faticoso, costoso (in termini di tempo e denaro) e poco efficente, con rischi continui di bachi nascosti e altre falle!

Post correlati