HyperText Markup Language (afgekort HTML) is een op SGML gebaseerde opmaaktaal voor de specificatie van documenten, voornamelijk bedoeld voor het wereldwijde web. Het is de standaard opmaaktaal voor webpagina's. Documenten in HTML kunnen geopend en gelezen worden door een webbrowser om vervolgens als webpagina weergegeven te worden. HTML-documenten bevatten op de eerste plaats semantische structuur en tekstuele inhoud van een webpagina; de opmaak en visuele weergave kunnen er ook in worden beschreven, maar daar wordt tegenwoordig gewoonlijk CSS voor gebruikt.

Inleiding Gebruik HTML wordt meestal bekeken met een webbrowser, een programma dat HTML-documenten opvraagt bij een webserver en als opgemaakte tekst (een webpagina) aan de gebruiker toont. Het document kan ook 'lokaal' staan: als bestand op de eigen computer van de gebruiker, in plaats van op een webserver. Naast browsers kunnen ook sommige andere programma's zoals tekstverwerkingsprogramma's HTML-documenten tonen. E-mails kunnen eveneens HTML-codes bevatten.

Hypertext en hyperlinks De wezenlijke eigenschap van HTML is dat deze hypertekst ondersteunt: documenten en bestanden die verbonden zijn door direct volgbare verwijzingen, de zogenaamde hyperlinks (in het Nederlands ook wel koppelingen genoemd).

Opmaaktaal Daarnaast is HTML een opmaaktaal zoals vele andere, met notaties voor het aangeven van een indeling in alinea's, van kopjes, nadruk in de tekst en tabellen. Afbeeldingen en multimedia kunnen via HTML-codes op de webpagina worden opgenomen (maar staan niet in het HTML-bestand zelf).

Een HTML-document bestaat uit platte tekst waarin met markeringstekens is aangegeven hoe de tekst moet worden geïnterpreteerd, bijvoorbeeld als lijst of als opschrift. Zo'n markering wordt (naar het Engels) een HTML-tag genoemd.

In de loop der jaren is het aantal verschillende tags dat in HTML wordt gebruikt, enorm uitgebreid. Om interpretatieproblemen te voorkomen heeft het World Wide Web Consortium (W3C) aanbevelingen opgesteld over welke tags geldig zijn en hoe ze moeten worden geïnterpreteerd. De oorspronkelijke aanbeveling is een aantal malen geactualiseerd in verband met verdere ontwikkeling van HTML. De laatst geaccepteerde aanbeveling, HTML 5.0, dateert van oktober 2014.

Sinds het ontstaan van HTML zijn er pogingen gedaan om het tot een exact gestructureerde taal te maken, door te eisen dat de syntaxis van de tags exact gevolgd wordt en hun combinatie aan een precieze grammaticale definitie voldoet. Dit is gedaan door de syntaxis van elke versie van HTML te beschrijven als een toepassing van SGML, later XML. Dit is een wezenlijke voorwaarde om een uniforme interpretatie van HTML door software te kunnen garanderen. De meeste gebruikers en softwareontwikkelaars hebben zich hier nooit veel van aangetrokken, met als gevolg dat HTML-verwerkende software in de praktijk niet op het correct gebruik van tags mag rekenen en de eindgebruiker niet op een consistente interpretatie.

Een tweede continue trend in de ontwikkeling van HTML vormden de pogingen om het tot een structurele (of logische) opmaaktaal te maken, waarbij de tags in het document alleen structuur en algemene eigenschappen van de tekst aangeven, terwijl de details van de presentatie apart van het document worden gespecificeerd. Dit heeft als voordelen dat de opmaak ineens kan worden gewijzigd voor alle documenten tegelijk en dat er verschillende presentatievormen kunnen worden gebruikt die bijvoorbeeld toegesneden zijn op de eigenschappen van de gebruiker (misschien kleurenblind of blind) of van het weergevende apparaat (misschien een klein beeldscherm of zwart-wit-papier). Aanvankelijk is dit totaal mislukt, waardoor HTML een grote hoeveelheid presentatiespecifieke tags heeft gekregen. Uiteindelijk heeft dit principe zich toch doorgezet, waardoor in moderne HTML een nette scheiding van presentatiespecificatie mogelijk is, met behulp van Cascading Style Sheets (CSS).

Interactie HTML zelf voorziet alleen in zeer eenvoudige gebruiksinteractie: het aanklikken van verwijzingen, het invullen van tekstvelden, het klikken in afbeeldingen.

