Joomla! tableless
Come direbbe qualcuno: "domanda da 1 milione di $". E' possibile rendere Joomla! tableless? Da più parti si legge che questo sarà possibile a partire dalla versione 1.6 di Joomla! anche se ho notato dei notevoli miglioramenti già nella versione 1.5, ormai giunta alla 1.5.2 per motivi di sicurezza.
La ragione principale per cui non mi sono "affezionato" da subito ai CMS, ed in particolar modo a Joomla!, è la loro/sua "ermeticità" a livello di codice. Credo sia importante fare delle considerazioni in merito alle tabelle:
- riducono di tantissimo l'accessibilità del sito;
- rendono quasi impossibile separare i contenuti dalla presentazione;
- aumentano tantissimo il peso delle pagine;
- non offrono le stesse possibilità dei
divin fatto di personalizzazione grafica; - spesso, se non sempre, si ricorre a delle immagini "spaziatrici" per tenere ferme le celle in base alla grafica realizzata ed alle dimensioni volute;
- quasi mai, il testo incluso in una cella, viene presentato per il suo valore semantico che rappresenta. Spessissimo si formatta la cella (per esempio:
td.bold{font-weight:bold;}) per includere del testo in grassetto. Se si disabilitano i CSS, quel testo in grassetto si perde. - le celle di tabella non permettono alla pagina di degradare come viene richiesto dalle linee guida; come quando si è difronte ad un layout realizzato interamente con i CSS. Mi sono reso conto che questo aspetto della degradabilità viene spesso trascurato anche in siti non realizzati con i CMS. Degradare, per la mia esperienza ed in base a quanto si legge in rete, è rendere il contenuto di una pagina, in assenza dei CSS, linearizzata; come se stessimo leggendo un documento scritto con un editor di testo. Il testo perde sì la formattazione, ma una parola, o frase in grassetto, deve continuare ad essere resa sempre in grassetto, se è parte importante di un periodo.
- queste stesse righe di testo, presentate sotto forma di elenco non ordinato, sarebbero state rese con una serie di celle (
Testo); - molti elenchi di navigazione, che in Joomla! prendono il nome di mainmenu, vengono inclusi in celle, proprio come l'esempio al rigo precedente.
L'elenco sarebbe molto lungo e rischierei di essere abbastanza prolisso visto che da tempo mi occupo di accessibilità e CSS nel mio sito personale.
Sembrerebbe, giunti a questo punto, che non si potrebbe fare nulla... dovremmo tenerci Joomla! con le tabelle ed i puristi del codice vissero infelici e scontenti
.
Ebbene no, qualcosa si può fare. Posso dire che mi sono cimentato ed è stata una bella impresa ardua, molto ardua. Questo stesso sito, realizzato con Joomla!, in buona parte delle sue pagine è stato reso tableless. Non è la versione 1.5.X bensì la 1.0.X. Ho voluto quasi "sfidare" lo stesso CMS e vedere se ne fossi stato capace di eliminare qualche tabella. A cominciare dal menu di navigazione, non ci sono tabelle; è stato trasformato in un elenco non ordinato e formattato con i CSS. Ogni voce è un elemento li dell'elenco.
Quando ho cercato di mettere mano alla selva di tabelle del Mainbody, sono cominciati i dolori, ma ne è valsa la pena. Ne sono state eliminate un bel pò e la pagina è "dimagrita" abbastanza.
Controindicazioni nel rendere Joomla! tableless
Come tutte le cose, ci sono pro e contro se volessimo Joomla! senza tabelle. Innanzitutto non è possibile avere un sito al 100% tableless in quanto non si conosce a priori il progetto da realizzare e poi, cosa molto importante, nel giro di qualche mese, da che ho cominciato a smanettare, sono usciti degli aggiornamenti di sicurezza. E' da rimettere mano ai files, non tutti, che compongono il codice. Effettivamente è abbastanza scomodo farlo per ogni sito che si gestisce ma è il prezzo da pagare se vogliamo un sito performante e senza griglie inutili.
Cosa si può personalizzare e rendere tableless in Joomla!
Tutto. Ovviamente per chi sa dove mettere le mani...
In un prossimo articolo possiamo vedere come fare per eliminare le tabelle e personalizzare qualche modulo, magari cominciando dal mod_login.php.
Facciamo un giro tra i siti realizzati con Joomla! e ci renderemo subito conto che TUTTI quanti, o il 99 % di essi, hanno i campi di testo uguali tra loro. E' la prima cosa che salta all'occhio. Possiamo personalizzarli benissimo, invece, associando una classe differente per il pulsante di submit, il colore dei link per la registrazione o per la password dimenticata. Ovviamente possiamo rendere un pò più simpatici anche gli stessi input type="text"...
Alla prossima.