it-swarm-es.com

Cómo mantener los estándares W3C de un tema.

Cuando escribí un tema, me aseguré de que fuera compatible con XHTML 1.1 y CSS 2.1. Luego agregué complementos y el tema ya no cumple con XHTMl 1.1. Luego usé la fuente de la API de Google en mi CSS y ya no es compatible con CSS 2.1.

¿Hay alguna manera de mantener el cumplimiento sin deshacerme de los complementos, fuentes, etc. o debo ignorar los errores de validación?

10
James

Corrección, su tema aún era compatible con XHTML 1.1 y CSS 2.1, pero los complementos que agregó agregaron código adicional queno eracompatible.

Desafortunadamente, no hay una manera fácil de mantener el cumplimiento si está utilizando complementos. Lo mejor que puedes hacer es validar tu tema y todas las marcas de las que eres personalmente responsable, luego, espero que otros desarrolladores se hayan tomado el tiempo para validar su propio trabajo.

La alternativa es mucho más trabajo de su parte: aún puede utilizar la funcionalidad principal de los complementos, pero no permita que muestren ninguna marca en el navegador. Agregue su propia capa personalizada que desenganche todo lo que toca el complemento y cree su propio búfer de salida. Esta es la formaonlyde la que tendrá control sobre el estilo de marcado que se envía al navegador.

Varios complementos están empezando a usar HTML 5 ... otros intentan usar CSS3. Si instala estos complementos y no toma medidas para sanear y validar su salida, entonces su sitio dejará de validarse correctamente.

5
EAMann

Cada complemento generará el código que desea generar y parte de él no será compatible con XHTML 1.1. La única forma razonable de corregir eso sería auditar a cada uno y modificar a los infractores o hacer que el desarrollador modifique o use sus modificaciones como parche.

Alternativamente, podrías intentar escribir un filtro para limpiarlo, pero tratar de detectar todo el caso especial parece una versión de mi propia pesadilla personal y también afectaría el rendimiento para obtener beneficios dudosos.

¿Tiene un cliente/jefe que quiere esto, o es algo que se supone que es como " Agradable-para-tener ?" (Sí, hay algunos que se sienten fuertemente al respecto. Sin embargo, yo no soy uno de ellos).

Dicho esto, XHTML está perdiendo su estado " pelo rubio " en la web; Incluso Tim Berners-Leelo dijo en 2006:

Algunas cosas son más claras con la retrospectiva de varios años. Es necesario evolucionar HTML de forma incremental. El intento de hacer que el mundo cambiara a XML, incluidas las citas sobre valores de atributo y barras diagonales en etiquetas vacías y espacios de nombres, no funcionó a la vez. El gran público que genera HTML no se movió, en gran parte porque los navegadores no se quejaron. Algunas comunidades grandes cambiaron y disfrutan los frutos de sistemas bien formados, pero no todos. Es importante mantener HTML de forma incremental, así como continuar la transición a un mundo bien formado y desarrollar más poder en ese mundo.

Es posible que también desee leer HTML5 que es mucho más fácil de escribir que XHTML 1.0. sobre StackOverflow. Aquí está su resumen:

Sintaxis, cuando usa HTML5, termina con un marcado más limpio y fácil de leer que siempre invoca el modo estándar. Cuando usas XHTML 1.0 (servido como texto/html), estás especificando un montón de crud (para validar contra un dtd de mierda) que el navegador hará automáticamente.

8
MikeSchinkel

El cumplimiento de los estándares no garantiza que su sitio web funcione en todos los navegadores. Ignore los estándares de cumplimiento y céntrese en las pruebas con tantos navegadores como sea posible.

2
tomdxw

Puede almacenar toda la salida de su sitio y luego ordenarlo en HTML compatible. Lo mejor de todo es que esto se puede hacer completamente automatizado:

Puede habilitar el búfer de salida en temas de inicio o enganches relacionados (por ejemplo, * setup_theme * hook).

Aquí hay dos fragmentos de código. El primero muestra que inicias el búfer de salida y lees el búfer más adelante:

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

La segunda muestra algunas de las opciones de configuración en acción:

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

Apuesto a que ya existe un plugin de wordpress para hacerlo. Veamos:

1
hakre