This is a norwegian translation of Why we won’t help you by Mark Pilgrim.
Det er et scenario jeg ser om og om igjen på forum og epostlister med temaet css og webdesign. Fersk nybegynner poster en link til en testside, og ber om hjelp fordi den ikke ser ut som forventet i en eller annen nettleser. Designerguru svarer, og forteller ferskingen at siden ikke validerer og at den bør valideres før man ber om hjelp med problemet. Det skjer ingen videre diskusjon; ingen flere svar; ingen flere vil hjelpe.
Hvorfor skjer dette? Hvorfor vil vi ikke hjelpe deg?
Det smarte og dype svaret er at vi faktisk hjelper deg, du har bare ikke skjønt det enda. Det fulle svaret er slik:
-
Validering kan avsløre problemet ditt. Veldig mange tilfeller av “det virker i en nettleser, men ikke i en annen” skyldes glipper av forfatteren. Skrivefeiler som manglende attributtverdier kan forÃ¥rsake totalhavari i nettleseren, og validering fanger opp slike feil. Enkle feil som manglende sluttagger (slik som </table> eller <div>) eller manglende elementer (slik som <tr>) kan forÃ¥rsake forskjellige problemer i forskjellige nettlesere. SmÃ¥ feil som dette er vanskelig Ã¥ se i sin egen kode, men validering vil avdekke disse med en gang.
Jeg pÃ¥stÃ¥r ikke at siden din, nÃ¥r den er validert, automatisk vil se rett ut i alle nettlesere - det motsatte kan skje. Jeg pÃ¥stÃ¥r heller ikke at det ikke finnes talentfulle designere som kan lage gammeldags “tagsuppe” som fungerer feilfritt i alle nettlesere, for de finnes. Men validatoren er et automatisk verktøy som kan avsløre smÃ¥ men viktige feil som er vanskelige Ã¥ finne for hÃ¥nd. Hvis du lager gyldig kode mesteparten av tiden, kan du dra nytte av denne automatikken for Ã¥ finne uhellene nÃ¥r de forekommer. Men hvis oppmerkingssprÃ¥ket ditt ikke er i nærheten av Ã¥ være gyldig flyver du totalt i blinde nÃ¥r ting gÃ¥r galt. Validatoren vil spy ut dusinvis eller hundrevis av feil pÃ¥ siden din, og Ã¥ finne den ene feilen som faktisk forÃ¥rsaker problemet ditt blir som Ã¥ finne en nÃ¥l i en høystakk.
-
Validering kan løse problemet ditt. HTML er ikke “hva som helst funker” - det er regler for hvordan elementer kan brukes og kombineres. Nettlesere er skrevet for Ã¥ tolke disse reglene og tegne opp nettsidene etter disse. Nettlesere har logikk for Ã¥ hÃ¥ndtere forskjellige typer ugyldig kode inkludert nettleser-spesifikke tagger og attributter, ugyldige kombinasjoner av block-level og inline elementer og overlappende elementer. Forskjellige nettlesere gjør forskjellige interne tolkninger av denne sÃ¥kalte “tagsuppen”, og dette kan igjen føre til uventede varierende resultater nÃ¥r de prøver Ã¥ bruke stilark eller script pÃ¥ det resulterende dokument-treet.
Ian Hickson illustrerer disse forskjellene. Dave Hyatt, en av utviklerene bak Apples Safari nettleser, snakker om “stil til overs”-problemet forÃ¥rsaket av feilnøstede elementer. Som Daves eksempel viser, pÃ¥virker det ikke bare CSS-baserte sider. Det pÃ¥virker sider skrevet i utelukkende HTML ogsÃ¥.
Jeg sier ikke at validering er en vidunderkur som automatisk vil løse alle dine webdesign-problemer - for det er det ikke. Designere må fortsatt forholde seg til mange kompatibilitetsproblemer i gyldig kode på tvers av nettlesere og plattformer. Men å validere sidene dine eliminerer en rekke potensielle problemer, og etterlater oss med en mye mindre (og derfor mer håndterbar) liste over problemer å jobbe med. Hvilket igjen bringer oss til mitt neste poeng:
-
Gyldig kode er vanskelig nok Ã¥ finne feil i. Ã… finne feil i “tagsuppe” er mange ganger vanskeligere. Det er heller ikke spesielt givende. Noen av oss er flinke til det, og en del av oss har holdt pÃ¥ lenge nok til at vi har vært nødt til Ã¥ hÃ¥ndtere det pÃ¥ et eller annet punkt. Men det er ikke det vi har lyst til Ã¥ bruke energien vÃ¥r pÃ¥. Det er ingenting estetisk givende eller intellektuelt tilfredsstillende ved Ã¥ hjelpe en “gutteromskoder” Ã¥ justere sin elendige kode og Ã¥ denge noen nettlesere inn i underkastelse. Vi vet det hele kommer til Ã¥ skjære seg i neste uke, vi har prøvd det selv, vi vet hvordan det gÃ¥r. Vi vet at koden din lever pÃ¥ lÃ¥nt tid.
Og nevnte jeg at Ã¥ feilsøke slik kode er vanskelig? Det er mye Ã¥ holde styr pÃ¥, selv nÃ¥r du gjør alt rett. Det er bugs i Windows-nettlesere, bugs i Mac-nettlesere, bugs i nye og gamle nettlesere, bugs i Opera, bugs i Netscape og bugs i Internet Explorer ogsÃ¥. André Bjerke kunne laget et dikt av alle buggene vi mÃ¥ hÃ¥ndtere bare i vÃ¥re gyldige, standard-baserte nettsider. Og pÃ¥ toppen av dette vil du at vi skal prøve Ã¥ finne ut av det tilnærmet uendelige antall bugs som kan forÃ¥rsakes av din “tagsuppe”? SÃ¥ god tid har vi rett og slett ikke, og den tiden vi har er bedre investert andre plasser. Som igjen bringer meg til det siste poenget:
-
Validering er en indikator på at du har peiling. Det er veldig mange mennesker som trenger vår hjelp, og det er relativt få av oss som har den kombinasjonen av tid, ekspertise og vilje til å søke etter feil i andre folks layout gratis. Det er ganske elementert egentlig: vi kan rett og slett ikke hjelpe alle som spør. Akkurat som en personalavdeling som får 500 søknader for en utlyst stilling, må også vi filtrere ut på et kriterium, og gyldig kode har vist seg å være et bra kriterium. Det er mulig, til og med uunngåelig, at dette igjen vil føre til at vi overser en og annen lovende designer som kunne visst seg å bli både en god venn eller en profesjonell kompanjong senere i livet, men det er bare sånn det må være. Det kan også hende at blant de 500 søkerene, var det den med 5 skrivefeil i søknaden som var den beste kandidaten. Men du kan ikke intervjue alle. Du må finne et kriterium å filtrere på.
Hvorfor er gyldig kode et godt kriterium? Fordi ingen lager gyldig kode ved et uhell. Hvis du kommer til oss og sier “Jeg har denne siden hvor bÃ¥de HTML og CSS validerer, men har dette spesifikke problemet” sÃ¥ har du tydeligvis lagt ned litt arbeid i den, du har møtt oss pÃ¥ mer enn halvveien, la oss se hva vi kan fÃ¥ til. Men hvis du kommer til oss og sier “Hei, jeg slengte sammen denne siden som virker i nettleser X men sÃ¥ sier klienten min at den ikke fungerer i W, Y og Z, det mÃ¥ da være noen drittnettlesere”, sÃ¥ kan det hende du mÃ¥ se et godt stykke etter hjelp.




