Pregunta

Es ampliamente considerado que la mejor razón para validar un código HTML es para asegurarse de que todos los navegadores van a tratar de manera consistente y predecible.

El HTML 5 proyecto, sin embargo, contiene dos especificaciones en uno.Primer autor de especificaciones, describiendo los elementos y atributos HTML los autores deben utilizar, y sus interrelaciones.Validación de HTML 5 página se basa en esta especificación.Los elementos y atributos incluidos no son directamente extraídos de HTML 4, pero han tenido que ser justificada a partir de primeros principios, lo que significa que algo de HTML 4 características, tales como el atributo "summary" en <table>, longdesc en <img> el perfil de atributo en <head>, actualmente no aparecen en este proyecto.Tales características no son consideradas como obsoletas, ellos simplemente no están incluidos.(Su ausencia en el proyecto sigue siendo un tema de controversia, aunque su inclusión en cualquier momento pronto no parece probable.)

Segundo, el proyecto define un navegador especificación de procesamiento que busca definir exactamente cómo un navegador analizador de tratar toda la secuencia de bytes que se da, independientemente de lo bien formado y válido el código HTML.Esto significa que cuando los exploradores totalmente compatible con HTML 5, será posible predecir cómo cualquier navegador tratará de HTML para una gama mucho más amplia de insumos que solo las que pasa la validación.

En particular, debido a que HTML 5 se define para ser 100% compatible con la web de hoy, todas válidas HTML 4, y todos válidos, pero comúnmente utilizado mark-up, se seguirán procesando exactamente igual a lo que es hoy en día, independientemente de si es el HTML 5 es válido o no.

Por lo tanto, como mínimo, a cualquier persona el uso de cualquier elemento de HTML 5, HTML 4, o cualquier versión anterior de HTML, además de muchas extensiones propietarias, puede estar seguro de que su HTML obtendrá coherente y predecible de tratamiento en todos los navegadores.

Dado esto, no tiene sentido limitar queridos HTML 5 para que se valide y lo práctico de los beneficios que obtenemos de hacerlo?

¿Fue útil?

Solución

  • Primero, hay la capa de validez correspondiente a "errores de análisis" en la HTML5 algoritmo de análisis.Esta capa es similar a XML la correcta forma.El motivo principal para no tener errores en los documentos de esta capa es que usted puede conseguir una sorprendente árbol de análisis.Si su documento está libre de errores en esta capa, que recibe menos sorpresas para depurar al escribir JS o CSS que trabaja con el DOM.
  • Como un caso especial de la mencionada capa, hay el doctype de HTML5: <!DOCTYPE html>.La razón por la que uno desea cumplir aquí es conseguir que el modo estándar en la forma más sencilla posible.Es algo que usted puede memorizar a diferencia del HTML 4.01 o XHTML 1.0 doctypes usted necesita para buscar y copiar y pegar cada vez.Por supuesto, la razón por la que quieres el modo estándar es menos sorpresas en el CSS de la capa.
  • La razón principal para la atención acerca de la validación de la capa superior que el algoritmo de análisis es descubrir los errores tipográficos, de modo que usted pasa menos tiempo de depuración por qué tu página no está funcionando como se espera.
  • El punto anterior no explica por qué usted debe preocuparse acerca de la validación cuando un elemento o atributo que no escribe mal es soportado por los navegadores como un asunto de herencia, pero la especificación HTML5 todavía la rechaza.He aquí por qué HTML5 ha sido superado una sintaxis como esta:
    • HTML5 utiliza obsoletion para señalar a los autores que algunas de las características son un desperdicio de su tiempo.Estos incluyen longdesc, summary y profile.(Nota que la gente está en desacuerdo sobre si estos son, en efecto, pérdida de tiempo, pero tal como está redactado actualmente, HTML5 hace obsoleto.) Es decir, si usted tiene recursos limitados para mejorar la accesibilidad, sus limitados recursos son mejor gastado en algo que no sea longdesc y summary.Si usted tiene recursos limitados para la pureza, sus recursos son mejor gastado en algo aparte de asegurarse de que usted tiene el derecho conjuro en profile.
    • HTML5 obsoletes algunos elementos de presentación que podrá ser duplicada en CSS para guiar a los autores a utilizar CSS para su propio bien.De esta manera, los autores que no consideran la capacidad de mantenimiento en sus propios se supone que para ser guiado a más de un código fácil de mantener, no obstante.Personalmente, prefiero hacer más de el legado de presentación cosas que se conforman y dejando que los propios autores a decidir qué forma de hacer las cosas que funciona para ellos.
    • Algunas cosas son obsoletos por razones políticas.El <font> elemento es obsoleto, porque lo que es conforme haría anti-<font> standardistas pensar que el HTML5, la gente ha vuelto loco, lo que podría conducir a malas relaciones públicas. <applet> es obsoleto principalmente como un asunto de principio de no dar formato especial a un módulo en particular.El classid atributo en <object> es obsoleto, porque es en la práctica ActiveX específicos.
    • Algunas cosas son obsoletos en la base de la lengua, la estética del diseño.Esto incluye la name atributo en <a> y el language atributo en <script>.

