Only 4.13% of the Web Is Standards-Compliant
Death Metal writes "Browser maker Opera has published the early results of an ongoing study that aims to provide insight into the structure of Internet content. To conduct this research project, Opera created the Metadata Analysis and Mining Application (MAMA), a tool that crawls the web and indexes the markup and scripting data from approximately 3.5 million pages."
...on which standard the designer chose.
The simple truth is that interstellar distances will not fit into the human imagination
- Douglas Adams
OMG 4.13% of the Web is Standards-compliant!?
It is very simple http://validator.w3.org/
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
W3C's validation tools
Normally I'd go on my own rant but I'm feeling lazy today and recently I read a good article at A List Apart that sums it up. As for the W3C, I like this list they compile:
W3C's Pros & Cons
Pros:
Cons:
You should read that article, it's pretty spot on for this subject.
My work here is dung.
I wonder if they're throwing away every page that doesn't fully comply or if they're actually including the pages that almost comply but have a typo or missing doctype or missing closing tag. I'm guessing the former by the numbers which seems a little unfair to me.
Silly rabbit
...the rest just renders perfectly in IE.
(i would prefer if there wasn't any truth in it.)
Why is this a surprise? We are limited by non-standards compliant browsers.
Unfathomable amounts of development time has been wasted over the years trying to set sites running and usable in multiple browsers.
To complicate the issue, over the last few years there has been an explosion in the number of browsers on the market. It is really no fun navigating this modern tower of Babel.
If I had one wish that would be granted, it would be that all browsers would be compliant to a standard. Literally millions of man years in development time could have been saved if this issue was somehow nipped in the bud earlier on.
Participatory Governance : The only feasible option for a real democracy, where everyone really does have a say.
Isn't that a bit like saying, "my C code fails to compile whenever I pass it the flag for strict ANSI checking, but other than that my code is ANSI C compliant"?
My blog
Well not in the least bit idiotic actually.
It's up to me as a user to choose where a url opens, especially since we are all using the tabbed paradigm now.
Also depends on how old the websites they searched are..
only recently added websites or also websites and old pages that exist longer than the standard they validated against exists ?
Learn about pinball machines on www.flippers.be
For example, xhtml-strict does not include support for "target" attributes in links. What kind of idiotic decision was that?
A very good decision, there are two main uses for the "target" attribute:
/Mikael
Greylisting is to SMTP as NAT is to IPv4
This is sad. The situation is even worse in some non-English web domains.
Why can't the web stick to something simple? 95% of the sites I use, would be fine with just plain simple HTML 2.0. Instead, we've got javascript, CSS, XHTML, and other buzzwords. Which in the end, take control of how a web page looks from the user's hand.
I like to read text, on a monitor, green on black (or white on black). I would like to format a web page the way I want to see it.
The vast majority of the web is simple formatted text. There is no reason for this to constantly evolve onwards and onwards.
The lack of a target attribute really bothered me when I first ran into it. Their argument was something like how websites shouldn't be controlling the browser, as in creating tabs/windows, etc. Of course you can hack it in with Javascript which is something I refused to do, what's the point of striving to be standards compliant when you break it a minute later with Javascript? Anyways, I thought about it and kind of agreed with the notion, so now I just externally link a lot less.
Reviewing just the first hour of video games.
Even if your app is 100% standard compliant, it may not be cross browser. Not even if you pull IE out of the equation. Not even if you ONLY TARGET FIREFOX (there are differences between FF2 and FF3. FF2 doesn't even fully implement CSS 2 itself...)
So by now, devs have reverted to another philosophy: make websites that are crossbrowser, and -mostly- standard compliants.
If you look at some of the most heavily cross browser web sites out there, especially the ones that are extremely backward compatible (down to Netscape 4), they are in HTML 4 quirk mode, and not standard at all. But they work better than most.
The standard also doesn't dictate defaults, which is quite the big hole. Being standard compliant doesn't help too much. Add that the standard evolves extremely slowly, and if you want to get the job done, you need to bypass it.
Thats why the W3C stuff is a standard proposition. No one "has" to adopt it. There are good standards out there, but as a general rule, anything coming out of the W3C is a joke of a swiss cheeze. Looked at the XQuery specs lately? My significant other works on a project to implement a full XQuery engine. A -lot- is left to interpretation, is loosely defined, etc. Same with XHTML and CSS. Even fully implemented, its vague, poorly designed (hellllooo.... versioning anyone? API 101?), and all around pathetic.
The faster we get rid of it, the better. Either by a proprietary spec (Flash may not be open source, but at least it freagin work, mostly cross platform if you don't care to use the latest version at all time...better than XHTML/CSS anyway...), either by a new standard body that doesn't suck at -everything- they do. XQuery, XHTML, CSS, SOAP, XSD, XML... can they do ANYTHING right?
1. the web is still evolving, the standards keep changing. no pressing need to lock things in
2. it is superior design to have a browser that gracefully degrades rather than being and brittle and refusing to render everytime someone forgets to close a <p> element. not simply because of nonstandard pages, but for a whole host of other reasons, including handling partial transmissions
3. the strength of the web is open participation, low barrier to entry. hobbyists should publish, and this is a good sign. hobbyists should not expected to be anal retentive standards zealots
complete standards compliance should always be low on the web because this is a sign of a HEALTHY internet, because it means nonprofessionals are contributing content. this is always a good thing, this what made the internet a powerful nw form of media in the first place. if ever there were some sort of gatekeeper organization or rigorous technical specification that enforced standards compliance, you would raise the barrier to entry onto the web by regular joes. you would reduce the variety of the web, make it more monoclonal, and hurt a vibrant ocmmunity
low standards compliance is not only a complete nonissue and not a problem, its a good sign. the lower standards compliance is, the better for us all
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
MAMA didn't validate against a single document type. They validated against the document type that each individual document claimed to be. So all the ancient HTML 2.0 pages out there will correctly be identified as valid in they are, in fact, valid HTML 2.0.
Bogtha Bogtha Bogtha
There aren't degrees of validity. A document is either valid or it isn't. You can't be "more strict" when validating something, if a tool offers you an option like that, then it is doing something other than validating, it's probably linting as well. There's at least one widely-used "validator" that doesn't actually validate at all.
Yes you do. If you didn't close them, your pages wouldn't work in any browser. What you mean is that you don't explicitly close your paragraph and line break elements. And you don't have to. The closing tags for <p> elements are optional and the <br> element type is empty. Those are not errors.
Bogtha Bogtha Bogtha
./ is mostly text, but how did you post this comment? Any Page refreshes?
Actually it uses some pretty sweet AJAX calls.
Progress usually comes from ignoring standards.
Does it mean that 94% of websites did not find the standard useful?
Or perhaps that the standard is poorly presented, causing fewer people to be aware of it?
My personal leaning is that the standards body lost control of their 'standards' a long time ago, but they haven't realised yet. The only real thing most web devs care about is 'does my site/application run as required in the browsers I need it to?' If the answer is 'yes, if you don't follow the standard', then the standard is ignored.
A learning experience is one of those things that say, 'You know that thing you just did? Don't do that.' - D. Adams
http://validator.w3.org/check?uri=http%3A%2F%2Ftech.slashdot.org%2Farticle.pl%3Fsid%3D08%2F10%2F16%2F1325215&charset=(detect+automatically)&doctype=Inline&group=0
If Slashdot shows up with 28 errors, would you really expect anything at all out of the non-technical media?
It's up to me as a user to choose where a url opens, especially since we are all using the tabbed paradigm now.
User agents currently do not allow the user to submit a form into a new window or tab. This is the nearly nine-year-old bug 17754 on bugzilla.mozilla.org with 99 votes.
You only need to make one mistake in your markup to be non-compliant. I would be interested to see what the degree of failure is for the other 95.87% of sites. My website, Wii Fit Forum currently fails on six counts, all just simple errors in the code which I plan to fix. But currently, the site displays just fine, so I have more important things to worry about. I think this is the same for many publishers.
Unfortunately for the novice, the ignorant, the lazy or the just plain error-prone (the last two are me), the W3C and the browser industry do not make it that easy to be compliant.
HTML standards are the current prime example of the old joke "the great thing about standards is that there are so many of them". The W3C really needs to stop pissing around with all this semantic web crap, and concentrate on making what is already there work better.
We need a single standard which embodies all the best elements of the existing ones in a coherent form, and then the browers manufacturers need to get their arses in gear and implement it properly. The novice developer is currently confronted with a mish-mash of alternative doc-types, each of which has different pros and cons, and which may or may not work properly depending on your browser. It needs to be done soon, not over a ten year timescale.
When you can stop worrying about whether your site will work in various browsers, then people will spend more time on compliance. Until then, people will worry about the important things, such as their readers being able to see their site properly.
I know I should treat standards with more importance, but while the current mess persists it is hard to care.
Paul Leader
When they don't work with the tools (various browsers).
Better to build a website that works, than one that meets standards but display poorly in the browsers of your users.
Ask yourself this simple question. If it does not look good in the browser, is your client going to accept "Well it's coded to standards!". Heck no...
No, that's something different. There aren't degrees of strictness when it comes to validity. If a document claims to be a Strict document, and makes a single mistake, then it is invalid. If a document claims to be a Transitional document, and makes a single mistake, then it is invalid. In both cases, it's an absolute rule with no laxity.
Bogtha Bogtha Bogtha
XHTML-STRICT is not for everyone, it's intended for those (like me) who are more development oriented and wish to completely separate structure from presentation. A "target" attribute is clearly a presentation attribute since it defines how the linked reference is presented to the user and as the parent noted, it should be up to the user to make that choice.
When wanting to control presentation in XHTML STRICT, you should use DOM or CSS, that way, they structure (XHTML) is removed from the presentation (JS/CSS). I typically link all scripts and stylesheets. That way the XHTML is made portable in terms of data with the JS/CSS being limited to only effecting a web client. In the OPs case, a simple ID attribute for that particular anchor would work just fine, you could bind an event listener for a click event to that element and then execute your javascript popup code when that event is triggered, canceling the event so that the browser does execute the link on it's own. That way, your default browser clients could execute the JS instructions, while a 3rd party app (an AIR desktop or mobile device) could put their own custom behavior in if desired.
While that sort of practice may seem extreme to a designer, as a developer I can swear to it's scalability and transportability for supporting 3rd party access such as when developing a web UI that needs to support many types of clients via one codebase.
If none of those features make sense nor strike you as worthwhile, I suggest you stick to XHTML TRANSITIONAL, which is probably better suited to your needs.
The best thing for you to do is to provide your own CSS file and tell firefox to use it rather than anything provided by the website you are visiting.
This will style all sites similarly, and will work great for sites that atleast have well-structured HTML. Sites that at least have properly structured HTML are much more common than sites which are standards compliant.
Overclockers
Not really a lot of point to it, though -- savvy users will simply middle-click on the link if they want it in a new tab/window. If they don't, that generally implies they want it right where it is, and your attempt to open a new tab/window is going to be annoying.
But hey, at least using a target for that is better than linking to a javascript: URL. A lot of sites are even worse -- they add an onClick event, and they set the link href to #, or to javascript:void(), meaning that middle-clicking on it inevitably does something unexpected.
My preferred method (if I ever need to force a new window) is to use a plain old link, and progressively enhance it with Javascript to open a new window. That way, if people middle-click, it does exactly what they want.
Don't thank God, thank a doctor!
You can make a site that works fine in every browser that's XHTML 1.0 Strict. Chances are that you'll have to use some non-standard (and probably invalid) CSS in a conditional stylesheet, but that a) doesn't count in terms of X/HTML validation and b) is only linked from the inside of a comment read only by IE, so even if CSS validity was part of being valid X/HTML it wouldn't be checked by the validator.
Granted, you may need to add in some extraneous tags in order to implement the proper CSS hacks, but that makes them extraneous not invalid. But that's just as true for implementing rounded corners, which is in CSS3 (and accessible in Safari and Firefox by using the -webkit-border-radius and -moz-border-radius properties respectively) but is an unnecessarily large pain in the ass to implement on any element that isn't of a fixed width and height.
You're absolutely correct that IE6 is a huge PITA to code for (as is IE7, but less so), but if you start with valid code that displays identically in Opera/Webkit/Gecko engines, you usually end up with something that doesn't take _too_ much hacking unless you have a really weird layout. My biggest problems, aside from those random 3px gaps that seem to occur mostly with floated elements, is font color inheritance on links and the various pseudo-classes, :hover in particular.
For plenty of the projects I've been working on recently, I can safely ignore IE6 entirely (making a conditional stylesheet wouldn't be TOO hard, but I can't be bothered right now) and IE7 doesn't usually have too many issues. It's certainly a nice change. Combined with fully cross-browser JS libraries like jQuery, my life as a web developer is a whole hell of a lot easier than it once was.
How are sites slashdotted when nobody reads TFAs?
So override with a stylesheet that looks roughly like:
* {
color: #0F0 !important;
background-color: #000 !important;
}
div {
display: block !important;
float: none !important;
}
and you'll be all set. The rest of us tend to like looking at something that doesn't resemble a terminal window all day long. There's a reason that browsers provide the ability to override stylesheets and disable javascript. CSS, JS, and all of that other stuff don't take the presentation layer away from you (in fact, they make it a hundred times easier to override rather than the inline styles of old), they just provide defaults.
How are sites slashdotted when nobody reads TFAs?
Serious issue?
Well, yes. Unless you think the Internet isn't important, or that it wouldn't make a difference if the web was controlled by a single person. I think that certainly puts it above "what costume will I wear" kind of serious.
And your sig betrays you -- you seem to take yourself just as seriously as the rest of us take things that actually matter.
I mean, when I go to the bank to cash a check, I don't worry they won't give me money unless I can prove I'm using Firefox at home.
Well, when you go to cash a check, you shouldn't really have to prove anything, other than that you can sign for it.
But I've seen banks that only work on IE. I haven't seen banks that only work on Firefox.
Don't thank God, thank a doctor!
If you use the target attribute, you have no control over the size of the window and it is very likely that it will obscure the current window. You need JavaScript to get the effect you desire, and if you are using JavaScript, why bother with a new window when you can dynamically display the content in the context of the current page?
Bogtha Bogtha Bogtha
Nowadays making sure your site is valid HTML is easy. Just install the excellent HTML validator plugin for Firefox. It gives you a tick or cross icon on each page; double-click the cross to view the page source with a list of errors. It does the validation locally on your machine, not sending the content off to some server, so it's fast.
If you're writing dynamically generated pages it is a great way to find bugs in your code, and it's unobtrusive enough to leave it turned on all the time.
-- Ed Avis ed@membled.com
Have you tried getting some soup lately? That's even worst.
I'm really not sure what your comment about AJAX calls has to do with "ignoring standards" -- especially given that:
- XMLHttpRequest is a standard
- It was always possible with a hidden iframe anyway, which is also a standard
Don't thank God, thank a doctor!
Why can't the web stick to something simple? 95% of the sites I use, would be fine with just plain simple HTML 2.0. Instead, we've got javascript, CSS, XHTML, and other buzzwords. Which in the end, take control of how a web page looks from the user's hand.
I like to read text, on a monitor, green on black (or white on black). I would like to format a web page the way I want to see it.
The vast majority of the web (that this user likes to view) is simple formatted text. There is no reason for this to constantly evolve onwards and onwards.
Face it, you are the minority. Hell, most people here on Slashdot are the minority. First off, CSS, XHTML, and Javascript aren't buzzwords. They are technologies (AJAX is a buzzword... but it's still pretty cool). If a web page doesn't control how it looks who is? The user? Listen closely... MOST PEOPLE LIKE THINGS THAT LOOK NICE AND DO COOL THINGS. THE NUMBER OF PEOPLE WHO WANT TO READ MONO-COLOR TEXT FOR ALL INFORMATION OUT THERE IS VERY MINIMAL. If you don't need any of it, browse without stylesheets, images, and javascript turned on.
The Amish get by just fine without electricity and things like that, but they don't try to fool themselves into thinking that nobody should have it, just because they don't want it.
Steal my band's record! Seriously,
The trick is making it work for the average or new person, while not screwing it up for the experienced. For this example, if you want the link to open in a new window with a normal click, make sure that middle-clicking on the link doesn't break it.
The meek may inherit the earth, but the strong shall take the stars.
BLINK will validate. To my eternal shame I've used it on my Home site's humour page and it passes w3c validation (just checked it to make sure). P.S. please don't slashdot me!
Smivs on the intertubes!
Here's Opera's article, with actual numbers:
http://dev.opera.com/articles/view/mama-markup-validation-report/
It is very simple http://validator.w3.org/
Actually, not quite that simple. My top-level page currently gives 66 validation errors. Guess how many are from content I've had to include from a third party, where I have no control over their standards compliance? 66 of them - 65 are from WebRing, 1 is from a news feed.
For those of you who are bad at math, that's all of the errors on that page. Note that all my other pages validate just fine, since I don't include third-party content there.
Being part of the WebRing is still important for my site, so I have to live with the 65 errors. Not much I can do about it, so I wrote some code into the PHP to not display the WebRing content if I pass it a flag/option, and I use that flag when I validate since I know I'll get errors otherwise.
If there's a better way, let me know.
The very purpose of standards is to make "Working" a property of a website. It is a shame that the world let M$ kill standards.
The largest prime factor of my UID is 263267.
It looks like the page is more about upgrading browsers rather than changing browsers (at least for now). The message is more akin to the gas attendant saying "Fix your muffle because it's a nuisance to other people on the road," and not "Get a new car!" The original poster said nothing about changing browsers either.
Once you start despising the jerks, you become one.
Only because we're brainwashed in seeing the web as incredibly limited. The "standard" allows for a lot of things that even FF2 doesn't support (only FF3). Display:inline-block anyone? Oh, there are ways around it, either through hacks, or through workarounds... but when I was is a (&@&)(&#)(#@ block that is...I don't know...inline... it would make sense if I could use inline-block. But nope, not if I want to support FF2. Sure the subset you can use without IE is much larger, but you still need to test cross-browser, heavily, no matter what, which was my point. That your page validates is almost irrelevent.
The standard moves slowly as hell. The W3C is a huge entity made of various special interest groups. That cannot go fast no matter what, AND its disconnected from reality (thus slowing down adoption). Even an -open source browser with Google as a sugar daddy pumping MILLIONS into it takes half a decade to get anywhere-. Same with everything the W3C piss out. It takes years to resolve real problems, because they're too busy with edge cases (XML namespaces mess!) to pump out specs that are useful.
During that time something like Silverlight gets implemented by Miguel's team in a fraction of the time, and thats a freagin Microsoft product thats supposed to be crappily documented. If you ask the people who designed the specs, they'll tell you it was MADE to be easy to implement (thus its limitations, such as absolute positioning against the closest relative parent, or lack of vertical control aside with the table-* category of displays), but if you ask anyone who actually implements it, they have a different story.
Ivory Tower, meet real world.
Ironically, the only reason the standard picked up in the first place was that IE had the best support for it for the longest time :) A lot of the stuff in the specs made it in IE first, too, albeit differently (opacity, ajax, etc)
The part in parenthesis was only about CSS. The part before applied to both XHTML and CSS. CSS versioning is so bad, that when its features get implemented (like by IE8), the community cries foul and say that in -THIS- case, IE8 should break the standard because its stupid. XHTML versionning -is- stupid too though. Its possible to get an XHTML 1.1 page that fully validates, yet its not even XHTML 1.1 (which is very different from 1.0)
XQuery has NOTHING to do with browsers. Its an XML API like DOM and XSLT :) Think SQL for XML. The specs are awful, and because of that, even though its much smaller to implement than XHTML/CSS, no one actually has a full implementation. Everyone is guessing. You'll see implementations on the market that claim being full, but if you talk with their developer, yes, its a perfect implementation of what was clear, with perfect guesses on the rest. I don't have a clue why you're comparing XQuery with JQuery though.
Finally, its easy to make a site thats standard compliant if the person making the design is the same as the person coding it. Then you can stick to the subset of what XHTML/CSS is good for. The CSS Zen Garden is an example of that. They start from the structure, and then do the best layout they can from that. If they start from a photoshop made by a designer, then try to apply it, its going to be another story.
There's a reason there's now a group for HTML 5.0... because even the experts thought the W3C's current specs are disconnected from reality.
If it looks and works the same in both IE and Firefox, the odds are pretty high it's going to work just fine in Opera and Safari too. If that weren't the case, trying to use Opera or Safari (with so many designers designing for and testing on IE only) would be a huge hassle.
SJW: Someone who has run out of real oppression, and has to fake it.
Comment removed based on user account deletion
XMLHttpRequest is now a standard since everyone decided to "ignore standards" and use it anyway.
http://en.wikipedia.org/wiki/XMLHttpRequest
"The World Wide Web Consortium published a Working Draft specification for the XMLHttpRequest object's API on 15 April 2008."