With these web sites, would you say the web standards war is won?
Some people like to proclaim that the so-called web standards war, i.e. a wide-spread usage of web standards, is over. Let me take a couple of web sites as example why I don’t agree:
- Microsoft.com
-
Inline scripts, riddled with inline event handlers.
24 validation errors. - Google.com
-
No doctype, inline scripts, inline event handlers, inline CSS, table-based-layout.
66 validation errors. - Yahoo.com
-
Lots of inline scripts, inline event handlers, an extreme amount of inline CSS (just check how far you can scroll till you reach the
body
tag), some table-based-layout.
37 validation errors. - Amazon.com
-
No doctype, inline scripts, inline event handlers, inline CSS, table-based-layout.
A staggering 1172 validation errors.
Would you say that the war is won?
Hi Robert – in the case of Yahoo! the validator is picking up the cut down tables based version which is served to browsers which aren't capable of receiving the main home page.
Oh, come on! You should know better than the average "it doesn't validate, it sucks" troll on sitepoint how to test and what validation means.
First of all, there is no point in listing validation errors without quantifying them – an unencoded ampersand in a 3rd party ad include is a different beast than not closing DIVs.
Second of all, this post shows that you either have never worked on high traffic sites or never read up on what is different with them. Any http request you can spare makes the site faster, any script at the end of the body does not delay the initial rendering of the page (all scripts in the head are loaded first which causes a delay). Nate Koechley explained that very well at @media last year and Stuart Colville took notes.
I will be publishing an article on Thinkvitamin soon on some of the tricks you have to use that violate the ideas of best practices for web sites in order to speed up rendering and save on bandwidth.
Until then I'd like to point out an old article on evolt that explains why this kind of fingerpointing is dangerous and counterproductive to the webdevelopment community. We are not mechanics that rant about the shoddy quality of the people working on the same product before us, we are here to make things better. If you cannot be bothered to research the why and how and just point out what allegedly is bad (see Ed's point) then you shouldn't be reviewing at all.
Somehow I didn't believe that speeding up the display of a website page came at the expense of using best practices. Perhaps I've misunderstood…
Deborah, not to a large extend, but for example I always considered the head of the document the only viable place to put scripts, as it means you know where to find them. However, adding a script at the end of the document means the HTML before it gets loaded and shown first and then the script gets loaded.
Check Nate's presentation and especially Stuart's notes. He made some compelling points there.
What reason is there for coding errors these days??
The reason for some the use of some of the things that wouldn't be best practice on other pages is because it's the homepage. The inline CSS is to protect Internet Explorer users who have the page set as their start page from getting unstyled content. <abbr title="Internet Explorer">IE</abbr> has a bug that causes it to not cache the externally linked CSS of a startpage.
A lot of the other optimizations which are used are for performance, but performance is really, at the end of the day, about user experience. Yahoo doesn't care about wasting bandwidth, it's cheap. Wasting users' time is another matter.
Now, you wouldn't dare point people at MSN.com where the page validates 100% would you?
I can cut Yahoo some slack for inline CSS — it also saves a roundtrip to the server if it comes over the wire with the HTML. It's quite a different matter seeing Apple Inc use tables as their primary layout mechanism. Of course, pointing this out labels me an Apple hater I suppose…
I have a question, do this validation-errors make the sites more inaccessible?
Cheers!
Ed,
If that's the case, interesting (and my bad). Still, the point about, for instance, inline CSS stands.
Chris,
I agree, it might be on the border-line to trolling, and yes, there's definitely a difference between an error and an error.
When it comes to the number of HTTP requests and loading of scripts, its a valid point. However, take the CSS on the Yahoo web site: sure, it would be an extra request the first visit, but just imagine the bandwidth saved and the better performance you'd get for the successive pages with all that cached instead.
I'd say that my reviewing is as thoroughly completed as those proclaiming that the web standards war is won; I'll let you be the judge if that means it's good or incomplete…
Deborah,
Hard to tell. I do have worked on a number of high-traffic web sites (although, to be fair, not comparable to the ones listed above). My hope is that those two don't have to collide.
Devon,
Depends on the error, I guess…
Tom,
To my knowledge, with IE it differs if you use the <code>link</code> element or <code>@import</code> to include the CSS. I also have to say that I'm a bit questioning that an externally linked CSS would never be cached for any web site's start page.
I agree about user experience and wasting time. But it isn't just about Yahoo's bandwidth and their stance about that, but also the speed of the user's internet connection and such circumstances.
Rob,
Why would I? I chose four major web site's start pages. I'm sure all companies above have other web sites and/or web pages with better code, but for the comparison to be somewhat fair, I only took a look at their start pages.
Carl,
In my experience, it's definitely worth that round trip compared with the caching benefits you'd gain after that.
icaaq,
Well, it totally depends on the error. An invalid attribute might not hurt accessibility, while elements that aren't closed can.
Welcome to the real world of large scale websites!
Johan,
For the sake of argument (if that's what you meant with your comment): if bad (read: less good) practices are ok to use in large scale web sites, and naturally, it's ok for all those happy amateurs with their dog/cat picture web sites, who should then write proper/valid code for their web site?
Web sites with a visitor number ranging from 100 – 10 000 per day? Maybe we're wasting our time with web standards…
You tell me.
What I am trying to say here:
I was being mildly sarcastic to the web standards paradigm itself!
If all you wanted to be is mildy sarcastic about the web standards paradigm why not explain why testing like you did will not result in a lot of "valid" sites and why.
Simply pointing out that a lot of big sites have "issues" is the quality of a troll posting on slashdot. It has been done to death and the main outcome of these things is that – as you pointed out – some web developers maintaining smaller web sites don't care about implementing standards.
Nobody needs to, but you safe yourself a lot of trouble when you follow them, and uh – guess what – a lot of these invalid sites are valid before they get streamlined.
Btw, what are "online event handlers"? π
Robert – I'm all for validation but it's worth pointing out that carefully crafting a site which validates perfectly in a development environment is one thing, ensuring it stays that way when it's put live isn't always possible. Numerous outside influences such as adverts can have an effect. To prove this point you have only to look at this page on your site as well as your home page both of which a validator reports as being invalid with 10 errors. Does this mean you're not in tune with web standards and the need to do things correctly? Of course not.
With regards to the CSS, as Nate's presentation shows, careful consideration is given to all aspects of page performance and it's fair to say that all the home pages listed above are somewhat of a special case.
I had a great comment yesterday, but the server broke. Promise!
Chris:
With regards to high volume / high profile sites, I find it interesting that you find it acceptable to put scripts in the body element, and then even claim that it'll help in some obscure way. Inline scripts makes your site harder to maintain, and actually increases the overhead on the server (cannot be cached by the client, making page requests bigger).
I've been reducing HTTP requests for a long time, and have devised methods to get around all sorts of issues with external scripts, so that point is really moot. Especially since I can reduce all my scripting to one request, that get's gzip compressed and has headers that enable client caching.
And yes, my scripts run as soon as the dom is ready, and not when the entire document is loaded, so the user will never know the difference.
Heck, I can even do multiple combinations of scripts, that allows each language to have it's own unique url, to still maintain cacheabilty and preventing unwanted caching.
Do you really think that scripts in body does not reduce rendering speed? Come on, man, you don't seem that naive. Assuming that scripts will not cause pauses or even reflows (document.write anyone?), when placed inside markup, is just silly.
So, if I was your client, running a high volume / high profile site and I caught you putting inline scripting, css and even document.writes and other crap in the content of my website, with the excuse of "performance", you can bet your ass that you'd find yourself looking for a new job instantly.
Don't forget that you make the website for it's users, and not for the hardware it runs on.
</rant>
I am looking forward to your Vitamin article, to see which tricks I _have_ to use … I am sure there are some nuggets I can pick up in the neverending quest of making quality websites
I am afraid you did not understand really my point. It was a unintended pun since Robert gave examples of large scale websites only, and you all are so serious at times. Why would Robert give exampels of these websites? I think because they are well-known websites in the first place. It would have been a better choice to give examples of other large scale corporate websites, eg car industry, newspapers, supermarket chains, sportswear.
Scale should not be a criteria to judge websites but the level of how well implementation of webstandards have been applied!
Of course, web developers that build large-scale websites could be very well build be intended to be build with webstandards (valid code, semantic document structure) but because of a variety of reasons these websites can loose their vaildness. What can go wrong :third-party additions like flash ads, banner ads (marketing campaigns), content authors that write unvalid code, and of course web developers that lack good knowledge of web standards, web developers that work in a production environment where the initial code works but is not using proper web standards, top-down management that does not see the advantage of changing coding practises (hey it works, as long as it works in IE WIN).
And also of course, one chooses to use eg tables over CSS based websites because management or the site owner do not care about that their websites need to work on multiple devices and platforms. The idea that people all use IE6 WIN where ever they are … And another thing, a lot of webdevelopers are not keen on using web standards because they are not all that well educated on webstandards, and who knows management thinks web standards are worth the budget.
Small scale websites when build with web standards are as well build by amateurs and semi-pros and pros. Why? Web standards are not that difficult to implement, and small scaled websites are easier to maintain too. On the other hand if the website owner uses a CMS that does not put out valid code, you get the same problem again: bye bye webstandards. Large scale websites have a bigger budget and can afford to author the website by more educated people at times.
Of course, if the web developer of a small scale website does not implement web standards accordingly, it could be less worrying because they have less traffic. And from a commercial point of view, one considers user-experience less important because there are no thousands of potential customers using the website. But that is of course a narrow point of view. From a social point of view, every
user of a website should be regarded equally. On the other hand large commericial websites that use extensive marketing campaigns redesign their homepage very often, and they could be hiring someone different that messes with code again.
Also webstandards are rejected at times, if it interferes with usablity or the user-experience. A classic case are tables used over CSS-based websites.
But of course web standards are just part of it, usability, information design, accessibility, semantics, communication design are equally important.
Sometimes web development seems like a religion. There are so many contradictions you end up not knowing what to believe! I always thought adhering to web standards was a good thing, though. So maybe that makes me a fundamentalist.
Sign me up for that church then, I hope the tax won’t be too harsh.
Thanks for your comments.
Chris,
Ha ha, wonderful! I've changed the typo…
Morgan Roderick ,
Read the links about Yahoo’s approach provided by Chris Heilmann above. Example: “A single large file loads fastest. HTTP requests are the nemesis of a well-tuned site. Build process is therefore very important.”
A build process can manage inline scripts and CSS just as effectively as using separate files. The manageability benefits come from the separation, not where the separation occurs. The cacheability savings of external files have to be balanced against the number of HTTP requests/server hits, especially so in stand-alone, high-traffic, special case pages like Yahoo’s homepage.
Is it really so hard to understand that the answer to a technical question may be “It depends”?
I do hope most Web Standards protagonists understand that the movement stands for something more than “one-size-fits-all” dogma.
Mattur:
I am very well aware of the work that Yahoo is doing these days, any web developer worth his salt should stay aware of what innovations and discoveries the big boys are doing.
But… Saying stuff like:
without quantifying it is just trolling, and I bought the bait. For that I am sorry.
And I do agree, "it depends" … but sacrificing the quality of a site for short term gains, is beyond "it depends".
[…] s fastest.” (Nate Koechley) That’s why Yahoo! apparently has such an amount of inline CSS. They found out browser caching […]
Hehe, nice π I just counter with my "semi-trackback" on Lycos and the Dark Side.
Robert said:
<blockquote cite="http://www.robertnyman.com/2007/01/24/with-these-web-sites-would-you-say-the-web-standards-war-is-won/#comment-30070">
take the CSS on the Yahoo web site: sure, it would be an extra request the first visit, but just imagine the bandwidth saved and the better performance you’d get for the successive pages with all that cached instead.
Do you have stats to back this up? Yahoo did some experiments and found 40%-60% of visitors have an empty cache experience. Of course, every site is different, but I notice google also inline everything on their homepage.
In any case, having CSS in style tags is perfectly valid html, so I'm not quite sure why you're using this to demonstrate a site not using web standards.
Your point is a good one, it just needs better examples.
Paul,
No, I don't have any proper reports to show that; all I have is my personal experience. Besides, web browsers are supposed to work that way, right? So if they don't, it's a flaw in them and not the code itself.
Interesting research by Yahoo, thanks for the link. I guess it also comes down to web browser cache settings in the end.
And yes, when it comes to CSS within the web page, it is perfectly valid. I guess this post covered web standards and what is commonly known as bad/less good practices.
Chris has posted his article on ThinkVitamin, so I've decided to move my part of the debate there, since they're likely to have a bigger audience (sorry Robert π )
http://www.thinkvitamin.com/features/dev/enhance-…
Morgan,
Aw, come on! You don't know how many visitors I have… π
Thanks for the link; great to have in this context.
All your visitors are belong to me … or thinkvitamin π
[…] ejerk that there are those who say that the web standards “war” is won, when a cautious peek into the real world shows th […]
i am currently doing a GCSE in I.T. I am writing to ask for permission to use your breast cancer U.K banner. It is a fase publication that my teacher and an examminer will see.
please could you email me back to let me know
kind regards
isobel thomas
Croesyceiliog school
South Wales
U.K