För den stora massan blev HTML ett välkänt begrepp i samband med att internet slog igenom på bred front på 1990-talet, och språket var närmast synonymt med www. Hypertext som begrepp och dess användning kan dock hänvisas tillbaka ända till omkring 1945, då Vannevar Bush för första gången beskrev ett informationssystem där läsaren inte längre skulle vara hänvisad till att läsa en text från början och till slut, utan fritt skulle kunna följa det spår denne var intresserad av. Redan då myntades begreppet ”hem” som är den plats man återvänder till efter avslutad läsning eller när man vill navigera om till en annan plats.

  • Webbsidor skrivs normalt som HTML för att sedan överföras till Internet med HTTP
  • HMTL styr primärt inte hur ett dokument ska visas, utan detta görs med så kallade stilmallar (CSS)

Vad är egentligen HTML?

HTML är, till skillnad från vad man kan luras att tro, inte ett programmeringsspråk utan ett märkspråk – och det finns viktiga skillnader mellan dessa. Att HTML är ett märkspråk innebär att dess syfte är att definiera information på en hemsida. HTML kommunicerar med andra ord med webbläsaren så att denna ska veta var informationen ska visas. HTML anger ett dokuments struktur genom att definiera bland annat rubriker, styckeindelning och metadatainformation (såsom språk, författare och plats samt i vilken hierarki de finns). Ett programmeringsspråk å andra sidan, syftar till att själv göra något, alltså att utföra något slags kommando.

Filer med filnamnstilläggen .htm och .html är normalt sett HTML-dokument, och filerna innehåller vid sidan av text även så kallade taggar som berättar för webbläsaren hur informationen ska presenteras, exempelvis vilken färg bokstäverna och bakgrunden på webbsidan ska ha och om texten ska vara fet eller kursiverad. I viss utsträckning kan HTML även styra över hur ett dokument ska visas, även om själva visningen primärt är resultat av att man infogar information av andra typer. Vanligast är instruktioner genom stilmallar, CSS och genom scriptspråk som exempelvis JavaScript, vilket används i syfte att skapa dynamiska och interaktiva webbplatser.

Elementtyper, attribut och HTML-standarder

Det finns fyra kategorier av elementtyper i HTML; strukturmärken, vars uppgift är att beskriva syftet med texten, presentationsmärkning, som beskriver textens stil (exempelvis fet eller kursiverad stil), hyperlänkning, som länkar till ett dokument eller till en annan sektion i det aktuella dokumentet, och interaktiva element, som skapar interaktiva objekt såsom knappar och listor. Numera separerar webbutvecklare oftast presentation och struktur för att istället använda sig av stilmallar för att presentera data, vilket i regel resulterar i mer eleganta webbsidor. Till de flesta HTML-element är det utöver detta möjligt att ange särskilda attribut som mer exakt definierar elementets funktion.

Alla webbläsare tolkar specialtecken olika, vilket kan ställa till det för läsaren av en webbsida. Ibland tolkas tecknen rätt för att andra gånger presenteras helt obegripliga. För att en text ska bli läsbar oavsett webbläsare bör således varje specialtecken ersättas med dess unika HTML-kod. Detta blir tillämpligt för bland annat svenska specialtecken såsom å, ä och ö där å skrivs som å, ä som ä och ö som ö. Även andra tecken behöver skrivas om med hjälp av HTML-encoding, såsom exempelvis &, vilket skrivs som &. Naturligtvis kan man lära sig alla specialtecken, men det finns även verktyg som enkelt översätter dessa till HTML-encoding.

Standarder

Att det inte har funnits någon standard har utgjort en utmaning för webbutvecklare då olika webbläsare tolkar HTML-kod på olika sätt. Försök att standardisera görs dock av World Wide Web Consortium(W3C) och förhoppningen är att deras arbete kommer att leda till förbättringar de närmaste åren. Sedan 2015 är standarden HTML 5, vilken bland annat inkluderar nya element för att utvidga märkspråkets semantik och förbättrade formulär med Web forms 2.0. Trots ett ganska omfattande arbete med att standardisera HTML är dagens standarder ändå ofta tvetydiga. Detta innebär att programmerare ofta tvingas välja hur olika situationer skall tolkas, vilket inte fullt ut ger den enhetlighet man hoppats på.