On Using The Web May 15th, 2010
So I’m a Web Dev TA (ok, was) who works with SharePoint. By day I’d work with <table> elements nested 15-20 levels deep with more <table> elements. By night I’d vigorously enforce semantic HTML and unobtrusive JS. I find myself operating at both ends of a very passionate holy war.
It’s given me some chances to reflect a bit on each side of the debate, and it’s brought me to the conclusion that the most important thing for a web developer to take away from the argument has nothing to do with tables or layout at all.
In The Classroom: “That’s Not Using The Web”
While TAing SOEN287 “Intro To Web Development” I had a student express discomfort at the idea that HTML should be semantic and that a particular layout – which he found would be incredibly easy with a <table> – would instead require more work and some challenging CSS. When I insisted that HTML was semantic information (at least in the academic environment) he noted that Tabless Web Design was taking the fun out of his web site. The best retort I came up with was that it’s not always fun, but I wish instead I’d told him this little nugget I found on Tim Berners-Lee’s FAQ page:
That’s not using the web.
Ok, I’m taking the quote a little out of context, but I like it anyways.
Form Tim Berners-Lee, the World Wide Web is an information medium – he doesn’t concern himself much with the visual design of web pages, and focuses on the information therein.
So why is it so hard to get developers to hear any of this, even students working in an academic environment? Is the ideal even relevant anymore? Did the pragmatists “win” or were they just right all along?
Outside The Classroom
I don’t know if they won, but the reality is that this idealistic crap often won’t put food on the table. Web Sites that we’re paid to develop are – for some time now – the spiffy looking tabular ones, which often include a Flash splash page.
The problem of clients who wanted seemingly tabular layouts is also compounded with (and probably feeds) a decade-old developer mentality which dictates that semantic HTML accompanied by CSS wasn’t worth the effort, or wasn’t the point of web development.
As proof of this mentality I’m going to bring up Stefano Borini. Stefano responded to a post I wrote a few months ago, and wrote me a wonderful email. Turns out he sems like a pretty cool guy, and he will now forever have that warm special place in my heart reserved for one’s first blog commenter… despite the fact that my site has no comments… and as such is not really a blog.
We exchanged a few emails about the class attribute, semantics and how I really hope I didn’t offend him, and in one of those emails he mentioned the following:
I read it, (the w3c recommendation) but I also tend to forget very easily, and I must be honest, this point wasn’t of my interest when I read it, so I didn’t care
(…)
So now the fact is that most people (I assume) believe what I thought, namely that a class attribute is “just a name to refer in the CSS”. until now, I chose my attributes quite freely, but my post of yesterday was a warning for me and others as well: classes do have semantic meaning, choose your names wisely.
I asked if I could quote him on it, as it raises some interesting points about where web development has been, and makes me wonder why? Whatever happened that web sites deviated so far from the ideal? What made developers just not care? Is it just that any kind of software development is doomed to be off the mark? Or did something a little more specific get in the way?
Where Web Development Was And Why It Caused CSS To (kind of) Fail
In 1998 when CSS2 was published as a recommendation, the web-scape was a different place from what it is today. A big part of this reality is the browsers that users were using; even 6 years later, in 2004, IE6 and other older versions of IE held 95% of market share; FireFox and Safari were new and unpopular. So if you were developing web sites, you were targetting IE6.
IE6, however, does not (and did not) fully or properly support CSS2, and has (or had) no shortage of shortcomings in any CSS2 it did support. Any web developer can tell you this.
My favorite IE bug is how sometimes absolutely positioned elements disappear when you :hover over an anchor. A solid runner up (still an issue in IE7… not IE8) was a CSS rule I wrote which caused – for no explicable reason – a JavaScript error. I’m surprised I ever found a solution (remove and redo the CSS rule) – and that feeling of surprise, which is associated with solving a problem in older versions of IE, is a huge part of what sculpted the web-scape in the early 2000s.
Learning to write proper, semantically-relevant HTML with presentational CSS was almost impossible in those days, and definitly not worth the invested time and effort. You could spend all the time you wanted learning about positioning schemes and the box model but the research and hard work both never would and never could pay off. It was not what Malcom Gladwell would call Meaningful Work:
Meaningful work is work that is autonomous. Work that is complex, that occupies your mind. And work where there is a relationship between effort and reward – for everything you put in, you get something out…
Creating web pages in the 90s, no matter what you put in, you always got the same thing out; irrational/unexpected behavior and buggy software. At the time, it really was the best idea to give up and use a table, because it was unlikely you would ever have a solid grasp of how the tools (HTML-CSS) interacted. It’s no wonder then that developers like Stefano Borini – who aren’t stupid people, nor bad developers – didn’t take any interest in how CSS worked or what the standard defined; it really was useless knowledge. Not caring was the smartest thing to do, with the highest ROI.
And so it was, for years and years. Until Mozilla FireFox came along and shook things up. In order to keep up with the changing demands and needs of web-users, Microsoft had to release a new version of Internet Explorer… and then another a few years later. These new browsers were more compliant – though they still had their shortcomings. The victory, however, was that now idealistic web dev had the potential to become Meaningful Work and developers could create semantic web pages.
This was only half the problem, however, as CSS still has limitations, and customers still want (need?) visually appealing web pages, so it doesn’t really make any difference… or is that changing too?
Where Web Development Is And Why MySpace Is Failing
There is massive potential and opportunity in steering web development towards the ideal, not only because web browsers are behaving themselves, but because regular every day people are beginning to think of the web as an information medium. This is why websites like Hear a Blog (coincidentally my new favorite way to cyberslack) are popping up, and I also believe this contributes to why RSS is booming right now but a similar technology, Channel Definition Format, faded away in the 90s. Back then people weren’t used to the idea of the web as an information medium; they were still hooked on visual concepts.
Now, people are ready to use and perceive the web as an information medium.
We can see the world is ready by observing the social networking sites of the 2000s; Facebook and MySpace. Facebook has remained a monster success while MySpace has faded. Why? Because the intent with Facebook was always to use the web for information. That’s why from the very beginning user’s couldn’t customize the look and feel of their profile. Meanwhile, MySpace is truly the GeoCities of the 21st century; its peronalized, poorly designed, inaccessible and often flat out ugly pages may have been the rage back “Where Web Development Was” but now the reality is that…
That’s not using the web.
And people know this now. They may not be able to say it or explain it when you ask, but deep down inside people know that Facebook succeeded and MySpace fails because of Facebook’s understanding of how to use the web and MySpace’s dated (obsolete?) outlook on the web.
Now would also be a good time to point out it’s no coincidence that Facebook has some sort of accessibility help center and MySpace doesn’t. I’m not saying that Facebook succeeds because they care for accessibility, but rather that there is correlation between their success and their concern for accessibility – both stem from the same understanding of how to use the Web.
What’s Your Point? – Where Web Development Is Going
My point is that web developers of all sorts (be they graphic designers, Asp.NET programmers, Rails developers or PHP scripters) need to stop thinking of the web as a visual medium. My point is not that you shouldn’t use tables – that horse is long dead – but rather that if you find yourself thinking I should just give up an use tables chances are you’re already thinking about your web app incorrectly, not really using the Web, and stifling your product’s potential. You’re also taking the risk that you’ll be left behind, stuck in the 90s as the web-scape continues to change.
Don’t confuse web development’s past with your career’s future.
I see where the web is as being identical to where movies were in 1927… or more specifically, talkies. The tools, technology and theory for sound film was available for some years but wasn’t perfected until 1927 and even once a ‘talkie’ had seen mainstream success, it still took some years for it to become the standard. The industry players didn’t think it would catch on; they thought it was silly and that theirs was a visual medium. Technological impedemends had made them lose sight of the reality that to the consumers, they were an entertainment medium – not a visual medium. Once the transition came, people’s careers were ruined.
Personally, I don’t want to stand around idly while a similar change happens in my field, commenting on how it’s a toy, it’s a scream, it’s vulgar, and doubting if they’ll ever really use it.