Een min of meer gestandaardiseerde vorm om andere soorten interactie te ondersteunen is het inbedden van scripts geschreven in de taal JavaScript. Voor zowel CSS als interactie geldt het voorbehoud dat HTML niet ontworpen of geschikt is voor het ondersteunen van een willekeurige grafische paginavormgeving of gebruikersomgeving.

Het derde doorlopende thema in de ontwikkeling van HTML is het spanningsveld tussen innovatie en standaardisering. De concurrentiestrijd tussen producenten van webbrowsers heeft een belangrijke rol gespeeld in de ontwikkeling van HTML. Producenten ontwikkelden op eigen houtje nieuwe tags, die vaak niet door andere webbrowsers werden begrepen, hadden eigen interpretaties van stylesheets en een eigen interpretatie van JavaScript. Sommige van deze HTML-tags zijn later opgenomen in de aanbevelingen, andere niet. Ook nu nog zijn daarvan relicten te vinden in moderne browsers.

Aanbeveling versus standaard Het W3C is een internationale organisatie maar heeft geen bevoegdheid om standaarden vast te stellen, zoals de ISO. De HTML-specificaties van het W3C zijn daarom formeel niet meer dan aanbevelingen. In de praktijk worden de W3C-aanbevelingen echter als standaarden gezien, mede omdat alle belangrijke browserfabrikanten in het W3C samenwerken.

Opmaak Voorbeeld <!DOCTYPE html> <html lang="nl"> <head> <title>Huis</title> </head> <body> <p>Een huis is een gebouw om in te wonen.</p>

<p>Hier is een foto van een rijtje huizen:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Agnetapark_delft.jpg/320px-Agnetapark_delft.jpg" alt="Huizenrij ..." /></p>

<p>Zie <a href="https://nl.wikipedia.org/wiki/Huis_(woning)">het artikel Huis (woning) op Wikipedia</a>.</p> </body> </html>

Dit is een HTML-document dat in een browser een eenvoudige tekst oplevert, waarbij een afbeelding op het wereldwijde web wordt ingevoegd, en een link wordt gegeven naar een webpagina.

Zo'n document kan zelf een webpagina zijn, maar het kan ook een HTML-bestand voor eigen gebruik op een lokale computer zijn. Als de afbeelding en/of de gelinkte pagina ook op de lokale computer staat dan begint de locatie-aanduiding daarvan niet met "https://", maar met "file://". Als het bestand in dezelfde map staat kan worden volstaan met de bestandsnaam.

Elementen Een HTML-pagina is opgebouwd uit genestelde elementen, die doorgaans een startlabel (Engels: 'start tag') en eindlabel (Engels: 'end tag') hebben. De meest voorkomende tags/labels zijn: html: duiden begin en eind van het HTML-document aan. head: duiden de header van het document aan, die metadata zoals de pagina-titel bevat. body: bevat de concrete inhoud van het document. div: bakent een logische sectie (Engels: 'division') af van de webpagina. h1: bevat de titel/koptekst van een sectie op de webpagina (Engels: 'heading'). p: bakent een tekstalinea (Engels: 'paragraph') af. img: voor de weergave van een afbeelding (Engels: 'image'). a: voor het invoegen van een (hyper)link (Engels: 'anchor').

Attributen Elk HTML-element kan attributen hebben, die extra informatie meegeven over het element, die de visuele weergave en andere metadata bevatten. Zo geeft in het volgende voorbeeld <p style="background-color:yellow; color: orange;"> Deze alinea wordt weergegeven in oranje tekst op een gele achtergrond. </p> het 'style'-attribuut informatie over de visuele weergave (hier de tekst- en achtergrondkleur) van een alinea tekst op de webpagina.

Versies De volgende specificaties zijn gepubliceerd van versies van HTML. Elk ervan bevat een exacte syntactische specificatie in de vorm van een SGML-toepassing. Geen ervan omvat een beschrijving van in combinatie met HTML gebruikte talen zoals JavaScript of CSS.

