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

10

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 es compatible con XHTMl 1.1. Luego utilicé 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, la fuente, etc., o debería ignorar los errores de validación?

James
fuente

Respuestas:

5

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

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

La alternativa es mucho más trabajo de tu parte: aún puedes usar la funcionalidad principal de los complementos, pero no permitas que generen ningún marcado 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 única forma en que tendrá control sobre el estilo de marcado que se envía al navegador.

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

EAMann
fuente
1
Gracias, no creo que quiera ir con la opción de desinfectar HTML. Puede que solo tenga que eliminar esas insignias del W3C de mi sitio :)
James
Oh, no necesariamente es una necesidad, ya que puede cumplir automáticamente, consulte mi respuesta a continuación. No es necesario molestarse con el tema o la salida del complemento :)
hakre
+1, nunca puedes confiar en el código de otras personas, solo espero que su código arroje html válido.
Ben Everard
8

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ía intentar escribir un filtro para limpiarlo, pero tratar de captar todos los casos especiales parece una versión de mi pesadilla personal y también afectaría el rendimiento para un beneficio dudoso.

¿Tiene un cliente / jefe que quiere esto, o es simplemente algo que se supone que es " agradable de tener "? (Sí, hay algunos que se sienten fuertemente al respecto. Sin embargo, no soy uno de esos).

Dicho esto, XHTML está perdiendo su estado de " niño rubio " en la web; incluso Tim Berners-Lee lo dijo en 2006:

Algunas cosas son más claras en retrospectiva de varios años. Es necesario evolucionar HTML de forma incremental. El intento de hacer que el mundo cambie a XML, incluidas las comillas alrededor de los valores de los atributos y las barras en las etiquetas y espacios de nombres vacíos, todo al mismo tiempo no funcionó. El gran público generador de HTML no se movió, en gran parte porque los navegadores no se quejaron. Algunas comunidades grandes sí cambiaron y están disfrutando los frutos de sistemas bien formados, pero no todos. Es importante mantener HTML incrementalmente, así como continuar una transición hacia un mundo bien formado y desarrollar más poder en ese mundo.

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

Solo en cuanto a la sintaxis, cuando usa HTML5, termina con un marcado más limpio y fácil de leer que siempre invoca el modo estándar. Cuando usa XHTML 1.0 (servido como texto / html), está especificando un montón de basura (con el fin de validar contra un archivo basura) que el navegador hará automáticamente.

MikeSchinkel
fuente
Es mi sitio web personal y el tema en sí es bastante antiguo. El sitio web y el tema son solo un pasatiempo para mí. Cuando escriba un nuevo tema, probablemente tendremos un soporte HTML5 razonablemente bueno en todos los principales navegadores. Los complementos continuarán generando un marcado no compatible. Podría intentar limpiar al delincuente, pero luego las actualizaciones de complementos se vuelven más difíciles. Gracias por los enlaces.
James
Sí, si no es para un propósito comercial o para mostrar experiencia en su capacidad para mantener el cumplimiento de XHTML, no me preocuparía.
MikeSchinkel
Uso el sitio web y los servidores como herramientas de aprendizaje. Aprender cosas que son diferentes de lo que hago en el trabajo.
James
Gorrón. Suena como un trabajo poco divertido. ¡Aprender es todo lo que hago! :)
MikeSchinkel
Ah, el trabajo es lo suficientemente divertido, pero sobre todo el desarrollo basado en Windows. Esto es más como un descanso de C # :)
James
2

El cumplimiento de las normas no garantiza que su sitio web funcione en todos los navegadores. Ignore el cumplimiento de las normas y concéntrese en probar con tantos navegadores como sea posible.


fuente
1

Puede almacenar en búfer todo el resultado de su sitio y luego ordenarlo en HTML compatible. Lo mejor de todo es que esto se puede hacer completamente automatizado:

Puede habilitar el almacenamiento en búfer de salida en init de tema o enlaces relacionados (por ejemplo, * setup_theme * hook).

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

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

El segundo 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 complemento de WordPress para hacerlo. Veamos:

hakre
fuente
Interesante. Voy a darle una oportunidad.
James