I desarrollar el Validador.nu HTML5 validador que también es el HTML5 motor de validación por el validador del W3C.)

Otros consejos

  

Dado esto, ¿tiene sentido limitar los HTML 5 a los que validarán, y qué beneficio práctico obtendremos al hacerlo?

Sí, por supuesto. Olvidas que el futuro no está arreglado. En particular, asume implícitamente que las especificaciones HTML 5 nunca cambiarán y nunca desaprobarán ninguna característica. Esto, por supuesto, solo consolida el status quo. Definitivamente es deseable eliminar el soporte para algunas características a largo plazo, para facilitar la realización de nuevos desarrollos (en particular, si estos pueden entrar en conflicto).

Puede que no haya un beneficio inmediato en la producción de HTML 5 válido (excepto que aún facilita la validación y, por lo tanto, el desarrollo es más fácil). Pero puede haber un beneficio a largo plazo si la mayoría de los sitios web mejoran en calidad porque hace que moverse más allá de las tecnologías y estándares actuales sea mucho más fácil.

La validación nunca se ha tratado de obtener resultados consistentes en todos los navegadores, incluso antes de que comenzara HTML5. Ese es un mito propagado por aquellos que no entienden de qué están hablando, incluso si piensan que lo hacen.

La verdadera razón de la validación es y siempre ha sido puramente una cuestión de garantía de calidad. Es solo una forma de detectar errores, que. Aunque los resultados de cualquier error dado pueden ser, o pronto llegar a ser, consistentes entre los navegadores, es posible que el resultado en sí mismo no sea el esperado.

Es importante que los autores puedan detectar errores en su código porque un marcado más limpio y libre de errores es más fácil de trabajar y mantener, especialmente cuando se trabaja en un entorno de equipo. Si bien la mayoría de los errores individuales pueden terminar siendo benignos y no causar ningún problema importante, hay algunos que pueden dar resultados inesperados. p.ej. Incorrectamente, los elementos superpuestos o no cerrados pueden causar problemas de diseño inesperados en algunos casos, y dejar que un validador le diga dónde está el error, ayuda a rectificar el problema. Pero si los resultados están llenos de docenas de errores benignos, puede hacer que la detección y el proceso sean más difíciles de lo necesario.

Esta es, de hecho, una de mis objeciones con HTML5. No tiene sentido definir un subconjunto de secuencias como "válido", si un navegador debe manejar todas las secuencias de la misma manera de todos modos. Los eones gastados en la lista WHATWG debatiendo los mecanismos de reserva son una pérdida enorme de tiempo de todos, especialmente cuando XML ya debería haber resuelto todos los problemas de análisis.

