Judging the technical quality of a site
When you look at a website to determine its quality on the code level, you need a different set of metrics than you did some years ago. This article is my attempt at specifying what metrics I use. Have a look at them, do they match yours?
First I look at the validation. Does the front page validate? Do all sub pages of the site validate? If they don’t, what kind of errors are there? While validation isn’t the most important metric, it’s a very quick way to get a feeling of if the coder is “web standards aware” or not. I use the Firefox validation plugin that checks all the pages I visit and puts a little green check in the statusbar if the current page validates. For doing sitewide validation I use htmlhelp’s validation spider and let it loose on the site (check "Validate entire site"). Validation is slowly catching on as a standard tool in the webdev toolbox. Someone who is not using the validator probably doesn't know much about web standards.
While on the subject of validation: don’t forget validating the CSS. There’s a lot of basic errors that the validator finds that only leads to errors in some browsers. The W3C CSS validator might help you fix some of those right away. Before you complain: the CSS validator has a few issues. If you use line-height, you need pass it a decimal number; 1 becomes 1.0, 0 becomes 0.0. Secondly, if you use CSS 2.1 or CSS 3 properties you need to inform the validator you do. Add the URL parameter “profile” with the value set to “css21” or “css3”, and revalidate. CSS errors and whether or not the style sheet is well organized clearly propagates what CSS level the developer is on.
Next I look at the doctype. That single line of information at the first line of the HTML that defines what language the coder is using. Use of Strict or Transitional is what matters most. Most pages that validate as transitional can with very small changes be upgraded to strict. And why not? Strict signals that an effort has been made to ensure that the document separates structure from design. If you know how, there’s no reason not to. At this stage I also check that the doctype is properly set, there’s an IE bug that makes IE render things badly (quirks mode) if the doctype isn’t the first element of the page. Incorrect use of doctype is also a common way to recognize a beginner.
Sites that pass the above code tests get another batch of checks. Is the code semantic? (ie. does the HTML describe the content?) I look at elements, classes, and ids in use. Do they describe the content they contain? Bad sites use class names tied to design. Mediocre sites use general names like “wrapper” or “column2”. Great sites use “copyright”, “invitation”, and “footnote”. Many CMS:es generate design-oriented classes and ids, and only a few reach mediocre. This is one way to see that a site was robot-made.
Another code issue is the content over HTML quotient. For just a few lines of content you shouldn’t have to need huge amounts of HTML. You shouldn’t need 10 divisions just for one header. A high content over HTML quotient signals that the developer knows what he’s doing. An “overmarked” site means that the developer is on the right track but suddenly forgot that content is more important than the code behind it.
One last angle is the accessibility one. How will a screen reader read this site? Is all the content of the site available as readable text? Does the site require javascript when it isn’t needed? A good place to see if someone knows about accessibility (on the web) or not is checking the forms. Fieldsets, legends, and labels: they all tell their story about the developer and his knowledge about accessibility.
A quality site ranks high in all of the above.
Comments
By: zcorpan (#1)
2. Disable images. Still accessible?
3. Disable CSS. Still accessible?
4. Disable JS. Still accessible?
5. Have a glance at the markup to see if there is correct use of semantic markup.
By: Sean Fraser (#2)
I add "written content" and "scripts used" measurements as well.
By: jarvklo (#3)
... and the code of this site is littered with practices contradicting what is described in the article.
IMHO setting a good example by actually practicing what is preached is one of the most important issues for any standards / best practices advocate sites out there.
I mean - If us standardistas don't bother making our own site living up to the standards and practices we preach - why should anyone bother to listen to what we are saying anyway?
By: dk (#4)
By: Emil Stenström (#5)
@Sean Fraser: Heh, nice name :) Could you describe your two tests a bit more?
@jarvklo: Could you expand on what problems this site has? I know the markup and CSS is much better than most sites out there but you seem to not agree. I'd love to hear some constructive criticism on this. You can find my e-mail on the contact page...
By: Jarvklo (#6)
You advocate semantic coding, yet this site is built using code like
... which isnt't very rich in semantics for a site header.
Your CSS doesn't currently validate... yet you make a point twice that validation is important.
You advocate that only "mediocre sites" use classnames like "wrapper" - yet your site uses no less than three wrappers named wrapper1, wrapper2 and wrapper3... and I fail to see how the code of this site could be considered mediocre.
My point is - still - to point out that the impression that comes across since the guidelines you advocate in the article (seemingly) are not important enough for you to make your own site live up to your own standards might be contradicting what you're trying to accomplish with the article in the first place... ;)
By: Jarvklo (#7)
By: Denny (#8)
By: Emil Stenström (#9)
The CSS only validates if you add profile=css21 to the url. It's a part of the clearfix method of clearing floats. That's very different from saying that the site doesn't validate. It does.
About my wrappers. Each and every element on the page is needed, ther's little gradients, tricks to make faux columns work, source ordering, and so on. So belive me when I say that every wrapper is needed. About the naming: since they are needed to do design things, they have no semantic value, and no semantic value means there is not good way to name them. Currently I belive the current compromise is what works best.
So, from my own point of view I do follow the highly set standards I advocate.
The comment function is not broken, it's just my caching mechanism that does not update the page until after one hour. Or do you mean some other error? Please be specific.
(Btw, your feed is not validating either ;)
By: Emil Stenström (#10)
By: Denny (#11)
I prefer web sites without grammar mistakes (In my opinion they are trustworthy) like books (most of them with correct quotes and dashes, especially which were make up without computers).
Yes, it's difficult to use special characters, because there are no such symbols on keyboard. So I use mnemonic abbreviations for them mdash; « and » (last pair are for russian texts).
In English, AFAIK, better to use “ and ” for quotes and — for dashes (dash it is not hyphen or minus!).
Also about quotes you can read in last ALA article QTAG: http://www.alistapart.com/articles/qtag
By: Jarvklo (#12)
Emil - I don't advocate "best practices" for feeds. I use Feedburner and delegate that to them so I just won't take you up on that obvious flame-bait ;)
As for the comment editing mechanism...
Your site somehow managed to mangle the closing blockquote, and then refused to accept several attempts to rectify the situation. You've got my email-address if you're interested about further details.
By: Emil Stenström (#13)
@Jarvklo: Only a comment on the parantesis? If that was a flamebait, yours was too.
Ok, I will have to look at the comment mechanism, I'm using the wordpress default though...
By: Sean Fraser (#14)
"Written content" and "Scripts used" - for me - are both subjective and objective. The objective aspects remain within your Technical guidelines; subjective aspects are not technical but affect my perception of the qualitative state of a site.
Written content.
Objective example: How do they present apostophes, ampersands, single quotes and double quotes in editorial content. Subjective examples: Does the site have a current copyright date. Are there typographical errors.
Scripts used.
Objective example: Dreamweaver-generated scripts. Subjective example: What purpose does the obstrusive display of script behaviors serve, e.g., Web 2.0 Ajax on everything imaginable.
After applying your guidelines, I - Readily - admit that my site is mediocre but then I doubt it will ever be Semantically correct. I prefer "plynth" over "footer".
By: zcorpan (#15)
My list is complete. If a site passes my check list then it's a quality site, regardless of whether it passes validation or not (though it probably does).
By: zcorpan (#16)
By: tom barnfield (#17)
http://www.runninghead.com/aaa_Templates/centeringTemplate2.html
By: Co oznacza termin “dobra” strona? « Blog o ciekawostkach informatycznych (#18)
By: Gregory (#19)
Regular website visitors are not interested in this kind of data but with some useful content they can read.
Technical quality can come into the play when you propose web development services to others. In this case you must have your own website made according to these rules.
By: Emil Stenström (#20)