blog
Desarrollo Diseño web Opinión

Degradación gradual vs Mejora progresiva

El debate sobre degradación gradual (graceful degradation) y Mejora progresiva (progressive improvement) no es nuevo, pero sigue dando que hablar en algunos sectores de la red.

La cuestión es que a la hora de diseñar un sitio web hay varias formas, o estrategias de abordar la tarea. Mientras todo va bien, no hay problema. Pero, ¿qué pasa cuando necesitamos que nuestro sitio web se vea bien en todos los navegadores y dispositivos? Es cierto que todos los caminos llevan a Roma, ¿pero cual es el más largo?

Degradación gradual

Un sitio web diseñado para que degrade gradualmente está pensado para que se vea primero correctamente en los navegadores  modernos. Para que se puedan acceder en los navegadores más antiguos, y menos ricos en características deben degradar, de forma a funcionar, pero con menos características.  Normalmente el sitio web está ya desarrollado con todas las funcionalidades de CSS3 y Javascript que necesitamos para hacer de nuestro sitio web una plataforma espectacular e innovadora.

La página empieza a degradar cuando, a través de detección user-agent, o utilizando la herramienta Modernizr como biblioteca de detección  de características para HTML5/CSS3 le vamos substituyendo o añadiendo soluciones al conflicto de forma a tener un resultado que se pueda presentar a cliente.  El problema claramente es la imposibilidad de incluir todos los navegadores y siempre habrá uno que traerá problemas extras.  ¿Qué pasará con los navegadores que tengan el JavaScript desactivado, o bloqueado?

El “graceful degradation” me hace pensar en algunos proyectos en que el “Pixel perfect” es prioridad. El Pixel Perfect dice que todos los sitios webs tienen que tener exactamente la misma apariencia en todos los navegadores y todas las versiones. Normalmente, por diferentes cuestiones, entre ellas los deadlines, los desarrolladores se centran primero en los navegadores modernos y posteriormente hacen, o intentan hacer las modificaciones necesarias para que el sitio web se vea correctamente en los navegadores antiguos.

Mejora progresiva

El Progressive Enhancement dice que los sitios webs no tienen que tener la misma apariencia en todos los navegadores,  pero aprovechar las capacidades del navegador para que el mayor número posible de usuarios tenga la mejor experiencia posible.  Aquí lo más importante es el contenido y cómo este contenido es accesible, independientemente de los dispositivos utilizados por el usuario.

La Mejora progresiva seria lo inverso a la Degradación gradual; empezar por lo básico (HTML + CSS) e ir evolucionando “progresivamente”, utilizando las mismas herramientas de user-agent y detección de características.

En la Mejora progresiva el sitio web se desarrolla en ‘capas’, utilizando un abordaje de “de bajo arriba” empezando “con una capa más simple y mejorando las capacidades del  sitio en las capas sucesivas, cada una utilizando más características.”

Los beneficios del Progressive Enhancement son inúmeros, entre otros, permite un desarrollo más rápido,  es más económico de mantener y permite que sitios webs desarrollados con este abordaje puedan reaccionar y ser optimizados de acuerdo con el ambiente en que son visualizados, lo que hace que las páginas se carguen, normalmente, más rápido. 

Además de Modernzr o WURFL.js que son bibliotecas de Javascript, se pueden utilizar otras herramientas de Javascript y PHP para la detección de user-agents. Por ejemplo Mobiledetect (PHP).

Obviamente la necesidad del proyecto y/o la audiencia, dictarán el abordaje a utilizar, pero para algunos desarrolladores la Mejora progresiva, además de ser el mejor, es también una cuestión de “derechos humanos”. ¿Qué te parece?

Fuentes:

Programación declarativa en la Web

Artículo anterior

Wordpress 4.0

Siguiente artículo
I help Organizations to use Technology to improve people's lives

También te puede interesar

Los mejores software para gestión de proyectos

3 Herramientas DevOps

Maquetar en Drupal 7: Funciones del Tema

CodyHouse