Hubiera sido una idea útil producir un documento de mejores prácticas para analizar documentos inválidos heredados, pero esto no tiene parte en un estándar web, es solo otro ingrediente para enturbiar aún más las aguas alrededor de HTML5, que no puede decidir si quiere codificar el comportamiento existente (como lo hizo HTML 3.2), redefinir una plataforma más limpia (como HTML 3.0 intentó) o agregar nuevas extensiones poco a poco.

De todos modos, la pregunta puede estar fuera de lugar porque nunca habrá un navegador que " sea totalmente compatible con HTML5 " ;. Solo hay mucho, demasiado: los fabricantes de navegadores no podrían implementar absolutamente todo hasta las minucias, incluso si quisieran, lo que al menos Microsoft no explícitamente. En cambio, las características obviamente útiles serán seleccionadas por el proveedor y cumplirán con una aceptación más amplia.

HTML5 no es una especificación HTML coherente, es la receta extensa, ilegible e inacabada de Hixie para cada cosa aleatoria que cree que un navegador web debería hacer. Fallará. Y el enfoque alternativo de W3, XHTML2, ya ha fallado. No existe una dirección futura coherente para los estándares web. Hemos dejado caer la pelota.

Es una buena pregunta.

El propósito principal de la validación (al menos para mí) es ayudarme a detectar errores en mi marcado, y darme una buena base sobre la cual construir al probar páginas en diferentes navegadores; si el marcado es válido, y la página está borked en IE6, es un problema de IE6.

El hecho de que todos los navegadores se comporten de manera predecible, incluso si su marcado incluye HTML5 técnicamente inválido, como un resumen de tabla o una clave de acceso de ancla, enturbia las aguas de alguna manera.

Como regla general, siempre quisiera que mis páginas se validaran, por la razón antes mencionada. Sin embargo, si (por ejemplo) se eliminó un atributo de la especificación HTML5 sin que se agregue un reemplazo aparentemente adecuado, podría estar inclinado a continuar usando el atributo obsoleto u obsoleto y aceptar los errores de validación.

Como siempre, creo que se trata de conocer tu oficio.

Si sabe lo que está haciendo y ha tomado una decisión consciente de crear una página que no valide por razones sólidas, no es un problema. Si solo está escribiendo código que no se valida porque no sabe nada mejor, eso es algo completamente diferente.

Stephen

W3C HTML5 validador mantenedor aquí. Recientemente escribí un breve & # 8220; ¿Por qué validar? & # 8221; sección para & # 8220; Acerca de & # 8221; sección del validador HTML5:

http://validator.w3.org/nu/about.html# por qué validar

La fuente del texto de esa sección está aquí:

https://github.com/validator/ validator / blob / master / site / nu-about.html # L160

Y las solicitudes de extracción con mejoras / adiciones sugeridas son bienvenidas.

Lo que tengo allí actualmente es esto:

  

El motivo principal para ejecutar sus documentos HTML a través de una conformidad   el corrector es simple: para detectar errores no intencionados & # 8212; errores que podría   de lo contrario se ha perdido & # 8212; para que pueda solucionarlos.

     

Más allá de eso, algunos requisitos de conformidad del documento (reglas de validez)   en la especificación HTML están ahí para ayudarlo a usted y a los usuarios de sus documentos   evitar ciertos tipos de problemas potenciales. Para explicar la justificación   detrás de esos requisitos, la especificación HTML contiene estas dos secciones:

           

Para resumir lo que & # 8217; s se indica en esas dos secciones:

     
      
  • Hay algunos casos de marcado definidos como errores porque son   posibles problemas de accesibilidad, usabilidad, interoperabilidad,   seguridad, o mantenibilidad & # 8212; o porque pueden resultar en una pobre   rendimiento, o eso podría causar que sus scripts fallen de maneras que son   difícil de solucionar.
  •   
  • Junto con ellos, se definen algunos casos de marcado   como errores porque pueden causar problemas potenciales en   Análisis de HTML y comportamiento de manejo de errores & # 8212; de modo que, por ejemplo, usted & # 8217; d termine   con algún resultado inesperado y poco intuitivo en el DOM.
  •   
     

Validar sus documentos lo alerta sobre esos posibles problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top