Dissuadere gli utenti di Internet Explorer tramite uno script

Per lungo tempo Internet Explorer è stato in modo assoluto ed incontrastato il browser più utilizzato al mondo. Questo è dipeso principalmente da strategie di preinstallazione aggressive (e blocco della disinstallazione), ma forse non sarebbe un gran problema se Internet Explorer funzionasse decentemente.

Vi spiego che intendo per decentemente: un browser dovrebbe supportare, al momento del rilascio, tutte le tecnologie web già divenute standard de iure e anche magari qualcuna di quelle standard de facto (ma questo è opzionale). Ci sarebbero poi da fare anche molti discorsi sulla sicurezza ma tralasciamo. Internet Explorer è noto per non supportare granché delle migliori tecnologie CSS. Con Javascript sembra andare un po’ meglio solo perché gli autori di Jquery e librerie simili fanno davvero i miracoli per far funzionare tutto, in realtà non è tutto oro quello che luccica. Addirittura bisogna inserire un meta tag nelle pagine per far comportare Internet Explorer (a partire dalla versione otto) in modo un po’ più normale, altrimenti fa apposta a comportarsi male.

Questo cosa implica? Si arriva all’ironica regola che ho inventato e deciso di chiamare del 3+3:

Se ci vogliono 3 giorni per creare e far funzionare qualcosa in un browser standard, ci vogliono 3 mesi per far funzionare la stessa cosa con Internet Explorer.

Sembra una battutina, però è vero, e i problemi sono ancora peggiori.

La situazione attuale

Prima vi parlavo delle date di rilascio e dovremmo fare un altro piccolo approfondimento su questo. Di seguito riporto le date di rilascio ufficiali per le varie versioni di IE:

  • versione 6 – 2001
  • versione 7 – 2006
  • versione 8 – 2009
  • versione 9 – 2011

Secondo Microsoft il 10% delle persone usa Internet Explorer nella versione 6, che è uscita 10 anni fa. Anche se al tempo fosse stato il browser migliore della categoria, ora è comunque un suicidio navigare con quella roba. Figuratevi sviluppare siti che funzionino lì. Lo stato delle cose è grave: si stima che il 40% delle persone usi Windows XP che ha come ultima versione disponibile la 8, vecchia di 2 anni (ma in realtà anche di più).

È la stessa azienda di Redmond che incoraggia le persone ad aggiornare subito il browser, il problema è che lo fa invitando a usare Internet Explorer 8 oppure 9. Se vi state chiedendo che male ci sia, leggete l’articolo Internet Explorer 9 e il supporto ai web standard per rendervi conto che seppur uscito nel 2011 è parecchio indietro rispetto a qualsiasi altro browser che rispetta veramente gli standard (per citarne alcuni Firefox, Safari, Chrome, Opera…).

Tra uno o due anni saremo punto e a capo: molti utenti che usano Internet Explorer e rimangono indietro, con gli sviluppatori web che si strappano i capelli cercando di fare siti web funzionanti.

Lo script dissuasore

Per fortuna, se gestite dei siti web e come me volete evitare di diventare pazzi, dovendo avere anche a disposizione una macchina Windows per fare test esotici e sperare che le cose funzionino, potete offrire ai vostri utenti un’alternativa migliore.

Basandomi sul vecchio script di Explorer Destroyer, nella versione modificata da Xavier, ho ritoccato e sistemato un popup che avvisa gli utenti di Internet Explorer che è consigliabile passare a Firefox, fornendo utili motivazioni, e l’ho racchiuso in uno script PHP di facile utilizzo per chi realizza siti web. Questo non impedisce ai navigatori con IE di vedere il sito (basta cliccare un link e l’avviso sparisce).

Perché Firefox? In realtà si poteva decidere di consigliare alle persone di usare un browser che supporti gli standard (che in parole meno gentili vuol dire “qualsiasi altro browser”), però secondo me è bene consigliare Firefox per almeno 3 motivi:

  • è ragionevolmente diffuso e multipiattaforma, così l’utente può riconoscerlo e usarlo altrove
  • è software libero
  • dando un’indicazione generica (“installa qualcos’altro…”) senza fornire alternative è poco efficace perché molto probabilmente chi usa Explorer non ne conosce e non ha voglia di cercarne una

