Indice

Logo Ufficio Italiano W3C

Logo CNR

Logo ISTI

 

 

 

 

 

  Valid XHTML 1.1! Valid CSS!

XHTML

Massimo Martinelli
massimo AT w3c [DOT it

Ufficio Italiano W3C, CNR-ISTI

Area della Ricerca CNR

via Moruzzi, 1

56124 Pisa


logo Rete Telematica Regione Toscana logo Regione Toscana Corso AQUARIUS sulle Tecnologie Web

Firenze 19 Ottobre 2010 - Pisa, 26 Ottobre 2010

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

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>

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

Differenze principali tra HTML e XHTML

I documenti devono essere ben-formati

rivedremo meglio con XML

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

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

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>

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 (...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)

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

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

    <dl>
      <dt>termine1</dt>
         <dd>definizione termine1</dd>
      <dt>termine2</dt>
         <dd>definizione termine2 (prima definizione)</dd>
         <dd>definizione termine2 (seconda definizione)</dd>
    </dl>
     
vènto
movimento di masse d'aria
tappo
accessorio impiegato per la chiusura di contenitori
persona di bassa/breve statura

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

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 (aggiungere al documento dell'esercizio precedente)
un documento XHTML1.1 che contenga elementi meta, paragrafi, intestazioni, attributi, liste e un form

Utilizzate Quanta plus

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

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

Alcuni strumenti

Esercizio

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

Avvaletevi del validatore W3C, di Tiny, Quanta, HTML-Kit, Wave, ...

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

Ringraziamenti

Grazie per l'attenzione

Domande?


Se non è sul Web non esiste ...

...troverete le slide all'indirizzo http://www1.isti.cnr.it/~Martinelli/XML/doc/Corsi_Regione2010/

... troverete sul sito dell'Ufficio Italiano W3C (http://www.w3c.it/)
le slide ( http://www.w3c.it/projects/aquarius/moduloD/)

 

Come è stata realizzata questa presentazione:

Slidy, uno strumento per le presentazioni in XHTML

 

cenni di HTML5

CSS