Como manter a conformidade com os padrões W3C de um tema

10

Quando escrevi um tema, verifiquei se ele era compatível com XHTML 1.1 e CSS 2.1. Adicionei plugins e o tema não é mais compatível com o XHTMl 1.1. Depois usei a fonte da API do Google no meu CSS e ele é mais compatível com o CSS 2.1.

Existe uma maneira de manter a conformidade sem me livrar dos plugins, fontes etc. ou devo simplesmente ignorar os erros de validação?

James
fonte

Respostas:

5

Correção, seu tema ainda era compatível com XHTML 1.1 e CSS 2.1, mas os plug-ins adicionados injetaram código adicional que não era compatível.

Infelizmente, não há uma maneira fácil de manter a conformidade se você estiver usando plug-ins. O melhor que você pode fazer é validar seu tema e toda a marcação pela qual você é pessoalmente responsável e, em seguida, esperar que outros desenvolvedores reservem um tempo para validar seu próprio trabalho.

A alternativa é muito mais trabalho da sua parte - você ainda pode usar a funcionalidade principal dos plug-ins, mas não permita que eles produzam qualquer marcação no navegador. Adicione sua própria camada personalizada que desengata tudo o que o plug-in toca e crie seu próprio buffer de saída. Essa é a única maneira de controlar o estilo de marcação que está sendo enviado ao navegador.

Vários plug-ins estão começando a usar HTML 5 ... outros estão tentando usar CSS3. Se você instalar esses plug-ins e não tomar medidas para higienizar e validar sua saída, seu site deixará de ser validado corretamente.

EAMann
fonte
11
Obrigado, acho que não quero ir com a opção de higienizar HTML. I pode apenas ter que remover os emblemas do W3C do meu site :)
James
Oh, não necessariamente uma necessidade, pois você pode obter conformidade automaticamente, veja minha resposta abaixo. Não há necessidade de aborrecimento com o seu tema ou saída plug-in :)
hakre
+1, você nunca pode realmente confiar no código de outras pessoas, apenas espero que o código deles expanda html válido.
Ben Everard
8

Cada plug-in irá gerar o código que deseja gerar e parte dele não será compatível com XHTML 1.1. A única maneira razoável de corrigir isso seria auditar cada um e modificar os infratores ou pedir ao desenvolvedor que modifique ou use suas modificações como um patch.

Como alternativa, você poderia tentar escrever um filtro para limpá-lo, mas tentar capturar todos os casos especiais parece uma versão do meu próprio pesadelo pessoal e também afetaria o desempenho para benefício duvidoso.

Você tem um cliente / chefe que quer isso ou é apenas algo que se supõe ser um " bom de se ter ?" (Sim, há quem se sinta muito interessado. No entanto, não sou um deles.)

Dito isto, o XHTML está perdendo seu status de " filho loiro " na web; até Tim Berners-Lee disse isso em 2006:

Algumas coisas são mais claras em retrospectiva de vários anos. É necessário evoluir HTML incrementalmente. A tentativa de fazer o mundo mudar para XML, incluindo aspas em torno de valores de atributos e barras em tags e espaços de nomes vazios de uma só vez, não funcionou. O grande público gerador de HTML não se moveu, principalmente porque os navegadores não reclamaram. Algumas comunidades grandes mudaram e estão desfrutando dos frutos de sistemas bem formados, mas não todos. É importante manter o HTML de forma incremental, além de continuar uma transição para um mundo bem formado e desenvolver mais poder nesse mundo.

Você também pode querer ler que o HTML5 é muito mais fácil de escrever do que o XHTML 1.0. no StackOverflow. Aqui está o resumo deles:

Em termos de sintaxe, quando você usa HTML5, você acaba com uma marcação mais limpa e fácil de ler, que sempre invoca o modo padrão. Ao usar o XHTML 1.0 (exibido como texto / html), você está especificando um monte de dados crudais (para validar contra um dtd de baixa qualidade) que o navegador fará automaticamente.

MikeSchinkel
fonte
É o meu site pessoal e o tema em si é bastante antigo. Site e tema são apenas um hobby para mim. Quando eu escrever um novo tema, provavelmente teremos um suporte razoavelmente bom ao HTML5 em todos os principais navegadores. Os plug-ins continuarão gerando uma marcação não compatível. Eu poderia tentar limpar o ofensor, mas as atualizações do plug-in ficam mais difíceis. Obrigado pelos links.
James
Sim, se não for para fins comerciais ou para mostrar experiência em sua capacidade de manter a conformidade com XHTML, não me preocuparia.
MikeSchinkel
Eu uso o site e os servidores como ferramentas de aprendizado. Aprendendo coisas diferentes do que faço no trabalho.
James
Vadio. Parece um trabalho pouco divertido. Parece que aprender é tudo o que faço! :)
MikeSchinkel
Ah, o trabalho é divertido o suficiente, mas principalmente o desenvolvimento baseado no Windows. Este é mais como uma pausa de C # :)
James
2

A conformidade com os padrões não garante que seu site funcione em todos os navegadores. Ignore a conformidade com os padrões e concentre-se em testar com o maior número possível de navegadores.


fonte
1

Você pode armazenar em buffer toda a saída do seu site e depois organizá-la em HTML compatível. O melhor é que isso pode ser feito totalmente automatizado:

Você pode ativar o buffer de saída no tema init ou ganchos relacionados (por exemplo, * setup_theme * hook).

Aqui estão dois fragmentos de código. O primeiro mostra que você inicia o buffer de saída e lê o buffer posteriormente:

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

O segundo mostra algumas das opções de configuração em ação:

/* 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;

Aposto que já existe um plugin wordpress para isso. Vamos ver:

hakre
fonte
Interessante. Vou tentar.
James