Il procedimento di installazione e configurazione sul proprio sito richiede 5 minuti, e una volta finito chi naviga con IE riceverà una volta al giorno (oppure ogni tot di giorni a vostra scelta) questo messaggio:

Messaggio visualizzato da Internet Explorer 6

La scelta che ho voluto fare è quella di iniettare il codice nella pagina solo se ad un primo controllo fatto via PHP l’utente usa Internet Explorer. Questo vuol dire che l’HTML non viene “sporcato” se chi naviga usa altri browser, e quindi le pagine sono anche lievemente più veloci da scaricare e visualizzare.

Come installarlo

Come detto prima, lo script richiede:

  • la presenza di PHP
  • l’accesso FTP all’hosting
  • il poter individuare (o generare con PHP) una stringa contenente il giusto tag <body> da passare alla funzione

Per prima cosa avrete bisogno di scaricare l’archivio contenente lo script e un riassunto di queste istruzioni. Potete fare il download da qui e poi dovete caricare la cartella IE nella radice del vostro hosting.

A questo punto la serie di cose da fare è abbastanza semplice.

Se volete, cambiate il valore var daysToSleep = 0; nel codice per impostare quanti giorni di “riposo” deve attraversare l’avviso prima di ricomparire nuovamente.

  • 0 significa che verrà mostrato una volta al giorno
  • -1 significa che verrà mostrato su ogni singola pagina, sempre

Quindi bisogna modificare il file “header” o equivalente del proprio CMS (di solito va fatto nel tema che si utilizza), e inserire al posto del tag <body> il codice seguente, opportunamente adattato:

<?php
// inserisce il semplice tag body per Firefox, il check per Explorer
require(getenv("DOCUMENT_ROOT").'/IE/IEcode.php');
printbody( <ARG> );
>

Al posto di <ARG> bisogna inserire la stringa del body (un esempio potrebbe essere <body class='prova'>) secondo le convenzioni del linguaggio PHP. Se si vuole inserire un semplice tag senza attributi si può anche lasciare la funzione senza argomento (non una stringa vuota “”).

Salvate le modifiche è tutto, potete provare con qualsiasi browser cambiando il vostro user-agent per vedere se funziona (se non usate IE vedrete male il banner, questo ve lo spiego nel paragrafo seguente). Chi usa Windows può fare la prova direttamente da Internet Explorer senza che sia necessario modificare la configurazione del browser.

Personalizzare il codice e il problema della PNG

Con un minimo di conoscenza di HTML troverete facilmente dove mettere le mani in fondo al file PHP per cambiare il testo della casella gialla. Fate attenzione però se volete cambiare il banner di Firefox con uno degli altri forniti da Mozilla. Vi ricordo infatti che le versioni più vecchie di Internet Explorer non hanno supporto alle PNG trasparenti, e ci sono innumerevoli discussioni e hack riguardo alla risoluzione di questo problema. Personalmente, dato che il banner è una sola immagine, ho optato per quella del filter.

Il codice del banner di Firefox, rispetto alla versione originaria di Mozilla, è il seguente:


<a href='http://www.mozilla.org/firefox?WT.mc_id=aff_en11&WT.mc_ev=click'>
<img src='http://www.mozilla.org/contribute/buttons/120x240bubble_b.png' alt='Firefox Download Button' border='0'
style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', src='http://www.mozilla.org/contribute/buttons/120x240bubble_b.png'); padding-top: 240px;" />
</a>

Se volete sostituire il pulsante, dovete cambiare solo l’url dell’immagine (che è presente 2 volte come potete notare) e il padding-top dev’essere uguale all’altezza della stessa, perché così Explorer nasconde l’immagine e la ricarica sopra con AlphaImageLoader. Per questo qualsiasi browser normale vi farebbe vedere l’immagine scostata verticalmente. Be’, alla fine l’importante è che funzioni su IE!

Conclusione

La strada verso un web fatto di standard aperti, affermati e condivisi è estremamente importante. Il browser è il software che usiamo tutti i giorni, perciò risulta fondamentale che questo visualizzi le pagine web in un modo corretto e moderno. Nel nostro piccolo possiamo fare qualcosa per far conoscere alle persone un software libero che funziona molto meglio di Internet Explorer e quindi da un leggero contributo a evitare i mal di testa.

Se usate lo script sul vostro sito mi farebbe piacere ricevere un commento per saperlo e se lo ritenere interessante diffondete la notizia.

