Wednesday, December 8, 2010

Unnatural Bifurcation of Progressive Enhancement vs Graceful Degradation

I'm working a couple of projects out of NC State University, where Universal Design is not just a buzzword, it is a whole design center.  We recently discussed priorities for an HTML5/RoR Web application (in a nutshell it is to be a social delivery vehicle for giving diagnostic assessment to kids), and the subject was raised.

We are dealing with many different mobile devices, and the problems we are face are an extension of those  seen by designers working toward different desktop platforms and browser combinations. That brings to mind several other philosophical approaches as well, among them Transcendent CSS and Yahoo's Graded Browser Support.

NCSU incorporates its own design philosophies into Universal Design, so I don't want to mislead the reader, but my comments are not about any one philosophy but about a tendency among all of them to take the problem as a single dimension and premise the solution as a two-partition.

More specifically, quoting the YUI Graded Browser Support article:
Graceful degradation prioritizes presentation, and permits less widely-used browsers to receive less (and give less to the user). Progressive enhancement puts content at the center, and allows most browsers to receive more (and show more to the user).
In our case, the application is perceived, navigated, and reasoned about as an application with a set of behaviors and data to be stored and retrieved. Both "presentation" and "content" are second-class citizens; the behavior of the tooling takes precedence by an order of magnitude, overshadowing all else.  Whether that is right or wrong, that is the way it is on many if not most Web application projects.

My point is certainly not to argue for or against a focus on tooling; rather, that in any dynamical system it is the trajectory that is being followed that is of interest, not any one static coordinate. Content and presentation are coordinates in the space, and don't really give us the conceptual tools necessary to analyze the trajectories of moving objects.

The bifurcation is unnatural, and one might suspect it is because it is being applied to applications whose meta-model doesn't really track that of the Web. They work, not because they treat their information as content or cleanly delineate content and presentation layers, but because they use model-view-controller architecture.

Hence, there is a tension between understanding these applications in terms of content (and the two philosophical approaches to making designs adaptive), and understanding these applications in terms of behavior. For the most part, the applications, by design, ignore content as means of integrating behavior and strongly favor an explicit, imperative approach to sculpting a system.

There is really nothing progressive about imperative coding; really it is rather old-school.

No comments: