Pregunta sobre xhtml, html, standards-compliance – ¿Es el cumplimiento de XHTML inútil?

20

Estoy construyendo un sitio ahora mismo, hasta ahora he forzado dolorosamente a que todo sea compatible y se ve bastante parecido en todos los navegadores. Sin embargo, estoy empezando a implementar algunos javascripts de terceros / gratuitos que hacen cosas como agregar atributos (por ejemplo, orden = 2). Podría solucionar este problema pero es un dolor, y estoy empezando a perder mis principios de asegurarme de que todo sea válido. Realmente, ¿hay algún punto para trabajar alrededor de algo como esto? Obtuve el complemento HTMLValidator para Firefox, y al buscar en la mayoría de los sitios principales (incluido este, Google, etc.), no son válidos XHTML o HTML.

Quité la etiqueta de conformidad con la palabra de moda. Descaradamente ofensivo, en mi humilde opinión. Jon Limjap
También vea la pregunta 'elección de versión HTML':stackoverflow.com/questions/3654/html-version-choice Chris

Tu respuesta

11   la respuesta
1

Ser HTML válido es generalmente una ayuda para usted y para el motor de renderizado del navegador. Cuantas menos peculiaridades tengan que enfrentar los navegadores, más podrán centrarse en agregar nuevas funciones. Cuanto más estricto sea, menos tiempo pasará preguntándose por qué esta etiqueta propietaria de f @ # cking no funciona en otros navegadores.

Por otro lado, XHTML es, en mi opinión, más inútil, excepto si planea integrarlo dentro de algún documento XML. Como IE aún no lo reconoce, es bastante inútil quedarse con ellos.

2

rente en la mayoría de los navegadores que no la tiene. El atributo DOCTYPE determina qué modo representa el navegador y determina qué está permitido y qué no. Si se desvía del cumplimiento de XHTML, asegúrese de volver a realizar la prueba en todos los navegadores.

Personalmente me atengo a los estándares más recientes siempre que sea posible, pero usted tiene que sopesar el tiempo y el dinero con el cumplimiento y la preferencia personal de la mayoría.

2

el cumplimiento de XHTML no tiene sentido en eso:

Los navegadores no tienen analizadores XHTML. Tienen analizadores HTML no específicos de la versión, compatibles con la web que construyen un DOM en torno a lahttp://www.w3.org/1999/xhtml espacio de nombres.

Algunos navegadores que tienen analizadores XML pueden tratar el marcado XHTML servido como application / xhtml + xml como XML. Esto tomará el XML y dará estilo y comportamiento HTML por defecto a los elementos en elhttp://www.w3.org/1999/xhtml espacio de nombres. Pero, en lo que se refiere al análisis, no tiene nada que ver con XHTML. Se siguen las reglas de análisis de XML, no algunas reglas de DTD de XHTML.

Entonces, cuando usa el marcado XHTML, le está dando algo ajeno a los navegadores y está viendo si sale como lo desea. La cosa es que puedes hacer esto con cualquier marca. Si se procesa según lo previsto y produce el DOM correcto, lo estás haciendo bastante bien. Solo debes asegurarte de tener en cuenta el cambio de DOCTYPE y asegurarte de que no estás confiando en un error del navegador (para que las cosas no se deshagan en los navegadores que no tienen el error).

Lo que es bueno para el cumplimiento con XHTML es la comprobación de la sintaxis (validando) para ver si el marcado está bien formado. Esto ayuda a evitar errores de análisis. Por supuesto, esto también se puede hacer con HTML, por lo que no hay nada especial acerca de XHTML en este caso. De cualquier manera, aún tienes que hacer pruebas en los navegadores y esperar que los proveedores de navegadores realicen asombrosos analizadores de HTML que puedan aceptar todo tipo de basura.

Lo que no tiene sentido es tratar de ajustarse a lo que esperan los navegadores. HTML5, ayuda con este gran momento. Y, hablando de HTML5, puedes definir atributos personalizados todo lo que quieras. Simplemente colóquelos en prefijo con data-, como en <p data-order = "Este es un atributo válido y personalizado."> Test </p>.

Todos los principales navegadores, excepto IE, tienen analizadores XHTML. XHTML DTD es algo respetado (las entidades nombradas funcionan cuando está presente, a veces de manera errónea, incluso cuando no lo está :) La buena formación y la validación en términos XML son cosas diferentes. Kornel
5

los estándares con los que presumiblemente está de acuerdo. Si está utilizando a propósito una herramienta que específicamente agrega algo que no está en los estándares de validación, obviamente no rompe su acuerdo de estándares personales.

Esta discusión se vuelve mucho más difícil si tienes un jefe o un cliente que cree que todo debería devolver la luz verde, ya que tendrás que explicarles lo anterior y convencerlos de que no es simplemente que eres un vago.

