Tidy: validatore XHTML 1.0

[SPIP 1.8.1] permette ai webmaster che lo desiderano di utilizzare sulle loro pagine l’applicazione Tidy, introducendo in tal modo una funzione di validazione XHTML sul proprio sito.

Principio generale

Tidy è uno strumento (esterno a SPIP) che permette di trasformare il codice HTML 4 abbastanza pulito in codice XHTML 1.0 transitional valido. SPIP sfrutta questo strumento per permettere ai webmaster di proporre siti conformi alle raccomandazioni dell’XHTML 1.0 transitional.

Importante: Tidy non è uno strumento "magico": esso è incapace di trasformare il codice "molto sporco" in codice conforme. Di fronte ad alcuni "errori" di codice, esso si rifiuta di funzionare. Tale strumento è integrato in SPIP per creare codice conforme e, al tempo stesso, permettere di "tracciare" gli errori di codice nelle proprie pagine.

-  Fase 1: prima di tutto, conviene creare un codice che sia il più pulito e conforme possibile, ancor prima di farlo analizzare da Tidy. Ciò si fa a più livelli:
— innanzitutto, durante i suoi trattamenti tipografici SPIP produce un codice pulito, e sempre più conforme ("compliant") ad ogni versione; nota bene: SPIP punta alla conformità HTML 4.01 transitional;
— i modelli di layout del sito pubblico devono essere più conformi possibile (per rimanere coerenti, si cercherà la conformità HTML 4.01).

-  Fase 2: se Tidy è presente sul server, e se il webmaster attiva questa opzione (vedi sotto), SPIP fa passare le pagine prodotte da Tidy, che in tal caso tenta a sua volta di pulire le pagine e di trasformarle in pagine conformi allo standard XHTML 1.0 transitional.

-  Fase 3: se il trattamento ha avuto successo (Tidy non ha incontrato errori che lo hanno "bloccato"), la pagina visualizzata è quella in XHTML 1.0, per cui è possibile far validare la conformità della stessa da parte del W3C validator; al contrario, nel caso Tidy si sia bloccato (vedi sotto), viene visualizzata la pagina originaria – in questa evenienza (è uno strumento importante da prendere in considerazione), SPIP mostra un pulsante di amministrazione che indica l’"errore Tidy" e crea un file di riepilogo contenente le diverse pagine in cui si sono riscontrati errori.

Ancora una volta, al fine di non attribuire all’applicazione delle proprietà "magiche" che non ha, e ai suoi sviluppatori delle intenzioni che non hanno, è importante notare che SPIP non si accontenta di basarsi su uno strumento (Tidy, i cui limiti sono noti), ma di integrarlo in una logica più ampia di messa in conformità:
— inizialmente migliorando il codice prodotto da SPIP,
— successivamente utilizzando Tidy sia come strumento di "pulitura" del codice, che come strumento che propone un’indicazione degli errori per permettere ai webmaster di migliorare il proprio codice.

La messa in conformità del codice non può basarsi su una soluzione puramente tecnica, ma piuttosto su un lavoro personale per il quale, con Tidy, SPIP offre uno strumento di controllo.

Installazione di Tidy

-  Tidy, plug-in di PHP

Tidy è un plug-in di PHP. È il modo più semplice di utilizzarlo, così il webmaster potrà utilizzarlo direttamente. Per determinare se esso è presente o meno sul server è possibile consultare la pagina /ecrire/info.php3 del proprio sito per ottenere la configurazione del proprio server e l’elenco dei plug-in di PHP disponibili.

N.B.: Attualmente, l’utilizzo di Tidy quale estensione del linguaggio PHP non ha potuto essere verificata in fase di produzione con SPIP. In teoria funziona, ma qualsiasi feedback da parte dei webmaster è di estremo interesse per gli sviluppatori — sulla lista spip-dev. (Noi abbiamo bisogno di commenti basati sull’esperienza sulle versioni 1 e 2 di Tidy, ossia sui siti in PHP 4, in PHP 5, come pure sulle installazioni via PEAR.)

