HTML 4.0: paljon poruja, vähän villoja

Kesällä julkistettu HTML 4.0 -luonnos sisältää sekalaisen, jopa sekavan kokoelman uusia piirteitä. Merkittävimmät ovat kuvakäsitteen (IMG-elementin) yleistys (OBJECT-elementti) sekä rakenteet, jotka mahdollistavat paremman tuen muillekin kielille kuin englannille. Toisaalta luonnoksessa on suuri määrä lisäyksiä, joiden merkitys rajoittuu ulkoasun hienosäätöön jos siihenkään ja jotka tekisivät HTML:stä aiempaa paljon mutkikkaamman.

HTML on World Wide Webin dokumenttienkuvauskieli, josta on olemassa lukuisia erilaisia versioita. HTML-standardin merkitys on siinä, että se määrittelee ne ilmaisukeinot, joita Web-dokumenttien tekijät voivat käyttää kohtuullisen luottavaisina siihen, että dokumentit ovat kaikkien katseltavissa. Webin alkuperäiseen ideaan kuuluu ajatus laite- ja ohjelmariippumattomuudesta. Tämän sovittaminen yhteen ilmaisuvoiman kanssa on tietenkin vaativa tehtävä.

Tarkasteltavana oleva HTML 4.0:n määrittely on vasta luonnos, joka on esitetty julkisesti arvioitavaksi. Sitä ei myöskään missään Web-selaimessa ole toteutettu kuin ehkä osittain. Luonnos on herättänyt melko paljon arvostelua.

Kuvista objekteihin

HTML:ssä on lähes alusta alkaen ollut IMG-elementti, jolla kuva (image) voidaan upottaa osaksi dokumenttia. Kuvien järkevä käyttö on erittäin vaikeaa, niin vaikeaa, että useimmat eivät sitä edes yritä, vaan joko jättävät dokumenttinsa kuvittamatta tai sitten räiskivät sivunsa täyteen kuvia, oli heillä kuhunkin tarkoitukseen oikeasti sopivaa kuvaa tai ei.

Vaikka kuvien käytön vaikeudet johtuvat HTML:n teknisistä piirteistä vain pieneltä osin, HTML 4.0:ssa on IMG-elementin rinnalle, sitä suositeltavammaksi tuotu OBJECT-elementti. Sillä voidaan upottaa dokumenttiin kuvan lisäksi myös ääntä, liikkuvaa kuvaa, vuorovaikutteisia animaatioita ym. Upotettavaa aineistoa ei edelleenkään ilmaista HTML:llä vaan käyttäen esim. jotakin yleistä grafiikka-, ääni- tai videoformaattia tai erillistä ohjelmaa, joka toteuttaa animaation. HTML 4.0 vain tarjoaisi paremman viitekehyksen niiden mukaan liittämiselle. Samalla OBJECT-elementti antaisi mahdollisuuden määritellä, että dokumentissa esitetään jokin asia erilaisilla vaihtoehtoisilla tavoilla, esimerkiksi videona, valokuvana ja tekstinä. Luonnos on tältä osin kuitenkin ajattelultaan rajoittunut: se lähtee siitä, että teknisesti monimutkaisin väline (esim. animaatio) on aina ensisijaisesti käytettävä ja muut mediat (esim. kuva, tekstistä puhumattakaan) vain sen korvikkeita

Kansainvälisyyttä vai kansallisuutta?

Tunnetusti Internetin yleiskieli on huono englanti: lähes kaikki kansainvälinen viestintä netissä tapahtuu englanniksi. Kansallisissa yhteyksissä, esimerkiksi suomalaisilla Web-sivuilla, käytetään tietysti runsaasti muitakin kieliä. Toisaalta Internetin tekniset määrittelyt, ohjelmat ym. hyvin yleisesti rakentuvat oletukselle, että kaikki tekstit ovat englantia tai joka tapauksessa sellaista kieltä, jota kirjoitetaan vasemmalta oikealle, ylhäältä alas ja käyttäen samoja kirjaimia kuin englannissa. Esimerkiksi ISO-Latin-1-merkistö ei suinkaan ratkaise eri kielten merkistöongelmia kuin pieneksi osaksi, vaikka se meille antaakin periaatteessa standardoidun tavan esittää å, ä ja ö.

HTML 4.0 pyrkii vakavasti parantamaan tilannetta. Tosin hankkeelle on annettu kummallinen nimi internationalization, joka on ilmeisesti niin monille niin vaikea sana, että se usein kirjoitetaan i18n. (Lyhenne johtuu siitä, että sanassa on i:n ja n:n välissä 18 kirjainta.) Kuten edellä mainittiin, tukea muillekin kielille kuin englannille tarvitaan nimenomaan kansallisia tarpeita varten.

