Quirks mode: cosa è esattamente??

Domenica, Dicembre 23rd, 2007

Il tutto nasce agli albori della guerra tra i browser che fortunatamente ora sta andando sempre di più verso un favorevole epilogo, favorevole per gli utenti, cioè una implementazione sempre migliore degli standard w3c. Ma non è stato sempre così…Andiamo con la memoria ai tempi della versione 4 di Explorer e di Netscape. A quei tempi, l’implementazione dei CSS era a dir poco sconcertante e sebbene Explorer li rispettasse maggiormente di quanto non facesse Netscape, i siti venivano comunque visti in maniera non corretta. Explorer 5 ovviò a parecchi bug, ma l’implementazione era lontana dall’essere rispettata in maniera perfetta. Gli sviluppatori pertanto dovevano progettare i propri siti cercando in tutti i modi di adattarsi ai diversi browser e per questo il codice non era molto rispettoso degli standard. Quando poi il rispetto degli standard divenne importante, i produttori dei browsers si trovarono di fronte ad un grosso problema, infatti i siti che avrebbero rispettato gli standard sarebbero stati visualizzati correttamente mentre quelli progettati precedentemente e con un supporto agli standard misero, sarebbero stati visualizzati in maniera non corretta. Pertanto, i browsers dovevano favorire chi conosceva gli standard e progettava secondo questi, ma nondimeno dovevano permettere alle pagine non correttamente sviluppate, di essere viste in maniera decente. La soluzione a questo fu appunto la creazione di browser in grado di riconoscere le pagine sviluppate correttamente e quindi visualizzare secondo gli standard, e quelle non correttamente sviluppate e quindi visualizzarle con una modalità non conforme, detta appunto “quirks mode”. Per fare ciò il browser si affida al DOCTYPE e in base a questo decide come visualizzare la pagina. Fare questo viene definito “doctype switching” e viene implementato come segue:

  1. Un doctype completo XHTML 1.0 o 1.1 attiva la modalità Standards (secondo gli standard) in versioni conformi di IE e nelle prime versioni di Gecko (Netscape 6 e Mozilla 1.0)

  2. Un doctype completo XHTML Strict ha lo stesso effetto in tutti i browser sopra elencati con l’aggiunta di mozilla 1.01+, netscape 7, firefox 1+, camino

  3. Un doctype completo XHTML 1.0 Transitional o Frameset attiva la modalità “Quasi Standards” negli ultimi browsers Gecko

  4. Inoltre, a proposito del prologo XML, nonostante abbiamo inserito un doctype completo e che quindi dovrebbe attivare la modalità standard, con il prologo xml, IE6 per Win e Opera 7, vi porteranno in modalità Quirks

  5. Doctype incompleti attivano la modalità Quirks in tutti i browsers che implementano il doctype switching

Già, avete sentito bene, c’è anche una modalità “Quasi Standards”. Si chiama così perché differisce dalla modalità Standards di IE per qualche dettaglio. Per questi dettagli, per il modo in cui si comportano i browser con le varie modalità, vi rimando prossimamente per un post a riguardo, dove inizierò a parlare del “BOX MODEL” dei vari browsers, non mancate!