-  Tidy come programma indipendente

È d’altronde possibile utilizzare Tidy in linea di comando (ossia come programma indipendente dal PHP che gira direttamente sul server).

Questa versione è di particolare praticità perché:
— esistono versioni di Tidy già compilate per la maggior parte dei sistemi operativi,
— spesso è possibile e facile installare queste versioni di Tidy su un hosting anche se non si ha un accesso root,
— alcuni amministratori di siti hanno riscontrato delle incompatibilità durante l’installazione di Tidy come plug-in di PHP (con, a quanto sembra, ImageMagick); la versione in linea di comando non provoca questo tipo di problema.

Prima di fare qualsiasi cosa verificare che Tidy non sia già presente sul proprio server. A tal fine, inserire nel file /ecrire/mes_options.php3 le linee seguenti:

Poi si deve verificare sul proprio sito pubblico se le pagine vengono modificate (o sono trasformate in XHTML oppure appare il messaggio "Errore tidy"). Se ciò non funziona le due linee aggiunte al file vanno cancellate e si deve tentare di installare Tidy seguendo il metodo indicato oltre (oppure chiedere alla persona responsabile dell’hosting di farlo).

È possibile installare una versione già compilata di Tidy adatta al proprio sistema.
— Queste versioni possono essere prelevate dal sito ufficiale di Tidy; ve ne sono per Linux, diversi *BSD, MacOS X, ecc.
— Decomprimere l’archivio scaricato e installare il file "tidy" sul proprio sito.
— Verificare i diritti di esecuzione di questo file sul server (se necessario, impostare i diritti a "777"). (Se si ha un accesso SSH al proprio server è possibile testare il programma direttamente dal terminale. Se non si dispone di un accesso di questo tipo, nulla di grave: è possibile seguire quest’altra procedura sapendo però che se essa non funziona al primo colpo sarà più complicato trovare la soluzione del problema.)
— Configurare l’accesso a questo file indicando il percorso di accesso con la definizione seguente:

Se il percorso indicato in _TIDY_COMMAND è corretto Tidy verrà avviato con la visualizzazione delle pagine del sito pubblico.

Importante. La definizione di _TIDY_COMMAND deve trovarsi in /ecrire/mes_options.php3 e non alla radice del sito nel file /mes_fonctions.php3. Ciò è dovuto al funzionamento abbastanza specifico del sistema (post-trattamento dei file estratti dalla cache di SPIP).

La parte $xhtml = true;, invece, funziona come una "variabile di personalizzazione"; è possibile, se si desiderano fare delle prove o limitare il funzionamento a una parte del sito, definire questa variabile a livello del file di chiamata, per esempio article.php3 se si desidera che tidy passi solo sugli articoli.

Pulizia del codice...

Ripetiamo ancora una volta che è necessario capire bene che Tidy può rendere conforme solo un codice che è già all’origine molto pulito. Con i modelli di layout distribuiti insieme a SPIP (di per sé già conformi HTML 4) e il codice prodotto di default da SPIP, ciò non pone nessun problema: il codice è molto vicino all’HTML 4 conforme ("compliant"), quindi Tidy non ha problemi a trasformarlo in XHTML 1.0 transitional perfettamente conforme.

Qualora Tidy abbia svolto bene il proprio lavoro, è possibile constatare che nelle pagine:
— il "DOCTYPE" della pagina è diventato "XHTML...",
— il codice è bene indentato,
— il tutto passa la validazione W3C senza difficoltà.

Se il DOCTYPE non è stato modificato significa che Tidy ha rinunciato a correggere la pagina, nella quale ha riscontrato errori impossibili da correggere (per lui).

Gli errori possono avere due fonti: i modelli di layout e i testi degli articoli.

-  I modelli non sono conformi; in tal caso è necessario correggerli. È il caso più frequente.

