Alguses oli HTML. HTML on keel, millega kirjeldatakse infot veebilehel (inglise keeles Hypertext Markup Language). See keel on vĂ€ga lihtne, kui inglise keelest midagi mĂ”igatakse, sest HTML on tegelikult ĂŒks kari ingliskeelseid sĂ”nu vĂ”i nendest sĂ”nadest tuletatud tĂ€hekombinatsioone.
Igal sellisel sĂ”nal vĂ”i tĂ€hekombinatsioonil on ette mÀÀratud kĂ€itumine — ta on kas ploki- (block) vĂ”i reaelement (inline). Plokielemendi kĂ€itumine on ĂŒlbe: ta algab ja lĂ”peb uuelt realt ja venib tĂ€pselt nii laiaks, kui element, mille sees ta on (kui ta ei ole millegi sees, on ta terve ekraani laiune), sundides enda naabrid uuele reale. Reaelement on aga selline vaikne, vĂ”tab tĂ€pselt nii palju ruumi, kui temal tarvis, ei suru enda naabreid uuele reale ega midagi.
Selle kĂ€itumise jĂ€rgi enamik inimesi elemente lahterdabki — kui vaja, et midagi algaks ja lĂ”peks uuelt realt (nĂ€iteks pealkiri), siis kasutatakse plokielemente, muidu aga kasutatakse rea omi. Lihtne, kas pole?
Aga tegelikult ei ole asi ĂŒldse nii, vaid hoopis intelligentsem.
Semantiline HTML-lehe ĂŒlesehitus
Erinevalt inimestest, on igal HTML-elemendil elus eesmĂ€rk, nad ei eksisteeri niisama. See, et ĂŒks element on ĂŒlbe plokielement vĂ”i leebe realement, ei oma tegelikult ĂŒldse tĂ€htsust. Palju tĂ€htsam on element, kui isiksus, sest ta tĂ€histab midagi, mis on arvuti jaoks arusaadav. Nii nĂ€iteks teab programm, et p tĂ€histab tavalist tekstilĂ”iku ja h1 on kĂ”ige ĂŒldisem ja olulisem pealkiri. Kui programm leiab lehelt aga h2-e, ilma et ta eelnevalt oleks kohanud h1-te, on kuri karjas — ĂŒlesehitus ei ole enam loogiline ja segadus on majas. Inimesed aga vaatavad lehte ja ei nĂ€e midagi valesti…
NĂ€ide inimese ja programmi arusaamistest.
Inimene mÔtleb:
Minu veebilehel peab olema pealkiri, siis lĂ”ik ja loetelu asjadest. LĂ”pus on veel ĂŒks lĂ”ik ja asi Ants.
Ning kirjutab koodi:
<p>
<strong>Pealkiri</strong><br />
<br />
LÔik<br />
Loetelu<br />
loetelu<br />
loetelu<br />
lÔik
</p>
Aga mida nÀeb sellise koodi puhul programm:
Lehel on tekstilĂ”ik, mille hulka kuulub ĂŒks oluline fraas.
Möh? Just.
Aga leht nĂ€eb ju hea vĂ€lja! Pealkiri on, lĂ”igud on ja loetelugi istub enda kohas. Mis seal vahet, mida programm asjast arvab…
Jah, leht vĂ”ib kĂŒll ekraanil hea vĂ€lja nĂ€ha, aga kĂ”ik inimesed, kes tahavad lehte lugeda ei vaata lehte sirvikus arvuti taga, kĂ”igil ei seleta silmad hĂ€sti ja lehe koodi loevad inimestele lisaks veel paljud programmid, mis orienteeruvad ainult koodi jĂ€rgi.
Kuidas peaks siis seda koodi kirjutama?
<h1>Pealkiri</h1>
<p>LÔik</p>
<ul>
<li>Loetelu</li>
<li>Loetelu</li>
<li>loetelu</li>
</ul>
<p>LÔik</p>
NĂŒĂŒd saavad kĂ”ik koodist Ă”igesti aru, sest HTML on semantiliselt korrektne ehk lehel olev info on loogiliselt kirjeldatud. Ja kui ma ĂŒtlen kĂ”ik, siis ma pean silmas lisaks sirvikule ja nĂ€gijatele inimestele ka inimesi, kes vajavad veebilehtede vaatamisel mĂ”ne programmi abi (nĂ€iteks ekraanilugeja), otsimootoreid, sest otsimootorid saavad siis aru lehe struktuurist ja tĂ”stavad lehe tĂ€htsust otsingu tulemustes (internetiturundajad, liigutage kĂ”rvu) ja muid programme, mis peavad lugema HTML-koodi (RSS lugejad, veebirakendused jne). LĂ”ppkokkuvĂ”ttes on kĂ”ik ikkagi inimeste hĂŒvanguks, mitte veebikonsortsiumi rÔÔmuks ja enese harimiseks.
Eluline paralleel — kindlasti on enamik meist kasutanud Microsoft Wordi ja nutnud peatĂ€isi, sest Word on nii loll, et ei tee automaatselt sisukorda. Hoolimata sellest, et meie teeme kĂ”ik Ă”igesti — paneme pealkirja tĂ€hesuuruse suureks ja teeme teksti rasvaseks. Aga mĂ€rgiks me Ă€ra, millise tekstilĂ”igu puhul on tegemist pealkirjaga, poleks pisaraid kusagil. Millegi suuremaks vĂ”i vĂ€iksemaks tegemine ei tee midagi pealkirjaks, see on puhas kujunduslik lĂŒke. Ja millegi rasvaseks mĂ€rkimine ĂŒtleb arvutile, et see koht vajab rĂ”hutamist.
Ja lĂ”ppude lĂ”puks — HTML oli, on ja saab olema keel, mis kirjeldab informatsiooni, mitte lihtsalt ei kuva seda.
Kui ma nĂŒĂŒd hinge tĂ”mbaks, siis kindlasti keegi tĂ€htis tegelane keerutaks silmi ja ĂŒtleks, et on olukordi, kus ei saa kasutada pealkirja h1-e, sest see vĂ”tab liiga palju ruumi ja p on tĂ€itsa lollakas, sest lĂŒkkab tekstilĂ”igud ĂŒksteisest eemale. RÀÀkimata loetelust, mis kasutab mingeid eriti nĂ”medaid mummusid.
Ja nii me jÔuamegi kujunduse juurde.
HTML-lehe kujundus
Veebileht koosneb kolmest osast: infost, kujundus ja interkatiivsusest. Need kĂ”ik moodustavad terviku, kui nad ei tohiks omavahel kokku puutuda. MĂ”telgem neist kui kolmest kihist, mis on ĂŒksteise peal.
Kui info struktureerimiseks on olemas HTML, siis info kujundamiseks on olemas CSS ehk keel, mis kirjeldab HTML-i elementide kujundust ja formaati.
CSS-ga saab ka kĂ”ige Ă”nnetuma ja vĂ€etima reaelemendist teha plokielemendi, mis annab kĂ”ikidele alfaisastele silmad ette. Ja kĂ”ik need vahed, mummud ja praod — need saab kĂ”ik kaotada, juurde tekitada, laiemaks ajada, tĂ€pselt nii, nagu hing ihaldab ja fantaasia lubab. Selleks ei pea tegema midagi muud, kui lehele kĂŒlge haakima CSS-dokumendi.
Miks ei tohi aga kujundust ja infot segamini ajada?
HTML-i ei salvestata kĂŒlastaja arvutisse, et kiirendada lehe laadimist. Seega, kui kirjutada kujundus ja HTML segamini, laetakse ka kujundus igal kĂŒlastuskorral uuesti. See tĂ€hendab, et leht on aeglasem/allalaadimine vĂ”tab rohkem aega, eriti kui arvestada seda, et alatihti on lehel kujunduse kirjeldust rohkem, kui sisu ise.
Kujunduse ja info kokkukirjutamisel saab surmahoobi lehe kĂ€ttesaadavus — ekraanilugejad, pihuseadmed, printerid jne nĂ€evad samasugust lehte, mida kuvatakse ekraanil. Kuid ekraan, paber, pisike ekraan ja helisĂŒntees (ekraanilugejad) on kĂ”ik erinevate nĂ€itajatega ja nende esitatavad nĂ”uded dokumentidele erinevad. NĂ€iteks ei mahu telefoni ekraanile ega A4 suuruses paberile 960 piksli laiune leht kuidagi mugavalt Ă€ra.
Lihtsam on muuta ĂŒhte-kahte kujundufaili, kui kĂŒmmet, sadat vĂ”i tuhandet HTML-faili.
Ja lĂ”ppude lĂ”puks — HTML oli, on ja saab olema keel, mis kirjeldab informatsiooni, mitte ei kujunda seda.
Kolmas kiht ehk lehe interaktiivsus
See kiht asub kÔige peal. Ja on kÔige ebaolulisem. Vahel nimetatakse seda kelladeks ja viledeks aga enamik lavatagustest tegijatest teab, et peaaegu alati vÔib seda kutsuda JavaScriptiks. Muidugi ei ole see 100% tÔene, sest vahel vÔib olla asja eest vastutav ka mingisugune muu keel-tehnoloogia (CSS), aga enamasti ei lÀhe asi ikkagi JavaScriptist kaugelt mööda.
Interaktiivus, nagu juba kord mainitud, on kellad ja viled ehk tilulilu ehk silmailu. Selle alla kuuluvad lingi vĂ€rvivahetus, kui hiir linki kompab vĂ”i loetelu aktiivse rea taustavĂ€rvi vahetus, et inimesel oleks kergem aru saada, kus ta tĂ€pselt loetelus asub, elementide hĂŒplemised-karglemised. VĂ”imalusi on oi-oi, kui palju! LĂŒhidalt ja tugevalt ĂŒldistades on interaktiivsus lehe kujunduse manipuleerimine lehe lugeja abistamiseks. KĂ”ik on niikaua aktsepteeritav ja kiidetav, kuni manipuleerimine piirdub vaid lehe kujundusega — JavaScript on vĂ”imas keel, mille jaoks ei ole probleem manipuleerida ka HTML-i ja infoga. Kuigi see on hoopis teine teema, kehtivad ka siin ĂŒleĂŒldised reeglid — leht peab olema kĂ€ttesaadav ja arusaadav kĂ”igile.
KokkuvÔtteks
Miks seda nĂŒĂŒd vaja oli? Sest niikaua, kuniks brauserid lubavad vaadata veebilehe koodi, vĂ”ib koodist nĂ€ha, et need asjad ei ole veel kĂ”igile pĂ€ris teada. Loomulikult vĂ”ib peituda vabanduse taha, et erinevad dokumenditĂŒĂŒbid lubavad sisu ja kujundust segamini kirjutada ja kĂ”ige olulisem on ikkagi see, mis tekib arvuti ekraanile, aga vaatame siinkohal kella — aasta on 2010. See tĂ€hendab, et veeb on muutunud vĂ€ga tĂ€htsaks ja ei ole enam pelgalt lĂ”bustusasutus oma ala fanaatikutele. See omakorda tĂ€hendab, et veeb peab olema kĂ€ttesaadav paljudele, sĂ”ltuvalt nende seadmest ja fĂŒĂŒsilisest ning ka psĂŒĂŒhhilisest vĂ”imekusest.
Kuidas olla kindel, et leht on semantiliselt korrektne
Kui veebilehel keelata CSS, peaks olema visuaalselt aru saada, mis on mis ja mis on kus.
Kuidas olla kindel, et leht on semantiliselt korrektne ja kÀttesaadav kÔigile
Kui veebilehel keelata CSS, peaks olema visuaalselt aru saada, mis on mis ja mis on kus.
Kui veebilehel keelata piltide nÀitamine, peaks olema aru saada, kus on pilt ja mis on pildil kujutatud.
Kui veebilehel keelata skriptide kasutamine, peaks kogu info olema nÀhtav ja loogiliselt asetsev.
Aamen!