As originally written in December of 2010
I have a dream:
Imagine yourself in a couple of years, one random morning of your typical workday. You open your web document editor, subtly smiling while you remember, a bit nostalgic, the old days. The days when you had to worry about stuff like browser support of constantly evolving standards. When you had to write all sorts of hacks and side effects to achieve this or that layout, let alone making it work across platforms.
When you discovered a cool new feature implemented in only one or two browsers and knew you’d have to wait another bunch of years until enough users had updated their browsers so you could use it somewhat consistently. When you wrote the same class name over and over in your CSS because you followed the structure of the HTML, applying styles to elements in the hierarchy and something as simple hierarchy and something as simple as a three column layout --two fixed-width on the sides and a fluid one in the middle-- was called ‘The Holy Grail Layout’. When you designed your webpage in Photoshop, sliced it up in pieces, and then reassembled them with HTML and CSS.
The web document editor has fully loaded and you return from your mental trip along history lane, sighing in relief. Those days are over.
The current tools for creating web documents and apps just aren’t good enough. Starting with fragmentation in browser support, difficult to use features of CSS like floats, vertical alignment and lack of integration with zooming and touch input on mobiles, to name a few, over to the very static nature of CSS.
Right now, standards are written by the W3C and WHATWG, which both are made up of companies fighting each other, trying to retain a competitive advantage and trying to figure out a way to reach an agreement. At a glacial pace, I should add. When it DOES happen, the browser makers that are in a bad mood about a decision can choose to just ignore the specification and basically do whatever they please. Never ever they put designers and developers as a top priority on their agenda. We always suffer the consequences, and are left figuring out a way to overcome the challenge to create something amazing that works right across all browsers.
On the other hand, there’s little we web designers and developers can do about it. We’re at the mercy of whatever browser makers choose to do, since, while we could engage in discussions about certain features, the conclusions reached won’t be binding anyway. We need to bypass them.
To completely rethink the way web documents and applications are created, from the languages used to create the content and presentation, to the rendering engine to display it. To create an open standard and a cross-platform library that provides browsers the ability to render documents written according to that standard, developed by the community. The standard will use text files: XML as a language to structure content and a new advanced CSS-like (but way more powerful) language to instruct the renderer how to display and interact your document.
The part of the various browsers we want to NOT be different, the rendering engine, would be shared among all of the browsers allowing you to focus on your cool project instead of dealing with statistics to decide if you can rely on each and every feature you use and figuring a way to create a ‘good enough’ fallback for older browsers.
I firmly believe in a complete separation of pure content from presentation and behavior. To achieve this, the visual presentation language needs to provide the ability to manipulate the hierarchy of the content structure, creating, reordering and repositioning elements, allowing the content to be structured according to its semantics, or even to ease reading to a screen reader for accessibility, instead for presentation.
First, we need to create demand for the technology, otherwise browser makers would never adopt it. This is where an intermediary layer in form of a browser plug-in comes into play. Until demand is high enough, a plug-in that wraps the library will be developed to add support to any browser that has a plug-in architecture, so that the technology is available before it is ‘officially’ supported.
How to create demand? Providing so many cool features and streamlining the process of creating web documents -in short, making lives of web designers and developers so much easier- that they don’t want to go back to HTML and CSS. If the efficiency of a web professional is augmented by a considerable amount, the companies will start to get interested in the use of that technology as well. Finally, browser makers will choose to support it natively, so that installing a plug-in will no longer be required.
Features like Object Orientation in the UI language, References to other elements (eg. make elementA be as tall as elementB is wide), Expressions -math- (eg. things like 100% - 50px), Element Reordering, Structural independence from the content, a revolutionary new Layout Engine, Vector Shapes to design your interface, streamlined Selectors and Filters, and cool stuff like Gradients, Patterns, Effects, Advanced Zooming, Transformations, Animations, Behavior, and a very long etc, will allow you to create advanced web interfaces with ease and without all the headaches of today’s environment, being able to display the same across platforms.
I’ve already written a good part of the draft specification for the UI language, and currently I’m building the community and designing the site to provide a home to this project, including things like the specification, feature descriptions, tutorials, namespace databases, and all that stuff. But I need help...
You’re invited! Come over to http://groups.google.com/group/axr-main/ and start contributing! We need web designers, front-end and back-end developers, typography experts, parser and compiler developers, computer graphics experts, mathematicians, evangelists... yes, even community managers!
Together we can make a better web, and the days we envied our graphic design, motion graphics or 3D counterparts for their tools will be over!