En kort historie om HTML

Vegard Øye

HTML 1.0 ble funnet opp av Tim Berners-Lee (ofte omtalt som «oppfinneren av WWW») i 1992, som ønsket seg en enkel og universell måte å strukturere data på. HTML 1.0 ble bare implementert i Mosaic og tekstnettleseren Lynx, og alle sidene så i førstnevnte helt like ut: grå bakgrunn, Times New Roman og blå lenker (som ble røde når du hadde besøkt dem). Bilder innenfor tekst måtte være i GIF-format, bilder utenfor i JPEG, og det fantes ingen tabeller, rammer eller innfyllingsskjemaer. Derimot var dokumentene ganske logisk strukturert, med tagger for overskrifter, avsnitt, lenker, sitater, kodeutsnitt og så videre. (Jeg skriver foreløpig bare «tagger», ettersom «elementer» er SGML-terminologi som først kom med da W3C fullførte sin første HTML-spesifikasjon under kodenavnet WILBUR, som senere ble kjent som HTML 3.2.)

Med HTML 2.0 ble funksjonaliteten utvidet betraktelig, men språket begynte også så smått å bevege seg vekk fra sitt semantiske utgangspunkt, bl.a. med muligheter som å bestemme bakgrunnsfargen. Nå ble det mulig å konstruere tabeller, men det største revolusjonen var innføringen av innfyllingsskjemaer, som lot en sende informasjon over WWW. Før HTML 2.0 hadde imidlertid en Netscape Navigator-«proprietær» 1.1-utgave blitt lansert i all stillhet, med tagger som kun fungerte i Netscapes nettleser. Denne tilsnikelsen av egne tagger var imidlertid bare en liten smakebit på den nettleserkrigen som skulle følge.

Kaoset begynte for alvor med HTML 3.0, da Microsofts Internet Explorer kom på banen, og konkurrerte med Netscapes Navigator om å være den dominerende nettleseren. Netscape svarte med å introdusere såkalte Netscape extension tags (utvidelsestagger for Netscape), som naturligvis bare fungerte i Navigator. Følgelig medførte dette at hvis man laget en side som benyttet seg av disse taggene, ville siden se forferdelig ut i andre nettlesere – noe Netscape håpet ville gi Navigator enda flere brukere, ettersom den øyensynlig var den mest «avanserte» nettleseren.

Dette ville nok også ha fungert dersom ikke Microsoft (i typisk Microsoft-stil) svarte med å bruke Netscapes egen strategi mot dem selv, og innførte tilsvarende tagger som bare fungerte i Internet Explorer. Navnene på Microsofts og Netscapes tagger forteller alene om hvor ødelagt HTML-språket var i ferd med å bli: background, blink, marquee, bgsound. Ingen av disse var for øvrig nevnt i den faktiske spesifikasjonen for HTML 3.0, utarbeidet av en arbeidsgruppe ledet av Dave Ragget, som beskrev et språk som var temmelig harmløst i forhold. Dessverre var nettleserne forferdelig trege med å implementere de nye funksjonene beskrevet i denne spesifikasjonen, og la stort sett til noen få og ekskluderte resten. Noe av grunnen til dette var omfanget i forbedringen av HTML, og derfor ble HTML 3.0-spesifikasjonen forkastet.

Så kom (endelig, vil vel mange si) W3C på banen. Deres første HTML-spesifikasjon var en forenkling av de eksisterende standardene (i hovedsak det overveldende HTML 3.0), hvor tanken var å overlate de større forbedringene til senere versjoner. De fleste utvidelsestaggene som hadde blitt innført av Netscape og Microsoft kom ikke med i denne spesifikasjonen. Den ble snart akseptert og ble den offisielle standarden januar 1997, og er i dag praktisk talt støttet av alle nettlesere. Denne spesifikasjonen, som senere ble kjent under navnet HTML 3.2, implementerte også mulighet for presentasjonsspråket CSS (som ble spesifisert en måned tidligere).