Ensinnäkin merkkivalikoimaksi on määritelty Unicode, joka riittää maailman kaikkien kielten kaikkien merkkien esittämiseen. (Kokonaan eri asia sitten on, miten laajasti erilaiset Webiin liittyvät ohjelmat tulisivat käytännössä tukemaan Unicodea. Urakkahan on melkoinen, kun otetaan huomioon esimerkiksi kiinan merkistö.) Isohkolle joukolle usein tarvittavia merkkejä on määritelty symboliset nimet, jotka helpottavat niiden kirjoittamista silloin, kun niitä ei näppäimistöstä löydy.

Lisäksi mukaan on otettu ilmaisukeinoja, joita tarvitaan kirjoitussuuntien määräämiseen. Esimerkiksi englanninkielisessä tekstissä olevan hepreankielisen sitaatin esittäminen ei ole ihan helppo asia, mutta sitä varten on HTML 4.0:aan otettu perusvälineet.

HTML 4.0 tarjoaisi myös mahdollisuuden määritellä dokumentissa käytetty kieli sekä koko dokumentin että sen eri osien osalta. Esimerkiksi suomenkielisessä tekstissä esiintyvä latinankielinen fraasi merkittäisiin tähän tapaan:

Asiaa ei voida <SPAN LANG="LA">ipso facto</SPAN> todistaa.
Esimerkissä SPAN on elementti, jota käytetään vain määritteiden liittämiseen dokumentin johonkin osaan. Tässä määrite ilmoittaa kielen LANG-attribuutilla, jonka arvona on kielen kaksikirjaiminen lyhenne standardin ISO 639 mukaan. Itse asiassa kieli voidaan ilmoittaa tarkemminkin, esimerkiksi erottaen brittienglanti amerikanenglannista.

Kielen merkitseminen mahdollistaisi esimerkiksi kunkin kielen tavutussääntöjä noudattavan tavutuksen käytön dokumenttia esitettäessä, kielikohtaisten oikolukuohjelmien soveltamisen ja vaikkapa sen, että dokumentin lukija voi saada erikieliset tekstit näkyviin erivärisinä tai eri kirjainlajeilla jos haluaa. Lisäksi se helpottaisi saman dokumentin tarjoamista saataville erikielisinä käännöksinä joustavasti. Myös Webistä tehtäviä hakuja voisi tehokkaasti rajoittaa niin, että mukaan ei tulisi dokumentteja sellaisilla kielillä, joita käyttäjä ei lainkaan osaa. Tämä tietysti edellyttäisi, että dokumenttien tekijät todella merkitsisivät, mitä kieltä dokumenteissa käytetään. Voi kestää kauan, ennenkuin keskivertojenkki tulee ajatelleeksi, että hänenkin pitäisi ilmoittaa käyttämänsä kieli.

Mietoja muita parannuksia

Muutosten merkitseminen dokumentteihin on usein varsin olennaista silloin, kun kyse on tiedoista, joita aika ajoin päivitetään - ja sellaisiahan Web-dokumenttien yleensä pitäisi olla! Luonnoksessa on tätä varten elementit INS ja DEL, joilla osoitetaan dokumentin osa lisätyksi (inserted) tai poistetuksi (deleted); jälkimmäistä käyttäen voidaan siis poistettu teksti jättää dokumenttiin näkyviin mutta siten, että selaimen tulisi näyttää se sopivasti merkittynä (esim. yliviivattuna). Kyseisiin elementteihin voidaan liittää tiedot muutoksen syystä ja ajankohdasta, joskin merkintätavat ovat luonnoksessa aika kömpelöt. Vakavin puute on, että luonnokseen ei sisälly elementtiä, jolla voitaisiin merkitä varsinainen muutos eli tekstin lyhemmän tai pitemmän osan korvaaminen uudemmalla.

Myös hypertekstissä keskeisen linkin käsitettä on pyritty kehittämään. Nykyisessä HTML:ssähän linkki on pelkkä viittaus toiseen dokumenttiin (tai dokumentin kohtaan), eikä se kerro mitään siitä, miksi dokumentti viittaa toiseen. Viittauksen luonnehan voi olla esimerkiksi tieteellinen lähdeviittaus tai viittaus jotakin yksityiskohtaa tarkemmin käsittelevään dokumenttiin tai viittaus käsillä olevan dokumentin toiseen versioon tai viittaus "imuroitavissa" olevaan ohjelmaan. On olemassa tapa, jolla linkin luonne voidaan kuvata, mutta sen yksityiskohdista ei ole onnistuttu sopimaan saati että tapaa yleisesti tuettaisiin (esimerkiksi niin, että selain jollain tapaa kertoo käyttäjälle, mikä linkin luonne on). Eikä HTML 4.0 pääse pidemmälle: se kuvailee tapaa esittämättä siitä selkeää standardia. Parannuksena linkkikäsitteeseen on kuitenkin se, että HTML 4.0:n mukaan voisi linkki viitata nimenomaan dokumentin määrättyyn osaan, esimerkiksi kappaleeseen, eikä vain määrättyyn paikkaan tekstissä.

