html515
Corso html 5, lezione 15.
Roberto Abutzu su uiciechi.it, 2014-01.
Quindicesima parte: "Sezionare i contenuti".
`**********`
Contenitore di sezionamento dei contenuti.
Nei vari manuali di questo linguaggio e per le specifiche del w3c, spesso si sente parlare di:
"content model".
Questi sono dei gruppi di elementi che suddividono la nostra pagina o il nostro documento html.
Ne esistono di diversi tipi, come, ad esempio, i meta content, ossia gli elementi come le tag meta,
che servono alla presentazione e al funzionamento del sito.
Soltanto un esempio, senza dilungarmi troppo nel dettaglio, allo scopo di introdurre i "sectioning
content".
Cosa sono?
Sono un gruppo di elementi html, creati appositamente e ampliati in questa versione del linguaggio,
per sezionare in modo più definito i contenuti di un documento.
Ciò agevola l'utente nella navigazione, i browser nella identificazione delle varie aree di una
pagina, gli sviluppatori nel codice.
Più avanti nel corso analizzeremo meglio i vari gruppi content model spiegandone il funzionamento
corretto.
Il "sectioning content" è un gruppo del quale ne fanno parte: "Aside, article, nav, section".
Ora riprendiamo alcune tag già citate in precedenza approfondendone la filosofia e spiegandone al
meglio il loro utilizzo.
Dicevamo che, nella nuova versione di questo linguaggio, lo scopo principale degli sviluppatori è
stato quello di dare la possibilità di creare una struttura delle pagine web dove i contenuti
potessero essere ben suddivisi tra loro.
Per esser più chiari, il div id="navigazione", assegnato al menu di navigazione di una pagina, ora
può essere sostituito dalla tag "nav".
Questo lavoro in passato veniva attribuito alla tag div, alla quale veniva assegnato un
identificativo univoco. Questa tag è ancora valida per il W3c e viene utilizzata esattamente come
prima.
Il problema era la presenza di div, dei contenitori di contenuti, che a centinaia riempivano le
pagine web.
Ora molti di questi div possono essere sostituiti dalle nuove tag che hanno la stessa funzione ma
che, avendo nomi propri, sono più identificabili, precisando però che non devono essere considerate
alternative ai div.
E' sbagliato dire che le nuove tag sostituiscono i div, essi possono esistere entrambi, coesistere
nella stessa area, ed è a discrezione del programmatore deciderne l'utilizzo.
Naturalmente la decisione dell'utilizzo dei Div è anche poi vincolata all'utilizzo dei file css che
determinano la formattazione e il layout della pagina stessa.
Comunque, vedremo in seguito ulteriori contesti lasciando ad ognuno la libertà di queste scelte.
Ora iniziamo a conoscere queste nuove tag nel dettaglio e nel loro corretto impiego.
Vi ricordo che analizzeremo le tag appartenenti alla struttura della pagina web, i "sectioning
content".
La tag ``header``.
Per definizione, questa tag è un contenitore di ausili introduttivi e per la navigazione.
Per prima cosa sappiamo che questa Tag conterrà altri elementi al suo interno e non deve essere
assolutamente considerata come ciò che contiene esclusivamente l'intestazione del sito, di solito
l'intestazione h1, h2, che riporta il nome e il contenuto del sito stesso.
Viene utilizzata anche in questa posizione in quanto il titolo e il sottotitolo di un sito, di
solito le prime due intestazioni h1 e h2, vanno considerate come indicazione dei contenuti, quindi
introduttivi. Consideriamo però che anche in altre aree della pagina potremmo avere contesti con
intestazioni introduttive.
Un esempio può essere l'articolo di un blog dove all'inizio può essere inserito il titolo, un
sottotitolo, argomento trattato, ecc...
In tal caso è possibile utilizzare la tag ``header`` per raccogliere intestazioni che introducano
questi contenuti.
Con questo non si intende che ogni singola intestazione necessiti di questa tag, ma un insieme di
intestazioni, qualora introducano contenuti possono essere racchiuse in questa tag ``header``.
Facciamo un esempio pratico, ipotizzando di voler inserire nella nostra home page una sezione
dedicata agli ausili per i disabili visivi. La costruiremo un passo alla volta inserendo e
spiegando man mano le tag aggiunte.
Vediamo subito la nuova tag: ``aside``.
Significa "di fianco" e serve per contenere dei contenuti complementari al sito. Può contenere
articoli di un blog, contenuti aggiuntivi, pubblicità, form per la ricerca, ecc..., comunque dei
contenuti che vogliono essere inseriti ma tenuti separati da quelli principali.
Scriviamo questo codice:
``aside``
``header``
``h1Ausili tiflotecnici/h1``
``h2Strumenti software ed hardware per i disabili visivi/h2``
``h3Specifici per l'utilizzo di un personal computer/h3``
``/header``
``ul``
``liScreen reader/li``
``liSintesi vocale/li``
``liDisplay braille/li``
``liStampante braille/li``
``liSoftware videoingrandente/li``
``/ul``
``/aside``
Abbiamo creato un elenco non ordinato con delle intestazioni iniziali, introduttive all'elenco, con
degli elementi che indicano poi gli ausili. Il tutto è contenuto in una sezione delimitata dalla
tag: ``aside``.
Decidiamo di creare dei file, uno per ogni elemento della nostra lista. Non li creeremo realmente
ma ipotizzando di doverlo fare, faremo diventare dei link gli elementi all'interno della nostra
lista. Aggiungeremo poi una intestazione e un paragrafo come contenuti.
Ecco il codice:
``aside``
``header``
``h1Ausili tiflotecnici/h1``
``h2Strumenti software ed hardware per i disabili visivi/h2``
``h3Specifici per l'utilizzo di un personal computer/h3``
``/header``
``ul``
``lia href="Screen.html"screen reader/a/li``
``lia href="sintesi.html"sintesi vocali/a/li``
``lia href="display.html"display braille/a/li``
``lia href="stampante.html"stampanti braille/a/li``
``lia href="videoingrandente.html"software videoingrandenti/a/li``
``/ul``
``h2Ausili/h2``
``pIn queste pagine potrete recuperare informazioni dettagliate sugli ausili tiflotecnici per
disabili visivi.br /Queste informazioni vengono curate e seguite da Nunziante Esposito e Roberto
Abutzu./p``
``footer``
``dl``
``dtCreated by: /dt``
``ddNunziante/dd``
``dtweb master/dt``
``ddRoberto Abutzu/dd``
``/dl``
``/footer``
``/aside``
La cosa che più si nota in questo codice appena scritto è che è comparsa la tag footer. Questo
perché questa tag non è esclusiva del piè di pagina del sito ma può essere utilizzata anche in
altri contesti, purché racchiuda contenuti inerenti all'autore di quelli precedenti, del copyright,
accordi di licenza, ecc. In questo caso ho voluto riportare i dati di chi genera le pagine sugli
ausili e li ho inseriti in un piè di pagina, appartenente alla sezione "aside".
Un altro contesto in cui è possibile utilizzare il footer è negli articoli di un blog, magari
volendo inserire l'autore e la data di un determinato articolo, alla fine dell'articolo stesso.
Ora procediamo con la costruzione di questa area Aside inserendo delle altre tag.
Scriviamo questo codice:
``aside``
``header``
``h1Ausili tiflotecnici/h1``
``h2Strumenti software ed hardware per i disabili visivi/h2``
``h3Specifici per l'utilizzo di un personal computer/h3``
``nav``
``h2menu di navigazione complementare/h2``
``ul``
``lia href="Screen.html"screen reader/a/li``
``lia href="sintesi.html"sintesi vocali/a/li``
``lia href="display.html"display braille/a/li``
``lia href="Stampante.html"stampanti braille/a/li``
``lia href="videoingrandente.html"software videoingrandenti/a/li``
``/ul``
``/nav``
``/header``
``section``
``h2Ausili/h2``
``pIn queste pagine potrete recuperare informazioni dettagliate sugli ausili tiflotecnici per
disabili visivi.br /Queste informazioni vengono curate e seguite da Nunziante Esposito./p``
``/section``
``footer``
``dl``
``dtCreated by: /dt``
``ddNunziante Esposito/dd``
``dtWebmaster/dt``
``ddRoberto Abutzu/dd``
``/dl``
``/footer``
``/aside``
Verifichiamo il codice e notiamo che ho inserito una tag ``nav`` con la sua intestazione. Anche
questa tag, che per definizione indica un menu di navigazione, non è da ritenersi esclusiva del
menu di navigazione del sito. Infatti, la nav indica un menu di collegamenti, una serie di link che
insieme permettono di navigare in determinati contenuti.
Quindi, in questo contesto, la "nav" permette di poter navigare all'interno della sezione contenuta
nella "Aside" che riporta contenuti e pagine diverse sugli ausili.
Da notare che, avendo aggiunto la tag "nav", ho spostato la chiusura della tag "header". Questo
perché, come riportato sopra, questa tag contiene elementi di introduzione e navigazione. La "nav"
è un elemento di navigazione e quindi può essere contenuta al suo interno.
Se vi ricordate o andate a vedere, nelle lezioni precedenti avevamo inserito la tag "nav" come il
contenitore dei collegamenti principali del sito.
Anche questo non è obbligatorio, o meglio, non è obbligatorio inserire la "nav" subito dopo le
intestazioni principali del sito, h1, h2, ma, a seconda del layout, il menu di navigazione può
essere posizionato anche in altre aree del documento.
Inoltre c'è da dire che, qualora non servisse, non è obbligatorio inserire la tag "nav" all'interno
di una "header".
Vi sarete sicuramente accorti che ho inserito anche una nuova tag: ``section``. Questo è un
contenitore a se stante e identifica un'area precisa di una pagina. Da tenere presente che questa
tag deve avere obbligatoriamente un titolo ed una intestazione.
La gerarchia delle intestazioni contenute nella "section" non viene influenzata dalle gerarchie del
documento. Significa che i vari livelli di intestazioni contenuti all'interno della "section",
appartengono solo all'area delimitata dalla stessa.
Ecco un esempio di codice:
``section``
``h2titolo della sezione/h2``
``ptesto contenuto/p``
``/section``
``section``
``h2titolo 2/h2``
``paltri contenuti/p``
``/section``
``section``
``h2terzo titolo/h2``
``pulteriori contenuti/p``
``/section``
Grazie a questa suddivisione con le sezioni, ora è più semplice assegnare le intestazioni che
vogliamo a dei contenuti specifici. Riassumendo, ogni intestazione all'interno di una sezione fa
fede solo alla sezione e non all'intero documento. Volendo, è possibile inserire queste sezioni
all'interno di una ulteriore sezione ricordandosi di inserire l'intestazione.
Il codice sarà scritto in questo modo:
``section``
``h1contenuti/h1``
``section``
``h2primo titolo/h2``
``pprimo contenuto/p``
``/section``
``section``
``h2secondo titolo/h2``
``psecondo contenuto/p``
``/section``
``/section``
Ogni volta che uno screen reader incontra una sezione, la identifica come regione.
Ora introduciamo la tag: "article" che viene utilizzata spesso nei blog o comunque per riportare
articoli, ricette e altri contenuti simili. Ma attenzione a non pensare che serva solo ad articoli
veri e propri.
Anche questa tag può essere considerata una Section ma è più specifica. Anche in questa occasione è
a discrezione del programmatore deciderne l'utilizzo.
Ecco alcuni esempi:
``section``
``section``
``h1Articoli sul gran premio di Monza di f1/h1``
``article``
``h2ordine di arrivo/h2``
``ptesto/p``
``/article``
``article``
``h2classifica finale/h2``
``ptesto/p``
``/article``
``/section``
``section``
``h1commenti/h1``
``article``
``pcommento/p``
``/article/p``
``article``
``psecondo commento/p``
``/article``
``/section``
``/section``
Oltre ad aver inserito gli articoli nelle loro tag, ho suddiviso i commenti dai contenuti in due
sezioni separate, tutte contenute a loro volta in una unica sezione dato che trattavano gli stessi
contenuti. Volendo era anche possibile inserire una nuova "section", dove inserire il form per
scrivere un nuovo commento.
Le tag article possono essere annidate tra loro, una dentro l'altra, purché trattino gli stessi
contenuti. In questo caso si parla di tag figli e di elemento padre e, in caso si voglia inserire
un "footer", questo va inserito una volta sola nell'elemento padre, il primo article.
Provate a creare nella vostra index o nelle vostre sottopagine queste condizioni, provando anche a
cambiare il layout delle pagine stesse. Rivedremo in futuro queste tag quando affronteremo i form,
quegli elementi html dove è possibile scrivere, selezionare da una tendina, premere un pulsante.
In questa parte ho voluto riprendere situazioni già analizzate ma ritengo importante spesso
rivedere alcuni concetti nello specifico proprio per poter, in futuro, mettervi in condizione di
scrivere delle pagine belle e corrette.
Ognuno è libero di decidere il proprio template, la forma che avrà la pagina, ne può creare di
diversi, ma per farlo correttamente è necessario conoscere tutte le possibilità e le condizioni
alternative degli elementi html 5.
Vi rimando alla prossima lezione per approfondire questo discorso ed imparare nuove tag.
`***********`
Per ulteriori spiegazioni, scrivere a: `Roberto Abutzu roberto@evyweb.it`_
Torna all'indice