Det var stort sett allmenn enighet om at den eneste løsningen på det HTML-rotet som hadde oppstått var å separere innhold fra presentasjon. Denne tanken var for øvrig ikke ny, og skriver seg helt tilbake til utviklingen av SGML (Standard Generalized Markup Language) på 80-tallet – et språk som skulle etablere en systemuavhengig syntaks for utveksling av informasjon. HTML 3.2 var definert i SGML, men inneholdt fortsatt presentasjonskontrollerende attributter. Revolusjonen skulle komme med HTML 4.0, som av kompatibilitetshensyn ble lansert i tre versjoner: «Strict», som var et strukturbasert og semantisk markeringsspråk og slik HTML skulle være, «Transitional», en overgangsversjon («transition» betyr overgang) som inneholdt en del funksjoner fra nettleserkrigen som hadde vært, og «Frameset», som gjorde Netscapes rammeopplegg åpent for alle nettlesere. Kort etter at HTML 4.0 hadde blitt lansert, ble dokumentasjonen revidert og utgitt som HTML 4.01. HTML 4.01 er den siste HTML-versjonen som er definert i SGML (hvis man ser bort fra at XML rent teoretisk er en undermengde av SGML) – alle videre HTML-versjoner er definert i XML, og betegnes som XHTML (som står for Extensible HyperText Markup Language).

Men hva er så den store fordelen med å separere innhold fra presentasjon – å ikke bruke HTML til å bestemme presentasjonen i det hele tatt? Nøkkelordet i artikkelen jeg alltid henviser til når dette emnet kommer opp, «Strukturbasert XHTML», er gjenbruk. Når man sier noe om hva noe er, i stedet for hvordan det skal se ut (eller høres ut, eller whatever), kan dette formidles uavhengig av hvilket medium som benyttes. I HTML 3.2 ville man kanskje ha laget uthevelser med presentasjonselementene b eller i, som gir henholdsvis fet og kursiv tekst. I en nettleser som av tekniske årsaker ikke støtter slike skrifttyper, eller som formidler websidene via et ikke-skriftig medium (f.eks. med talesyntese), kommer imidlertid ikke denne uthevelsen med i det hele tatt. i-elementet forteller ingenting om om det er en uthevelse vi har med å gjøre – kursivert tekst kan f.eks. også brukes for å markere boktitler, eller for å oppnå dekorative overskrifter. Hvis vi derimot markerer uthevelsen med et logisk HTML 4.01-element som em (for «emphasis»), vil antakelig en grafisk nettleser vise teksten i kursivert skrift, en tekstnettleser kan vise den som viktig, og en talenettleser vil legge ekstra trykk på ordene innenfor elementet. Det er da med andre ord opp til nettleseren hvordan de ulike elementene skal presenteres.

Dette gjør informasjonen svært tilgjengelig, og fordi man ikke drasser rundt på presentasjonskontrollerende elementer eller attributter i selve dokumentet, blir også koden lettere å skrive (noe som har gjort «håndkoding» populært). Men en ulempe med dette er at sidene ikke blir særlig mer spennende å se på enn da HTML 1.0 rådet på Web. Derfor har egne presentasjonsspråk som CSS blitt utviklet, som lar en gi sidene det visuelle (men også auditive, om en føler for det) særpreget som praktisk talt er nødvendig på WWW i dag. I avanserte visuelle nettlesere – som ofte bare kalles «grafiske nettlesere» – kan en altså overstyre nettleserens visning av elementene, samt gi sidene en unik utforming («layout») og fargesammensetning. Dette kan også gjøre sidene lettere å bruke.

For brukere med ikke-grafiske nettlesere er ikke denne visuelle arrangeringen noe problem. Innholdet befinner seg jo fortsatt i ryddig og strukturbasert HTML, som kan gjenbrukes på et utall vis. Interessant design er altså ikke lenger noe hindrer deg i å besøke en nettside fordi du ikke har en avansert nettleser som støtter alle de siste standardene, men i stedet en luksus for dem som er så priviligerte å besitte slik programvare.

Kilder

  • Bryan Pfaffenbergers og Bill Kawows: HTML 4 Bible (IDG Books).