Ulkoasukeskeistä monimutkaisuutta

Joiltakin osin luonnos julistaisi ulkoasuun vaikuttavia kielen piirteitä ei-suositelluiksi, deprecated. Ne kuuluisivat edelleen kieleen, ja selaimia vaadittaisiin tukemaan niitä, mutta dokumenttien tekijöitä kehotettaisiin välttämään niitä. Tällaisia olisivat esimerkiksi BODY-elementin määritteet, joilla voidaan vaikuttaa dokumentin tekstin ja taustan väreihin. Syynä tähän on kuitenkin lähinnä ns. tyylimäärittelyjen (style sheets) suosiminen.

Toisaalta luonnokseen on otettu mukaan sellaisia "kahden suuren" selaimen (Netscape ja Internet Explorer) toteuttamia omia HTML:n piirteitä, jotka on aiemmin pidetty standardi-HTML:n ulkopuolella. Lopputulos on osittain aika koominen. Niinpä nyt mukana on FONT FACE -rakenne, jolla teoriassa voidaan määrätä tekstin kirjasinlaji, vaikka jo kauan sitten on huolellisesti perusteltu, miksi rakenne on vaarallinen ja haitallinen. Toisaalta FONT FACE on "deprecated" eli rakenne samalla kertaa tuotaisiin mukaan viralliseen HTML:ään ja julistettaisiin vanhentuneeksi.

Ulkoasun (ainakin kuvitteellisen) säätelyn halu on tuonut mukaan aiempaa paljon mutkikkaamman taulukkokäsitteen, jolla kuitenkaan ei ole sen enempää rakenteellista ilmaisuvoimaa kuin ennenkään. Lomakkeiden yhteyteen luonnos ehdottaa myös melkoista mutkikkuuden lisäämistä tuomatta juuri mitään uutta lomakkeiden käyttöön, esimerkiksi syöttökenttien tarkistusta. Esimerkiksi kokonaan uusi elementti BUTTON ja paljon muuta otettaisiin kieleen mukaan vain sitä varten, että Web-dokumentin tekijä saisi tarkasti määrätä, minkänäköisinä lomakkeen eri painikkeet ja rastittavat ruudut näkyisivät. Lomakkeiden käyttäjien (täyttäjien) taas olisi entistä vaikeampi hahmottaa lomakkeita.

Eräänlainen tämän ajattelutavan huipentuma on kehysten (frames) ottaminen mukaan luonnokseen. Käytännössä kehyksillä voidaan esimerkiksi määrätä, että lukija näkee selaimen ikkunassa vasemmalla määrätynkokoisen osa-alueen, jossa on jokin hakemistosivu, ja oikealla varsinaisen dokumentin. Tämä toimii vain graafisissa selaimissa, joita puolestaan voi käyttää vain järjestelmissä, joissa on itse käyttöjärjestelmän käyttöliittymän tasolla ikkunointimahdollisuus (esim. Mac, Windows, Xwindows). Ja tämä mahdollisuus on tietenkin paljon monipuolisempi ja käyttäjälle joustavampi kuin mikään dokumentin tekijän koodaama kehysten käyttö.

Mitä unohtui?

Tekniikan ja luonnontieteiden dokumentteja ajatellen yksi ilmeisimmistä puutteista HTML:ssä on matemaattisten lausekkeiden ja yhtälöiden puute. Tähän ei HTML 4.0 toisi mainittavaa parannusta, joskin sen mukaan entistä huomattavasti laajempaa joukkoa matemaattisia symboleita voisi käyttää teksteissä. Matemaattiset merkinnät HTML:ään oli melko pitkälle hahmoteltu jo pari vuotta sitten HTML 3.0 -luonnoksessa. Mutta HTML 4.0 jättää asian kokonaan auki. Tosin on olemassa erillinen ehdotus matemaattisten merkintöjen käytöksi Webissä, mutta se perustuu XML-metakieleen ja olisi HTML:stä erillinen. (Lisäksi se olisi varsin raskas: yksinkertaisen yhtälön x**2 + 2x + 1 = 0 esittäminen vaatisi parikymmentä riviä merkintöjä.)

