# Frameset

I frameset HTML permettevano ai progettisti di siti web di visualizzare i documenti e le webpages in visualizzazioni multiple, che potevano essere finestre indipendenti o sottofinestre. Le visualizzazioni multiple offrivano ai progettisti un modo per mantenere visibili certe informazioni, mentre altre visualizzazioni venivano fatte scorrere o rimpiazzate. Ad esempio, all'interno della stessa finestra, un frame poteva visualizzare un menu di navigazione, e l'altro il documento principale che poteva essere fatto scorrere comunque o rimpiazzato navigando nel menù.
Sono stati dichiarati obsoleti dal W3C. Le parole chiave (tag HTML) utilizzate nella costruzione di una pagina web contenente frame erano le seguenti:
all'interno del quale venivano scritti degli attributi che definivano l'altezza del frame basandoli sulle righe
oppure stabilivano la larghezza dei frame in base alle colonne
Inoltre il tag "<FRAMESET>" doveva contenere al suo interno un'altra parola chiave "<FRAME>" la quale definiva le proprietà del frame stesso esso ha ben 8 attributi, non necessitava del relativo tag di chiusura </FRAME>.

## Storia

Netscape Navigator 2.0 ha introdotto gli elementi utilizzati per i frame nel marzo 1996. Altri fornitori di browser come Apple con Cyberdog sono seguiti nello stesso anno. A quel tempo Netscape propose i frame al World Wide Web Consortium (W3C) per l'inclusione nello standard HTML 3.0.
I frame sono stati utilizzati per visualizzare e navigare nelle prime riviste online e nelle app Web, come i servizi di posta Web e i siti di chat Web. I frame avevano il vantaggio di consentire agli elementi di essere visualizzati in tutto il sito senza richiedere funzionalità del server come include lato server o supporto CGI. Queste caratteristiche non erano comuni sui primi server web accessibili al pubblico.
I primi siti web spesso utilizzavano una cornice nella parte superiore per visualizzare un banner che non poteva essere spostato. Questi frame di banner a volte includevano il logo del sito e la pubblicità.
XHTML, inteso come successore di HTML 4, ha rimosso tutti i frame in 1.1. L'eventuale sostituzione prevista era XFrames, che tentava di risolvere il problema di indirizzare un frameset popolato tramite URI compositi.
Il successivo standard HTML5, che ha adottato un approccio diverso da HTML 4, rimuove anche i frameset. L' iframeelemento, tuttavia, rimane, con una serie di opzioni di "sandboxing" destinate alla condivisione di contenuti tra i siti.

## Vantaggi

Consentendo il caricamento e la navigazione dei contenuti in modo indipendente, i frame offrivano diversi vantaggi rispetto al semplice HTML in uso quando furono sviluppati per la prima volta:
* Semplificare la manutenzione dei contenuti condivisi su tutte o la maggior parte delle pagine, come i dati di navigazione. Se è necessario aggiungere un elemento a un menu di navigazione della barra laterale, l'autore della pagina Web deve modificare solo un file di pagina Web, mentre ogni singola pagina su un sito Web tradizionale senza frame dovrebbe essere modificata se apparisse il menu della barra laterale su tutti loro.
* Ridurre la quantità di larghezza di banda necessaria non scaricando nuovamente parti della pagina che non erano cambiate.
* Consentire la visualizzazione di più informazioni fianco a fianco, con la possibilità di scorrere in modo indipendente ogni sezione. Ciò potrebbe includere il confronto affiancato di due immagini o video o due modi diversi di comprendere qualcosa, come una pagina di testo a scorrimento indipendente accanto a video, immagini, animazioni, oggetti rotanti 3D, ecc.
* Consentire la visualizzazione di note a piè di pagina o divagazioni in una sezione dedicata della pagina quando collegate, in modo che il lettore non perda il loro posto nel testo principale.

## Critica

La pratica del framing del contenuto HTML ha portato a numerose critiche, la maggior parte incentrate su problemi di usabilità e accessibilità . Questi includono:
* Il framing interrompe l'identità tra il contenuto e l'URL visualizzato nel browser, rendendo difficile il collegamento o il segnalibro di un particolare elemento di contenuto all'interno del frameset
* L'implementazione dei frame non è coerente nei diversi browser
* I browser che rendono il materiale in modo lineare non gestiscono bene i frame.
** Programmi di lettura dello schermo
** browser di testo o audio
** Browser di posta elettronica come Agora
** Browser mobili
* Il framing complica l'indicizzazione del web e può essere dannoso per l'ottimizzazione dei motori di ricerca.
* Il framing confonde i confini tra i contenuti su server diversi che solleva questioni di violazione del copyright
* I visitatori che arrivano dai motori di ricerca possono atterrare su una pagina destinata alla visualizzazione in un frame, con il risultato che il visitatore non ha modo di navigare nel resto del sito
* I frame modificano il comportamento del pulsante "Indietro".
* Gli utenti di solito non si aspettano che i browser stampino i frame come fanno loro.
* Collegamenti esterni su pagine Web che utilizzano frame possono far apparire altre pagine nel set di frame, poiché il comportamento predefinito di un collegamento è di caricare nel frame corrente se l'autore non specifica diversamente. Questo potrebbe essere utilizzato da webmaster senza scrupoli per far sembrare che il contenuto di un altro sito facesse effettivamente parte del sito che ospita il frameset.
* Se la risoluzione dello schermo o la dimensione della finestra del browser è troppo bassa, ogni frame avrà barre di scorrimento che possono sembrare disordinate e occupano uno spazio già limitato. Tale comportamento in genere derivava maggiormente da una cattiva progettazione del sito (layout fissi invece di layout fluidi), per cui non tutte le funzionalità del set di frame erano state utilizzate correttamente. Questo comportamento potrebbe essere mitigato da:
** disabilitare lo scorrimento per i frame più piccoli che in genere non richiedono una barra di scorrimento;
** utilizzando caratteristiche di design fluide nelle pagine di destinazione invece di design fissi, in modo che il contenuto non causi barre di scorrimento orizzontali in primo luogo.