HTML
HTML (, suomennettuna "hypertekstin merkintäkieli") on avoimesti standardoitu kuvauskieli, jolla voidaan kuvata hyperlinkkejä sisältävää tekstiä eli hypertekstiä. HTML:llä voidaan myös merkitä tekstin rakenne eli esimerkiksi, mikä osa tekstistä on otsikkoa ja mikä leipätekstiä. HTML tunnetaan erityisesti kielenä, jolla internetsivut on kirjoitettu.
HTML5:tä edeltävien HTML-versioiden syntaksi on määritelty SGML:n sovelluksina. HTML 4.01:stä on muokattu myös XML:n sovellukseksi luokiteltava versio XHTML 1.0, ja HTML 5:n luonnoksesta on rinnakkainen XML-versio XHTML 5.
HTML-koodi on rakenteista tekstiä, joka muodostuu sisäkkäisistä ja perättäisistä elementeistä. Koodauksen tasolla elementtejä edustavat kulmasulkein merkityt tunnisteet eli tägit, jotka nimeävät elementin tyypin. Selaimet eivät näytä tunnisteita sellaisinaan vaan käsittelevät niitä teknisinä ohjeina, joiden mukaan sivun varsinainen sisältö tulee jäsentää.
Tavallisesti elementissä on erikseen aloitustunniste ja vinoviivalla merkitty lopetustunniste sekä niiden väliin jäävä sisältö (jossa voi olla tekstiä ja myös muita HTML-elementtejä):
Aloitustunnisteeseen saattaa lisäksi sisältyä attribuutteja, jotka määrittävät elementin ominaisuuksia tarkemmin kuin tunnisteen nimeämä elementin tyyppi:
Eräissä HTML-elementeissä ei ole mitään sisältöä. Sisällyksetöntä elementtiä edustaa esimerkiksi pakollisen rivinvaihdon muodostava codice_5-tunniste. Sisällyksettömät elementit eivät tarvitse lopetustunnistetta, paitsi jos kyse on XHTML-koodista. Tällöinkin erillinen lopetustunniste voidaan korvata siten, että lopetusmerkkinä toimiva vinoviiva merkitään heti aloitustunnisteen loppuun:
Rakenteellinen merkkaus määrittää elementin tarkoituksen. Esimerkiksi merkintä codice_5"Golf"codice_5 tarkoittaa, että sana "Golf" on toisen asteen otsikko (joka näkyy selaimessa samanlaisena kuin "Rakenteisuus ja merkkaus" -otsikko tämän osion alussa). Rakenteellinen merkkaus ei periaatteessa määritä sitä, miltä tekstin pitää selaimessa näyttää, mutta yleensä selaimet noudattavat jotain oletusarvoista tapaa esittää erityyppisiä elementtejä. Tekstien ulkoasua voidaan lisäksi säädellä tarkemmin CSS (Cascading Style Sheets) -tyyliohjeilla.
Esityksellinen merkkaus määrittää elementin ulkoasun, mutta ei tarkoitusta. Esimerkiksi codice_5"sisältö"codice_5 tarkoittaa, että elementin sisältö tulisi näyttää lihavoituna tekstinä. Esityksellinen merkkaus ei kuitenkaan ota kantaa siihen, miten sisältö pitäisi esittää, jos tulostuslaite ei pysty lihavoimaan sisältöä (ei ole itsestään selvää, miten esimerkiksi puhesyntetisaattorin pitäisi käsitellä lihavointia, kun se muuntaa tekstin ääneksi). Sen sijaan rakenteellinen merkkaus codice_5"sisältö"codice_5 tarkoittaa, että sisältö tulee esittää voimakkaasti, mutta ei ota kantaa siihen, tarkoittaako voimakkuus tekstin lihavointia vai puheen painokkuutta. Suurin osa esityksellisistä merkkauksista katsotaankin HTML 4.0 -spesifikaatiossa vanhentuneeksi.
Hypertekstuaaliset merkkaukset linkittävät osia dokumentista toisiin dokumentteihin. Hyperlinkki luodaan erityisellä ankkurielementillä codice_13, jossa codice_14-attribuutti määrittää kohdedokumentin URL:n. Elementin sisältö hahmottuu selaimessa linkkisanaksi:
HTML-koodiin voi sisällyttää erikoismerkkejä merkki- tai nimiviittauksilla, jotka alkavat codice_17-merkillä (et eli ampersandi) ja loppuvat puolipisteeseen. Esimerkiksi nimiviittauksella codice_18 voidaan tuottaa kreikkalainen suuraakkonen Ω eli oomega (jota kansainvälisen yksikköjärjestelmän mukaan käytetään myös ohmin tunnuksena).
HTML-dokumentteja on mahdollista kirjoittaa millä tahansa tekstinmuokkaimella, mutta käytettävissä on myös erityisiä HTML-muokkaajia. Periaatteessa HTML-koodin tulisi aina läpäistä vahvistaminen, mutta käytännössä selaimet hyväksyvät myös dokumentteja, joiden HTML-koodi ei ole standardin mukaista. Perinteisesti HTML:n vahvistaminen on ollut sikäli työlästä, että sen jäsentäminen ei ole aivan triviaalia. HTML:n säännönmukaisempi muunnelma XHTML sen sijaan perustuu XML-kieleen, jolle on olemassa huomattava joukko hyviä jäsentimiä ja vahvistimia, joten XHTML:ää voi kirjoittaa helposti myös millä hyvänsä XML-muokkaimella.
Jos koodissa on kaksi tai useampia peräkkäisiä välilyöntejä, ne näyttävät selaimessa yhdeltä välilyönniltä. Myös koodiin sisältyvät rivinvaihdot ilmenevät selaimessa pelkkänä välilyöntinä, ja jos rivinvaihdon halutaan näkyvän selaimessa, se on tuotettava erityisellä merkinnällä.
HTML:n historia alkoi vuonna 1989, kun Tim Berners-Lee ja "Robert Caillau" hahmottelivat korviketta "CERNin" dokumenttien kirjavalle formaatille. Rinnalle suunniteltiin yksinkertainen verkkoprotokolla HTTP. HTML-dokumenttien verkkoa internetissä kutsutaan World Wide Webiksi eli lyhyesti "webiksi". Joillekin se on yhtä kuin Internet. CERN käynnisti oman WWW-palvelimensa vuonna 1991, ja monet ideasta kiinnostuneet liittyivät siihen nopeasti. HTML-normia ylläpitää vuonna 1994 perustettu kansainvälinen yritysten ja yhteisöjen yhteenliittymä W3C ("World Wide Web Consortium").
HTML:n alkuperäinen tarkoitus oli pikemminkin kuvata WWW-sivun rakennetta kuin sen ulkoasua, mutta sivujen kirjoittajat halusivat ennen pitkää paremmat mahdollisuudet vaikuttaa myös dokumenttiensa ulkoasuun. Selainvalmistajat vastasivat tarpeeseen esittelemällä HTML-määritykseen kuulumattomia elementtejä, joilla esitystapaa saattoi kuvailla. Monet näistä elementeistä jouduttiin myöhemmin ottamaan mukaan viralliseen HTML-määritykseen käytännön standardeina. Nykyisin monia elementtejä jälleen puuttuu itse HTML:sta, sillä ulkoasun kuvailussa on siirrytty erillisiin tyyliohjeisiin, jotka kuvataan CSS-kielellä. CSS:ään siirtyminen paitsi yksinkertaisti HTML:ää, myös helpotti sivujen luomista ja päivittämistä.
Berners-Lee julkaisi ensimmäisen kuvauksen HTML:sta Internetissä vuoden 1991 lopulla. Siinä oli 22 elementtityyppiä, joista 13 on edelleen käytössä HTML 4:ssä. Berners-Lee suunnitteli HTML:n SGML:n sovellukseksi, mutta vasta IETF toteutti määrittelyn sen avulla vuonna 1993. IETF:n määrittely oli vedos, joka raukesi kuuden kuukauden päästä. Se sisälsi NCSA Mosaicin tukeman kuvien lisäyksen dokumentteihin. Dave Raggett julkaisi kilpailevan HTML+:n, joka sisälsi myös jo käytössä olleet taulukot ja lomakekentät.
Alkuvuodesta 1994 IETF muodosti HTML-työryhmän laatimaan ”HTML 2.0” -määritelmän, joka julkaistiin vuonna 1996 koodinimellä RFC 1866. Siihen tehtiin joitain lisäyksiä, kuten tiedoston tallennus palvelimelle, RFC 1867; taulukot, RFC 1942; kuvakartat, RFC 1980; merkistömäärittelyt ja lang-attribuutti, RFC 2070.
IETF julkaisi huhtikuussa 1995 myös standardiehdotuksen HTML 3.0:sta, mutta sekin raukeni viiden kuukauden kuluttua ilman toimenpiteitä. Tämä standardiehdotus sisälsi monia Raggettin HTML+:n ominaisuuksista, kuten matemaattisten kaavojen sisällyttämisen dokumenttiin, taulukot ja tekstin sijoittelun kuvien ympärille. Ainoa selain, joka osasi HTML 3.0:aa, oli W3C:n Arena.
IETF:n työryhmän toiminta hiipui, ja työryhmä lakkautettiin syyskuussa 1997. Pitkään HTML:n kehittäminen oli omia koodejaan määritelleiden selainvalmistajien, lähinnä Netscapen ja Microsoftin, varassa.
Standardointityö jatkui, kun W3C julkaisi HTML 3.2:n tammikuussa 1997. Siitä jätettiin kokonaan pois matematiikan tuki ja siihen lisättiin pääosa Netscapen määrittelemistä sivun ulkomuotoa kuvaavista koodeista.
Loppuvuodesta 1997 julkaistiin HTML 4.0. Siinä on kolme tasoa: "tiukassa" versiossa monia vanhentuneita elementtityyppejä on määritelty laittomiksi, kun taas "siirtymävaiheen" versiossa näiden käyttö on yhä sallittu; kolmas versio sallii lisäksi Netscape 2.0:n aikoinaan esittelemät kehykset, joiden avulla sivun voi koostaa useasta erillisestä osasivusta.
HTML 4:ää päivitettiin huhtikuussa 1998 ja joulukuussa 1999 HTML 4.01:ksi. Siitä julkaistiin myös toukokuussa 2000 tiukkaan standardiin perustuva ISO-standardi ISO/IEC 15445:2000. HTML 4.01 määriteltiin myös XML:n avulla, jolloin syntyi XHTML.
Ensimmäinen versio HTML5:n vedoksesta julkaistiin tammikuussa 2008. HTML5:n uusia ominaisuuksia ovat muun muassa canvas- ja video-elementit, joiden avulla sivulle voidaan sijoittaa piirtoalue ja videopätkä.
Hypertext Application Technology Working Group aloitti HTML5:n kehitystyön vuonna 2004, kun W3C keskittyi kehittämään XHTML 2.0:aa ja kun HTML 4.01:tä ei ollut päivitetty vuoden 2000 jälkeen. XHTML 2.0:n kehitys lopetettiin, ja nykyisin kehittäjät työskentelevät HTML5:n kehitystyössä.
Alun perin HTML5-standardin suunniteltiin valmistuvan 2022 mennessä, mutta suositus valmistui ja hyväksyttiin jo lokakuussa 2014.
HTML 5.1 -suosituksen pitäisi valmistua vuoden 2016 viimeisellä neljänneksellä.