Oreste
Signore, <oreste@w3.org>
Responsabile Ufficio Italiano W3C
Area della Ricerca CNR - via Moruzzi, 1 - 56124 Pisa
Master in Comunicazione e New Media
Ateneo Pontificio Regina
Apostolorum
Corso: Architettura del
Web
Presentazione: http://www.w3c.it/education/2012/upra/html/
Versione pdf: http://www.w3c.it/education/2012/upra/html.pdf
Formato XHTML realizzato usando il tool Slidy di Dave
Raggett.
Slidy
dovrebbe funzionare in tutti i browser moderni con
Javascript abilitato. Usare freccia destra/sinistra per
muoversi da una slide all' altra.
Vedi la pagina di aiuto
di Slidy per ulteriori informazioni.
alzi la mano chi sa:
<ol>
<li>primo
<li>secondo
<ol>
<tagname>contenuto dell' elemento</tagname>
<tagname>
</tagname>
<elemento>questo elemento contiene un
altro
<elementoInterno>elemento</elementoInterno>
che deve essere codificato in modo
corretto</elemento>
<elemento attr1="valAtt1"
attr2='valAtt2'>elemento con
attributi</elemento>
<!DOCTYPE ....Dichiarazione del tipo di documento (DTD).... > <html> <head> <title> titolo del documento </title> ... metainformazioni sul documento ... ... stili ... </head> <body> …contenuto del documento… </body> </html>
.html
(o
.htm
)
<title>Home :: Descrizione Livello 1 :: Livello 2 :: Descrizione pagina </title>
rivedremo meglio con XML
Errato:
<strong><em>testo </strong></em>
Corretto:
<strong><em>testo </em></strong>
Errato:
<BODY> <P>Questo è un paragrafo</P> </BODY>
Corretto:
<body> <p>Questo è un paragrafo</p> </body>
Gli elementi devono avere un tag di chiusura
Errato:
<p>Questo è un paragrafo <p>Questo è un altro paragrafo
Corretto:
<p>Questo è un paragrafo</p> <p>Questo è un altro paragrafo</p>
Anche gli elementi vuoti devono avere un tag di chiusura oppure il tag di apertura deve finire con "/>"
Errato:
Questa è una interruzione <br> Questa è una linea orizzontale <hr> Questa è una immagine <img src="felice.gif" alt="faccia felice">
Corretto:
Questa è una interruzione <br /> Questa è una linea orizzontale <hr /> Questa è una immagine <img src="felice.gif" alt="faccia felice" />
Per compatibilità con tutti i browser, aggiungere
uno spazio supplementare prima del simbolo "/"
come <br /> e <hr />
<em>
e
<strong>
sono esempi di elementi
inline
<p>
e <h1>
sono esempi di elementi block-level
Con un editore testi (notepad, gedit, vi, ...) scrivere un documento XHTML 1.1
Il corpo del documento deve essere misto, oltre a del testo deve contenere i seguenti elementi:
Ricordarsi di dichiarare il DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Possono apparire dovunque in un documento HTML
Esempio:
<!-- Questo è un commento -->
h1
a
h6
)
<p>Contenuto del
paragrafo</p>
id=
identificatore univoco
class=
una o più classi
style=
in genere lo stile viene
definito a livello globale, ma talvolta può
essere utile definirlo per una singola istanza
(non è in generale una buona
prassi)
title=
informazione aggiuntiva sull'
elemento. Normalmente i browser utilizzano questa
informazione (è anche un elemento importante
per l' accessibilità)
lang=
xml:lang=
onfocus
(onactivate) (evitare
interazioni dipendenti da dispositivi come
onmouseover, onmouseout, and ondblclick)
onblur
(opposto di onfocus)
onclick
caso particolare: se non usato
con link controlli di form, è dipendente dal
dispositivo ed è pertanto evitare o
associare anche altre interazioni dipendenti da
dispositivi (onKeyPress)
onmousedown=
<div xml:lang="en">Hello!</div>
Accessibilità: specificare ogni cambiamento di lingua (...se si tratta di una sola parola di uso comune evitare, considerare che gli screen reader ci mettono del tempo a caricare i fonemi di un'altra lingua)
Il browser sa come rappresentarle
L' unica assunzione ragionevole è che il browser visualizzi con diversi livelli di importanza
<br
/>
<ul>
inizio lista
</ul>
fine lista
<ul>
sono ammessi solo
elementi <li>
<ol>
inizio lista
</ol>
fine lista
<ol>
sono ammessi solo
elementi <li>
<li>
punto della
lista</li>
<hn>
o <p>
)
<li> <ul> <li></li> </ul> </li>
<dl> <dt>vènto</dt> <dd>movimento di masse d'aria</dd> <dt>tappo</dt> <dd>accessorio impiegato per la chiusura di contenitori</dd> <dd>persona di bassa/breve statura</dd> </dl>
<dl>
e </dl>
:
racchiudono la “definition list”
<dt>
e </dt>
:
identificano il termine da definire
<dd>
e </dd>
:
racchiudono la definizione del termine.
<dt>
senza elementi <dd>
e viceversa,
ma non elementi privi di contenuto
<dd>
per un elemento
<dt>
, se un termine ha più
definizioni
<dd>
può
contenere qualunque combinazione di elementi inline e
block-level
<a href="destinazioneLink">
:
definisce la destinazione del link
id
: identifica il punto
del documento a cui salta il link, e che verrà
reso visibile (opzione molto utile quando si salta ad
un documento lungo). Es.: <h1
id="capitolo3">
<a
hreflang="<en|it|…>">
:
identifica la lingua della risorsa destinazione del
link. Importante per l'accessibilià
href
deve
essere un Uniform Resource Locator o, meglio, un
Uniform Resource Identifier (URI)
Esempi:
protocollo://server:porta/percorso/nomedelfile
http://orario.isti.cnr.it:18080/Orario/jsp/index.jsp
Cool URI don't change!
xyz.html
definisce un file nella stessa
directory della pagina corrente
../path2/filename
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> <head> <title>HTML-Linking</title> […] </head> <body> <h1 id="indice">Indice</h1> <ol > <li><a href="#id1">Primo paragrafo</a></li> <li><a href="#id2">Secondo paragrafo</a></li> […] </ol> <h1 id="id1">Primo paragrafo</h1> <p>Questo è un paragrafo che […]</p> <p>È utile poter avere sempre la possibilità di tornare all' <a href="#indice">indice</a></p> <h1 id="id2">Secondo paragrafo</h1> […] </body> </html>
title
è utile per
chiarire lo scopo del collegamento
<a href="./riferimento.html">clicca qui</a>
// doppiamente errato: dipendente da dispositivo, non descrittivo
<a href="aiuto.html">Help</a>
<div id="salta_al_contenuto"><a href="#contenuto">Salta al contenuto principale</a></div>
.... intestazione
... navigazione
<div id="contenuto">
</div>
<a hreflang="en" href="...">....</a>
<h2>Argomenti</h2>
<ul class="navigazione">
<li><a href="romanzi.html">Romanzi</a></li>
<li><a href="fanstascienza.html">Fantascienza</a></li>
<li><a href="gialli.html">Gialli</a></li>
</ul>
<pre>
<address>
<p class="address">
<address> Oreste Signore<br /> CNR-ISTI </address>Viene reso come: Oreste Signore
<blockquote cite=" ">
<p>Il ruolo del W3C è:</p>
<blockquote cite="http://www.w3.org">
<p>The World Wide Web Consortium (<acronym title="World Wide Web Consortium">W3C</acronym>)
develops interoperable technologies (specifications, guidelines, software,
and tools) to lead the Web to its full potential.
W3C is a forum for information, commerce, communication, and collective
understanding. On this page, you'll find […]</p>
</blockquote>
Il ruolo del W3C è:
The World Wide Web Consortium (W3C) develops interoperable technologies (specifications, guidelines, software, and tools) to lead the Web to its full potential. W3C is a forum for information, commerce, communication, and collective understanding. On this page, you'll find […]
cite
, se non l' esame diretto
del codice sorgente della pagina
<hr />
<p>Prima notizia</p> <hr /> <p>Seconda notizia</p>
Prima notizia
Seconda notizia
<div>
class
id
cite
citazione o riferimento ad altro
documento
dfn
punto di definizione del termine
code
frammento di codice
samp
esempio di output di programmi,
script, etc.
var
argomento o variabile di un programma
abbr
abbreviazione (usa l' attributo title
per definire l' abbreviazione)
acronym
acronimo (usa l' attributo title
per definire l' acronimo)
a<sub>i,j</sub>=k*x<sup>i</sup>*y<sup>j</sup>
ai,j=k*xi*yj
blockquote
, ma consente di codificare
citazioni come elementi inline (nel paragrafo
corrente)
<q cite="">
<p>Oreste disse <q cite="http://www.weblab.isti.cnr.it/people/oreste"> Mi sembra che Dante abbia detto <q cite="http://it.wikipedia.org/wiki/Dante_Alighieri">Non ti curar di loro, ma guarda e passa</q> e che questa sia un' ottima massima</q>.</p>
Oreste disse Mi
sembra che Dante abbia detto
.
Non ti
curar di loro, ma guarda e passa
e che questa sia
un' ottima massima
<span>
class
id
<img>
<object>
<img>
è un
“empty element”
Gli attributi
<img>
<p>
The following image is of a happy face image defined in the gif image format: <img src="happface.gif" alt="emoticon: faccina ridente" title="faccina ridente" width="48" height="48" /> . The image element is a character-level or inline element which means that it appears like a rather large letter or word in the middle of the paragraph. Character-level elements form part of the text flow within the paragraph. Control of the image's position is usually done with a style sheet. <p>
The following image is of a happy face image defined in the gif image format: . The image element is a character-level or inline element which means that it appears like a rather large letter or word in the middle of the paragraph. Character-level elements form part of the text flow within the paragraph. Control of the image's position is usually done with a style sheet.
<p>
The following image is of a happy face image defined in the gif image format: <img src="happface.gif" alt="emoticon: faccina ridente non controllata" title="faccina ridente" width="192" height="192" />. The image element is a character-level or inline element which means that it appears like a rather large letter or word in the middle of the paragraph. Character-level elements form part of the text flow within the paragraph. Control of the image's position is usually done with a style sheet. <p>
The following image is of a happy face image defined in the gif image format: . The image element is a character-level or inline element which means that it appears like a rather large letter or word in the middle of the paragraph. Character-level elements form part of the text flow within the paragraph. Control of the image's position is usually done with a style sheet.
object
definisce uno di un insieme di
elementi
data=
specifica l' URL
type=
specifica il MIME-type
standby=
specifica un messaggio da
presentare mentre viene scaricata l' immagine
height=
, width=
,
max-width=
, alt=
, etc.
come al solito
<object width="349" height="91" data="bobbin.jpg" type="image/jpg" standby="JPEG image downloading"> <object width="349" height="91" data="bobbin.png" type="image/png" standby="PNG image downloading" /> <img width="349" height="91" src="bobbin.gif" alt="bobbin photo" /> No image available </object>
Questo argomento non viene trattato in dettaglio
Formato di base:
<table summary="Questa è una tabella a due colonne, con una intestazione. Leggere le righe da sinistra a destra">
<caption>Titolo tabella</caption>
<thead>
<tr>
<th>Prima intestazione</th><th>Seconda intestazione</th>
</tr>
</thead>
<tbody>
<tr>
<td>Prima riga prima colonna</td><td>prima riga seconda colonna</td>
</tr>
<tr>
<td>Seconda riga prima colonna</td><td>Seconda riga seconda colonna</td>
</tr>
</tbody>
</table>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Form XHTML</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="validaform.js"></script> </head> <body> <form action="http://www.regione.toscana.it:8080/servlet/Controllore" method="post" enctype="multipart/form-data" > <p><input type="hidden" name="nascosto" value="v" /> <label for="nome">Text</label> <input type="text" id="nome" name="nome" /></p> <p><label>Password <input type="password" name="password" /></label></p> <p><label>Checkbox <input type="checkbox" name="check" value="c1" /> <input type="checkbox" name="check" value="c2" /></label></p> <p><label for="rad">Radio</label> <input type="radio" name="rad" value="r1" /> <input type="radio" name="rad" value="r2" /></p> <p><label>File <input type="file" name="file" /></label></p> <p><label>Select <select name="select1"> <option value="1">s1</option> <option value="2">s2</option> </select></label><br /> <label>Textarea <textarea rows="3" cols="20" name="area"></textarea></label></p> <p><input type="submit" /> <input type="reset" /></p> </form> </body> </html>
Raggruppa tutti i controlli che debbono raccogliere dati
per un destinatario.
Attributi:
?
”) come separatore) e
quindi sono visibili
Raccoglie la maggior parte dei tipi di controllo disponibili in un form. Attributi:
Il normale ordine di scorrimento con il tasto tabulatore può essere modificato sulla base dell'importanza dei vari componenti della pagina web:
<a href="" tabindex="2">two</a>
…
<input type="text" name="nome"
title="indica il nome" tabindex="3">
<a href="" tabindex="1">one</a>
un esempio
In caso di informazioni che richiedono un formato particolare, come le date, fornire un esempio:
<label for="data">Data (gg-mm-aaaa)</label>
<input type="text" name="data" id="data" />
dalle Tecniche di Scripting per le Linee guida per l'accessibilità dei contenuti Web (WCAG) 2.0
Nel corso CSS vedremo form più efficaci e ulteriori tecniche di accessibilità
Scrivere (aggiungere al documento dell'esercizio
precedente)
un documento XHTML1.1 che contenga elementi meta,
paragrafi, intestazioni, attributi, liste e un form
Utilizzate Quanta plus
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:doap="http://usefulinc.com/ns/doap#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xml:lang="it">
<head>
<meta name="Description" content="Home page Persona" />
<meta name="Keywords" content="Semantic Web, Sistemi di Supporto alle Decisioni, Tecnologie Web, Multimedia,
Web Services, Java Enterprise, W3C, OWL, RDF, XML, XSL, AIDA, CITEL, DTT, CIE" />
<meta name="Author" content="email1@server.di.posta" />
<meta name="Author" content="email2@server.di.posta" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Language" content="it" />
<title>Persona :: Home Page</title>
<link href="stile.css" rel="stylesheet" type="text/css" />
<link href="stile_spec.css" rel="stylesheet" type="text/css" />
<link rel="meta" type="application/rdf+xml" title="FOAF" href="./persona.rdf" />
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="twitter-html/script.js"></script>
<style type="text/css">
.red { color:red; }
</style>
</head>
<body>
...
</body>
</html>
Domande?
... e risposte
Se non è sul Web non esiste ...
... troverete sul sito dell' Ufficio (http://www.w3c.it/)
le slide (http://www.w3c.it/education/2012/upra/html/)
Queste slide fanno parte del materiale predisposto per il corso Architettura del Web