it-swarm-es.com

¿Debo seguir estrictamente todos los estándares HTML y CSS?

Hace unos años me consideraba algo así como un desarrollador web, conociendo los 3 lenguajes básicos (HTML, CSS, JS) y mucho PHP. Pasar de un texto simple a sitios web reales fue una molestia debido a los llamados "estándares" que existen, que en ese momento eran ridículamente complicados para mí. Básicamente se redujo a esto (menos las IE cosas relacionadas):

Web development in a pie chart

Los estándares están ahí para reemplazar las viejas formas de hacer las cosas de una manera más simple. Sin embargo, cuando intenté implementar algunas de las cosas (diseño completamente basado en CSS, por ejemplo), me tomó 10 veces más hacerlo que si hiciera la solución más simple y aún funcional. Si se mostró igual, ¿por qué debería usar el ejemplo más complicado que tarda 10 veces más y se interrumpe una vez que cambia de navegador? Esto provocó muchos debates religiosos prolongados en ## php, ## css y ## js en Freenode IRC y de hecho me prohibieron ## css porque me metí con su pequeño mundo de allí.

Mi pregunta: ¿Debo seguir todos los estándares y convenciones de codificación incluso si me toman 10 veces más pero me dan el mismo resultado que el simple?


Para la etiqueta de encuesta, aquellos de ustedes que tienen sitios web de cualquier tamaño (grandes o pequeños), ¿sted sigue todos los estándares?

11
TheLQ

Los redactores de estándares han pensado en cosas que no se les han ocurrido, como problemas de accesibilidad. Los estándares existen por una razón. Y, con HTML5, los estándares son bastante fáciles de seguir.

En ocasiones, puede haber motivos para no seguir el estándar, pero seguirlo debería ser su comportamiento predeterminado.

12
TRiG

Primero producto, luego pula.

Haga que su sitio/aplicación/juego haga lo que se supone que debe hacer. Ponlo en marcha y haz que la gente se interese.

Luego, cuando tengas tiempo, vuelve atrás y pule. Pero solo porque a usted le importa, no porque alguien más lo haga.

Por supuesto, si los problemas de incumplimiento significan que las personas no pueden verlo, o es indescifrablemente feo, o tarda un mes en cargarse, o es difícil de mantener, o bloquea el navegador, este es un problema importante. Pero todavía sería un problema importante incluso si cumpliera con los estándares.

Los usuarios comunes no miran la fuente de un sitio web que no se está cargando y dicen: "Bueno, no muestra las imágenes, pero es completamente compatible con W3C". Simplemente navegan a otro sitio web y nunca regresan.

En pocas palabras, los estándares están ahí para facilitar la escritura de los navegadores y para cerrar posibles agujeros de seguridad. Amazon, Penny-Arcade y Stack Overflow no ganan dinero con la ejecución de un sitio web compatible con los estándares. Y a menos que esté en una competencia de redacción de sitios web, usted tampoco.

12
deworde

La pereza no es una excusa para no seguir el estándar. A veces, si el estándar es estúpido, es una razón para no seguirlo. ¿Cómo sabes cuando el estándar es estúpido? Cuando ha estado haciendo un esfuerzo de buena fe durante un período prolongado para seguir todos los estándares relevantes en letra y espíritu y ha llegado a una conclusión razonable y bien sustentada de que el estándar en algún caso específico es realmente el culpable, no tú.

Sin embargo, la mayoría de las veces, esto no será aplicable.

7
Tom Morris

Yo diría que 'adhiérase' a los estándares lo mejor que pueda, pero no pierda demasiado tiempo en minucias, a veces puede diseñar un HTML/CSS estándar en la búsqueda de la perfección de los estándares y quedarse en el peor estado.

Como ejemplo, en una de nuestras aplicaciones web tenemos una página de facturación. La página enumera una larga lista de artículos a facturar y contiene varias columnas. El desarrollador original se excedió tanto con el síndrome de "Las tablas son malas" que diseñó toda la estructura de la "tabla" en CSS.

Bastante impresionante, hasta que usted sea el que ahora necesite agregar unas cuantas columnas adicionales al informe, observe cómo esas columnas van por todos lados porque necesita reajustar la configuración de CSS, el ancho, etc.

Si el desarrollador no fuera tan anal al seguir los llamados estándares hasta el final, se habría dado cuenta de que, en realidad, una tabla html normal tendría mucho más sentido, la fecha de la factura es después de todo, tabular.

Esto me lleva al HTML semántico. Creo que su HTML solo debe contener elementos que describan su página. Los estilos deben almacenarse en CSS y, en el peor de los casos, ingresarse en el atributo 'Estilo' de la etiqueta HTML cuando corresponda.

Tampoco veo ninguna razón válida por la que uno no deba pasar su HTML a través de un validador, siempre que obtenga un HTML válido, prácticamente está allí.

5
Dal

Su primera consideración debe ser la compatibilidad con los navegadores que utilizan sus clientes. En segundo lugar, debe adherirse a los estándares cuando corresponda.

Por ejemplo, en un proyecto reciente, el único navegador que teníamos que admitir era Firefox 3.5. Esto significaba que podíamos usar las propiedades de -moz css sin preocuparnos por cómo se vería la página en otro navegador. ¿Realmente hubiera valido la pena hacer esquinas redondeadas a lo largo del camino, solo para que estuviéramos usando CSS estándar?

Dicho esto, al crear sitios para múltiples navegadores, los estándares generalmente lo ayudarán, en lugar de obstaculizarlo. Intentaría cumplir con la mayoría de los estándares, pero no perdería el sueño si tuviera que desviarme para la compatibilidad del navegador.

Para la encuesta, la respuesta mía es No.

3
Lang Sharpe

No sigas ciegamente a los estándares. Algunos estándares son buenos, otros son malos. Sirven para varios propósitos y algunos, como los borradores de HTML5, sirven para empujar una colección de los grandes fabricantes de navegadores y desarrolladores web en una dirección particular que parece en su mayoría buena. Pero recuerde siempre que hay un montón de cosas terribles que se han estandarizado ...

COBOL también era un estándar.

0
Kevin Cantu