Si può cominciare con il disattivare Tidy (cambiare la variabile $xhtml in false), e far analizzare le pagine al Validatore per ottenere la conformità HTML 4.01 transitional (nei suoi trattamenti tipografici SPIP mira a questa conformità, tanto per rimanere coerenti). Il W3C Validator è uno strumento molto pratico per pulire il proprio codice.

Dopo aver reso i propri modelli il più possibile vicini allo standard HTML 4, Tidy non avrà difficoltà a produrre un XHTML molto conforme. Se queste pagine sono completamente conformi ancora meglio! (E non impossibile: i modelli distribuiti con SPIP sono già conformi).

-  Alcuni articoli contengono codici errati

Poiché SPIP lascia lavorare i redattori in "codice sorgente", essi possono inserire qualche codice non conforme all’interno dei propri articoli. (Per esempio, nella documentazione di www.spip.net, è possibile trovare in alcuni punti i tag HTML <tt>...</tt> che Tidy considera inaccettabili.)

Quindi, dopo aver pulito i modelli di layout, è possibile cercare di correggere i testi di alcuni articoli (ciò riguarda, quindi, gli inserimenti dell’HTML direttamente negli articoli; ancora una volta, il codice prodotto da SPIP è essenzialmente conforme e non provoca il "blocco" di Tidy).

Per fare ciò, oltre alla comparsa di un pulsante "Errore Tidy" sulle pagine coinvolte, SPIP tiene sempre aggiornato un file /ecrire/data/w3c-go-home.txt che contiene l’elenco delle pagine impossibili da validare [1]. Dopo aver reso puliti i propri modelli (paragrafo precedente), le pagine che daranno errori saranno probabilmente solo quelle che contengono articoli con codice HTML non accettato da Tidy.

È abbastanza difficile definire in maniera precisa cosa viene considerato da Tidy essere un "errore insormontabile". Per esempio, i tag chiusi male non sono considerati impossibili da correggere (per esempio, aprire un corsivo in un paragrafo e chiudere il corsivo in un altro paragrafo crea un codice HTML non conforme, che tuttavia Tidy riesce a correggere). Molto spesso si tratta di tag inseriti a mano totalmente inesistenti (per esempio: digitare <bt> invece di <br>), oppure usare tag HTML considerati obsoleti nello standard HTML 4 (quali <tt> o <blink>), che Tidy si rifiuterà categoricamente di trattare.

Conclusioni

Di nuovo, l’applicazione Tidy non deve essere considerata essere un prodotto "miracoloso": non trasforma codice sporco in codice conforme. La sua integrazione in SPIP segue una logica di accompagnamento di un processo di pulitura:

— SPIP stesso continua a produrre codice sempre più pulito;

— Tidy serve quindi a mettere il tocco finale di pulitura su un codice già di per sé molto "compliant" (e nel mentre risolve alcune incompatibilità difficili da gestire con un codice unico tra l’HTML e l’XHTML, come alcuni tag vuoti in XHTML, e non chiusi in HTML, come <br />);

— Tidy viene poi utilizzato per identificare gli errori di codifica nel codice sorgente degli articoli stessi (durante l’inserimento, abbastanza frequente, di codice HTML "a mano" nel corpo degli articoli).

Nuovamente, queste funzionalità sono tutte recenti e richiedono forse dei test supplementari. Non esitare a condividere le esperienze su spip-dev.

Note

[1Questo file deve il suo nome all’articolo W3C go home!, pubblicato su uZine, che criticava l’accanimento dei profeti della compliance verso ehm... i webmaster che si accontentano di fare pagine Web; l’essenziale, lo ricordiamo, è poter pubblicare senza perderci la testa. Se poi lo si può fare in maniera conforme tanto meglio, ed è lo scopo di questa integrazione SPIP-Tidy.

Autore Fausto Barbarito Publié le : Mis à jour : 26/10/12

Traductions : català, English, Español, français, italiano