Standardom mówimy “NIE!”, część I
Co najmniej od paru tygodni chodzi mi po głowie zamiar napisania tekstu o tytule “webstandards sucks” lub czegoś podobnego. Niedawno dotarło do mnie, że mogę być i jestem przez niektórych odbierany jako fan(atyk?) standardów sieciowych, a tymczasem miewam ich szczerze i serdecznie dość. Oto moje wyznanie.
Zacząłem pić w… Poważniej zainteresowałem się standardami w 2002 roku. Juz wcześniej miałem mętne wrażenie, że ich przestrzegam,
ale dopiero gdy musiałem przygotować prezentację na ich temat na
uczelnię, dotarło do mnie, że jestem zielony. Uparłem się, że napiszę
ją w XHTML w wersji Strict, a wygląd oprę na CSS. Ze względów
dydaktycznych (czytaj: obejrzeć, ale nie naśladować) zamieściłem ją na
serwerze. Przygotowując tę prezentację przebiłem się przez połowę
archiwum ALA i zostałem tak zindoktrynowany, że już chyba nigdy potem nie
napisałem niczego w poczciwym, starym HTML-u.
Dygresja. Także przy tej okazji przesiadłem się na Mozillę — w tamtych czasach o Firefoksie nikomu się nie śniło, a na Celeronie 400 Mozilla Suite wlokła się niemiłosiernie. Tylko fanatyk, który uważał, że “tak trzeba, bo IE nie przestrzega standardów” był w stanie podjąć równie heroiczna decyzję.
W całej historii zwrot “bo tak trzeba” ma kluczowe znaczenie. Mamy już rok 2005, ale stosowanie standardów nadal wymaga mnóstwa determinacji od webmastera. Nie sądzę też, aby sytuacja miała się zmienić jeszcze przez parę ładnych lat. Dlaczego?
Internet Exploder
Tym, co najbardziej uderzyło mnie podczas lektury DWWS, jest fakt, że Zeldman zaliczył IE 6 do grupy przeglądarek zgodnych ze standardami. Nie mam pojęcia, czym się kierował, ale moim zdaniem chyba tylko polityczną poprawnością. Niedawno zdarzyło mi się tworzyć układ oparty na CSS, który wymagał czterech dni pracy: jednego dla FF/Opery i trzech, aby dostosować go do IE. Temat był już roztrząsany tyle razy, że nie ma sensu robić tego po raz n-ty, ale szans na poprawę nie widać.
Jest zwyczajnie niemożliwe, by do premiery IE 7 (czyt. Longhorna) szóstka została wyparta z rynku. Co gorsza, zgodność ze standardami nowej przeglądarki Microsoftu wcale nie jest taka oczywista: MS będzie musiał jakoś rozwiązać problem wstecznej kompatybilności. Na świecie są miliony stron, których działanie jest zależne od błędów i dziwactw IE. Optymistom przypominam, że na WWW świat się nie kończy, a serwisy intranetowe są znacznie bardziej dotknięte tą chorobą, o czym świadczy przypadek IBM. MS nie powie po prostu deweloperom: “no, to od dziś przechodzicie na standardy, bo wypuściliśmy nową przeglądarkę”.
Jak jest ze wsparciem dla CSS i XHTML w IE, wie każdy, komu zdarzyło się projektować jakąkolwiek nietrywialną stronę z wykorzystaniem tych standardów. Niedawno przyszło mi do głowy, by stworzyć jedną, kompletną listę błędów IE wraz z gotowymi rozwiązaniami. Przeszło mi, gdy sobie uświadomiłem, że to nie temat na artykuł, ale książkę.
Symptomatyczna jest historia z tego tygodnia. Znajomy zgłosił się do mnie z jakimś problemem dotyczącym CSS. Miało to być dla mnie pięć minut roboty, a tymczasem po godzinie uświadomiłem sobie, ze właśnie “odkryłem” nowy błąd w IE. Trochę ich już znam, ale wydaje mi się, że wystarczy godzina pracy z tym programem, by trafić na coś zupełnie nowego. Przynajmniej człowiek się nie nudzi.
Hacki, hacki, hacki…
Czytając pl.comp.www można odnieść wrażenie, że 80% postów dotyczy problemów z najbardziej podstawowymi technologiami, czyli własnie (X)HTML i CSS (pozostałe 20% to wątki z cyklu “ile się bierze za zrobienie strony?”).
Z jednej strony to dobrze. Dyskutanci korzystają ze standardów, a próby obrony układów tabelkowych kończą się na ogół publicznym zlinczowaniem nieszczęśnika.
Wiem jednak z pierwszej ręki, że początkujący mają wrażenie, iż tworzenie stron w XHTML/CSS to jakaś wiedza tajemna. I chyba mają rację. W zamierzeniu autorów podstawowe technologie webowe miały być proste, aby stronę WWW mogła stworzyć nie tylko osoba z 5-letnim doświadczeniem w branży, ale i przeciętny użytkownik komputera. I jest to możliwe, ale na pewno nie przy pomocy czystego, poprawnego kodu zgodnego ze standardami. Jakakolwiek próba stworzenia układu na warstwach jest z góry skazana na niepowodzenie choćby ze względu na niezgodności w obsłudze modelu pudełkowego i wyświetlaniu czcionek, odstępy “znikąd” itd. Wielu z nich nie da się uniknąć bez sztuczek i hacków. Jeszcze do niedawna trzeba było filtrować Netscape’a 4, IE 4, IE dla Maca — każda z tych przeglądarek ma własne dziwactwa i wymaga odmiennego traktowania. Dobrze, że dogorywa już IE 5, którego też dotyczy powyższa uwaga. Ale na zgon IE 6 przyjdzie jeszcze trochę poczekać.
Z tych powodów formatowanie za pomocą CSS, sprowadzające się do wyboru selektora i prostych właściwości, jest zwyczajnie niemożliwe dla kogoś, kto za szczyt poświęcenia uważa przeczytanie kursu HTML-a. Intencje autorów CSS były dobre, rzeczywistość, jak zwykle, jest inna.
Wyznań ciąg dalszy wkrótce.
Lukasz Grabun
Pierwszym “nie” dla standardow jest, zapewne, niezgodnosc z nimi tej strony, prawda ;-)
IE jest przegladarka zgodna ze standardami, przynamniej w wersji 6.0. Na pewno caly CSS1 oraz niektore elementy CSS2. Wbrew pozorom Explorer jest dobra przegladarka; jego zla slawa wiaze sie raczej z tym, ze jest podatny na wirusy (a to z kolei wina tego, ze jest on zintegrowany z systemem operacyjnym). Brakuje mu rowniez niektorych funkcji, ktore inne przeglarki oferuje; Microsoft jednak pracuje nad tym i takie rzeczy, jak tabbed browsing czy tez RSS feeds czytane z poziomu przegladarki sa juz dla uzytkownikow IE dostepne.
Odnosnie ostatniego ustepu – ja standardami interesuje sie od roku ledwie, a nie od 5 lat; uwazam jednak, ze tworzenie stron opartych na
div
jest w miare proste – szczegolnie, jesli uwzgledni sie to, ze w sieci jest wszystko, czego potrzeba, by te standardy dobrze poznac: od hackow po gotowe 3-kolumnowe lejalty. Trzeba tylko chciec je znalezc…Szafranek
Jak napisałem, to inni mnie odbierają jako fanatyka standardów. Z walidatora korzystam, gdy POTWORNIE mi się nudzi, ew. zostanę wywołany do tablicy, jak teraz :).
Inna rzecz, że dla mnie standardy to przede wszystkim separacja treści, prezentacji i działania (behaviour), dostępność, funkcjonalność. Przechodzenie kodu przez walidator jest tu pomocne, ale na pewno nie jest wyznacznikiem zgodności ze standardami.
IE był w momencie premiery najlepszym programem tego typu. Bił na głowę Netscape’a i to, co w przyszłości stało się Mozillą. Ale czasy się zmieniają i dziś jest przede wszystkim źródłem utrapienia. Oczywiście, że da się tworzyć zgodne ze standardami strony, by działały też w IE. Ale gdyby nie jego błędy i zapóźnienia, byłoby to DUŻO prostsze i mniej czasochłonne. Dziś wymaga naprawdę dużo determinacji.
Obsługa RSS czy dziury to już zupełnie inna rzecz, istotna dla użytkownika końcowego, a nie webmastera.
A to już będzie temat następnego odcinka :).
fusser
nIE :) mam pojęcia dlaczego ten twór ma nadal tylu zwolenników.
Lukasz Grabun
Fusser: alez ja korzystam z FF 1.0. Jednak drazni mnie psioczenie na IE “jaki to kiepski produkt, jak zle wspiera CSS” i tak dalej. To przekonanie wynika raczej z niecheci do Microsoftu niz z rzeczywistego stanu rzeczy.
Nie chce oczywiscie powiedziec, ze Internet Explorer jest przegladarka doskonala; jest pelen denerwujacych bugow. Ale ktory program nie jest?
Szafranek
Wcale nie jestem wrogiem MS i śmieszy mnie moda na krytykowanie ich “bo tak wypada”. Używam Windows i bardzo je sobie chwalę (bez ironii). Ale IE naprawdę stoi dziś na przeszkodzie szybszemu przyjęciu się standardów. Staje się tym samym, czym kilka lat temu był NN 4.
Oczywiście na jego błędy można można znaleźć sposoby, ale uważam (i to było przesłanie tekstu), że gdyby nie one, tworzenie porządnych, zgodnych ze standardami stron byłoby… no właśnie, standardem, a nie dziedziną magii.
Żadna przeglądarka nie jest taka, jak bym chciał (tzn. idealna). Ale jest różnica, jeśli w swojej pracy napotykasz na 2-3 błędy w ciągu pół roku (Firefox), a 5 na dzień (IE) i na dodatek nikt nie myśli o ich poprawieniu w dającej się określić przyszłości.
MiMaS
Ani do premiery, ani dłuuugo po.
I przy okazji powtórzę tu zdanie, które niektórzy (choć nie ja osobiście) zaczynają kojarzyć jako moje stałe marudzenie sklerotyka w wieku podeszłym – PocketIE na PocketPC 2003 to MSIE 4.01. Cztery, zero, jeden…
Wracając do tematu – wydaje mi się, że tworzenie stron zgodnie ze standardami nie jest wiedzą tajemną. Oczywiście, że przeglądarki mają bugi i oczywiście, że są one uciążliwe. Ale skoro nawet taki ktoś jak ja potrafi przyjąć do wiadomości ten fakt i mimo niego tworzyć jakieś stronki, to chyba nie jest to aż tak paraliżujące…? Oczywiście są to strony proste, ale … i tu dochodzimy do sedna sprawy.
Myślę, że błąd jaki popełniasz w zdaniu
polega na założeniu, że każdy powinien umieć stworzyć stronę WWW o dowolnym stopniu skomplikowania. To nie jest prawda. Analogicznie jak z programowaniem – możesz się bawić, proszę bardzo, ale poważne produkcje pozostaw zawodowcom. Stworzenie strony prostej i przejrzystej, opartej na kilku divach z eleganckim formatowaniem (a taki trend się utrzymuje od paru lat) jest osiągalne dla każdego stosunkowo niewielkim kosztem. Schody zaczynają się dalej, ale właśnie tam dalej nie powinni się wybierać amatorzy. Ci, którzy na te schody wejdą z założenia potrafią przeczytać nie tylko kurs HTML-a….
MiMaS
Jeszcze jedna rzecz mi przyszła do głowy. Dlaczego kolega pisze “stosowanie standardów wymaga mnóstwa determinacji” i “korzystają ze standardów, a próby obrony układów tabelkowych kończą się zlinczowaniem”? I dlaczego drugi kolega pisze “bardziej poprawne z punktu widzenia standardów”? Wybaczcie panowie, ale to są bzdury…
Ja rozumiem, że słowo “standard” jest w środowisku związanym jakkolwiek z tworzeniem stron WWW słowem kluczem. Wytrychem wręcz. Jednak przecież nie o standard jako taki tutaj chodzi. Tym bardziej, że wszelkie takie dyskusje udowadniają, iż rekomendacje W3C nie są przestrzegane przez wszystkie przeglądarki więc jako takie de facto standardem nie są.
Dlaczego nie mówimy o tym, o co naprawdę chodzi, czyli o logicznej strukturze i semantyce strony?? “Standard” jest tylko zbiorem wypróbowanych sposobów aby było coś zrobione dobrze. Jednak sam w sobie standard nie jest powodem ani celem – celem jest to, aby strona była dobra w sensie semantyki i logiki, aby była czytelna, zrozumiała i dostępna niezależnie od użytej techniki jej odczytu.
Więc może nie mówmy “strona zgodna/niezgodna ze standardami” bo to nikogo oprócz nas samych nie interesuje. Mówmy raczej “strona dobra/strona zła”…
Szafranek
Może zacznę od terminu standardy. Oczywiście, należałoby powiedzieć rekomendacje W3C, ale:
Dlatego właśnie piszę o “standardach”.
Tak, “standardy” (tudzież ‘logiczna struktura i semantyka strony’) nie są celem samym w sobie. Ale są środkiem do osiągnięcia tego celu. Oczywiście, jest mnóstwo dobrych stron, które łamią rekomendacje. Zresztą zdarza mi się pisać tu o stronach, które bynajmniej się nie walidują albo (o zgrozo!) są zrobione we Flashu. Ale są dobre.
Ponieważ jednak standardy (rekomendacje, dobra praktyka… jak zwał, tak zwał) są, mimo wszystko, jednym z podstawowych sposobów poprawienia jakości strony, więc będę o tym pisał dalej.
Ponieważ wytyczne W3C wcale jeszcze nie są uważane za coś oczywistego (jak kolor w TV), to uważam, że nawet trzeba o tym pisać.
Raz, standard brzmi dobrze i laik wie, że “tak trzeba”, skoro to “standard”. Nawet on zrozumie, coś nie gra, jeśli mu się powie, “ta strona jest zła, bo nie przestrzega standardów”. Dwa, jeśli mnie to interesuje (skoro ktoś tu zagląda, to znaczy, że nie tylko mnie), to czemu miałbym o tym nie pisać? :)
Do Twojego pierwszego posta odniosę się w następnym wpisie, bo to temat na dłuższą dyskusję :).
Szafranek
Minimo, czyli port Mozilli przeznaczony dla urządzeń przenośnych, niedługo doczeka się wersji dla Windows CE. Wiem, że Bill prędzej zacznie używać Linuksa na swoim laptopie, niż wprowadzi Minimo do Pocket PC, ale przynajmniej jest jakaś alternatywa.
Z tego co wiem, Opera dla mikrusów jest już w wersji 7, a więc całkiem wystarczającej.
Masz rację, że trzeba będzie coraz częściej myśleć o urządzeniach przenośnych. Ale mimo wszystko to właśnie my, uświadomieni co do standardów ;), będziemy mieli najłatwiej. Chociaż faktycznie, łatwiej zrobić stronę, by działała w Firefoksie i Linksie niż w Firefoksie i IE 4.
Lukasz Grabun
Jesli bedzie dzialac w Lynksie, to w IE 4 – wystarczy zaimportowac plik z CSS. IE poprawnie interpretuje czysty kod HTML.
Szafranek
Plus wyeliminować błędy JS, które IE 4 obsługuje, ale wyłącznie z kulawym DOM-em opartym o
document.all
:Byłoby zabawne, gdyby nagle się okazało, że trzeba przypomnieć sobie o IE 4 w 2005 roku. Ja przestałem martwić się tą przeglądarką bodajże w 2001 czy 2002.
MiMaS
No i dobra nasza :-)
Hmmm… Wiesz, ja mówiłem o PocketPC. Czyżbyś sugerował, że istnieje Opera działająca na PocketPC a ja o tym nie wiem?? W takim razie muszę Cię rozczarować – jak można wyczytać na stronie Opera for Windows Mobile ta wersja nie działa na PocketPC. I od razu odpowiadam – tak, sprawdzałem, czy to prawda. Wniosek – wbrew temu co sugerują niektórzy – nie prawda, że “nawet na urządzenia mobilne” już są alternatywne przeglądarki. Na wiele modeli/typów jeszcze ich nie ma :-(
Szafranek
Miałem na myśli ogólnie urządzenia przenośne, przyznaję, że nie sprawdzałem dostępności dla komputerka MS. W takim razie, jeśli będziesz korzystać z PocketPC, przyjdzie Ci używać Minimo zamiast Opery :).
Superchimp
Po 1 – fajna stronka, po drugie z problemami IE6 da rade sobie poradzic i po poznaniu solucji w przyszlosci problem IE przestaje grac taaaaka duza role.
Wg mnie poki za standardami nie bedzie przemawiac taki pragmatyzm jak za korzystaniem z CSSow, to ludzie z trudnoscia beda przesiadac sie na ten ‘pomysł’. Howgh.