Yleisluonteisempi puute on se, että dokumenttien rakenteen kuvaamiseen käytettävissä olevien elementtien valikoima on suunnilleen yhtä köyhä kuin HTML:n alkuaikoina. Esimerkiksi ISO-HTML-luonnos, joka muutoin on melko kummallinen, sisältää ehdotuksen siitä, että dokumentin rakenteelliset osat kuten luvut, lukujen osat jne. merkittäisiin erityisillä elementeillä. Nykyisinhän tällainen rakenne on vain pääteltävissä otsikoiden käytöstä - jos on. Mitään tällaista ei HTML 4.0 sisällä. Päinvastoin se vesittäisi sen vanhan suosituksenkin, että otsikkotasojen yli ei hypätä (eli että esimerkiksi 2. tason otsikkoa ei saisi seurata 4. tason otsikko ilman, että välissä on 3. tason otsikkoa).


HTML: versioiden viidakko

HTML:stä on lukuisa (tai lukematon) määrä erilaisia versioita ja muunnelmia. Virallisia kielen määrittelyjä on kuitenkin itse asiassa tällä hetkellä tasan kaksi: HTML 2.0 (hyväksytty marraskuussa 1995) ja HTML 3.2 (hyväksytty 14.1.1997). Käytännössä HTML 2.0:aa voidaan pitää HTML 3.2:n osajoukkona, vaikka pieniä epäyhteensopivuuksia onkin.

On aika luonnollista kysyä, mihin ovat jääneet esimerkiksi HTML 1.0 ja HTML 3.0. Mitään HTML 1.0:ksi kutsuttua kielen määrittelyä ei koskaan ole ollut olemassakaan, joskin jotkut viittaavat nimityksellä "HTML 1.0" johonkin olettamaansa "alkuperäiseen HTML:ään". HTML 3.0 puolestaan oli pelkkä kiinnostava luonnos, joka ei koskaan tullut edes teknisesti viimeistellyksi ja joka virallisesti raukesi (expired) jo 28.9.1995. Tosin pitkään sen jälkeenkin johtavat Web-selaimien tekijät saattoivat mainostaa "tukevansa HTML 3.0:aa". Tähän lienee syynä se, että ne yrittävät luoda sellaista mielikuvaa, että selaimen versio n.0 vastaa HTML n.0:aa.

HTML: määrittelijöiden viidakko

Internetin standardeja ja "standardeja" määrittelee yleisesti IETF-niminen organisaatio. Se käyttää niistä yhteisnimitystä RFC, joka nimellisesti tulee sanoista Request for Comments. RFC:iden asema vaihtelee suuresti (ääripäinä experimental ja Internet standard). IETF vahvisti myös HTML 2.0:n antaen sille koodinimen RFC 1866 ja hiukan epämääräisen aseman standards track protocol.

Sittemmin IETF tuntuu pääosin menettäneen mielenkiintonsa HTML:n kehittämiseen. Tosin se tammikuussa 1997 hyväksyi RFC 2070:n, Internationalization of the Hypertext Markup Language, joka on osittain päällekkäinen, osittain ristiriidassa samassa kuussa vahvistetun HTML 3.2 -spesifikaation kanssa.

HTML 3.2:n määrittelikin W3C eli World Wide Web Consortium, joka on periaatteessa monien eri osapuolten yhteiselin mutta käytännössä aika riippuvainen suurimmista Web-selainten valmistajista (Netscape, Microsoft). Kesällä W3C julkisti luonnoksen HTML:n uudeksi, HTML 3.2:ta laajemmaksi versioksi HTML 4.0, joka oli aiemmin kulkenut koodinimellä Cougar.

Lusikkansa soppaan yrittää työntää myös Kansainvälinen standardointijärjestö ISO, jonka tietysti periaatteessa olisi oikea organisaatio määrittelemään tai ainakin vahvistamaan kaikenlaisia kansainvälisiä standardeja. ISO on kuitenkin ilmeisesti liian iso ja raskas organisaatio hoitamaan standardointia niin nopeaa kehitystä vaativalla alalla kuin HTML. Lisäksi sen piirissä vaikuttavilla HTML-asiantuntijoilla tuntuu olevan äärimmäisen "puristisia" tavoitteita. Tätä osoittaa omalla tavallaan se, että ISO:n piirissä laadittu ISO-HTML-luonnos on olennaisesti muodostettu poistamalla HTML 3.2:sta koko joukko ulkoasuun vaikuttavia piirteitä tuomatta juuri mitään tilalle. Tällöin on unohtunut se, että suuri osa niiden piirteiden käytöstä on johtunut siitä, että kielessä ei ole parempaakaan, rakenteellista tapaa.


Kirjoittaja on laatinut myös laajemman englanninkielisen arvion HTML 4.0:sta.
Jukka Korpela.
12. syyskuuta 1997