web-development-kb-pt.site

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

Quando escrevi um tema, certifiquei-me de que estava em conformidade com o XHTML 1.1 e o CSS 2.1. Então eu adicionei plugins e o tema não é mais compatível com o XHTMl 1.1. Então eu usei a fonte da API do Google no meu CSS e é mais compatível com CSS 2.1.

Existe uma maneira que eu possa manter a conformidade sem se livrar dos plugins, fonte etc ou devo apenas ignorar os erros de validação?

10
James

Correção, seu tema ainda estava em conformidade com o XHTML 1.1 e o CSS 2.1, mas os plug-ins que você adicionou injetaram código adicional quenão eracompatível.

Infelizmente, não há maneira fácil de manter a conformidade se você estiver usando plug-ins. O melhor que você pode fazer é validar seu tema e todas as marcações pelas quais é pessoalmente responsável, depois esperar que outros desenvolvedores tenham dedicado tempo para validar seu próprio trabalho.

A alternativa é muito mais trabalho de sua parte - você ainda pode usar a funcionalidade principal dos plug-ins, mas não permitir que eles imprimam any markup no navegador. Adicione sua própria camada personalizada que solta tudo o que o plug-in toca e construa seu próprio buffer de saída. Esta é a formaonlyvocê terá controle sobre o estilo de marcação sendo enviado para o navegador.

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

5
EAMann

Cada plugin vai 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 deles e modificar os ofensores ou fazer com que o desenvolvedor modifique ou use suas modificações como um patch.

Alternativa você poderia tentar escrever um filtro para limpá-lo, mas tentar pegar todo o caso especial parece ser uma versão do meu pesadelo pessoal e também afetaria o desempenho para o benefício dudious.

Você tem um cliente/chefe que quer isso, ou é apenas algo assumido como um " Nice-to-have ?" (Sim, há alguns que se sentem fortemente sobre isso. Eu, no entanto, não sou um desses.)

Dito isso, o XHTML está perdendo seu status " fair-haired child " na web; mesmo Tim Berners-Leedito assim em 2006:

Algumas coisas são mais claras com retrospectiva de vários anos. É necessário evoluir HTML incrementalmente. A tentativa de fazer o mundo mudar para XML, incluindo cotações em torno de valores de atributos e barras em tags vazias e namespaces de uma só vez, não funcionou. O grande público gerador de HTML não se mexeu, em grande parte porque os navegadores não reclamaram. Algumas grandes comunidades mudaram e estão aproveitando os frutos de sistemas bem formados, mas não todos. É importante manter o HTML incrementalmente, bem como continuar a transição para um mundo bem formado e desenvolver mais poder nesse mundo.

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

Apenas na sintaxe, quando você usa HTML5, você acaba com uma marcação mais limpa e mais fácil de ler que sempre invoca o modo de padrões. Quando você usa XHTML 1.0 (servido como text/html), você está especificando um monte de crud (a fim de validar contra um dtd de baixa qualidade) que o navegador fará automaticamente.

8
MikeSchinkel

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

2
tomdxw

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

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

Aqui estão dois fragmentos de código. A primeira mostra que você inicia o buffer de saída e lê o buffer mais tarde:

<?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;

Eu aposto que já existe um plugin wordpress para fazer isso. Vamos ver:

1
hakre