Linguaggio di marcatura ipertestuale HTML
Estensioni | .html, .htm |
---|---|
Tipo MIME | text/html |
Sviluppato da | Consorzio World Wide Web e WHATWG |
Versione iniziale | 1993 |
Tipo di formato | Linguaggio con marcatori |
Basato su | Linguaggio di marcatura generalizzato standard |
Origine di | XHTML |
Standard |
ISO/IEC 15445 W3C HTML 4.01 W3C HTML5 |
ISO | 15445 |
Specifiche | Formato aperto |
Siti web |
www.w3.org/html html.spec.whatwg.org/multipage w3c.github.io/html |
L' HyperText Markup Language , comunemente abbreviato in HTML o nel suo più recente HTML5, è il linguaggio di markup progettato per rappresentare le pagine web .
Questa lingua consente:
Viene spesso utilizzato insieme al linguaggio di programmazione JavaScript e ai fogli di stile a cascata (CSS). L'HTML è ispirato allo Standard Generalized Markup Language (SGML). Questo è un formato aperto .
L' inglese Hypertext Markup Language si traduce letteralmente in linguaggio di markup ipertestuale . Solitamente si usa l' acronimo HTML, a volte anche ripetendo la parola "linguaggio" come in "linguaggio HTML". Hypertext è talvolta scritto HyperText per contrassegnare la T nell'acronimo HTML.
L'HTM che parla in pubblico a volte disinformato invece di HTML, essendo HTM il nome del file di estensione troncato a tre lettere, una limitazione che si trova sui vecchi sistemi operativi di Microsoft .
Durante la prima metà del 1990 , prima della comparsa di tecnologie web come ad esempio JavaScript (JS), Cascading Style Sheets (CSS), e il Document Object Model (DOM), l'evoluzione di HTML dettato l'evoluzione del World Wide Web . Dal 1997 e dall'HTML 4 , l'evoluzione dell'HTML ha subito un notevole rallentamento; 10 anni dopo, HTML 4 è ancora utilizzato nelle pagine web . Nel 2008 , la specifica di HTML5 è in fase di studio e diventa di uso comune nella seconda metà degli anni 2010 .
L'HTML è una delle tre invenzioni che hanno costituito la base del World Wide Web , insieme all'Hypertext Transfer Protocol (HTTP) e agli indirizzi web ( URL ). L'HTML è stato inventato per rendere possibile la scrittura di documenti ipertestuali che collegano le varie risorse Internet con collegamenti ipertestuali . Oggi questi documenti si chiamano " pagina web ". Nelagosto 1991, quando Tim Berners-Lee pubblicizza pubblicamente il web su Usenet , cita solo SGML , ma fornisce l' URL di un documento suffisso.html.
Nel suo libro Weaving the web , Tim Berners-Lee descrive la decisione di basare l'HTML su SGML come "diplomatica" quanto tecnica: tecnicamente, trovava SGML troppo complesso, ma voleva attirare la comunità ipertestuale che vedeva SGML come il linguaggio, il più promettente per la standardizzazione del formato dei documenti ipertestuali. Inoltre, SGML era già utilizzato dal suo datore di lavoro, l' Organizzazione europea per la ricerca nucleare (CERN). ;
I primi elementi dell'HTML includono:
La descrizione dell'HTML è quindi abbastanza informale e definita principalmente dal supporto di vari browser web contemporanei. Dan Connolly ha contribuito a rendere HTML una vera applicazione SGML .
Lo stato dell'HTML corrisponde quindi a quello che potremmo chiamare HTML 1.0 . Tuttavia, non esiste una specifica con questo nome, in particolare perché il linguaggio era in piena evoluzione all'epoca. Tuttavia, era in corso uno sforzo di standardizzazione . Dalla fine del 1993 , il termine HTML + è stato utilizzato per riferirsi alla futura versione di HTML. Nonostante lo sforzo di standardizzazione così avviato, e fino alla fine degli anni '90 , l'HTML è stato principalmente definito dalle implementazioni del browser.
Con il browser NCSA Mosaic , l'HTML conosce due importanti invenzioni:
Con la comparsa di Netscape Navigator 0.9 il0.913 ottobre 1994, viene aggiunto il supporto per molti elementi di presentazione: attributi di testo, lampeggiamento, centratura, ecc.
Lo sviluppo HTML segue quindi due percorsi divergenti:
I progettisti seguono i principi di SGML di lasciare la presentazione a un linguaggio di stile. In questo caso, i fogli di stile a cascata (CSS) sono destinati all'HTML. Solo il supporto delle tabelle si integra rapidamente nei browser, in particolare perché consente un miglioramento molto netto della presentazione. Oltre alla moltiplicazione degli elementi di presentazione, il software che produce e utilizza HTML spesso concepiva i documenti come una serie di comandi di formattazione piuttosto che come un markup che rappresenta la struttura ad albero oggi nota come Document Object Model (DOM). La mancanza di struttura dell'HTML poi implementato viene talvolta denunciata come " tag soup ", in inglese : tag soup .
Nel marzo 1995, il neonato World Wide Web Consortium (W3C) offre il risultato della sua ricerca su HTML+: la bozza HTML 3.0 . Include il supporto per tabelle, figure ed espressioni matematiche. Questa bozza scade il28 settembre 1995senza dare un seguito diretto. Alla fine del 1995 , è stata finalizzata la RFC 1866 che descrive l' HTML 2.0 . L'editore principale è Dan Connolly . Questo documento descrive l'HTML come esisteva primagiugno 1994, quindi senza le tante aggiunte di Netscape Navigator .
Il 14 gennaio 1997, il W3C pubblica la specifica HTML 3.2 . Descrive la pratica corrente osservata all'inizio del 1996 , quindi con parte delle integrazioni di Netscape Navigator e Internet Explorer . Le sue novità più importanti sono la standardizzazione delle tabelle e molti elementi di presentazione. HTML 3.2 precede strettamente HTML 4.0 e contiene elementi per il supporto di stili e script.
Il 18 dicembre 1997, il W3C pubblica la specifica HTML 4.0 che standardizza molte estensioni che supportano stili e script, frame e oggetti (inclusione generalizzata di contenuti). HTML 4.0 apporta anche vari miglioramenti per l'accessibilità dei contenuti, principalmente la possibilità di una separazione più esplicita tra struttura e presentazione del documento, o il supporto di informazioni aggiuntive su determinati contenuti complessi come form, tabelle o acronimi. HTML 4.0 introduce tre varianti del formato, volte a promuovere l'evoluzione verso markup più significativi, tenendo conto delle limitazioni temporanee degli strumenti di produzione:
Queste variazioni continuano successivamente senza modifiche significative in HTML 4.01 e nel formato di transizione XHTML 1.0 da HTML. L'ultima specifica HTML è la versione 4.01 datata24 dicembre 1999. Effettua solo piccole correzioni alla versione 4.0 .
Lo sviluppo di HTML come applicazione dello Standard Generalized Markup Language (SGML) è ufficialmente abbandonato a favore di XHTML , un'applicazione di Extensible Markup Language (XML). Tuttavia, nel 2004 , gli editori di browser web hanno creato il web Hypertext Application Technology Working Group (WHATWG) con l'obiettivo, in particolare, di rilanciare lo sviluppo del formato HTML e soddisfare le nuove esigenze su una base tecnologica ritenuta più facilmente implementabile di quella. l' XHTML 2.0 in fase di progettazione. Questo si inserisce nel contesto di una sfida più generale alle modalità di funzionamento del W3C, ritenuta troppo chiusa da alcuni sviluppatori e web designer.
Nel marzo 2007, traendo le conseguenze della riluttanza di parte dell'industria e dei web content designer ad affrontare XHTML 2.0 , il W3C rilancia lo sviluppo dell'HTML e crea un nuovo gruppo di lavoro supervisionato da Chris Wilson ( Microsoft ) e inizialmente Dan Connolly ( W3C ), ora Michael Smith ( W3C ). Questi includono:
Il lavoro del WHATWG è stato formalmente adottato in maggio 2007come punto di partenza per una nuova specifica HTML5 . Questo documento è stato pubblicato come Bozza di lavoro su22 gennaio 2008. Tra i principi progettuali citati dal gruppo di lavoro vi sono in particolare:
Una task force per l'accessibilità viene creata dal W3C innovembre 2009al fine di risolvere i problemi di compatibilità del nuovo formato con gli standard di accessibilità , legati in particolare all'implementazione di ARIA , alle alternative testuali ea nuovi elementi canvase video.
Lo sviluppo di XHTML 2.0 è inizialmente proseguito in parallelo, in risposta alle esigenze di altre aree del web, come dispositivi mobili, applicazioni aziendali e applicazioni server. poi inluglio 2009, il W3C decide di non rinnovare l' XHTML 2 Working Group alla fine del 2009.
Con l'abbandono di XHTML 2 , la versione XHTML 1.1 rimane quindi la versione standardizzata. HTML5 sarà compatibile con XHTML e XML e quindi consentirà documenti XHTML5 . Tuttavia, è probabile che il W3C si stia muovendo verso un completo abbandono dell'XHTML 1.1 , perché l'implementazione dell'XML in HTML5 rende superflua la definizione di documento di tipo XHTML y . y (dove yy sono i numeri di versione).
Nel gennaio 2011, le differenze di opinione tra Ian Hickson (ingegnere di Google), che scrive la specifica HTML5, e i membri del gruppo di lavoro del W3C guidano il WHATWG per creare HTML Living Standard (letteralmente: standard di vita dell'HTML), una specifica dell'HTML destinata a essere in continua evoluzione, per restare al passo con i rapidi sviluppi di nuove funzionalità da parte degli sviluppatori di browser (al contrario delle versioni numerate, quindi "fisse").
L' HTML Living Standard mira a includere HTML5 e a svilupparlo continuamente. In particolare, nella versione di22 agosto 2012, il documento di riferimento spiega che il W3C HTML5, pubblicato su 22 giugno 2012, si basa su una versione dell'HTML Living Standard , ma che l' HTML Living Standard non si ferma a questa versione e continua ad evolversi. Sviluppa in particolare le differenze tra la versione W3C (l'HTML5) e la versione HTML Living Standard (ad esempio, i nuovi bug non vengono presi in considerazione in HTML5, vengono elencate le differenze sintattiche e i nuovi tag creati dall'HTML Living Standard non vengono incluso in HTML5).
HTML è un linguaggio di descrizione del formato del documento che assume la forma di un linguaggio di markup la cui sintassi deriva dallo Standard Generalized Markup Language (SGML).
Fino alla versione 4.01 inclusa, l'HTML è formalmente descritto come un'applicazione dello Standard Generalized Markup Language (SGML). Tuttavia, le specifiche successive ammettono, in vari modi, che gli interpreti non sono, in pratica, parser SGML conformi. I browser Web non sono stati in grado di decifrare tutte le variazioni consentite dalla sintassi di SGML ; d'altra parte sono generalmente in grado di catturare automaticamente molti errori di sintassi, secondo la prima parte della "Legge di Postel ": "Sii liberale in ciò che accetti e conservatore in ciò che spedisci" ( RFC 791). Infatti, gli sviluppatori di pagine web e browser web si sono sempre presi molta libertà con le regole sintattiche di SGML . Infine, la definizione del tipo di documento HTML (DTD), la descrizione tecnica formale dell'HTML, non è stata scritta da Dan Connolly fino a pochi anni dopo l'introduzione dell'HTML.
Nonostante le libertà prese con lo standard, viene utilizzata la terminologia specifica di SGML : documento, elemento, attributo, valore, tag, entità, validità, applicazione, ecc. Grazie al DTD è possibile verificare automaticamente la validità di un documento HTML utilizzando un parser SGML .
Originariamente, l'HTML è stato progettato per contrassegnare (o contrassegnare) semplicemente il testo, inclusa l'aggiunta di collegamenti ipertestuali. Abbiamo utilizzato un minimo di tag, come nel seguente documento HTML:
<TITLE>Exemple de HTML</TITLE> Ceci est une phrase avec un <A HREF=cible.html>hyperlien</A>. <P> Ceci est un paragraphe où il n'y a pas d'hyperlien.Questo esempio contiene testo, cinque tag e un riferimento all'entità:
Un documento HTML valido è un documento che rispetta la sintassi SGML , utilizza solo elementi e attributi standardizzati e rispetta l'annidamento degli elementi descritti dallo standard. Nell'esempio precedente manca solo una dichiarazione del tipo di documento perché si tratti di un documento HTML 2.0 valido.
Tuttavia, un documento valido non è sufficiente per conformarsi alla specifica HTML di destinazione. Infatti, oltre al requisito di validità, un documento conforme è soggetto ad altri vincoli che non sono espressi dalla definizione del tipo di documento (DTD), ma che sono espressi dalla specifica stessa. Questo è particolarmente vero per il tipo di contenuto di alcuni attributi, come quello dell'attributo datetime : per essere conforme all'HTML 4.01 , deve essere esso stesso conforme a un sottoinsieme dello standard ISO 8601 . Un parser strettamente SGML come il validatore HTML W3C non può quindi garantire la conformità di un documento HTML.
Nei primi anni, i documenti HTML erano spesso visti come strutture piatte e i tag come comandi di stile. Quindi il tag è <p>stato considerato un'interruzione di riga e il tag è </p>stato ignorato. O quando è apparso JavaScript 1.0 , ha dato accesso solo a collegamenti e moduli di documenti tramite tabelle document.formse file document.links.
Con l'introduzione dei Cascading Style Sheets e del Document Object Model , si è reso necessario considerare che i documenti HTML hanno una vera struttura ad albero , con un elemento radice contenente tutti gli altri elementi. I tag di apertura e chiusura di questi elementi rimangono facoltativi. Tuttavia, oggi si tende a marcare ogni elemento e ad indicare il DTD. Ad eccezione dell'elemento radice, ogni elemento ha esattamente un elemento genitore diretto; questo “albero del documento” è utilizzato in particolare dalla struttura di formattazione che ne deriva per l'applicazione di fogli di stile a cascata dove ogni elemento può avere il proprio sfondo, bordo e margine.
La struttura e il codice dei siti web sono consultabili anche aggiungendo view-source:davanti all'url della pagina. Per la pagina corrente che darebbe . view-source:https://fr.m.wikipedia.org/wiki/Hypertext_Markup_Language
Sorgente HTML | Modello di documento |
---|---|
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title> Exemple de HTML </title> </head> <body> Ceci est une phrase avec un <a href="cible.html">hyperlien</a>. <p> Ceci est un paragraphe où il n’y a pas d’hyperlien. </p> </body> </html> |
html testa titolo testo corpo testo a testo testo p testo |
La versione 4 dell'HTML descrive 91 elementi . Seguendo la specifica dell'HTML 4 , le funzionalità implementate dall'HTML possono essere suddivise come segue:
Struttura generale di un documento HTML Al livello superiore, un documento HTML è separato tra un'intestazione e un corpo. L'intestazione contiene informazioni sul documento, incluso il titolo ed eventualmente i metadati . Il corpo contiene ciò che viene visualizzato. Informazioni sulla lingua È possibile indicare la lingua di qualsiasi parte del documento e gestire la miscela di testo scritto da sinistra a destra con testo da destra a sinistra . Etichettatura semantica L'HTML aiuta a differenziare contenuti specifici come citazioni da lavori esterni, frammenti di codice del computer, passaggi enfatizzati e abbreviazioni. Alcuni di questi elementi, inizialmente progettati per supportare la documentazione tecnica, sono utilizzati molto raramente (differenziazione tra elementi variabili e valori di esempio in un codice informatico, ad esempio, o anche un'istanza di un termine definito nel contesto). Elenchi L'HTML distingue tra elenchi non ordinati e ordinati , a seconda che l'ordine formale del contenuto nel codice sia o meno un'informazione in sé. Le liste di definizione esistono anche, ma la loro portata è determinata esattamente. Tabelle Questa funzionalità è formalmente utilizzata per la presentazione di dati tabulari, ma è stata sfruttata principalmente per le sue capacità di layout prima che i Cascading Style Sheets (CSS) raggiungessero un sufficiente grado di maturità. Collegamenti ipertestuali La funzionalità principale dell'HTML. Inclusione di immagini, applet e oggetti vari Originariamente HTML consentiva solo collegamenti ipertestuali a supporti esterni. L'invenzione di elementi specializzati per la multimedialità ha permesso l'inclusione automatica di immagini, musica, video, ecc. nelle pagine web. Elementi di raggruppamento Non conferendo alcun significato al contenuto che marcano, questi elementi generici consentono di applicare stili di presentazione, di eseguire elaborazioni tramite script o qualsiasi altra operazione che richieda di isolare parte del contenuto. Stile di presentazione Ad ogni elemento, o anche all'intero documento, possono essere applicati degli stili. Gli stili sono definiti nel documento o provengono da fogli di stile a cascata (CSS) esterni. Marcatura di presentazione del testo Sviluppato prima della generalizzazione dei CSS per fornire rapidamente funzionalità ai grafici. La maggior parte dell'uso ora è ufficialmente scoraggiato. Cornici Conosciuto anche come frame , una funzionalità spesso criticata che consente di visualizzare più documenti HTML in un'unica finestra. Modulo per inserimento dati interattivo Gli elementi del modulo consentono ai visitatori di inserire testo e file nelle pagine web. script Utilizzato per associare parti di programma alle azioni dell'utente sul documento. I linguaggi utilizzati sono generalmente JavaScript e VBScript .Gli attributi vengono utilizzati per specificare le proprietà degli elementi HTML. Ci sono 188 attributi nella versione HTML 4 .
Alcuni attributi si applicano a quasi tutti gli elementi:
Altri attributi sono univoci per un singolo elemento o elementi simili. Per esempio :
La maggior parte degli attributi è facoltativa. Tuttavia, alcuni elementi hanno attributi obbligatori:
Il tipo di contenuto degli attributi HTML è parzialmente al di fuori dell'ambito di questo standard e la sua convalida rientra negli standard di terze parti come URI , tipi di contenuto o codici di lingua .
Infine, alcuni attributi sono di tipo booleano. Questi sono gli unici attributi la cui sintassi può essere validamente implicita in HTML: l'attributo selecteddi un form control può essere così abbreviato al form che selectedsostituisce il form completo selected="selected". Questa forma particolare è uno dei punti che differenziano l'HTML dalla sintassi dei documenti “ben formati” in senso XML.
Le pagine Web possono essere scritte in tutti i tipi di lingue e possono essere utilizzati moltissimi caratteri , il che richiede un set di caratteri per tipo di scrittura o un set di caratteri universale. Quando è apparso l'HTML, il set di caratteri universale Unicode non era ancora stato inventato e molti set di caratteri sono stati usati uno accanto all'altro, tra cui ISO-8859-1 per l' alfabeto latino e dell'Europa occidentale, Shift-JIS per il giapponese , KOI8-R per il Cirillico . Oggi, la codifica UTF-8 in Unicode è più diffusa.
Il protocollo di comunicazione HTTP trasmette il nome del set di caratteri. L'intestazione HTML può includere un promemoria di questo set di caratteri, che dovrebbe essere lo stesso, a meno che non ci sia un errore di impostazione. Infine, a seguito di un'impostazione errata, il set di caratteri effettivamente utilizzato potrebbe ancora differire dal set annunciato. Queste impostazioni errate generalmente causano errori di visualizzazione del testo, soprattutto per i caratteri non coperti dallo standard ASCII .
Tecnologia di scaricoPrima della generalizzazione di Unicode, le entità erano definite per rappresentare determinati caratteri non ASCII . È iniziato con i caratteri della ISO 8859-1 nello standard HTML 2.0 . Per i segni diacritici, queste entità seguono un semplice principio: la lettera seguita dall'abbreviazione del segno diacritico associato.
personaggio | riferimento entità | Nota |
---|---|---|
A | Á | acuteper l' accento acuto |
A | Â | circper l' accento circonflesso |
A | À | graveper l' accento grave |
A | Å | ringper il turno principale |
A | Ã | tildeper la tilde |
A | Ä | umlper dieresi |
VS | Ç | cedilper la cediglia |
Ø | Ø | slashper lo slash |
Come formalizzato dal W3C , l'HTML è progettato per ottimizzare l' interoperabilità dei documenti. L'HTML non viene utilizzato per descrivere la resa finale delle pagine web . In particolare, a differenza del desktop publishing , l'HTML non è progettato per specificare l'aspetto visivo dei documenti. Invece, l'HTML è progettato per dare un senso alle diverse parti del testo: titolo, elenco, passaggio importante, citazione, ecc. L'HTML è stato sviluppato con l'intuizione che per navigare sul web sarebbero stati utilizzati dispositivi di ogni tipo: personal computer con schermi di diversa risoluzione e profondità di colore, telefoni cellulari, dispositivi di sintesi e riconoscimento del computer, voce, computer con larghezza di banda bassa e alta, e così via. sopra.
Poiché l'HTML non si concentra sul rendering finale del documento, lo stesso documento HTML può essere visualizzato utilizzando un'ampia varietà di hardware e software. A livello hardware, un documento può in particolare essere visualizzato sullo schermo di un computer in modalità grafica o di un terminale in modalità testo , può essere stampato, oppure può essere pronunciato tramite sintesi vocale . A livello di software, anche l'HTML non fa supposizioni e diversi tipi di software leggono HTML: browser web , crawler , vari script (in Perl , PHP ) per l'elaborazione automatica.
Un alto grado di interoperabilità riduce i costi dei fornitori di contenuti perché una singola versione di ciascun documento soddisfa un'ampia varietà di esigenze. Per l'utente web, l'interoperabilità consente l'esistenza di molti browser concorrenti, tutti in grado di visualizzare l'intero web.
Ogni versione di HTML ha cercato di riflettere il maggior consenso tra gli operatori del settore, in modo che gli investimenti fatti dai fornitori di contenuti non vadano sprecati e i loro documenti diventino rapidamente illeggibili. La separazione del contenuto e della forma non è stata sempre rispettata durante lo sviluppo del linguaggio, come testimonia ad esempio il markup dello stile del testo, che consente di indicare in particolare il carattere desiderato per la visualizzazione, la sua dimensione o il suo colore.