Indice

Logo CNR

Logo ISTI

 

 

 

 

 

  Valid XHTML 1.1! Valid CSS!

XHTML

Massimo Martinelli
massimo AT isti [DOT cnr DOT it

Istituto di Scienza e Tecnologie dell'Informazione

Consiglio Nazionale delle Ricerche

Area della Ricerca CNR

via Moruzzi, 1

56124 Pisa


Alternanza Scuola-Lavoro

Pisa, 18 Maggio 2019

Domande!!!

alzi la mano chi sa:

Introduzione

Saranno mostrate tecnologie per realizzare documenti per il Web

 

Scrivere il codice in modo pulito

Ne usufruiscono:

I documenti devono essere adattabili a utenti e programmi diversi

Tecnologie assistive

Possono aiutare molte persone, non solo quelle considerate disabili
TUTTI gli utenti hanno dei benefici se i documenti sono accessibili

nuovi studi di ricerca mostrano che il 57 percendo degli utenti adulti di computer possono avere benefici dalla tecnologia accessibile

(Forrester Data)

 

macchina incastrata in una strada stretta rifugio montano in parete di difficile accesso colmare il baratro - stampa di W.B. Park

Nozioni generali

correttore di bozze il leggio rotante di Agostino Ramelli

figure: correttore di bozze e leggio rotante di Agostino Ramelli

HyperText Transfer Protocol (HTTP)

Richiesta e risposta HTTP

Esempio di richiesta

GET /directory/Pagina HTTP/1.1 
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.10 (Koala) Firefox/3.8
Accept: text/html, image/jpeg, image/png, text/*, image/*, */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate, identity
Accept-Charset: iso-8859-1, utf-8
Accept-Language: en
Host: it.cnr.isti.si

Esempio di risposta

HTTP/1.0 200 OK
Date: Mon, 29 Mar 2010 9:15:31 GMT
Server: Apache/2.2.15 (Linux) PHP/5
Vary: Accept-Encoding,Cookie
Content-Language: it
Content-Type: text/html; charset=utf-8
Connection: close

Codici di risposta (più comuni)

Le varie versioni di HTML

XHTML

Cosa è?

Le versioni

(XHTML si può estendere...)

Elementi e Attributi

elemento
<nometag>contenuto dell'elemento tra tag di apertura e tag di chiusura</nometag>
può contenere altri elementi:
<elemento>
  questo elemento contiene un altro <elementointerno>elemento</elementointerno> interno
</elemento>

Elementi possono avere attributi

attributi
codificati nel tag di apertura (nomeAttributo = "ValoreAttributo")
valore dell' attributo racchiuso tra apici (semplici o doppi)
<elemento attr1="valAtt1" attr2='valAtt2'>elemento con attributi</elemento>

Come è fatto un documento XHTML

Modello minimo di documento XHTML (memorizzato con estensione .html o .htm) :

  <!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> 

 

un esempio di documento XHTML

Dichiarazione DOCTYPE non è un elemento XHTML, e non dovrebbe avere un tag di chiusura

 Nota per l'accessibilità
importante fornire un titolo (title) descrittivo per tutte le pagine Web
può essere utile anche a indicare in che posizione del sito ci troviamo:
<title>Home :: Descrizione Livello 1 :: Livello 2 :: Descrizione pagina  </title>

Document Type Definition - DTD

"Dizionario" degli elementi e degli attributi

 

Le versioni XHTML 1

XHTML 1.1

Forma più restrittiva di XHTML

Document Type Definition (DTD): contiene le regole di definizione dei tag, indica gli elementi e il loro ordine all'interno del documento XML
Dichiarazione DTD:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Moduli DTD XHTML 1.1


Modulo Image Module
img
Modulo Client-side Image Map Module
area, map
Modulo Server-side Image Map Module
Attribute ismap on img
Modulo Intrinsic Events Module
Events attributes
Modulo Metainformation Module
meta
Modulo Scripting Module
noscript, script
Modulo Stylesheet Module
style element
Modulo Style Attribute Module Deprecated
style attribute
Modulo Link Module
link
Modulo Base Module
base

DTD: dichiarazioni che includono moduli (non più unica lista di elementi, attributi e regole d'uso)

Struttura (Structure)
body, head, html, title
Testo (Text)
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
Ipertesto (Hypertext)
a
Lista (List)
dl, dt, dd, ol, ul, li
Oggetto (Object)
object, param
Presentazione (Presentation)
b (deprecato), big (deprecato), hr, i (deprecato), small, sub, sup, tt
Edizione (Edit)
del, ins
Testo Bidirezionale (Bidirectional Text)
bdo
Moduli (Forms)
button, fieldset, form, input, label, legend, select, optgroup, option, textarea
Modulo Tabella (Table)
caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr

Perché usare XHTML

Differenze principali tra HTML e XHTML

Documento ben formato e valido

Un documento XML si dice "ben formato" quando:

 

Un documento XML si dice "valido" quando:

I documenti devono essere ben-formati

Corretto annidamento degli elementi

Errato:

<strong><em>testo</strong></em>

 

Corretto:

<strong><em>testo</em></strong>

Interpretazione minuscole e maiuscole

XML è case-sensitive (le lettere minuscole vengono interpretate differentemente dalle maiuscole)

I tag come <p> e <P> sono interpretati in modo differente

Errato:

  <BODY>
    <P>Questo è un paragrafo</P>
  </BODY>

Corretto:

  <body>
    <p>Questo è un paragrafo</p>
  </body>

Tutti gli elementi XHTML devono essere chiusi

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 essere chiusi

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 />

Elementi inline e block-level

inline
  • possono contenere solo testo o altri elementi di tipo inline
  • <em> e <strong> sono esempi di elementi inline
block-level
  • elementi più importanti, possono definire lo spazio occupato, e possono contenere altri elementi di tipo inline
  • <p> e <h1> sono esempi di elementi block-level
  • alcuni elementi block-level possono contenere altri elementi block-level
  • in genere gli elementi block-level iniziano su una nuova linea

Il break

Esercizio

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">

Link (collegamento)

tratto da wikipedia

 

Uniform Resource Identificator (URI)

Esempi:
protocollo://server:porta/percorso/nomedelfile
http://orario.isti.cnr.it:18080/Orario/jsp/index.jsp

URI Relativi

Esempi di link (collegamento)


<a href="./riferimento.html" title="Un esempio di link">Un esempio</a>

Un esempio

la linea di Cavandoli, personaggio arrabbiato bidone spazzatura con scritta spray 'pigia vi'
Accessibilità dei link:
l'attributo title è utile per chiarificare lo scopo del collegamento

<a href="./riferimento.html">clicca qui</a>
// doppiamente errato: dipendente da dispositivo, non descrittivo
Utile: link ad inizio pagina per saltare direttamente al contenuto "reale" (esigenze di stile? con il CSS il collegamento può essere spostato in una zona non visibile...)
<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> lingua della pagina riferita scritta differente da quella della pagina corrente
Utile: collegamento ad una pagina di aiuto in ogni pagina, (in cui elencare le accesskey...)
<a href="aiuto.html">Help</a>
separare link adiacenti (strutturalmente, ad es. con liste ) per facilitare la selezione del link voluto
<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> 

Sezione Meta

<?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>

Gestione degli spazi

Spazi consecutivi (spazi, a capo, tabulatori) sostituiti da unico spazio dallo user agent

Proprietà whitespace (CSS2) determina la significatività degli dei caratteri spazio, tabulazione, a capo.
Possibili valori:

p { display: block; white-space: pre; font-family: monospace; }

Elementi Script e Style

In XHTML gli elementi script e style sono dichiarati di tipo #PCDATA

Parsed Character Data elaborabili dal parser (analizzatore del codice)

< & sono interpretati come inizio di markup, e le entità come &lt; and &amp; sono riconosciute come riferimenti ad entità (< & )

Includendo il contenuto di questi elementi all'interno di una sezione CDATA evitiamo l'espansione di queste entità

CDATA = Character Data (il parser non analizza il contenuto)

  <script type="text/javascript">
    <![CDATA[ ... unescaped script content ... ]]>
  </script>

Commenti

Possono essere inseriti in qualsiasi punto di un documento HTML

Esempio:

<!-- commento di esempio -->
     

Intestazioni (Headers) e paragrafi

Header
  • sei livelli di intestazione (da h1 a h6)
  • di importanza decrescente
  • normalmente visualizzati con dimensioni del carattere decrescenti e altri accorgimenti tipografici
  • utilizzarli in sequenza
  • non un mero accorgimento tipografico:
    devono corrispondere a una struttura logica del documento
  • un esempio
Paragrafo
  • <p>Contenuto del paragrafo</p>

Alcuni attributi globali

Identificazione e stile
  • 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 DEPRECATO
  • title= informazione aggiuntiva sull'elemento; importante per l' accessibilità
Lingua
  • xml:lang
Interazione
  • 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)

L'attributo xml:lang

Si applica a quasi tutti gli elementi XHTML

Specifica il linguaggio del contenuto di un elemento

  <div xml:lang="en">Hello!</div>

 

Accessibilità: specificare ogni cambiamento di lingua

Enfasi

em
  • normalmente visualizzato in corsivo
strong
  • normalmente visualizzato in grassetto

L' unica assunzione ragionevole è che il browser visualizzi con diversi livelli di importanza

Riferimenti a Entità

Possibile utilizzare un riferimento ad un valore esadecimale, per esempio per i caratteri diacritici o per specificare i colori
Quando esistono, si possono utilizzare le parole chiave
Altro metodo consente di utilizzare il codice esadecimale, usando &xnumero; (x e nn in minuscolo)
Esempio &xffffff; (bianco)

HTML definisce un certo numero di entità per quei caratteri che sono:

- proibiti perché usati in HTML (<, >, &, ", ecc.)

- non presenti nell'ASCII a 7 bit

Il browser sa come rappresentarle

Mappe lato server (Evitare!)

Mappe lato client

La corrispondenza dell'area viene fatta sul browser; l'elenco delle zone viene spedito nel documento HTML come tag AREA dentro al tag MAP:

  <img src=immagine.gif usemap="#mappa"/> . . . 
  <map name="mappa">  
    <area shape="rect" coord="0,0,100,100" href="doc1.html"> 
    <area shape="circle" coord="100,50,100" href="doc2.html">
    . . . altre aree . . .
  </map>
  . . .

Le mappe client-side si basano su due tag:

Liste numerate e non numerate

Liste non numerate (unordered list)
  • sequenza di punti aventi la stessa importanza
  • <ul> inizio lista
  • </ul> fine lista
  • all' interno di un elemento <ul> sono ammessi solo elementi <li>
Liste numerate (ordered list)
  • sequenza di punti di cui si ritiene importante l' ordine, o in cui comunque risulti utile identificare i singoli elementi
  • <ol> inizio lista
  • </ol> fine lista
  • all' interno di un elemento <ol> sono ammessi solo elementi <li>
L' elemento di lista (list item)
  • <li>punto della lista</li>

Un esempio

Liste di definizione

Un esempio

Liste: utili per raggruppare link

favorisce l'accessibilità

<div><a name="categories" id="categories"></a></div>
<h2>Product Categories</h2>
<ul class="navigation">
    <li><a href="kitchen.html">Kitchen</a></li>
    <li><a href="bedbath.html">Bed & Bath</a></li>
    <li><a href="dining.html">Fine Dining</a></li>
    <li><a href="lighting.html">Lighting</a></li>
    <li><a href="storage.html">Storage</a><li>
</ul> 

Esercizio

Scrivere (aggiungere al documento dell'esercizio precedente)
un documento XHTML1.1 che contenga elementi meta, paragrafi, intestazioni, attributi e liste

Tabelle:


Utilizzare per rappresentare tabelle di dati, NON per impaginare

Le celle possono contenere testo, immagini o collegamenti

E' possibile inserire tabelle all'interno di tabelle

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>
attributo summary
Fornire un sommario relativo allo scopo e alla struttura per i browser che rappresentano media non visuali
elemento caption
Fornire un titolo

Esempio di tabella

Titolo tabella
Prima intestazione Seconda intestazione
Prima riga prima colonna Prima riga seconda colonna
Seconda riga prima colonna Seconda riga seconda colonna

Parti fondamentali

Esiste anche un elemento <tfoot> (nota al piede della tabella) che deve apparire prima dell'elemento <tbody>

Espandere righe o colonne

<table border="1"summary="raggruppamento di colonne">
  <caption>Gruppi di colonne</caption>
  <thead> <tr>
    <th>ABC</th><th>DEF</th><th>GHI</th><th>JKL</th><th>MNP</th>
      </tr> </thead>
      <tbody>
        <tr>
          <td colspan="3">12</td><td>1242812428</td>
          <td rowspan="2">1262012620</td>
      </tr>
      <tr>
      <td>36</td><td>72</td><td>98</td><td>1442814428</td>
    </tr>
  </tbody>
</table>
Gruppi di colonne
ABC DEF GHI JKL MNP
12 1242812428 1262012620
36 72 98 14442814428

Tabelle: attributi id e headers (e elemento di intestazione della riga)


<table summary="Questa tabella riporta le spese di viaggio sostenute durante i soggiorni di Agosto a San Jose e Seattle">
<caption>Rendiconto delle spese di viaggio</caption>
<tr>
  <th></th>
  <th id="a2" axis="spese">Pasti</th>
  <th id="a3" axis="spese">Alberghi</th>
  <th id="a4" axis="spese">Trasporti</th>
  <td>subtotale</td>
</tr>
<tr>
  <th id="a6" axis="luogo">San Jose</th>
  <th></th>
  <th></th>
  <th></th>
  <td></td>
</tr>
<tr>
  <td id="a7" axis="data">25 Agosto 97</td>
  <td headers="a6 a7 a2">37.74</td>
  <td headers="a6 a7 a3">112.00</td>
  <td headers="a6 a7 a4">45.00</td>
  <td></td>
</tr>
<tr>
  <td id="a8" axis="data">26 Agosto 97</td>
  <td headers="a6 a8 a2">27.28</td>
  <td headers="a6 a8 a3">112.00</td>
  <td headers="a6 a8 a4">45.00</td>
  <td></td>
</tr>
<tr>
  <td>subtotale</td>
  <td>65.02</td>
  <td>224.00</td>
  <td>90.00</td>
  <td>379.02</td>
</tr>
<tr>
  <th id="a10" axis="luogo">Seattle</th>
  <th></th>
  <th></th>
  <th></th>
  <td></td>
</tr>
<tr>
  <td id="a11" axis="data">27 Agosto 97</td>
  <td headers="a10 a11 a2">96.25</td>
  <td headers="a10 a11 a3">109.00</td>
  <td headers="a10 a11 a4">36.00</td>
  <td></td>
</tr>
<tr>
  <td id="a12" axis="data">28 Agosto 97</td>
  <td headers="a10 a12 a2">35.00</td>
  <td headers="a10 a12 a3">109.00</td>
  <td headers="a10 a12 a4">36.00</td>
  <td></td>
</tr>
<tr>
  <td>subtotale</td>
  <td>131.25</td>
  <td>218.00</td>
  <td>72.00</td>
  <td>421.25</td>
</tr>
<tr>
  <th>Totale</th>
  <td>196.27</td>
  <td>442.00</td>
  <td>162.00</td>
  <td>800.27</td>
</tr>
</table>

Tabelle: rappresentazione esempio precedente

Rendiconto delle spese di viaggio
Pasti Alberghi Trasporti subtotale
San Jose
25 Agosto 97 37.74 112.00 45.00
26 Agosto 97 27.28 112.00 45.00
subtotale 65.02 224.00 90.00 379.02
Seattle
27 Agosto 97 96.25 109.00 36.00
28 Agosto 97 35.00 109.00 36.00
subtotale 131.25 218.00 72.00 421.25
Totale 196.27 442.00 162.00 800.27

Testo preformattato

Per preformattare del testo si utilizza l'elemento <pre>

Questo elemento non condensa spazi e a capo, ma lascia il contenuto formattato come l'abbiamo scritto

<pre> testo      spaziato
                             su 
                            più        righe</pre>
 testo      spaziato
                             su 
                            più        righe

Address

L'elemento <address> può essere usato dagli autori per fornire informazioni di contatto per un documento o per la parte più significativa di un documento, quale un modulo. Questo elemento compare spesso all'inizio o alla fine di un documento

<address><a href="http://www.isti.cnr.it/People/M.Martinelli/">Massimo Martinelli</a>,
da contattare per le <a href="corsi">maggiori informazioni sui corsi HTML</a></address>

Citazioni

l'elemento <cite> denota la fonte di una citazione, <blockquote> la citazione

<blockquote>La prima cosa che il commissario notò sopra la scrivania di Pasquano,'n mezzo a carte e fotografie di morti ammazzati, fu una guantera di cannoli giganti con allato 'na buttiglia di passito di Pantelleria e un bicchieri. Era cosa cognita che Pasquano era licco cannaruto di dolci. Si calò a sciaurare i cannoli: erano freschissimi. Allura si versò tanticchia di passito nel bicchiere, affirò un cannolo e principiò a sbafarselo talianno il paesaggio dalla finestra aperta. Il sole addrumava i colori della vallata, li staccava nettamente dall'azzurro del mare lontano. Dio, o chi ne faciva le veci, qua si stava addimostrando un pittore naif. A filo d'orizzonte, uno stormo di gabbiani che se la fissiavano a fare finta di scontrarsi tra loro, in un virivirì di piacchiate, virate, cabrate che parivano 'na stampa e 'na figura con una squatriglia aerea acrobatica. S'affatò a taliarne le evoluzioni. Finito il primo si pigliò un secondo cannolo.</blockquote> <cite> [Andrea Camilleri, Il campo del vasaio - pagg. 51-52, Sellerio editore, Palermo 2008.]</cite>

La prima cosa che il commissario notò sopra la scrivania di Pasquano,'n mezzo a carte e fotografie di morti ammazzati, fu una guantera di cannoli giganti con allato 'na buttiglia di passito di Pantelleria e un bicchieri. Era cosa cognita che Pasquano era licco cannaruto di dolci. Si calò a sciaurare i cannoli: erano freschissimi. Allura si versò tanticchia di passito nel bicchiere, affirò un cannolo e principiò a sbafarselo talianno il paesaggio dalla finestra aperta. Il sole addrumava i colori della vallata, li staccava nettamente dall'azzurro del mare lontano. Dio, o chi ne faciva le veci, qua si stava addimostrando un pittore naif. A filo d'orizzonte, uno stormo di gabbiani che se la fissiavano a fare finta di scontrarsi tra loro, in un virivirì di piacchiate, virate, cabrate che parivano 'na stampa e 'na figura con una squatriglia aerea acrobatica. S'affatò a taliarne le evoluzioni. Finito il primo si pigliò un secondo cannolo.

[Andrea Camilleri, Il campo del vasaio - pagg. 51-52, Sellerio editore, Palermo 2008.]

Riga orizzontale

L'elemento <hr /> genera una linea orizzontale

<hr />

Elementi div e span

Nel corso CSS verranno forniti esempi di impaginazione e rappresentazione e che utilizzano elementi div e span

moduli (forms)

Esempio di form

collegamento all'esempio

Il codice del form di esempio

<!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>
  

Attributi di form

Raggruppa tutti i controlli che debbono raccogliere data per un destinatario. Attributi:

Elementi di form: input

Raccoglie la maggior parte dei tipi di controllo disponibili in un form. Attributi:

Altri elementi di form: textarea, select, optgroup, option

JavaScript: validare form client-side

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à

Esercizio

Scrivere una pagina xhtml con un form

Elementi importanti della frase

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

Immagini inline

Attributi di img

src
  • Specifica l'url dell'immagine da visualizzare
  • può essere un url relativo o assoluto
  • è un attributo obbligatorio
alt
  • fornisce una descrizione testuale dell'immagine
  • " viene visualizzato quando l'immagine non viene trovata
  • Nel caso di un browser di testo (lynx) viene mostrato il contenuto dell'attributo alt
  • un text-reader legge il contenuto di questo attributo, pertanto andrebbe quasi (...) sempre fornito

Dimensioni di una immagine

height

width

Esempio di immagine

Visualizzazione sul browser

L'immagine che segue è una immagine di una faccia sorridente definita in formato gif: faccina ridente L'elemento immagine è un elemento inline e quindi appare come una parola o lettera nel mezzo del paragrafo. In genere la posizione di una immagine viene definita da un foglio di stile..

Object

Attributi:

Object può avere elementi figli "param" contenenti dei valori che l'oggetto dovrà elaborare

<object src="http://www.w3c.it/immagine.jpg" type="image/jpeg">
   <p>testo alternativo</p>
</object>
<object src="http://www.musica.com/audio.mp3" type="audio/mpeg">
   <p>testo alternativo</p>
</object>
<object 
    src="http://www.isti.cnr.it/orologio.class"
    type="application/x-java-applet">
        <param name="height" value="40" valuetype="data" />
        <param name="width" value="40" valuetype="data" />
        <param  name="delay" value="100"/>
        Questo browser user non può utilizzare una applet java
</object>
<object src="http://www.w3c.it/immagine.svg" type="image/svg+xml">
   <object src="http://www.w3c.it/immaginesenonriesceagestireSVG.jpg" type="image/jpeg">
      <p>testo alternativo</p>
   </object>
</object>

tabindex

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="1">one</a>
 <a href="" tabindex="2">two</a>
...
<input type="text" name="nome" 
      title="indica il nome" tabindex="3">

accesskey


velocizzano l'accesso ai collegamenti assegnando ad una combinazione di tasti

<p><a title="pagina di aiuto" accesskey="1" href="/aiuto.html">pagina di aiuto</a></p>
   ...

   <a href="Organizzazione.html" accesskey="O">Organizzazione</a> 
   <a href="Notizie.html" accesskey="N">Notizie</a>
   <a href="Intranet.html" accesskey="I">Intranet</a>

pagina di aiuto
...
Organizzazione
Notizie
Intranet

associando uno stile css è possibile sottolineare la lettera che indica l'accesskey
p:first-letter { color:red; text-decoration: underline; }

 

Uso controverso:

varia a secondo del browser e del sistema operativo

Inoltre l'utilizzo delle lettere come valore degli attributi accesskey può essere causa di conflitto con i tasti predefiniti degli user agent (pensate alla combinazione ALT + F che in genere apre il menu File

Esercizio

Preparare un mini sito Web costituito da tre documenti XHTML1.1 collegati tra loro:

Alcuni strumenti

Esercizio

Validare e adattare una pagina Web dell'ente/istituto/laboratorio/gruppo/... presso il quale afferite

dispositivo di puntamento dispositivo che sostituisce il mouse tramite l'uso della bocca dispositivo di puntamento oculare tastiera con simboli grafici microfono per software di riconoscimento vocale tastiera per disabili motori dispositivi che sostituiscono mouse e tastiera tramite l'uso della bocca e trackball tastiera virtuale sul monitor anziano che usa il computer vignetta di Vauro

Grazie per l'attenzione

Domande?


 

Come è stata realizzata questa presentazione:

Slidy, uno strumento per le presentazioni in XHTML

 

cenni di HTML5

CSS