Argomenti
Le sezioni seguenti discutono aspetti che riguardano la strutturazione del testo. Gli elementi che presentano il testo (elementi di allineamento, elementi carattere, fogli di stile, ecc.) sono discussi altrove nelle Specifiche. Per informazioni riguardanti i caratteri, si consulti la sezione sull'insieme di caratteri del documento.
L'insieme di caratteri del documento include un'ampia varietà di caratteri di spazio bianco. Molti di questi sono elementi tipografici usati in alcune applicazioni per produrre particolari effetti di spaziatura visuali. In HTML, solo i seguenti caratteri sono definiti come caratteri di spazio bianco:
Anche le interruzioni di riga sono caratteri di spazio bianco. Si noti che sebbene 
 e 
 siano definiti in [ISO10646] per separare in modo esplicito righe e paragrafi, rispettivamente, essi non costituiscono interruzioni di riga in HTML, né queste Specifiche li includono nella categoria più generale dei caratteri di spazio bianco.
Queste Specifiche non indicano il comportamento, di riproduzione o altro, di caratteri di spaziatura diversi da quelli esplicitamente identificati qui come caratteri di spazio bianco. Per questa ragione, gli autori dovrebbero usare elementi e stili appropriati per ottenere effetti di formattazione visuale che coinvolgono spazio bianco, piuttosto che caratteri di spaziatura.
Per tutti gli elementi HTML eccetto PRE, le sequenze di spazi bianchi separano le "parole" (si usa il termine "parola" qui per significare "sequenze di caratteri che non sono spazi bianchi"). Quando formattano il testo, gli interpreti HTML dovrebbero identificare queste parole e disporle in accordo con le convenzioni della particolare lingua scritta (o sistema di scrittura) e del supporto destinatario.
Questa disposizione può comportare l'inserimento di spazio tra le parole (chiamato spazio inter-parola), ma le convenzioni per lo spazio inter-parola variano da sistema di scrittura a sistema di scrittura. Per esempio, nelle scritture latine, lo spazio inter-parola è tipicamente riprodotto come uno spazio ASCII ( ), mentre nella lingua Thai è un separatore di parole di ampiezza zero (​). In giapponese e in cinese, lo spazio inter-parola non viene tipicamente riprodotto per niente.
Si noti che una sequenza di spazi bianchi tra le parole nel documento sorgente può risultare in uno spazio inter-parola riprodotto in maniera interamente differente (eccetto che nel caso dell'elemento PRE). In particolare, gli interpreti HTML dovrebbero compattare le sequenze di spazi bianchi in input quando producono in output lo spazio inter-parola. Questo può e deve essere fatto anche in assenza di informazioni sulla lingua (derivanti dall'attributo lang, dal campo di intestazione HTTP "Content-Language" (si veda [RFC2068], Sezione 14.13), da impostazioni dell'interprete HTML, ecc.).
L'elemento PRE viene usato per testo preformattato, dove lo spazio bianco è significativo.
Per evitare problemi con le regole per l'interruzione di riga di SGML e le inconsistenze tra le implementazioni esistenti, gli autori non dovrebbero basarsi sugli interpreti HTML per la riproduzione dello spazio bianco immediatamente dopo un tag di inizio o immediatamente prima di un tag di fine. Quindi gli autori, e in particolare gli strumenti di creazione, dovrebbero scrivere:
<P>Offriamo <A>supporto tecnico</A> gratuito per gli abbonati.</P>
e non:
<P>Offriamo<A> supporto tecnico </A>gratuito per gli abbonati.</P>
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM" > <!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*> <!ATTLIST (%fontstyle;|%phrase;) %attrs; -- %coreattrs, %i18n, %events -- >
Tag di inizio: obbligatorio, Tag di fine: obbligatorio
Attributi definiti altrove
Gli elementi di frase aggiungono informazione strutturale ai frammenti di testo. I significati usuali degli elementi di frase sono elencati di seguito:
EM e STRONG sono utilizzati per indicare enfasi. Gli altri elementi di frase hanno particolare rilevanza nei documenti tecnici. Questi esempi illustrano alcuni degli elementi di frase:
Come disse <CITE>Harry S. Truman</CITE>, <Q lang="en-us">The buck stops here. </Q> Si possono trovare maggiori informazioni in <CITE>[ISO-0000]</CITE>. Nella corrispondenza futura si prega di fare riferimento al seguente numero: <STRONG>1-234-55</STRONG>
La presentazione degli elementi di frase dipende dall'interprete HTML. Generalmente, gli interpreti HTML visuali presentano il testo EM in corsivo ed il testo STRONG in grassetto. Gli interpreti HTML vocali possono modificare i parametri di sintesi vocale, come il volume, il timbro ed il ritmo, in accordo.
Gli elementi ABBR e ACRONYM consentono agli autori di indicare chiaramente le occorrenze di abbreviazioni ed acronimi. Le lingue occidentali fanno un ampio uso di acronimi quali "GmbH", "NATO", e "F.B.I.", come anche di abbreviazioni tipo "M.", "Inc.", "et al.", "ecc.". Sia la lingua cinese che la lingua giapponese usano meccanismi di abbreviazione analoghi, in cui un nome lungo viene successivamente riferito con un sottoinsieme dei caratteri Han dell'occorrenza originale. Marcare questi costrutti fornisce utili informazioni agli interpreti HTML e a strumenti quali controllori ortografici, sintetizzatori vocali, sistemi di traduzione ed indicizzatori per motori di ricerca.
Il contenuto degli elementi ABBR e ACRONYM specifica l'espressione abbreviata stessa, come questa apparirebbe normalmente nel testo in uso. L'attributo title di questi elementi può essere usato per fornire la forma completa o espansa dell'espressione.
Ecco qualche esempio d'uso di ABBR:
<P> <ABBR title="World Wide Web">WWW</ABBR> <ABBR language="fr" title="Société Nationale des Chemins de Fer"> SNCF </ABBR> <ABBR lang="es" title="Doña">Doña</ABBR> <ABBR title="Abbreviation">abbr.</ABBR>
Si noti che le abbreviazioni e gli acronimi hanno spesso pronunce idiosincratiche. Per esempio, mentre "IRS" e "BBC" vengono pronunciate tipicamente lettera per lettera, "NATO" e "UNESCO" sono pronunciate in modo fonetico. Ancora, altre forme abbreviate (ad es., "URI" e "SQL") sono pronunciate lettera per lettera da qualcuno e pronunciate come parole da altri. Quando necessario, gli autori dovrebbero usare i fogli di stile per specificare la pronuncia di una forma abbreviata.
<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- citazione estesa --> <!ATTLIST BLOCKQUOTE %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- URI per documento sorgente o messaggio -- > <!ELEMENT Q - - (%inline;)* -- breve citazione in linea --> <!ATTLIST Q %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- URI per documento sorgente o messaggio -- >
Tag di inizio: obbligatorio, Tag di fine: obbligatorio
Definizione degli attributi
Attributi definiti altrove
Questi due elementi indicano il testo della citazione. BLOCKQUOTE è per citazioni lunghe (contenuto a livello del blocco) e Q è inteso per citazioni brevi (contenuto in linea) che non richiedono interruzioni di paragrafo.
Questo esempio formatta un brano da "The Two Towers", di J.R.R. Tolkien, come una citazione a livello del blocco.
<BLOCKQUOTE cite="http://www.mycom.com/tolkien/twotowers.html"> <P>They went in single file, running like hounds on a strong scent, and an eager light was in their eyes. Nearly due west the broad swath of the marching Orcs tramped its ugly slot; the sweet grass of Rohan had been bruised and blackened as they passed.</P> </BLOCKQUOTE>
Gli interpreti HTML visuali generalmente riproducono BLOCKQUOTE come un blocco indentato.
Gli interpreti HTML visuali devono assicurare che il contenuto dell'elemento Q sia riprodotto con le virgolette di delimitazione. Gli autori non dovrebbero inserire virgolette all'inizio e alla fine del contenuto di un elemento Q.
Gli interpreti HTML dovrebbero riprodurre le virgolette in modo dipendente dalla lingua (si veda l'attributo lang). Molte lingue adottano stili di citazione diversi per citazioni esterne ed interne (annidate), che dovrebbero essere rispettati dagli interpreti HTML.
Il seguente esempio illustra citazioni annidate tramite l'elemento Q.
John ha detto, <Q lang="it">Ho visto Lucy a pranzo, lei mi ha detto <Q lang="it">Mary vuole che tu prenda del gelato tornando a casa.</Q> Penso che ne prenderò un po' da Ben e Jerry's, sulla Gloucester Road.</Q>
Poiché la lingua di entrambe le citazioni è l'italiano, gli interpreti HTML dovrebbe presentarle in modo appropriato, per esempio tramite apici semplici intorno alla citazione interna e doppi apici intorno alla citazione esterna:
John ha detto, "Ho visto Lucy a pranzo, lei mi ha detto 'Mary vuole che tu prenda del gelato tornando a casa.' Penso che ne prenderò un po' da Ben e Jerry's, sulla Gloucester Road."
Nota. Si raccomanda che le implementazioni dei fogli di stile forniscano un meccanismo per inserire virgolette prima e dopo una citazione delimitata da BLOCKQUOTE in modo appropriato al contesto corrente della lingua e al grado di annidamento delle citazioni.
Comunque, poiché alcuni autori hanno utilizzato BLOCKQUOTE puramente come meccanismo per indentare il testo, gli interpreti HTML, per poter preservare l'intenzione degli autori, non dovrebbero inserire virgolette nello stile di default.
L'uso di BLOCKQUOTE per indentare il testo è disapprovato in favore dei fogli di stile.
<!ELEMENT (SUB|SUP) - - (%inline;)* -- pedice, apice --> <!ATTLIST (SUB|SUP) %attrs; -- %coreattrs, %i18n, %events -- >
Tag di inizio: obbligatorio, Tag di fine: obbligatorio
Attributi definiti altrove
Molte scritture (ad es., il francese) richiedono apici o pedici per una corretta riproduzione. Si dovrebbero usare gli elementi SUB e SUP per marcare il testo in questi casi.
H<sub>2</sub>O E = mc<sup>2</sup> <SPAN lang="fr">M<sup>lle</sup> Dupont</SPAN>
Gli autori tradizionalmente suddividono i loro pensieri e argomenti in sequenze di paragrafi. L'organizzazione dell'informazione in paragrafi non è influenzata da come i paragrafi vengono presentati: i paragrafi che sono allineati sui due lati contengono le stesse idee di quelli che sono allineati a sinistra.
La marcatura HTML per definire un paragrafo è semplice: l'elemento P definisce un paragrafo.
La presentazione visuale dei paragrafi non è così facile. Si devono affrontare una quantità di questioni, sia stilistiche che tecniche:
Queste questioni vengono esaminate nel seguito. L'allineamento dei paragrafi e gli oggetti mobili sono discussi più avanti in questo documento.
Tag di inizio: obbligatorio, Tag di fine: opzionale
Attributi definiti altrove
L'elemento P rappresenta un paragrafo. Non può contenere elementi a livello del blocco (incluso P stesso).
Gli autori sono scoraggiati dall'usare elementi P vuoti. Gli interpreti HTML dovrebbero ignorare gli elementi P vuoti.
Un' interruzione di riga è definita come un ritorno carrello (
), un avanzamento di riga (
), o una coppia ritorno carrello/avanzamento di riga. Tutte le interruzioni di riga costituiscono spazio bianco.
Per maggiori informazioni sulle Specifiche SGML delle interruzioni di riga, si consultino le note sulle interruzioni di riga nell'appendice.
<!ELEMENT BR - O EMPTY -- interruzione forzata di riga --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- >
Tag di inizio: obbligatorio, Tag di fine: proibito
Attributi definiti altrove
L'elemento BR interrompe forzatamente (termina) la corrente riga di testo.
Per gli interpreti HTML visuali, si può usare l'attributo clear per determinare se la marcatura che segue l'elemento BR fluisce attorno alle immagini e agli altri oggetti fluttuati al margine sinistro o destro, o se inizia dopo il termine di tali oggetti. Ulteriori dettagli sono forniti nella sezione sull'allineamento e oggetti mobili. Si consiglia agli autori di usare i fogli di stile per controllare il flusso del testo attorno alle immagini e agli altri oggetti mobili.
In riferimento alla formattazione bidirezionale, l'elemento BR dovrebbe comportarsi nello stesso modo in cui si comporta il carattere [ISO10646] LINE SEPARATOR nell'algoritmo bidirezionale.
Talvolta gli autori possono voler impedire che occorra un'interruzione di riga tra due parole. L'entità (  o  ) agisce come spazio dove gli interpreti HTML non dovrebbero causare un'interruzione di riga.
In HTML vi sono due tipi di trattini: il trattino ordinario e il trattino discrezionale. Il trattino ordinario dovrebbe essere interpretato da un interprete HTML alla stessa stregua di un altro carattere. Il trattino discrezionale dice all'interprete HTML dove un'interruzione di riga può occorrere.
Quei browser che interpretano i trattini discrezionali devono osservare la semantica seguente: se una riga viene interrotta ad un trattino discrezionale, un carattere trattino deve essere mostrato alla fine della prima riga. Se una riga non è interrotta ad un trattino discrezionale, l'interprete HTML non deve mostrare un carattere trattino. Per operazioni quali la ricerca e l'ordinamento, il trattino discrezionale deve essere sempre ignorato.
In HTML il trattino ordinario è rappresentato dal carattere "-" (- o -). Il trattino discrezionale è rappresentato dalla denotazione di entità carattere ­ (­ o ­)
<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP"> <!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- testo preformattato --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- >
Tag di inizio: obbligatorio, Tag di fine: obbligatorio
Definizione degli attributi
Attributi definiti altrove
L'elemento PRE dice agli interpreti HTML visuali che il testo racchiuso è "preformattato". Quando gestiscono testo preformattato, gli interpreti HTML visuali:
Gli interpreti HTML non visuali non sono tenuti a rispettare lo spazio bianco supplementare nel contenuto di un elemento PRE.
Per ulteriori informazioni sulle Specifiche SGML delle interruzioni di riga, si consultino le note sulle interruzioni di riga nell'appendice.
Il frammento DTD sopra riportato indica quali elementi non possono apparire dentro una dichiarazione PRE. Ciò è lo stesso che in HTML 3.2, ed è inteso a preservare spaziatura di riga e allineamento di colonna costanti per testo riprodotto in un carattere a passo fisso. Gli autori sono scoraggiati dall'alterare questo comportamento mediante i fogli di stile.
L'esempio seguente mostra un verso preformattato dal poema To a Skylark di Shelly:
<PRE> Higher still and higher From the earth thou springest Like a cloud of fire; The blue deep thou wingest, And singing still dost soar, and soaring ever singest. </PRE>
Ecco come questo viene tipicamente riprodotto:
Higher still and higher From the earth thou springest Like a cloud of fire; The blue deep thou wingest, And singing still dost soar, and soaring ever singest.
Il carattere di tabulazione orizzontale
Il
carattere di tabulazione orizzontale (decimale 9 in [ISO10646] e [ISO88591]) viene di solito interpretato dagli interpreti HTML visuali come il più piccolo numero non nullo di spazi necessari ad allineare i caratteri lungo gli stop di tabulazione che sono situati ogni 8 caratteri.
Si scoraggia fortemente l'uso di tabulazioni orizzontali nel testo preformattato poiché è pratica comune, mentre si edita, impostare la spaziatura di tabulazione ad altri valori, il che porta a documenti male allineati.
Nota. La sezione seguente è una descrizione informativa del comportamento di alcuni attuali interpreti HTML visuali quando formattano i paragrafi. I fogli di stile consentono un migliore controllo della formattazione dei paragrafi.
Come i paragrafi vengono presentati visualmente dipende dall'interprete HTML. I paragrafi sono di solito riprodotti allineati a sinistra con un margine destro non uniforme. Altri default sono appropriati per sistemi di scrittura da destra a sinistra.
Gli interpreti HTML hanno tradizionalmente riprodotto i paragrafi con spazio bianco prima e dopo, per esempio:
Allo stesso tempo, iniziarono a prendere forma un sistema di numerazione, il calendario, la scrittura geroglifica, e un'arte tecnicamente avanzata, tutti elementi che in seguito influenzarono altri popoli. All'interno della cornice di questa evoluzione graduale, o progresso culturale, l'orizzonte Preclassico è stato suddiviso nei periodi Basso, Medio e Alto, a cui può essere aggiunto un periodo di transizione, o periodo Protoclassico, con diverse caratteristiche che successivamente avrebbero distinto le civiltà emergenti della Mesoamerica.
Questo contrasta con lo stile usato nei romanzi che indenta la prima riga del paragrafo e usa la regolare spaziatura di riga tra la riga finale del paragrafo corrente e la prima riga del successivo, per esempio:
Allo stesso tempo, iniziarono a prendere forma un sistema di numerazione, il calendario, la scrittura geroglifica, e un'arte tecnicamente avanzata, tutti elementi che in seguito influenzarono altri popoli. All'interno della cornice di questa evoluzione graduale, o progresso culturale, l'orizzonte Preclassico è stato suddiviso nei periodi Basso, Medio e Alto, a cui può essere aggiunto un periodo di transizione, o periodo Protoclassico, con diverse caratteristiche che successivamente avrebbero distinto le civiltà emergenti della Mesoamerica.
Seguendo il precedente stabilito dal browser NCSA Mosaic nel 1993, gli interpreti HTML generalmente non allineano entrambi i margini, in parte perchè è difficile fare questo efficacemente senza sofisticate procedure di suddivisione delle parole a fine riga. L'avvento dei fogli di stile, e di insiemi di caratteri anti-aliased con posizionamento dei sottopixel promette di offrire alternative più ricche agli autori di HTML di quanto precedentemente possibile.
I fogli di stile forniscono un pieno controllo sulla dimensione e lo stile di un font, i margini, lo spazio prima e dopo un paragrafo, l'indentamento della prima riga , l'allineamento e molti altri dettagli. Il foglio di stile di default dell'interprete HTML presenta gli elementi P in una forma familiare, come illustrato sopra. Si potrebbe, in principio, scavalcare ciò per riprodurre paragrafi senza le interruzioni che convenzionalmente distinguono i paragrafi consecutivi. In generale, poiché ciò può confondere i lettori, si scoraggia questa pratica.
Per convenzione, gli interpreti HTML visuali effettuano il ritorno a capo automatico delle righe di testo per adattarsi ai margini disponibili. Gli algoritmi di ritorno a capo automatico dipendono dalla scrittura che viene formattata.
Nelle scritture occidentali, per esempio, il testo deve essere interrotto per andare a capo automaticamente a fine riga solo allo spazio bianco. I primi interpreti HTML interrompevano in modo non corretto le righe subito dopo il tag di inizio o subito prima del tag di fine di un elemento, il che si risolveva in punteggiatura penzolante. Per esempio, si consideri questa frase:
Una statua di <A href="cih78">Cihuateteus</A>, che è patrono...
Interrompere la riga appena prima del tag di fine dell'elemento A causa l'arenamento della virgola all'inizio della riga successiva:
Una statua di Cihuateteus , che è patrono...
Questo è un errore poichè non c'era spazio bianco in quel punto nella marcatura.
<!-- INS/DEL sono utilizzati tramite inclusione nel BODY --> <!ELEMENT (INS|DEL) - - (%flow;)* -- testo inserito, testo cancellato --> <!ATTLIST (INS|DEL) %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- informazioni sul motivo della modifica -- datetime %Datetime; #IMPLIED -- data e orario della modifica -- >
Tag di inizio: obbligatorio, Tag di fine: obbligatorio
Definizioni degli attributi
Attributi definiti altrove
INS e DEL sono usati per marcare sezioni del documento che sono state inserite o cancellate rispetto a una versione differente del documento (ad es., nelle bozze di legge dove i legislatori hanno bisogno di esaminare le modifiche).
Questi due elementi sono inusuali per HTML in quanto possono servire o come elementi a livello del blocco o come elementi in linea (ma non entrambi). Possono contenere una o più parole dentro un paragrafo o contenere uno o più elementi a livello del blocco come paragrafi, elenchi e tabelle.
Questo esempio potrebbe essere preso da un progetto di legge per cambiare da 3 a 5 la legislazione su quanti sostituti uno Sceriffo di Contea può impiegare.
<P> Uno Sceriffo può impiegare <DEL>3</DEL><INS>5</INS> sostituti. </P>
Gli elementi INS e DEL non devono contenere contenuto a livello del blocco quando si comportano da elementi in linea.
ESEMPIO ILLEGALE:
Il seguente non è HTML legale.
<P> <INS><DIV>...contenuto a livello del blocco...</DIV></INS> </P>
Gli interpreti HTML devono riprodurre il testo inserito e cancellato in modi che rendano evidente la modifica. Ad esempio, il testo inserito può apparire in un font speciale, il testo cancellato può non essere mostrato affatto o essere mostrato barrato o tramite marcatura speciale, ecc.
Entrambi gli esempi seguenti corrispondono al 5 Novembre 1994, 8:15:30 am, Tempo Standard della Zona Est degli USA.
1994-11-05T13:15:30Z 1994-11-05T08:15:30-05:00
Usato con INS, questo dà:
<INS datetime="1994-11-05T08:15:30-05:00" cite="http://www.foo.org/mydoc/comments.html"> Inoltre, le ultime figure dal dipartimento di marketing suggeriscono che tale pratica è in crescita. </INS>
Il documento "http://www.foo.org/mydoc/comments.html" è supposto contenere commenti riguardanti la ragione per cui l'informazione è stata inserita nel documento.
Gli autori possono anche fare commenti riguardanti testo inserito o cancellato mediante l'attributo title per gli elementi INS e DEL. Gli interpreti HTML possono presentare queste informazioni all'utente (ad es., come una nota che si apre a discesa). Per esempio:
<INS datetime="1994-11-05T08:15:30-05:00" title="Modificato a seguito dei commenti di Steve B durante riunione."> Inoltre, le ultime figure dal dipartimento marketing suggeriscono che tale pratica è in crescita. </INS>