For years I’ve been producing various websites and every time I start a new site I have to create a “template” that I then use for all the webpages.
For years, I’ve just copied and pasted what I found worked before – and the very first line of those websites contained a statement on the HTML “standard”. But like some gullible alarmist I just assumed that it was something I had to do and that if I “standards checked” my webpages that they would be “better”.
Then recently I inherited website. And when I went to do my normal “standards check” I discovered it was littered with “errors” – but these aren’t real errors at all!
But first a very quick introduction to html. HTML, is a way to make ordinary text bolder or italic or to suddenly have text
going onto the next line. These effects are controlled by inserting “tags” such as <b>bolder</b> or <i>italic</i> or a newline <br>.
An effect starts with an opening tag “<b>” and closes when the same named closing tag is encountered with a slash “</b>” … except for tags which don’t enclose text:
- <br> – newline
- <hr> – horizontal line across the page
- <img src=”file”> – an image
Except – for some strange reason the idiots who “control” (not sure on what authority they have – but they sure spend a lot of money pushing themselves on the internet) HTML standards have decided that even though all browsers understand and accept <br>, <hr>, <img …> that somehow tags must be “closed”. So they have decided that a “newline” must be <br></br>, that <b> no longer means “bold” and various other idiotic changes ….that they think makes sense in their “theoretical” utopian, but which from seeing websites on the internet don’t make on iota of difference what <br> means.
But even from a theoretical viewpoint these guys are complete morons, because if they were right the proper way to close <br> would be </br>. Which would mean writing <br></br> … which implies that there is a <br>THIS GOES IN THE MIDDLE OF A NEWLINE</br>
But no browser understand anything between “start new line” and “end new line” and so the whole concept is utterly ridiculous,<br> is a single point tag – it isn’t paired with any ending and therefore is is THEORETICALLY WRONG to suggest it requires an ending.
Put simply <br>, <hr> etc, are tags that go BETWEEN groups of characters. <b>, <i> etc, are tags that ENCLOSE groups of characters. So, it is WRONG to try to close a newline, etc.
<br /> is not only wasteful, and pointless, but it doesn’t even make theoretical sense. But these guys who declare themselves to produce the “standards” =are the omnipotent theorists who dictate to everyone else how their code must be written … with the result that most people ignore these “standards” and hence I have a website full of non-standard code.
Most good websites ignore W3C
just take a look at this list of common websites that apparently are not “good” websites according to the (academics?) at W3C:
FAIL – http://www.reddit.com – 36 errors as XHTML 1.0 Transitional. EDIT: Rechecked Reddit, and now it’s a PASS
FAIL – http://www.slashdot.org – 167 errors as HTML 4.01 Strict
FAIL – http://www.digg.com – 32 errors as XHTML 1.0 Transitional
FAIL – http://www.cnn.com – 40 errors as HTML 4.01 Transitional (inferred as no doctype was specified)
FAIL – http://www.microsoft.com – 193 errors as XHTML 1.0 Transitional
FAIL – http://www.google.com – 58 errors as HTML 4.01 Transitional
FAIL – http://www.flickr.com – 34 errors as HTML 4.01 Transitional
FAIL – http://ca.yahoo.com – 276 errors as HTML 4.01 Strict
FAIL – http://www.sourceforge.net – 65 errors as XHTML 1.0 Transitional
FAIL – http://www.joelonsoftware.com – 33 errors as XHTML 1.0 Strict
FAIL – http://www.stackoverflow.com – 58 errors as HTML 4.01 Strict
FAIL – http://www.dzone.com – 165 errors as XHTML 1.0 Transitional
FAIL – http://www.codinghorror.com/blog/ – 51 errors as HTML 4.01 Transitional
PASS – http://www.w3c.org – no errors as XHTML 1.0 Strict
The stupid thing is that whilst there’s an organisation that claims to set the “standard” for the internet (originally academics – so no doubt still stuffed full of ivory tower fools) the reality is that it is non-standard by following their own “standard”.
But what to do?
But I still have the problem that the only way to check for real errors and not pedantic fictional (i.e. standard code that some idiot deems to be) errors – is to use a “standards checker”. But that means picking a “standard” to use.
So, yesterday I started looking for a “standard” that would work best on the inherited website and enable me to check for actual errors (like missing closing bold tags where I’ve edited out some content) and not for the fictional errors such as “closing” tags (where the de facto standard on most websites is not to bloat by these stupid closing tags).
But there are dozens of these supposed “standards”. And they keep adding new ones.
Here for example is one:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
Now don’t ask me what it means – I don’t think even those who produced it in the first place actually understand this gobbledegook. But what it does mean is that if you have a “standards checker” it will produce some 100 “errors” on a perfectly good website from the web (often introduced by sites like google ads – which are beyond your control).
But how to pick?
So … in a moment of inspiration, I decided to ignore what all the armchair html theorists were telling me was the “right” standard to use and instead I decided to decide based on what actually worked with most browsers.
And what do you think I found?
Browsers almost totally ignore these “standards” altogether. For most practical purposes it doesn’t matter at all which “standard” you say your webpage is, because practically there are only three “standards”.
- Loose – whereby most HTML works
- Near standard – whereby they expect a “standard” HTML (not the same standards I mention above – but instead a single “standard” that doesn’t care which actual “standard” is being used. (“standard” except for images where the theorists got it wrong again because they claimed img tags contained text – and this caused no end of problems – and was stupid as images don’t have text).
- Standard (images behave wrongly – but to standard).
So, all that time trying to decide which “standard” to use – and finally I realise that the browsers don’t pay any attention to it – and just read it just the same.
The stupidity of “standards” that are then ignored because they don’t make sense.
Which is where I got to last night – when I realised that when a browser reads html it isn’t following any of these stupids “standard”, instead all it is doing is reading the next tag and if e.g. that tag starts <br … then it treats <br/> as totally identical to <br>. So, there is literally no reason whatsoever to put the closing tag into the html – all it does it add needless and meaningless characters that “bloat” the html and and that is seriously bad practice.
So, far from producing “good” code, following these “standards” is causing people to produce seriously bad code – for no benefit except at all to anyone.
HTML 5 – is even more stupid
There is however a new “standard” coming/came along – HTML 5. At first sight it looks as if it was written by someone sensible, because rather than
<!doctype = dtd stupid.com are// en idiot>
or whatever ridiculous code I have copied and pasted so many times before, without ever understanding it, each html 5 document starts:
And I could write that from memory! So, at first sight it looked as if common sense had finally overran the standards Nazis – but … then I read … you “have” to close <br /> and you “can’t” use font styles and you “must” … <b><i>BULLSHIT<br>BULLSHIT</br></i></em>
I am fed up with the HTML nazis
For years these people who I have no power to elect or any say have set themselves up as some kind of “authority” over the internet but instead of bowing to the practical standards used by real website authors they continue to waste everyone else’s time with pointless standards which the web browsers ignore. Whilst some parts may helpful, large parts are entirely pointless, provide no user benefit whatsoever and actually cost everyone time and effort.
As a result from what I see, most websites do not attempt to comply with their pathetic “standard” – indeed the website I inherited had a “HTML compatible” tag on its pages but was producing 30-100 “errors” on each page (although obviously they had no impact on the browser – so were just theoretical errors claptrap like these closing tags).
Instead- most people – for obvious reasons – do what is sensible, and instead they comply with what works with browsers. But because no standard focusses on what works with browser – we have on one side the “theoretical lunes” “standards” trying to impose some theoretical nonsense which most people then just ignore and the “practical browser” standards – which is just what works with most browsers.
And that really is the only standard that matters. Not some theoretical nutty “standard” that some academic thinks is “pure” code – but something that works on most browsers, most of the time and causes least hassle to the user.
First – bollocks to these “standards” guys. If they can’t accept that <br> is the normal and proper tag for a line break then they have cauliflower for brains. If they can’t accept that pointless closing tags are bad html – then they are idiots and their “standards” are not worth following.
So … I no longer believe there are any real “standards” on the internet – just what works.
So, from now on I’m not going to even attempt to comply with any “standard” – instead I’m going to try to find a code checker where I can tailor it to enforce proper coding like <br> whilst picking up real mistakes like end tags that really are missing.
After a lot more research, I’ve realised that I am totally right – W3C have gone nuts. They are producing standards for large organisations with massive websites and are ignoring the fact that simple html is fine for many people – who need a standard as much – but arguably more than the massive corps who can afford to test their software with all the browsers.
So, the best way to fool W3C based checking software to achieve WEBBROWSER compatible checking (which is much wider than the daft and stupid restrictions imposed by W3C “compliance”) is to use the following doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Another approach is to use:
<!DOCTYPE HTML SYSTEM>
Which for some daft reason appears to be an HTML 5 declaration, but seems to allow my test page to be checked without the stupid errors.
Alternatively just put
<!DOCTYPE HTML LOOSE>
software based on W3C checking will throw a wobbly and complain it’s not a standard they recognise – but what it really means is this:
The webpage is based on the actual standards used by websites which is this:
Everything as per HTML 5 – with the addition that all the tags, the proper coding without end slashes, the various other markup such as % width of images, table alignment, etc. etc. which every browser no doubt implements – is also permitted. <b> means bold, <i> means itallic, <u> means underline. <strike> means strike, <font> still allows changing of font size without css bloat (for small websites), etc.
Addendum After thought – the revolution is coming
Thinking about it all – what has happened is that web browser producers have just worked with what is available on the internet – and what is available is only very loosely based on these standards wonks. Up to now, html 1,2,3,4 have largely introduced new features – so for the most part people like me have been happy to go along with them – ignoring the stupid ideas we didn’t like.
But what has happened now, is that like the climate alarmists, W3C seem to have been taken over by megalomaniac power grabbing academics and big business who now seem intent on imposing their ideas on the rest of us – not by making the internet better as happened before as standards “changed” (or more accurately, features were added) but now by removing vital parts that are essential to the “small guy” web producer.
As before – most people will just ignore the idiots at W3C – or they will be in Universities and government who will force them to adopt stupid coding (many will never see the bullshit it produces as they use tools). It’s only people like me that have large websites that need to be maintained, want to use standards for quality assurance, but don’t want to have total bullshit foisted on me because I often for very good reasons need to produce quick and what W3C would consider “dirty” code.
But by saying “thou cannot have” … all the simple features that make simple websites easy to build … W3C are putting two fingers up to people like me. They are in short no longer fit for purpose for small website producer and … based on the 80:20 rule that usually means the majority of website activity!
They have followed big business/university bullshit down the path to irrelevance, leaving the browser and most users behind. So, it seems likely it will only be a matter of time before some alternative to W3C arises out of this chaos!