Validación de HTML: ¿vale la pena?

52

¿Cuáles son las ventajas y desventajas (si las hay) de asegurarse de que todas las páginas validen en comparación con tener HTML no válido que, sin embargo, funciona en todos los principales navegadores?

Además, ¿es tan importante tener HTML válido después de que se ejecute Javascript?

Thomas Bonini
fuente
55
Esto no responde a su pregunta, pero ... colocar un doctype en su página pondrá el navegador en modo estándar en lugar de modo peculiar. Busque el modo peculiar para ver a qué me refiero.
Evan Plaice
1
@Evan Plaice: aunque no hay ningún DOCTYPE. Algunos DOCTYPES en realidad desencadenan peculiaridades o modos casi estándar. La especificación HTML5 explica esto con más detalle.
luiscubal
1
@luiscubal ¿Es eso nuevo en HTML 5 porque en en.wikipedia.org/wiki/Quirks_mode , dice "... si hay un DOCTYPE completo, el navegador usará el modo estándar, y si está ausente, usará el modo peculiaridades? ".
Evan Plaice
@Evan Plaice No estoy seguro acerca de las versiones HTML anteriores, pero el HTML5 especifica específicamente qué hacer con DOCTYPES antiguos: vea whatwg.org/specs/web-apps/current-work/multipage/…
luiscubal
1
@Evan Plaice En otras palabras, "DTD HTML 2.0 Nivel 1" activa el modo peculiaridades.
luiscubal

Respuestas:

42

Creo que definitivamente vale la pena hacerlo , pero nunca debes ser esclavo de la validación, es un juego de tontos.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Validar su HTML. Sepa lo que significa tener un marcado HTML válido. Comprender las herramientas. Más información siempre es mejor que menos información. ¿Por qué volar ciego?

  2. A nadie le importa si tu HTML es válido. Excepto tu. Si quieres. No piense ni por un segundo que producir HTML perfectamente válido es más importante que ejecutar su sitio web, ofrecer funciones que deleiten a sus usuarios o hacer el trabajo.

Jeff Atwood
fuente
3
Tengo que segundo esto. He visto muchos problemas con las bibliotecas de JavaScript que pueden atribuirse a HTML no válido. Múltiples formas anidadas y etiquetas cerradas ilegalmente son los principales infractores Como Jeff dice, no seas esclavo, pero no te quejes cuando jQuery no funcione porque tu página no es HTML válido (XHTML, HTML 5 o lo que elijas como doctype).
Gareth Farrington
@Jeff Atwood: no puedo estar más de acuerdo cuando dices "A nadie le importa si tu HTML es válido. Excepto tú". Triste pero cierto, a los clientes realmente no les importa.
Marco Demaio
@MarcoDemaio ¿Por qué es triste? Como cliente y usuario final, me preocupa más si el sitio funciona o no en todos los navegadores (la mayoría de los cuales no cumplen con los estándares para empezar) que si se valida o no. El HTML válido realmente no importa. Google, Facebook, Twitter, este sitio, etc. ningún sitio relevante tiene un marcado válido. ¿Por qué? Porque el HTML válido no hace más que hinchar la página y aumentar los costos de ancho de banda.
NullUserException
Lo mismo ocurre con el marcado perfectamente sangrado. Esto es aún más inútil, es un desperdicio del 100% de ancho de banda y no tiene ningún uso práctico.
NullUserException
@NullUserException: creo que es triste porque descubrí que los sitios web validados generalmente son mucho mejores en todos los navegadores. Vea mi comentario a la respuesta de Alan: webmasters.stackexchange.com/a/373/1429 Validar un sitio web guardado para mí y todavía me ahorra una gran cantidad de tiempo. Sobre el marcado perfecto con sangría, nunca he oído hablar de especificaciones al respecto. Me gustaría sangrar por 3 espacios, y a usted le gustaría sangrar por uno.
Marco Demaio
32

Considero que el HTML válido es un objetivo que vale la pena, pero no lo veo como el principio y el fin de construir buenos sitios web.

El truco es que su marcado puede ser perfectamente válido, pero puede que no sea semántico, por ejemplo, el uso de tablas para el diseño o la navegación. Hay una diferencia entre el código válido y el código semántico.

