Come mantenere la conformità agli standard W3C di un tema


10

Quando ho scritto un tema, mi sono assicurato che fosse conforme a XHTML 1.1 e CSS 2.1. Quindi ho aggiunto plugin e il tema non è più conforme a XHTMl 1.1. Quindi ho usato il carattere API di Google nel mio CSS ed è più conforme a CSS 2.1.

Esiste un modo per mantenere la conformità senza eliminare plug-in, font ecc. O devo semplicemente ignorare gli errori di convalida?

Risposte:


5

Correzione, il tema era ancora conforme a XHTML 1.1 e CSS 2.1, ma i plug-in aggiunti aggiungevano codice aggiuntivo non conforme.

Sfortunatamente, non esiste un modo semplice per mantenere la conformità se si utilizzano plug-in. Il meglio che puoi fare è convalidare il tuo tema e tutto il markup di cui sei personalmente responsabile, quindi spero che altri sviluppatori abbiano avuto il tempo di convalidare il proprio lavoro.

L'alternativa è molto più lavoro da parte tua: puoi comunque utilizzare la funzionalità principale dei plug-in, ma non consentire loro di generare alcun markup sul browser. Aggiungi il tuo livello personalizzato che sgancia tutto ciò che tocca il plug-in e crea il tuo buffer di output. Questo è l' unico modo in cui avrai il controllo sullo stile del markup inviato al browser.

Diversi plug-in stanno iniziando a utilizzare HTML 5 ... altri stanno cercando di utilizzare CSS3. Se installi questi plug-in e non prendi provvedimenti per disinfettare e convalidare il loro output, il tuo sito smetterà di validare correttamente.


1
Grazie, non credo di voler scegliere l'opzione per la sanificazione dell'HTML. Potrei semplicemente rimuovere quei badge W3C dal mio sito :)
James,

Oh, non necessariamente un'esigenza in quanto puoi ottenere automaticamente la conformità, vedi la mia risposta di seguito. Non c'è bisogno di preoccuparsi dell'output del tema o del plugin :)
hakre,

+1, non puoi mai fare affidamento sul codice di altre persone, spero solo che il loro codice sputi HTML valido.
Ben Everard,

8

Ogni plugin genererà il codice che desidera generare e alcuni di essi non saranno conformi a XHTML 1.1. L'unico modo ragionevole per correggere sarebbe quello di controllare ognuno e modificare i trasgressori o convincere lo sviluppatore a modificare o utilizzare le modifiche come patch.

In alternativa, potresti provare a scrivere un filtro per ripulirlo, ma provare a cogliere tutto il caso speciale sembra una versione del mio incubo personale e influirebbe anche sulle prestazioni per un beneficio terribile.

Hai un cliente / capo che lo desidera, o è solo qualcosa che si presume sia un " bello da avere ?" (Sì, ci sono alcuni che ne sono fortemente convinti. Tuttavia, io non sono uno di quelli.)

Detto questo, XHTML sta perdendo il suo status di " bambino biondo " sul web; anche nel 2006 Tim Berners-Lee lo disse :

Alcune cose sono più chiare con il senno di poi di diversi anni. È necessario evolvere HTML in modo incrementale. Il tentativo di far passare il mondo a XML, comprese le virgolette sui valori degli attributi e le barre in tag vuoti e spazi dei nomi contemporaneamente non ha funzionato. Il grande pubblico che genera HTML non si è mosso, soprattutto perché i browser non si sono lamentati. Alcune grandi comunità si sono spostate e si stanno godendo i frutti di sistemi ben formati, ma non tutti. È importante mantenere l'HTML in modo incrementale, così come continuare una transizione verso un mondo ben formato e sviluppare più potere in quel mondo.

Potresti anche voler leggere HTML5 è molto più facile da scrivere di XHTML 1.0. su StackOverflow. Ecco il loro riassunto:

Per quanto riguarda la sintassi, quando si utilizza HTML5, si ottiene un markup più pulito e più facile da leggere che invoca sempre la modalità standard. Quando usi XHTML 1.0 (servito come text / html), stai specificando un sacco di greggio (al fine di convalidare contro un dtd scadente) che il browser farà automaticamente.


È il mio sito Web personale e il tema in sé è piuttosto vecchio. Il sito Web e il tema sono solo hobby per me. Quando scriverò un nuovo tema, probabilmente avremo un supporto HTML5 ragionevolmente buono in tutti i principali browser. I plug-in continueranno a generare markup non conformi. Potrei provare a ripulire l'autore del reato, ma gli aggiornamenti del plug-in diventano più difficili. Grazie per i collegamenti.
James,

Sì, se non è per uno scopo commerciale o per mostrare esperienza sulla tua capacità di mantenere la conformità XHTML non me ne preoccuperei.
MikeSchinkel,

Uso il sito Web e i server come strumenti di apprendimento. Imparare cose diverse da quelle che faccio al lavoro.
James,

Bummer. Sembra un lavoro non divertente. L'apprendimento è tutto ciò che faccio sembra! :)
MikeSchinkel,

Oh, il lavoro è abbastanza divertente, ma principalmente lo sviluppo basato su Windows. È più una pausa da C # :)
James,

2

La conformità agli standard non garantisce che il tuo sito Web funzionerà in tutti i browser. Ignora la conformità agli standard e concentrati sui test con il maggior numero possibile di browser.


1

Puoi bufferizzare l'intero output del tuo sito e quindi riordinarlo in HTML conforme. La cosa migliore è che questo può essere fatto completamente automatizzato:

È possibile abilitare il buffering dell'output sull'inizial a tema o sugli hook correlati (ad es. Hook * setup_theme *).

Ecco due frammenti di codice. Il primo mostra che si avvia il buffering di output e si legge il buffer in seguito:

<?php
ob_start();
?><?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

La seconda mostra alcune delle opzioni di configurazione in azione:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

Scommetto che esiste già un plugin wordpress per farlo. Vediamo:


Interessante. Ci proverò.
James,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.