19 pensieri su “Dissuadere gli utenti di Internet Explorer tramite uno script

  1. Geniale!
    Sto giusto giusto dando gli ultimi ritocchi ad un sito in questi giorni: vedrò se riesco ad inserirlo.🙂

  2. carrozzone è un pò grossa come parola, IE 9 è migliorato parecchio, ora non ho in mano fonti ma avevo letto da siti “non di parte” che con gli standard non era messo male..
    comunque se su windows lascio IE9 uso chrome, firefox dalla versione 4 non mi convince🙂 (parere personale) su linux uso chromium..
    infine aggiungo: hai detto bene lazza “motivazioni”, se dovete dire ad una persona “cambia browser” fategli capire sempre il perchè e il per come fornendo spiegazioni sui vantaggi e i possibili (onestà sempre) svantaggi😛 altrimenti un user generico che vede un popup o una finestra in più che gli si apre, lo fa solo innervosire.. col risultato che non la legge e la chiude..
    saluti lazza!🙂

  3. quel “impedisce a Microsoft di controllare il futuro di internet” mi sembra un pò catastrofico😛
    ri-ciao lazza.. buona domenica🙂

  4. Sono d’accordo con l’idea di sbarazzarsi almeno delle versioni più vecchie di iexplorer, ma non mi pare corretto presentare un’unica alternativa, nello specifico solo Firefox. Mi verrebbe da dire che tale “senso unico” sia un atteggiamento “in stile microsoft”, ma non sarebbe neppure più vero, da quando c’è il ballot screen almeno. Tra l’altro, consigliare ad un utente che stia usando (per esempio) IE6, e che quindi si suppone abbia un pc vetusto, di passare a quel succhia ram di FF (tant’è che Mozilla stessa ha promesso che la prossima versione non sarà più un’idrovora) non mi pare neppure assennato. Glissiamo sui catastrofismi molto anni ’90 legati a MS e il dominio del mondo. A parer mio iniziativa concettualmente buona ma realizzata male.

  5. Ho cambiato lo user agent e aggiornato la pagina 4-5 volte tenendo premuto Ctrl per forzare la cancellazione della cache, eppure continuo a non trovare traccia del codice HTML. Strano! Be’ se ti funziona meglio così.🙂

  6. Ora lo sto visualizzando con Explorer 8 da un PC con XP: non la visualizza nella homepage, ma appena ci si sposta su un’altra pagina spunta fuori in tutta la sua magneficenza…😀

  7. E se a qualcuno piacesse utilizzare IE e trovasse più comodo navigare con quello?
    Ammettiamo pure che IE abbia qualche problema, ma il vero programmatore ama la sfida, quindi ci si mette d’impegno a far funzionare il suo sito con qualsiasi browser in modo da lasciare ad ognuno la LIBERTA’ di scegliere il browser che preferisce!
    E perché dovrei impedire a Microsoft di controllare il futuro di Internet e dare questa possibilità a Firefox? Preferisco fidarmi di Microsoft piuttosto che del signor nessuno che gesticse Firefox.
    E poi di facilitare il lavoro a chi fa i siti web, sinceramente, non me può importare un granchè, se uno è pagato per fare siti web? bene, li faccia !!! E li faccia per tutti ! Altrimenti se lo fa e poi se lo vede da solo, lui e quelli che usano firefox (molto pochi in confronto a quelli che usano IE).

  8. Sarebbe utile documentarsi prima di fare un commento del genere. Andiamo con ordine, innanzitutto IE non ha “qualche” problema, ha un numero lunghissimo di problemi di incompatibilità e sicurezza, che non posso scrivere tutti qui, ma si possono leggere su alcuni siti specializzati.
    In secondo luogo, il “signor nessuno” che gestisce Firefox è Mozilla, una fondazione no-profit legalmente registrata negli Stati Uniti e in altri paesi del mondo, che lavora usando standard universalmente riconosciuti, certificati e condivisi con tutte le altre aziende del settore, tra cui Opera, Google e Apple. Anche volendo, non potrebbe controllare Internet dato che sottostà in tutto e per tutto a questi standard universali e la cui documentazione è pubblica al 100% e controllata dal consorzio W3C (per dirla in parole povere “quelli che hanno inventato Internet”). Senza considerare il fatto, non trascurabile, che tutto il codice sorgente è a disposizione.
    Riguardo al programmatore… be’ veramente si sta parlando di web designer, non di developer. Comunque sia chi sa fare il suo lavoro come si deve utilizza le tecnologie moderne, condivise e universali di cui sopra, e così facendo le cose funzionano subito su tutti i browser, tranne Internet Explorer, che per politiche commerciali non implementa le più basilari funzioni o presenta problemi assurdi (il double floating margin è un esempio “simpatico”, ma c’è di peggio).
    Non mi pronuncio neanche troppo sul fatto che molte più persone usano IE rispetto a Firefox… un po’ di matematica basilare dovrebbe permette di intendere che se sia Firefox che Chrome in Europa sono più utilizzati di Explorer (bada, senza contare Safari e Opera) evidentemente gli utenti IE non devono essere poi molti. In tutto il mondo meno del 35% di persone usa IE, quindi tutti gli altri usano browser aggiornati e compatibili con gli standard del web, che per inciso sono pienamente supportati da smartphone Android e iPhone/iPad.
    Ora seguendo il tuo ragionamento è come se nel nostro attuale mondo dove gli affari si fanno parlando inglese, un tizio pretendesse di giocare in borsa a Wall Street parlando Zulu perché ha deciso che gli standard condivisi da tutti non vanno bene (ma solo a lui). Tu a quanto pare obbligheresti tutti i broker a imparare lo Zulu, io semplicemente consiglierei al tizio di adeguarsi, o gli altri farebbero bene a smettere di far affari con lui.
    Consigliare Firefox è un modo come un altro di dare un consiglio più generico, ovvero “usa un qualsiasi browser che ti pare ma che supporti gli standard” e aggiungerei “e che sia almeno almeno aggiornato al 2011”. Visto che IE6 è uscito più di 10 anni fa, direi che proprio non va bene. Anche Microsoft ha avviato una campagna per “estinguerlo”.

  9. Io non sto difendendo IE !!! Sto solo difendendo la LIBERTA’ di ogni individuo di scegliere!
    Di scegliere Firefox o Chrome o IE o Safari o qualsiasi altra cosa gli passi per la mente.
    A gusto non c’è prezzo! D’altronde in giro c’è un sacco di gente che compra automibili Fiat!
    Se tutto si riducesse solo ad una scelta meramente tecnica credo che non ci sarebbe tutta questa gente che le compra!
    E comunqe ciò che è gratis puzza sempre. Perché qualcuno dovrebbe darti qualcosa gratis? Che cosa ci guadagna? Attenzione a tutto ciò che è gratis. Perchè un tizio dovrebbe lavorare mesi o anni per sviluppare qualcosa da darti gratis? non ne vedo il motivo o l’utilità e, sinceramente, tutta questa filantropia, nel mondo moderno, non la vedo proprio.
    Per concludere sono più propenso a fidarmi di qualcuno che mi vende qualcosa piuttosto che di qualcuno che me la regala. Se qualcuno per strada ti dicesse: “vieni qui carino, avvicinati che ti regalo una casa”, ti fideresti? Non credo!
    Se volessi dare un consiglio “generico” (come sostieni), dovresti dire di non usare IE perché ha dei problemi e proporre, almeno, altri 3 o 4 browser, perché proponendone solo uno qualcuno potrebbe pensare che hai qualche interesse a proporre proprio quello.
    Saluti

  10. No in realtà hai esordito proprio difendendo IE e negandone i problemi, non pensare che non si noti la tua fallacia di invertire le premesse. Mi dovresti invece dire come si fa a minare la libertà di una persona dandole un semplice consiglio con due frasi su una pagina web. Se tu sei in grado di fare una cosa del genere ti consiglio di lavorare nell’industria pubblicitaria, faresti i miliardi.
    Il discorso della gratuità è una cosa diversa, che pure arriva a conclusioni che non reggono. A parte il fatto che esiste il volontariato, cosa che ti consiglio di provare almeno una volta nella vita, tutti i browser più conosciuti sono ottenibili gratuitamente, ma non è ciò che li differenzia, né significa che gli sviluppatori non siano stipendiati o sovvenzionati.
    La grande differenza, al di là dei meriti tecnici (l’unico pessimo è IE), è che Firefox è software libero e gli altri no. E sinceramente, la mia coscienza mi rende molto difficile consigliare alla gente dei software proprietari che per di più usano chissà come i dati degli utenti… Ognuno poi deciderà se migliorare la propria vita sul web con Firefox o altri software simili. Oltre al fatto ovvio che duecento consigli confondono e basta.

  11. 1) Non ho negato i problemi di IE, tant’è che ho detto “ammetiamo pure che IE abbia dei problemi”. Ed io, personalmente, uso Chrome a casa mia (al lavoro uso quello che c’è).
    2) La libertà non si mina dando consigli su una pagina web (oguno può dare i consigli che vuole, spetta agli altri accettarli o meno), ma sviluppando siti che non possono essere visualizzati da tutti i browser.
    3) Sviluppare un qualsiasi programma o browser e darlo via gratis non è porprio da considerarsi volontariato, quello è tutt’altra cosa ed ha a che fare con cose come quella che prima chiamavo filantropia (dal greco φιλία (filia) e ἄνϑρωπος (antropos) ossia amore nei confronti degli esseri umani). Non mischiamo l’oro col piombo!
    4) Se gli sviluppatori sono pagati e sovvenzionati, chi li paga? Chi li sovvenziona? e sopratutto perché, se in tasca non glie ne viene nulla?
    5) Prima dici; “tutti i browser più conosciuti sono ottenibili gratuitamente” (cito testualmente) e poi dici: “Firefox è software libero e gli altri no” (anche qui cito testualmente). Delle due l’una!
    6) Perché tu sai come Mozzilla usa i dati degli utenti? Non credo che vengano a dirlo a te o a qualcun’altro.
    7) Ovvio che ognuno deciderà come gestire la propria vita sul web, ma chi pretende di dare consigli spassionati e non interessati dovrebbe proporre più scelte e non magnificarne una sola. Duecento consigli confondono solo se si ha a che fare con degli stupidi, ma una persona intelligente preferisce sapere che ci sono tante cose da provare e poi ne sceglie una. Quando acquisti un auto o un cellulare o qualsiasi altra cosa non credo che tu scelga la prima cosa che ti viene proposta.
    Saluti

  12. Io sviluppo siti con HTML e CSS. Qualsiasi browser che sia compatibile con queste tecnologie universalmente accettate lo visualizzerà correttamente. Se devo perdere giorni o settimane solo per un programma sviluppato da degli scimpanzé preferisco dedicarmi ad altro.
    Nel caso di Mozilla è una fondazione non-profit, e la policy di uso dei dati è ben precisa. Leggi i TOS di Chrome e vedrai che è diverso (nulla contro Google, ma è comunque diversa). Sul fatto che Google paghi i suoi sviluppatori spero non ci siano dubbi… idem per Apple, eccetera.
    Comunque mi pare che tu non abbia proprio idea della differenza tra software libero e software gratuito, poi è chiaro che non ci capiamo e mi tiri fuori discorsi di soldi, che c’entrano poco in questo contesto.
    Io consiglio software libero (e non semplicemente gratis) perché non è giusto invogliare le persone a incatenarsi magari senza accorgersene. Non sono quel tipo di persona. Poi ripeto, è un consiglio… Se usi IE ti consiglio di usare un browser affidabile come Firefox, se usi altro vedi il sito come è effettivamente e stop.

  13. Ciao.Oggi 2014 siamo a Explorer 11. Io ho un bel sito dinamico che da explore 9 in su si vede bene, ma è impossibile visualizzarlo con IE8. Volevo usare il tuo script ma con le modifiche della versione explorer.. ossia mostrare il tuo messaggio solo se l’utente ha una versione di IE inferiore alla 9. Mi puoi dare un consiglio?
    Grazie

  14. Io ho un bel sito dinamico che da explore 9 in su si vede bene, ma è impossibile visualizzarlo con IE8

    Purtroppo ci sono ancora oggi persone che oltre a usare Windows si fanno del male e usano questi “browser” obsoleti. Per il messaggio che abbia come target solo alcuni di questi poveri utenti IE, ti consiglio di usare i conditional comments racchiudendovi tutto il codice Javascript presente nel codice PHP. Ti consiglio comunque di lasciare anche il controllo lato server, per una questione di risparmio di banda per chi usa browser decenti.😉

Che cosa ne pensi?

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...