Dicho esto, asegúrate de que no sea simplemente un caso de que seas perezoso. Si bien los validadores pueden mostrar constantemente cada instancia del atributo de terceros, eso no invalida (ha) los otros errores de validación que están mencionando. A menudo vale la pena escanear como un medio de doble verificación de su trabajo.

2

n atributo no estándar ha causado un problema de representación en cualquier navegador.

No intente evitar esos atributos no estándar. Los validadores son útiles como herramientas para verificar dos veces su código en busca de errores involuntarios, pero como todos sabemos, incluso un código hhtml completamente válido no siempre se mostrará de forma coherente en los navegadores. En muchas ocasiones, las decisiones de diseño requieren que utilicemos hacks específicos del navegador (y no estándar) para lograr un efecto. Esta es la vida de un desarrollador web, como lo demuestra la cantidad de sitios de tecnología (google, yahoo, etc.) que no se validan.

0

sopesando el tiempo / costo frente a las necesidades de la audiencia en todos los casos excepto uno. Cuando su código debe cumplir con la norma 503, lo mejor para usted y el interés de su público es escribir un código compatible. Me he encontrado con un montón de lectores de pantalla que explotan cuando el código está ligeramente apagado.

Como dijo la mayoría de los carteles, realmente se trata de lo que su público necesita.

3

vale la pena hacer que sus páginas sean válidas y estén bien formadas. De lo contrario, el HTML semántico simple es probablemente lo que quieres. De cualquier manera, las necesidades de su audiencia superan las necesidades de un validador.

0

pero hay muchas justificaciones para romperlo. Durante las etapas iniciales del desarrollo de CSS, es muy útil para diagnosticar problemas del navegador si su marca es válida. Más allá de eso, si quieres hacer algo y sientes que el método más apropiado es romper la validación, generalmente está bien.

Una alternativa al uso de atributos personalizados es hacer uso del atributo 'rel', para un ejemplo, veaCaja de libros (y sus parientes).

4

de que su página funcione en los navegadores con los que no realiza pruebas. Esto incluye los lectores de pantalla y la próxima actualización de los navegadores con los que realiza pruebas, y los navegadores con los que realiza pruebas, pero que el usuario ha configurado de forma inesperada.

La validación no le garantiza nada, ya que es posible que su página se valide, pero sigue siendo lo suficientemente ambigua como para que no se comporte de la forma en que lo desea en algún navegador algún día.

Sin embargo, si su página se valida, al menos tiene la fuerza de la especificación XHTML que indica cómo debe comportarse. Si no se valida, todo lo que tiene es un conjunto de convenciones informales entre los escritores del navegador.

Probablemente sea mejor escribir HTML 3 válido que XHTML inválido, si hay algo que quieres hacer que esté permitido en uno pero no en el otro.

+1 para tu párrafo final Ian Goldby
1

código válido" es importante, simplemente porque está estableciendo un ejemplo siguiendo las reglas. Si todos los desarrolladores hubieran escrito código para Fx, Safari y Opera, creo que IE tenía que "comenzar a seguir las reglas" antes que con la versión 8.

0

siempre puedes seguir adelante y escribirlo de la manera que desees, asegurándote de que funcione como mínimo. Por supuesto, ya hemos sufrido esta mentalidad y hemos sido testigos de su salida,Internet Explorer 6.

Soy un gran fan de laEnfoque de Mike Davidson para el desarrollo orientado a estándares.

El hecho de que pueda validar su código no significa que usted sea mejor que nadie. Diablos, eso no significa necesariamente que escribas mejor código que nadie. Alguien que puede escribir una aplicación bancaria completamente en Flash es un mejor programador que tú. Alguien que puede integrar código de terceros en un entorno de publicación complicado es un mejor programador que usted. Piense en la validación como el uso de la gramática de imagen perfecta; le ayuda a transmitir sus ideas y es un signo de una buena educación, pero no es tan importante como las ideas y conceptos que piensa y luego comunica. La persona más carismática y posiblemente la más inteligente para la que he trabajado fue en el Sur y usó la palabra "no es" con bastante frecuencia. No lo hizo menos inteligente y, de hecho, lo hizo más memorable. Así que todo lo que digo es que hay muchas cosas para juzgar a alguien sobre ... la validación es una de ellas, pero ciertamente no es la más importante.

Mucha gente entiende mal esta publicación para decir que no debemos codificar según los estándares. Obviamente, deberíamos, pero no es algo en lo que realmente deba pensarse. losejército de validación siempre condenará a aquellos que no validan, pero la validación significa mucho más que un código válido.

Entonces, no pierda sus principios, pero recuerde que si sigue los estándares, es mucho menos probable que termine en el final de los problemas en el futuro. El contenido que está tratando de proporcionar es mucho más importante que la forma en que se muestra.

Preguntas relacionadas