tizianocavigliablog

I post con tag "Css" archivio

Perché bisogna abbandonare i frame?

Geek   30.09.04  

Home page del sito: Rhadamanth.netIniziamo con un po' di storia. I frame sono nati per permettere all'HTML di evolversi da semplice linguaggio marcatore di testi statico ad aspetti di dinamicità.

L'introduzione dei frame permetteva per la prima volta di includere altri documenti HTML senza dover ricorrere a linguaggi lato server.

Occorre ricordare inoltre che tematiche quali l'accessibilità ancora non erano prese in considerazione. Non stupisce dunque che presero così piede nell'ambito della comunità di sviluppo web.

Tuttavia il web ed il codice negli anni si è evoluto, mentre i frame no. Questo ha trasformato i frame in uno strumento obsoleto e dannoso.

Altro aspetto importante è dovuto al W3C ed allo sviluppo di XHTML. XHTML è la rielaborazione di HTML secondo le specifiche XML. Questo dunque rende XHTML molto più inflessibile rispetto ad HTML 4.01. Il W3C ha inoltre deciso, per motivi che spiegherò più avanti, di incorporare i frame, e quindi il doctype di tipo Frameset, soltanto nella versione XHTML 1.0 per retrocompatibilità ed eliminarli totalmente dalla versione successiva, la 1.1. Questo già sarebbe un buon motivo per non utilizzare più tag non standard.

Analizziamo le cause che hanno spinto il W3C a deprecare i frame. I frame non rispettano l'accessibilità. Il motivo risiede nel fatto che gli screen reader non riescono ad interpretare correttamente una struttura di tipo frameset.

Ulteriore motivo è l'impossibilità di separare i contenuti dalla grafica. Utilizzando i frame è inoltre impossibile creare layout complessi e la modifica alla struttura risulta lunga e laboriosa, in quanto le modifiche andranno apportate ad ogni pagina del sito.

Anche sotto il profilo dell'indicizzazione i frame causano problemi. Gli spider infatti si comportano come screen reader. Indicizzano ogni pagina separata senza risalire al frameset, per cui potrà capitare di vedersi indicizzato solo il menu, solo il titolo, o solo i contenuti ma senza il menu. Non è piacevole vero?

I CSS ormai sono abbastanza maturi da poter permettere l'impiego di tecniche di inclusione lato server estremamente efficaci.

E' venuto il momento di abbandonare i frame, hanno fatto il loro tempo.

LEGGI ALTRO...