En otra nota, si usa publicidad o secuencias de comandos externas, pueden insertar su propio marcado que tiene la oportunidad de realmente meterse con el suyo.

Grant Palin
fuente
22

Creo que vale la pena, ya que he detectado muchos errores de marcado y de lógica al buscar la validación. Es una de esas cosas "necesarias pero no suficientes". El marcado válido, como el código que compila (o extrae mediante JSlint) sin errores, advertencias y sugerencias, es un buen primer paso para hacerlo bien.

Alan
fuente
+1 totalmente de acuerdo con este. La validación de páginas ahorra una gran cantidad de tiempo después de JS y los errores de cómo las cosas se muestran que son tan misteriosos, y solo se deben a una etiqueta HTML que no funciona o no está cerrada. Además, con herramientas como FF addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/] es sencillo validar todas sus páginas localmente.
Marco Demaio
9

La gran ventaja de HTML válido es que su página es más accesible para otras cosas que no sean los "principales navegadores". Todos los "principales navegadores" tienen soluciones interminables para lidiar con toda la basura inválida que puebla la WWW. Sin embargo, apegarse a HTML válido ayuda, por ejemplo, si alguien está usando un navegador para personas con discapacidad visual, o está accediendo a sus páginas fuera de línea, etc.


fuente
8

La validación en sí misma no es tan crítica, ya que pocos navegadores son 100% compatibles y la especificación no es 100% clara sobre cómo interpretar las reglas.

Sin embargo, ser HTML válido lo coloca en una mejor posición para adaptar y mejorar su sitio. A medida que avanzan los estándares, generalmente migrarán hacia adelante y, si su nuevo sitio es válido, la actualización para admitir lo último debería ser más fácil.

En el fondo, ser válido hace que sea más fácil mantenerse en la cima del juego y ser lo más compatible posible con la audiencia más amplia.

MrChrister
fuente
4

El mejor enfoque es aprender qué HTML inválido es malo y qué HTML inválido no importa.

Por ejemplo, olvidarse de cerrar una <div>etiqueta es muy malo , porque su diseño seguramente se arruinará en uno o más navegadores.

Sin embargo, usar en <br>lugar de <br />en XHTML no importa: todos los navegadores interpretarán ambos como un salto de línea sin problemas. El uso del targetatributo en los enlaces no es válido, pero el peor de los casos es que el navegador no abra el enlace en una nueva ventana.

Cabra descontento
fuente
targetes válido en XHTML de transición, y solo los masoquistas usan estricto. Omitir la barra oblicua hará que su página sea inválida XML, lo que probablemente confundirá a los raspadores de pantalla. Si elige usar XHTML, su página debe ser XML válido como mínimo.
Tgr
1
@Tgr: Es curioso, pensé que los masoquistas preferían el modo no estándar. Incluso los doctypes de transición tienen sus problemas (usando el modo "casi estándar", etc.)
DisgruntledGoat
1
Yo diría que Strict es esencial: ¿por qué elegir correr el riesgo de código obsoleto y modo peculiar? El uso de Strict no tiene costo, aparte de eso, lo alienta a saber más sobre su versión de marcado preferida.
CJM
3

Cuando ejecute el validador, deberá examinar los errores que le da caso por caso. ¿Es importante la validación? Para mí, sí, es muy importante. ¿Pero es un requisito? No.

Cosas como usar la misma ID varias veces (en lugar de una clase), colocar elementos de nivel de bloque dentro de elementos de nivel en línea (por lo general, estos elementos tampoco encajan semánticamente de esta manera), atributos alt faltantes en las imágenes (poca accesibilidad para los discapacitados ), son todos importantes. Cosas como atributos desconocidos en las etiquetas NO son importantes. En absoluto. Los marcos de Javascript como Dojo o esa horrible barra de redes sociales Meebo utilizan atributos personalizados como ganchos, y la especificación HTML establece que están permitidos y que cualquier atributo desconocido debe ser ignorado. Sin embargo, el validador no los ignora, arroja errores. Estos errores pueden ser ignorados.

Al validar, no asuma simplemente que si tiene errores, lo está haciendo mal. La semántica es mucho más importante, y resulta que el HTML válido es el resultado natural de tener una semántica adecuada.

