Frames
I frame sono vecchie strutture HTML che stanno sparendo dal Web, perché possono causare alcuni seri problemi di uso: possono non funzionare quando li si raggiunge dai motori di ricerca, può essere assente la navigazione, difficoltosa la stampa, ecc.
Requisiti dei frame
Non è consentito l’uso dei frame (o degli iframe) nella realizzazione di nuovi siti
Suggerimenti
Per i vecchi siti ed applicazioni quando non è possibile modificare la struttura, è necessario seguire queste indicazioni:
- Utilizzare l´attributo TITLE sia nel tag FRAMESET che nel tag FRAME. Il browser testuale Linx e alcuni screen readers (es.: HomePage Reader) utilizzano i titoli per permettere all´utente disabile visivo di posizionarsi nel frame desiderato. Jaws permette di spostarsi tra i vari frames con la combinazione di tasti Ctrl-Tab, ma comunque permette di visualizzare la lista dei frames e scegliere da questa. I titoli dovrebbero essere significativi (es.: "Menu del sito" e non "Frame laterale").
- Inserire il tag TITLE nelle pagine collegate da un frameset. Si tenga presente che il browser testuale e alcuni screen readers "visualizzano", cioè pongono in primo piano all´attenzione dell´utente la sola pagina del frame attiva in quel momento, e che l´informazione del titolo è molto utile per orientarsi.
- Definire le righe e le colonne in cui è suddiviso il frameset con misure relative (es.: "20%, 80%" o "1*,2*"). Questo permette il ridimensionamento proporzionale della pagina per utenti che utilizzano una risoluzione video bassa (es.: ipovedenti).
- Utilizzare il costrutto <NOFRAMES> </NOFRAMES> per consentire la navigazione a quegli utenti che non dispongono di browsers o screen readers sufficientemente aggiornati per gestire i frames.: Nella sezione NOFRAMES, ad esempio, si può inserire una serie di links alle varie pagine che compongono il frameset in modo da consentirne la navigazione individuale.
- Non utilizzare direttamente un´immagine come sorgente (SRC=) di un frame. Creare comunque una pagina HTML con titolo, body e tag IMG con relativo attributo ALT.
Esempi

il contenitore (la pagina con frames)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<title>Esempio di pagina con Frameset corretto</title>
</head>
<frameset rows="*" cols="27%,*" title="Menu pagina delle novita">
<frame title="Area menu del sito" src="frame02a.htm" >
<frame title="Area novita del sito" src="frame02b.htm" >
<noframes>
<ul>
<li><a href="frame02a.htm">Menu del sito</a></li>
<li><a href="frame02b.htm">Pagina delle novità</a></li>
</ul>
</noframes>
</frameset>
</html>
il frame che contiene il menù (framea.htm):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<title>Menu del sito</title>
</head>
<body>
<ul>
<li><a href="framea.htm">Menu del sito</a></li>
<li><a href="frameb.htm">Pagina delle novità</a></li>
</ul>
</body>
</html>
il frame che contiene il contenuto (frameb.htm):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<title>Novità del sito</title>
</head>
<body>
<h1>Novità del sito</h1>
<p>...</p>
</body>
</html>
Verifiche sui frames
Tutte le verifiche possono essere fatte con la
barra dell'accessibilità (versione 2.0), controllando:
-
Presenza Frames: Frame > Bordi dei frame
-
Titoli, nomi e elemento NOFRAMES: Frame > Name/Title dei frames