O Pajęczyny destrukcji esej
Friday, 8. February 2008, 16:25:40
Na początku nie było standardów. Dokładniej mówiąc, nie było dostatecznej liczby standardów, względnie dopiero raczkowały. Nie było też Pajęczyny, jaką znamy dzisiaj. Była ona wtedy taka statyczna, nieatrakcyjna dla przeciętnych zjadaczy chleba.
Efekt tego był taki, że producenci implementowali w swoich przeglądarkach to, co im się podobało, aby strony wyglądały bardziej atrakcyjnie. Oczywiście bez porozumienia między sobą. Czasami zaś nawet poprawiali na własną rękę raczkujące standardy, aby im lepiej służyły.
Nie pamiętam dokładnie, ale w pewnym momencie Microsoft postanowił dostosować swoją przeglądarkę do elementarnych standardów. Najpierw do elementarnego DOM, potem do elementarnego CSS. Tak bardzo obawiał się o złą prasę?
Pojawił się jednak problem. Wiele stron bazowało wtedy na własnych standardach przeglądarki Internet Explorer. W przypadku DOM nie robiło to większych problemów, instrukcje się nie pokrywały. Niestety w przypadku CSS te same wyrażenia były interpretowane inaczej. Microsoft musiał zrobić coś, aby wykryć, na jakie zachowanie przeglądarki strona została przygotowana. Zdecydowano się, że w tym celu będzie stosowana analiza tagu DOCTYPE.
Nie wiem, czy jest to obowiązkowy tag. W każdym razie ma służyć aplikacji w celu sprawdzenia poprawności kodu HTML. Owa funkcjonalność nie jest jednak stosowana w większości przeglądarek, aczkolwiek programy walidujące mogą ją stosować. Sam tag nie ma też bezpośredniego związku z CSS, czy DOM, pozwala tylko bardzo dokładnie określić stosowaną wersję HTML, to znaczy którą wersję autor zadeklarował się stosować na danej stronie. Microsoft uznał, że jeśli ktoś chce pilnować się standardów, umieści na swojej stronie wspomiane DOCTYPE w odpowiednio nowej wersji.
Rozwiązanie było z założenia dość dobre. Nowe strony mogły wymusić poprawne interpretowanie standardów, a stare, pozbawione DOCTYPE, nadal działały poprawnie. Pojawiły się niestety dwa problemy.
Pierwszy z nich był dość łatwy do rozwiązania. Chodziło mianowicie o duży udział posiadaczy starszej wersji przeglądarki, która to nie obsługiwała standardowego kodu. Do dyspozycji były jednak komentarze warunkowe, które pozwalały serwować starej przeglądarce Microsoftu dodatkowy kod. Było jeszcze kilka innych sposobów, ale w mojej ocenie gorszych.
Cóż. Niestety drugi problem okazał się być dużo poważniejszy. Chodziło mianowicie o elementarność standardów, jakie zostały zaimplementowane. Najlogiczniejszym rozwiązaniem było bowiem ograniczyć się do tego, co najnowsza wersja przeglądarki potrafi, a jest też zgodne ze specyfikacją. Niestety to, co zostało, nie wystarczało twórcom Pajęczyny.
Kolejnym rozwiązaniem, jakie było do dyspozycji, to liczenie na tryb zgodności z MSIE 5, orazczekanie na pojawienie się MSIE 7, który miałby już dostateczną liczbę opanowanych standardów. Pojawiły się tutaj niestety kolejne problemy. Możliwości własnego standardu MSIE 5 też były zbyt ograniczone, jak na potrzeby rynku. W pewnym okresie Microsoft nawet praktycznie zatrzymał rozwój swojej przeglądarki na lata. Cóż, w międzyczasie pojawiły się alternatywne aplikacje, które to obsługiwały standardy, a nie posiadały wspomnianego trybu zgodności. Nie bez znaczenia jest też fakt, że posiadanie strony zgodnej ze standardami jest wartością samą w sobie.
To sprowadziło nas do problematycznego rozwiązania, kiedy strona udaje, że jest zgodna ze standardami, aczkolwiek znaczną ich część faktycznie respektuje, niestety zawiera też błędy i takich wymaga od przeglądarki. Dzięki temu udało się wycisnąć niezbędne możliwości z przeglądarki Microsoftu. Teoretycznie można ograniczyć błędne działanie tylko do IE, ale prawie nikt tego niestety nie robi.
Niestety ten ostatni sposób doprowadził nas do kolejnego problemu. Co zrobić, jak pojawi się nowa wersja przeglądarki? Logiczne jest, że będzie zawierała mniej błędów od poprzednika, a także obsługiwała więcej rzeczy. Czyli jest bardzo prawdopodobne, że wyświetli błędny kod inaczej, oraz będzie miała inne błędy przy rozbudowanym, a standardowym kodzie.
Cóż. Internet Explorer w wersji 7 niestety nie przyniósł spodziewanej ilości poprawek w silniku, więc nadal był ograniczony do bardzo elementarnego kodu. Naprawił jednak wiele z błędów swojego poprzednika, w efekcie czego musiał dostać inny zestaw poprawek. Trochę to trwało, nim najważniejsze strony w Sieci się dostosowały. Microsoft postanowił więc uniknąć tego problemu z wersją 8. Wymyślił sobie nowy nagłówek http, który informuje, w jakiej wersji IE dana strona ma działać dobrze. Co to ze sobą niesie?
1. Otrzymamy kolejny tryb zgodności, z którym producenci przeglądarek alternatywnych będą musieli się liczyć, a przeglądarki Microsoftu będą już w posiadaniu gotowego kodu.
2. Problem z określeniem, czy dana strona jest zgodna ze standardami, czy też może jest zgodna z IE7.
3. Spowolnienie usuwania niestandardowych elementów ze świata Pajęczyny.
4. Mniejsze zainteresowanie nowymi standardami.
Na początku nie wygląda to tak groźnie, ale ostatecznie narobi problemów producentom alternatywnych przeglądarek. Co bowiem zrobić ze stroną, która nie ma tego nagłówka? Obecnie uznaje się ją za stronę zgodną z najnowszymi standardam, Microsoft włączy zaś tryb zgodności z IE7. Co zrobić ze stroną, która będzie miała nagłówek z trybem zgodności tylko z IE7? Internet Explorer zinterpretuje ją tak, jak poprzednią. Co zrobić, jak strona będzie miała parametr IE8? Microsoft włączy tryb zgodności z IE8, czyli sama strona będzie bardziej zgodna ze standardami, kiedy jednak pojawi się IE9, nagłówek ten będzie informował o trybie zgodności wstecznej. Jest jeszcze nagłówek z parametrem edge. Microsoft włączy wtedy najnowszą wersję silnika w swojej przeglądarce, czyli można wnioskować, że strona będzie tak zgodna ze standardami, jak to tylko możliwe.
Najbezpieczniej dla producentów alternatywnych przeglądarek jest chyba nic z tym nagłówkiem nie robić. Na chwilę obeną. Jak pojawią się strony, które faktycznie będą optymalizowane pod konkretne wersje przeglądarki Microsoftu... Cóż, będzie kolejny kłopot. A może alternatywne przeglądarki też powinny dołączyć się do tej nagłówkowej mody?
Co mogą więc w takiej sytuacji zrobić sami webmasterzy?
1. Całkowicie zignorować nagłówek. Stracą wtedy niestety możliwości lepszej obsługi standardów w IE8, ale i tak trzeba będzie jakoś zapewniać zgodność dla IE7. Microsoft może to jednak odebrać jako brak zainteresowania unowocześnianianiem przeglądarki.
2. Jawnie stosować nagłówek IE7. Zasadniczo Microsoft może to tak samo odebrać, jak brak nagłówka.
3. Jawnie stosować nagłówek IE8 i cieszyć się nowymi możliwościami kolejnego wcielenia przeglądarki. Będzie to głos oddany za standardami. Niestety też głos za słusznością nagłówka.
4. Jawnie stosować nagłówek edge. Cóż, głos za standardami. Dla Microsoftu kolejny proble na rozwiązywanie zgodności wstecznej, tym razem przy pojawieniu się IE9.
Chciałem króto o historii, a wyszło mi znowu to samo.
Efekt tego był taki, że producenci implementowali w swoich przeglądarkach to, co im się podobało, aby strony wyglądały bardziej atrakcyjnie. Oczywiście bez porozumienia między sobą. Czasami zaś nawet poprawiali na własną rękę raczkujące standardy, aby im lepiej służyły.
Nie pamiętam dokładnie, ale w pewnym momencie Microsoft postanowił dostosować swoją przeglądarkę do elementarnych standardów. Najpierw do elementarnego DOM, potem do elementarnego CSS. Tak bardzo obawiał się o złą prasę?
Pojawił się jednak problem. Wiele stron bazowało wtedy na własnych standardach przeglądarki Internet Explorer. W przypadku DOM nie robiło to większych problemów, instrukcje się nie pokrywały. Niestety w przypadku CSS te same wyrażenia były interpretowane inaczej. Microsoft musiał zrobić coś, aby wykryć, na jakie zachowanie przeglądarki strona została przygotowana. Zdecydowano się, że w tym celu będzie stosowana analiza tagu DOCTYPE.
Nie wiem, czy jest to obowiązkowy tag. W każdym razie ma służyć aplikacji w celu sprawdzenia poprawności kodu HTML. Owa funkcjonalność nie jest jednak stosowana w większości przeglądarek, aczkolwiek programy walidujące mogą ją stosować. Sam tag nie ma też bezpośredniego związku z CSS, czy DOM, pozwala tylko bardzo dokładnie określić stosowaną wersję HTML, to znaczy którą wersję autor zadeklarował się stosować na danej stronie. Microsoft uznał, że jeśli ktoś chce pilnować się standardów, umieści na swojej stronie wspomiane DOCTYPE w odpowiednio nowej wersji.
Rozwiązanie było z założenia dość dobre. Nowe strony mogły wymusić poprawne interpretowanie standardów, a stare, pozbawione DOCTYPE, nadal działały poprawnie. Pojawiły się niestety dwa problemy.
Pierwszy z nich był dość łatwy do rozwiązania. Chodziło mianowicie o duży udział posiadaczy starszej wersji przeglądarki, która to nie obsługiwała standardowego kodu. Do dyspozycji były jednak komentarze warunkowe, które pozwalały serwować starej przeglądarce Microsoftu dodatkowy kod. Było jeszcze kilka innych sposobów, ale w mojej ocenie gorszych.
Cóż. Niestety drugi problem okazał się być dużo poważniejszy. Chodziło mianowicie o elementarność standardów, jakie zostały zaimplementowane. Najlogiczniejszym rozwiązaniem było bowiem ograniczyć się do tego, co najnowsza wersja przeglądarki potrafi, a jest też zgodne ze specyfikacją. Niestety to, co zostało, nie wystarczało twórcom Pajęczyny.
Kolejnym rozwiązaniem, jakie było do dyspozycji, to liczenie na tryb zgodności z MSIE 5, orazczekanie na pojawienie się MSIE 7, który miałby już dostateczną liczbę opanowanych standardów. Pojawiły się tutaj niestety kolejne problemy. Możliwości własnego standardu MSIE 5 też były zbyt ograniczone, jak na potrzeby rynku. W pewnym okresie Microsoft nawet praktycznie zatrzymał rozwój swojej przeglądarki na lata. Cóż, w międzyczasie pojawiły się alternatywne aplikacje, które to obsługiwały standardy, a nie posiadały wspomnianego trybu zgodności. Nie bez znaczenia jest też fakt, że posiadanie strony zgodnej ze standardami jest wartością samą w sobie.
To sprowadziło nas do problematycznego rozwiązania, kiedy strona udaje, że jest zgodna ze standardami, aczkolwiek znaczną ich część faktycznie respektuje, niestety zawiera też błędy i takich wymaga od przeglądarki. Dzięki temu udało się wycisnąć niezbędne możliwości z przeglądarki Microsoftu. Teoretycznie można ograniczyć błędne działanie tylko do IE, ale prawie nikt tego niestety nie robi.
Niestety ten ostatni sposób doprowadził nas do kolejnego problemu. Co zrobić, jak pojawi się nowa wersja przeglądarki? Logiczne jest, że będzie zawierała mniej błędów od poprzednika, a także obsługiwała więcej rzeczy. Czyli jest bardzo prawdopodobne, że wyświetli błędny kod inaczej, oraz będzie miała inne błędy przy rozbudowanym, a standardowym kodzie.
Cóż. Internet Explorer w wersji 7 niestety nie przyniósł spodziewanej ilości poprawek w silniku, więc nadal był ograniczony do bardzo elementarnego kodu. Naprawił jednak wiele z błędów swojego poprzednika, w efekcie czego musiał dostać inny zestaw poprawek. Trochę to trwało, nim najważniejsze strony w Sieci się dostosowały. Microsoft postanowił więc uniknąć tego problemu z wersją 8. Wymyślił sobie nowy nagłówek http, który informuje, w jakiej wersji IE dana strona ma działać dobrze. Co to ze sobą niesie?
1. Otrzymamy kolejny tryb zgodności, z którym producenci przeglądarek alternatywnych będą musieli się liczyć, a przeglądarki Microsoftu będą już w posiadaniu gotowego kodu.
2. Problem z określeniem, czy dana strona jest zgodna ze standardami, czy też może jest zgodna z IE7.
3. Spowolnienie usuwania niestandardowych elementów ze świata Pajęczyny.
4. Mniejsze zainteresowanie nowymi standardami.
Na początku nie wygląda to tak groźnie, ale ostatecznie narobi problemów producentom alternatywnych przeglądarek. Co bowiem zrobić ze stroną, która nie ma tego nagłówka? Obecnie uznaje się ją za stronę zgodną z najnowszymi standardam, Microsoft włączy zaś tryb zgodności z IE7. Co zrobić ze stroną, która będzie miała nagłówek z trybem zgodności tylko z IE7? Internet Explorer zinterpretuje ją tak, jak poprzednią. Co zrobić, jak strona będzie miała parametr IE8? Microsoft włączy tryb zgodności z IE8, czyli sama strona będzie bardziej zgodna ze standardami, kiedy jednak pojawi się IE9, nagłówek ten będzie informował o trybie zgodności wstecznej. Jest jeszcze nagłówek z parametrem edge. Microsoft włączy wtedy najnowszą wersję silnika w swojej przeglądarce, czyli można wnioskować, że strona będzie tak zgodna ze standardami, jak to tylko możliwe.
Najbezpieczniej dla producentów alternatywnych przeglądarek jest chyba nic z tym nagłówkiem nie robić. Na chwilę obeną. Jak pojawią się strony, które faktycznie będą optymalizowane pod konkretne wersje przeglądarki Microsoftu... Cóż, będzie kolejny kłopot. A może alternatywne przeglądarki też powinny dołączyć się do tej nagłówkowej mody?
Co mogą więc w takiej sytuacji zrobić sami webmasterzy?
1. Całkowicie zignorować nagłówek. Stracą wtedy niestety możliwości lepszej obsługi standardów w IE8, ale i tak trzeba będzie jakoś zapewniać zgodność dla IE7. Microsoft może to jednak odebrać jako brak zainteresowania unowocześnianianiem przeglądarki.
2. Jawnie stosować nagłówek IE7. Zasadniczo Microsoft może to tak samo odebrać, jak brak nagłówka.
3. Jawnie stosować nagłówek IE8 i cieszyć się nowymi możliwościami kolejnego wcielenia przeglądarki. Będzie to głos oddany za standardami. Niestety też głos za słusznością nagłówka.
4. Jawnie stosować nagłówek edge. Cóż, głos za standardami. Dla Microsoftu kolejny proble na rozwiązywanie zgodności wstecznej, tym razem przy pojawieniu się IE9.
Chciałem króto o historii, a wyszło mi znowu to samo.