Bryson
fuente
Estoy de acuerdo: valide su página web, pero en algunas circunstancias, puede optar por ignorar las advertencias, siempre que sepa por qué están allí
Casebash
3

Una razón para probar su sitio en busca de HTML válido es que garantiza que las arañas de los motores de búsqueda puedan indexar y determinar completamente el significado de sus páginas. Si no pueden hacerlo debido a HTML mal formado (que los principales navegadores pueden solucionar por razones históricas), entonces está limitando potencialmente la clasificación de su motor de búsqueda.

También se ha especulado que si bien los principales motores de búsqueda hacen un buen trabajo al tratar con HTML con formato incorrecto, también pueden asignar "puntos" de calidad de página para la validez, lo que afecta aún más su capacidad para clasificar tan alto como su contenido lo merece.

JasonBirch
fuente
2
Google ha declarado categóricamente que el HTML no válido no tiene efecto en las clasificaciones. Sin embargo, puedo ver el caso en el que HTML está tan mal formado que el contenido real de la página no puede ser leído por las arañas, aunque en este caso es casi seguro que los navegadores comenzarán a mostrar problemas de representación.
DisgruntledGoat
@DisgruntledGoat Tienes razón, aquí hay una referencia para eso: youtube.com/watch?v=FPBACTS-tyg
JasonBirch
@DisgruntledGoat Obviamente ... Google está lleno de HTML inválido, y recuerdo que dijeron que realmente no les importa y que es bueno tener HTML inválido si eso significa tiempos de carga más rápidos.
NullUserException
3

Realmente ya no creo que importe. Solía ​​ser un esclavo de la validación, ahora rara vez lo verifico. Tal vez me quemé por asegurarme de que mi sitio fuera válido, o tal vez simplemente ya no me importó porque nadie más lo hará. Puedo garantizar que el 99.9% de nuestros visitantes ni siquiera saben lo que es, ni siquiera les importa si lo supieran. El futuro software del navegador podría, pero cuando llegue ese día, me preocuparé por eso.


fuente
2

La validación es útil porque puede ayudarlo a detectar algunos errores difíciles de detectar, como

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

o comportamiento impredecible del navegador (por ejemplo, poner elementos de bloque en un aarchivo puede a veces romperse de manera fea en Firefox).

Tgr
fuente
2

Un punto que nadie ha mencionado aún es que el HTML no válido puede causar tiempos de representación más lentos mientras el navegador está tratando de dar sentido al HTML no estándar cuando se muestra.

BradB
fuente
Votaría en contra de esto si pudiera. I altamente duda esto tiene algún efecto observable; Me preocuparía más el marcado válido que hincha la página y requiere más tiempo para cargar (especialmente en conexiones más lentas / móviles).
NullUserException
@NullUserExceptions: No creo que el comentario de BradB merezca un -1. Tal vez sea difícil de probar, pero un navegador que necesita resolver y arreglar dentro de un desastre HTML puede tomar un poco más que una página HTML válida bien formateada sin errores. ¿Por qué no proporciona una respuesta a esta pregunta que nos muestra un buen ejemplo de una página sobre hinchada debido al abuso de validación de HTML? No puedo pensar en cómo una página HTML válida podría estar superpuesta en comparación con la misma página con código HTML no válido.
Marco Demaio
1

No hay desventaja de tener html válido. hay una razón por la cual hay una especificación en primer lugar y por qué se está haciendo un gran esfuerzo en la especificación para definir cómo deberían funcionar las cosas.

Básicamente, todo lo que gana es cumplir con las especificaciones. lo que a su vez significa que los programas escritos para leer html (navegadores, bots) no pueden culparlo a USTED por no cumplir con las especificaciones si algo sale mal. y algunos de estos programas le brindan puntos extra (mejor clasificación en los motores de búsqueda si el bot informa que "cumple con las especificaciones"). si cumple con las especificaciones, se sorprenderá mucho menos si algunos navegadores no muestran HTML roto de la forma en que cree que debería hacerlo.

Por lo tanto, para cumplir con las especificaciones y escribir html válido es bueno para usted, no hay desventajas en absoluto.

