“Web Standards”… that definitely sounds cooler than it really is…
At first we had HTML and Mosaic… Then came Netscape and Microsoft with their proprietary extensions… and so came the need for standards. We got several versions of standardized HTML, but still varying implementations (IMG align anyone?).
Then came some “really really” standard method to iron out rendering differences: Cascading Style Sheets! Well… another failed attempt: people tweak them even more than standard HTML and the rendering differences get even worse. So now, we have a collection of dirty tricks to apply different CSS to different browsers.
Okay, forget that; we have an even newer standard now: XSL. You just send pure and clean XML to the browser. Then you let the browser reformat it with an XSLT template. PLEASE! XSLT implementation differences are just as problematic as with CSS… and finally no more than with plain HTML! And regarding IE, it’s definitely too slow to be really useful! >:XX
So today, I really wonder why we go through all this pain… Sending different presentations in plain HTML (okay, let’s say XHTML+CSS for bandwidth and maintainability optimization) was faster than desperately trying to find the “compatibility spot” in a single “standard compliant version”! :|
Not to mention there are still old browsers that do not support a lot of standards out there… and there are more and more alternative browsers (on either desktops, appliances or mobile devices…) that all support standards in their very own way! :(
What can we do? I mean pragmatically! Apart from condemning everyone that doesn’t comply 100% to the standards (just a few millions anyway…).
I think we need to remember those “best practices” we had a few years ago and get back to something like this:
- Identify most common targets (browsers/devices) and provide them with a specific+optimized presentation (CSS/Flash/whatever). Note: contrary to popular belief, most common targets and their “market share” largely depend on your audience!
- Provide at least one “safe” presentation. One that is guaranteed to be readable by almost anyone. Alternatives would be good here: maybe one text only (HTML 2.0) and one with basic CSS and images that makes it just a little more attractive (but still avoiding any CSS/Flash showing off!)
- Provide a manual switch between version for the times when the user uses a browser that can do more or less than we had expected. (It would be wise to always bet on less, but you’ll inevitably make false assumptions at some point.)
Now, for personal sites… I completely realize that providing multiple versions will sound like crazy to many of you. How can I expect you to update content concurrently in several files? Well… I don’t! Any hosting provider nowadays will let you use dynamic page generation (one content, several presentations). I’ll get back to this topic later…
Comments from long ago:
Comment from: Mathieu Sylvain
I think you dont really understand the purpose of XSL. It is not there to replace CSS in anyways. It is targeted as a data-transformation tool mosty used on the “Server Side”. CSS and XSL simply have no relationship at all. Except that theire both “web standards”.
Your dismissal of CSS as a failure is not really convincing. It sounds more that “you” didnt understand how to use CSS, so you consider it as a failure. Failure of what exactly?
Most “good” hacks that are currently in used will still provide standard compliant code and make you product backward and forward-compatible.
Your solution… it isnt one. Nobody want to do an “Alternate version”… nobody! And relying for a “manual switch” is even worse (except for flash).
Also… tyring to guess which will be the profile of your future users is usually as tricky as guessing the weather.
I “believed” in web standards for the first 4 months… then I “knew” web standards, because basic trial and error showed me that they worked quite well!
If your still stuck at “believing in them”, it might only mean that you dont understand YET.
Comment from: François PLANQUE
Thanks for your comments! I regret you missed my point which actually isn’t against web standards, but against blindly believing those are real world standards. Anyway, here are a few answers:
- Where did I say XSL was a replacement to CSS? It is just another layer you can add between your data and your presentation. Wether you use it on the server or the client is an architecture choice. My point is: there supposedly is a standard for using it on the browser and it just doesn’t work consistently… again!
(Maybe I should explain this a little more: when I am talking about CSS, I am not saying it is a replacement for HTML which I mentionned before; when I am talking about XSL, I am not saying it is a replacement for CSS which I mentionned before.)
CSS is a failure as a standard. That doesn’t mean it isn’t useful (BTW, I am using CSS and I am happy with the added efficiency it provides!) I just isn’t standard! You admit it yourself: you mention hacks and worse (in a pro-standards argument): you advocate them!
No matter how good your expertise is with CSS, would you simply DARE to tell me you didn’t test your own layout (which by the way is pretty nice) in every single browser you thought was relevant in the market? Admit it, you did fine tune it for all those browsers.
3b) Where did I say you should rely on manual switching? I said you should provide it in case something goes wrong: like your hacks don’t work in a particular browser version no more! :>
- Your own website is all in pixel fixed widths! That’s totally against your own claims of not ’tyring to guess which will be the profile of your future users’. It require horinzontal scrolling at a rez of 800 and it makes poor use of screen space at high resolutions. It can even get impossible to read on screens with very high resolutions like 250 ppi (instead of the regular 92 ppi).
Now I completely do understand why you used fixed widths: it makes CSS positionning SOOOOO much easier!
So go on and take as much pride as you want from your design skillz with CSS (we all agree CSS add value to HTML and we all agree some people leverage them better than overs), but please give me a break and stop talking like a Zeldmann; you’ve got to realize that your own use of CSS is in no way a demonstration that web standards actually have become implementation standards!
Once again, I am not against web standards! Not at all! I am saying that you should remember, when using them, that you definitely cannot rely on them as being real (implementation) standards! You did that in your own way (fixed width :-/). My post was about my own guidelines, which I think are better practices to dealing with we problem…
Comment from: Denis Boudreau.net/
Hi François, it’s been a while since we chatted. :)
From what I understand in your point, the problem is not the standards themselves, but how people use them. To me, that would be another story completely if everyone suddenly got struck by lightning and understood the best way to use these tools. Of course, as of today, most people couldn’t care less and the few who do actually do their best to get them right (which is far from a guarantee that it will be). One can advocate them and still don’t get it perfectly right. It doesn’t mean they should stop advocating, or worse, stop trying to master them.
I, for one, tries really hard to use them intelligently. I for one, makes a few mistakes here and there. Some of them lead by my own incompetence, some by the lack of support from the tools used by my visitors (I find it’s less and less of those actually and more rom my own fault – which is very formative). Does that mean I should stop worrying and send it all to hell ? NO, it just means I must keep perfecting my skills, and that I must keep advocating until there are more people who actually follow them than people who don’t. :)
When I read your post, what I seem to hear is not someone who doesn’t believe in standards. I’ve spoken with you a few times and though you were never sold to them as much as I am, you always stood up for the best tools available. When I read your post, I seem to hear someone who’s fed up of trying and continually being brought back to the fact that these times aren’t perfect yet. That technologies aren’t perfect. That people aren’t perect and the way they hack the system isn’t perect either.
I think the thing is to be patient. Revolutions take time, and so does clean coding habits for the rest of us. :)
What you propose as a good baseline hardly seems interesting… unless I haven’t understtod it right.
Why should we keep code-forking our sites when we can have only one version for everyone tht degrades graceully through those who don’t have the latest tools available to browse them (or those who have tools so new they can’t support it yet) ? After all, isn’t it what we’ve ahd forever ? Multiple sites, quality assurance over a zillion browsers, etc. ? It hardly seems like a new proposal.. it seems more like going back to the hell that was web developement a few years ago.
Of course, I still test over multiple browsers when I do some things, but the more I believe I master my craft, the less I feel like I need to… just liek I don’t validate my code as much as I used to. Not because I don’t care anymore, but just because I don’t make as many mistakes as I used to. And most importantly, because I don’t feel I have to prove myself over it anymore. I know it’s pretty clean and I know my mistakes will eventually show up by themselves (at which time I’ll correct them).
And most of the time, I realize I could have just kept going without even testing my design in all those browsers because after all, it displayed correctly enough for me not to bother in the first place.
This is not due to sheer luck. It’s simply due to web standards, which I’m slowly understanding and using more effectively.
Personnaly I’ve been doing something that’s pretty close to what you propose with your 3-step program for the past few years and I came to realize it wasn’t as effective. We’ve been able to downsize the quality o our products for older broswers, make alternate versions of sites that never got updated as much or other such things.
But nothing could cut it like standards did for any site I’ve ever done like that.
Comment from: François PLANQUE
Hi Denis. Nice to hear from you! ;)
I do agree with most of what you say, actually. Once again, I am not ‘sending it all to hell’, I do strongly recommend people use web standards, but as you say it: they aren’t perfect, or more precisely: they are not consistently available on the target base (unless you’re dealing with a clean corporate intranet).
So we necessarily need to cope with this situation. I think we all agree up to that point.
Now my problem is this: I’m getting really nervous, not with webstandards advocates, but with webstandards integrists! The blogosphere is full of them, so I stumble on integrism way to often to remain silent on this! :»
By webstandards integrism I mean: ~
All tables are evil~, ~
One stylesheet MUST fit all targets...'~, ~…even smartphones’~ and stuff like that.
Don’t get me wrong: I do myself follow these guidelines whenever possible. The problem is that at some point it just isn’t possible any longer. At that point, some people will cheat themselves with all sorts of CSS hacks. Others will use fixed width pixels and throw away sizable+fluid layout (which in my opinion is a far superior accessibility goal than technical standards compliance).
What I say is that these kind of trade-offs are the wrong way to go. You loose some very important forms of accessibility. Or you loose maintainance capacity by having an esoteric CSS file.
Having used the word ‘maintainance’ I feel an urgent need to clarify another point. My whole post here is aimed at professionnal web design, not homepages, personnal sites or *HTML contests.
The important thing here is this: any profesionnal website today uses dynamically generated pages. Static html files are good for caching purposes or education, not for content nor website management.
This leads down to this: there is absolutely no added burden (do I need to repeat: in a professional context) to generate multiple versions on the server rather than trying to have clients automagically cope with their own quirks. (Again, let me repeat that I do not advocate multiplying versions. The more targets you can handle with a single non-hacked CSS, the better!)
We all agree anyone taking pride in handcrafting each one of his article pages can’t reasonably go any other way than maximum CSS leveraging. But how reasonable is it in the first place to handcraft multi daily published pages? (You most probably know someone who still does that… :» )
So I strongly agree with you… assuming that by ‘code forking’ you actually meant content forking. No one should be forking content, NEVER! Code forking is another issue. And CSS hacking actually is code forking!
Okay, so basically my point is this: regarding the global process and context of professional web publishing, web standards integrism is a waste of time, productivity, accessibility and maintainability. Wise use of standards in the compatibility zone + automatic server formatting for specific targets is what I believe to be the most efficient today.
I sure hope webstandards do standardize in the future! ;) I can be patient about that, but in the meantime we still need to make websites that work today! ;)
I hope, I’m getting clearer with my comments and you can agree with me in the end. I must admit I tend to write my posts as if they were addressed to myself with my very own assumptions, so they certainly sometimes don’t emphasize enough on context! :P I’m talking about real life here! :b
Comment from: Denis Boudreau
Actually, I agree with you 100%. Integrism is bad in webstandards as it is in anything else. In my opinion, one of the reasons why open source doesn’t get as popular as it should is because of all the bad press one or two integrists will make, that litteraly kills all the good work of another 20 that actually had something intelligent to say…
But integrism is understandable. It’s the pendulum thing. One day you’re coding like it’s 1997, the other day you discover standards and you blow everything to hell… the tird day, you realize table can be okay sometimes and some other times, you’re better off with css for layout. It’s all a matter or being wise enough to choose the best tool for the job.
So bottom line, if your point is this, then I fully stand behind you. However, I try to have faith in people. Most of them will kick back from their integrism by themselves. Then they actually make pretty good evangelists once they get past their obsessions. ;)
As for professionnal sites, of course there’s always something that comes and breaks the rules. The important thing is to make reasonnabe decision, that are well thought of. Once you’ve decided on something with all consequences in mind, then you probably made the best decision there is.
Comment from: François PLANQUE
Ok, we agree. :)
On that other topic of integrists and evangelists too, I wish I had your faith… :» I don’t want to drop any names here, but there are some well known bloggers on the web, who call themselves WS evangelists but who actually turn more and more to integrism! :-/
Comment from: Denis Boudreau.net/
I know… you’re thinking french, english… or both ? Email me your list, I’ll email you mine and we’ll compare to see if we’ve targetted the same people ;)
Comment from: François PLANQUE
Both of course. ;)
However, I really don’t wish to drop any names, even privately. (Moreover, I trust you to spot the ones I was specifically thinking of ;) )
I have nothing against those people, I just don’t agree with their ideas. So I don’t want to enter in pointless fights with other bloggers, I just want to stand up against naive webstandards integrism.
Comment from: Denis Boudreau.net/
Let’s drink to that :)
Comment from: Kory Doszpoly
My comment is about CSS. I love it to death, and had great fun converting my website. . Then I found out that Mozilla’s Firefox is gaining market share, so downloaded it. My site looked crap. It turns out that it doesn’t support nested layers (div within div – in case you were wondering).
So to a certain degree, I am still stuck with those god-forsaken tables.
Will the next version step up to the plate, and how soon?