HTML (gepubliceerd als IETF-'draft', juli 1993) HTML 2.0 (gepubliceerd als RFC 1866, november 1995) formulieren in HTML (gepubliceerd als RFC 1867, november 1995) tabellen in HTML (gepubliceerd als RFC 1842, mei 1996) client-side image maps in HTML (gepubliceerd als RFC 1980, augustus 1996) internationalisatie van HTML (gepubliceerd als RFC 2070, januari 1997) HTML 3.0 (gepubliceerd als IETF-'draft', april 1995), nooit algemeen geïmplementeerd in browsers HTML 3.2 (gepubliceerd als W3C-aanbeveling, januari 1997), een poging om de gemeenschappelijke features in browsers te beschrijven HTML 4.0 (gepubliceerd als W3C-aanbeveling, december 1997), een geactualiseerde poging, met drie versies (strict, transitional en frameset) HTML 4.01 (gepubliceerd als W3C-aanbeveling, januari 1999), voor kleine verbeteringen Verdere verbetering van HTML 4.01 (gepubliceerd door W3C tot in 2001) ISO/IEC 15445:2000, de publicatie van HTML 4.01 strict als ISO-standaard HTML 5.0 (gepubliceerd als W3C-aanbeveling, december 2012), 'kandidaat-aanbeveling'

Een voorstel voor HTML 5 is momenteel op het wereldwijde web beschikbaar als nieuwe HTML-standaard.

Er bestaan ook versies van HTML waarvan de syntactische specificatie niet is gebaseerd op SGML, maar op XML. XHTML 1.0 (gepubliceerd als W3C-aanbeveling, januari 2000 met een revisie in augustus 2002), een bewerking van HTML 4.01 voor XML XHTML 1.1 (gepubliceerd als W3C-aanbeveling, mei 2001), bevat kleine wijzigingen en ondersteunt modularisatie

In ontwikkeling zijn verder: XHTML 2.0, dat niet compatibel is met XHTML 1.0 XHTML5, de XML-versie van HTML5

Geen van deze versies komt 100% overeen met de HTML die door specifieke versies van specifieke webbrowsers wordt ondersteund.

Andere noties van HTML: C-HTML is een beperkte vorm van HTML, ontwikkeld voor gebruik op mobiele telefoons en pda's. Dynamic HTML was een marketing term van Microsoft, gebruikt ten tijde van het uitkomen van Internet Explorer 4, waarmee de combinatie van HTML en JavaScript werd bedoeld.

Geschiedenis De geschiedenis van HTML ging in de eerste jaren hand in hand met de ontwikkeling van webbrowsers. De belangrijkste spelers daarin waren de concurrerende browsers van Netscape en Microsoft (zie ook browseroorlog). Met elke uitgebrachte browserversie werd de HTML uitgebreid of aangepast. De W3C probeerde aanbevelingen vast te stellen, maar moest regelmatig constateren dat de aanbeveling waaraan gewerkt werd, inmiddels achterhaald was.

HTML werd in 1991 bedacht en ontwikkeld door Tim Berners-Lee om wetenschappelijke documenten van het CERN in Genève gemakkelijker toegankelijk te maken. De Brit baseerde zijn nieuwe opmaaktaal op het reeds bestaande SGML. Hij ontwikkelde ook de eerste webbrowser, WorldWideWeb genaamd. In 1993 werd de webbrowser Mosaic ontwikkeld door het NCSA, die als eerste grafische elementen in HTML ondersteunde. Op basis daarvan ontstond in 1994 Netscape Navigator. Met de komst van deze beide browsers werd het World Wide Web echt populair. Beide browsers voegden elementen toe aan de oorspronkelijke HTML. Kort daarop mengde Microsoft zich in de strijd met een eigen webbrowser.

De eerste officiële specificatie van HTML door de W3C organisatie was HTML 2.0, geaccepteerd in september 1995. Eerder was er gewerkt aan uitbreiding van de oorspronkelijke specificatie onder de naam HTML+ (gepubliceerd in november 1993). Al vóór de officiële acceptatie van HTML 2.0, werd de volgende specificatie (HTML 3.0) voorbereid. Deze specificatie werd achterhaald door het uitkomen van Netscape versie 3 en het voorstel werd in september 1995 verlaten. Het werk werd voortgezet in HTML versie 3.2, dat de naam "Wilbur" meekreeg. Wilbur werd geaccepteerd in januari 1997. In december 1997 werd de HTML 4.0 specificatie geaccepteerd, waarop nog enkele kleine correcties zijn aangebracht in HTML 4.01 (geaccepteerd in december 1999). In het jaar 2000 werd ISO-HTML, gebaseerd op HTML 4.01 Strict, geaccepteerd als een internationale standaard.internationale standaard ISO-HTML ISO/IEC 15445:2000.