akira
fuente
Hum, ¿en qué motores de búsqueda obtienes clasificaciones más altas si cumples con las especificaciones?
2
La desventaja sería el tiempo de desarrollo adicional que pasa asegurándose de que todo su código cumpla con las especificaciones. Aunque este costo es generalmente mínimo, aún debe abordarse como una desventaja.
chatche
@kinopiko: Si hay alguno, no es ninguno de los principales (Google, Yahoo, Bing, Ask). Tener un desorden completo de código que incluso un desarrollador web experimentado (humano) no puede leer probablemente lo dificultará, pero el uso de algunos atributos "ilegales" tiene un efecto absolutamente nulo en las clasificaciones.
DisgruntledGoat
Ese es el problema con la terminología de validación. Eres válido o no lo eres. No hay grados El HTML roto (por ejemplo, etiquetas no cerradas, etiquetas estructurales extraviadas / extraviadas, etc.) no es válido y perjudica al SEO, pero la mayoría de las personas no hablan de eso cuando dicen "validación". Un novato puede querer usar un validador para asegurarse de que no haya cometido ninguno de esos errores de novato, pero un desarrollador profesional no necesita hacerlo ya que su código ya es "lo suficientemente válido", por así decirlo, en términos de SEO.
Lèse majesté 17/10/10
1

Algunos errores de validación de HTML pueden causar problemas de diseño no obvios (por ejemplo, etiquetas anidadas / no cerradas incorrectamente), errores de JavaScript (por ejemplo, el uso de idmás de una vez) y problemas para algunos usuarios (por ejemplo, sin incluir un altatributo significativo o en blanco en las imágenes).

Si todas nuestras páginas se validan, es un buen control automático que puede hacer para descartar fuentes de errores. Si deja algunos errores de validación porque sabe que no están causando ningún daño, su verificación ya no está automatizada: debe mirar cada error y recordar que está bien. Personalmente, lo prefiero cuando las computadoras reducen la cantidad de trabajo que tengo que hacer en lugar de aumentarlo.

Paul D. Waite
fuente
1

Un punto que nadie mencionó es el futuro desarrollo del navegador. Aunque todos los navegadores actuales manejan el marcado inválido relativamente bien, ese no siempre es el caso.

Los fabricantes de navegadores en el futuro se asegurarán de que sus navegadores funcionen con los estándares HTML / XHTML, por lo que esto es lo que los desarrolladores web también deberían utilizar. El hecho de que un poco de marcado no válido funcione ahora no garantiza que funcione en futuros navegadores.

Loftx
fuente
Tengo que decir que me pregunto si eso es cierto.
2
Sí, no puedo ver ningún navegador que deje de admitir la <font>etiqueta o su tipo.
DisgruntledGoat
No veo cuál es el problema: la compatibilidad con el marcado en desuso o no válido podría cambiar en el futuro. Pasando por alto la implementación imperfecta de (X) HTML en la mayoría de los navegadores, seguramente será más seguro seguir con un marcado válido. No hay ningún costo asociado con un marcado válido, aparte de simplemente saber lo que está haciendo.
CJM
1

La validez lo ayuda a evitar incompatibilidades y ayuda a mantener el código mantenible. Los navegadores se recuperan de los errores de marcado, pero a veces de manera poco intuitiva.


  • Basado en DTD (HTML4, XHTML1 @ W3C): puede que no valga la pena. DTD es primitivo y, por ejemplo, no puede verificar la validez de la mayoría de los atributos. En su mayoría, será difícil comprender los errores sobre entidades y anidamiento.

  • Validador HTML5 : . Seguro. HTML5 es más pragmático y permite algunas construcciones inofensivas que solían ser errores. El validador de OTOH Henri es mucho más completo y mejor para descubrir problemas reales.


La validez del código generado por JS puede ser importante, ya que los navegadores funcionan en DOM, independientemente de cómo se creó. Si lo usa document.write(), incluso debe tener cuidado para que la sintaxis sea correcta (pasa por el mismo analizador que la fuente de la página).

Kornel
fuente
0

Google y Bing no, no han usado y nunca usarán la validación CSS o HTML como factor de clasificación.

La mayoría de los sitios web tienen decenas a cientos de errores y no debe preocuparse por ellos porque todos los motores de búsqueda se preocupan por el rendimiento de la página. Solo asegúrate de que tu sitio web se muestre correctamente en todos los principales navegadores y Fetch de Google .

Simon Hayter
fuente