People have asked of my opinions about HTML 5 and the road they’re taking. Basically, I feel that you need to do a lot of reading up to actually be eligible to have an opinion, so I’ll try tread lightly with mine, and only cover certain areas.
Other factors matters why i haven’t written about this before: HTML 5 in practice, widespread amongst web browsers is very far away. Simon Pieters estimate, from a Geek Meet we had, is a whopping 15 years until it’s fully and properly implemented by web browsers. Just imagine how much Microsoft and Adobe will have come up with by then, and forced out into the market.
Also, really smart folks like Tommy and Roger have written about it more thoroughly in Forward Towards the Past respectively Another look at HTML 5, and basically I agree with everything they have written.
But, in general, I think HTML 5 is a good thing with some sensible goals and ambitions. We need a new standard, and we need a plain
text/html version and an XML route. One of the best benefits of it is more and better suitable form elements for various needs.
Problems I see
Perhaps not fair nor balanced, but I’ve decided to focus with this post on the negative. Things that I personally believe can, and should, be improved.
text/html: It allows sloppy code
In general, you can add attributes to an element in any fashion you like. All of these are valid:
<input disabled> <input disabled=disabled> <input disabled='disabled'> <input disabled="disabled">
Quick closing of elements is also optional, meaning that any of the below, mixed together in the same document, are ok:
<input type="text"> <input type="text" /> <link href="css/main.css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
To me, some of the code above is an abomination. The web is riddled with piss-poor code, and allowing all of the above certainly won’t change that. My stance is that any attribute must have a value, and it must have quotes (preferably double-quotes, but I can live with single-quotes, as long as they’re always there).
My take is that the HTML Working Group assumes that one single web developer will choose or the other and then consistently go with it. To me, that’s just naive. That’s not how it works in the real world; lots of web developers work on the same code, and allowing all kinds of formatting means that there will be all kinds of formatting in the resulting code.
Web developers are lazy, and a number of them are ignorant, and if not enough discipline is forced upon them, it will be chaos. I definitely understand that they don’t want to have too strict guidelines because then no one would use it, but come on. Proper code for attributes and closing elements can’t be that hard, can it?
No version number in the DOCTYPE
This means that it will be impossible to distinguish what version of HTML is being delivered. The problem with this is that you can’t tell on the server what version it is to, for example, pre-validate it. Another side-effect is that any implementation of an HTML element can never be changed. So, say something is sub-par, we have to live with it through HTML 6, HTML 7 etc.
I understand the sensibility of backwards compatibility, but sometime one has to put the foot down and move on. The ability to improve less good things have to be there. Otherwise, we will, in many years time, have a gigantic toolset (where 50% is faulty/unusable) and every web browser will be bloated like there’s no tomorrow, just to cover up for something implemented the wrong way 10, 20, 30(?) years ago.
font is still in there
I sincerely can’t believe that the
font element is still allowed. Or, even worse, it’s not allowed for web developers, but only ÃƒÂ¼ber-crappy WYSIWYG tools, given that they identify their true suckiness by a
meta element. This is so thoroughly wrong!
If, in say 15 years time, WYSIWYG editors still can’t format code any better way than with a
font element, I say it’s time to abolish them completely. My suggestion for WYSIWYG makers is that the only formatting options should be good semantic HTML elements and through CSS. The CSS classes should then be made available through a custom web developer CSS in the solution, which in turn will present it properly to the public viewer.
Alternatively, the WYSIWYG tool, when in a CMS, could offer a few default formatting options with CSS, which will be in a CSS file that is automatically included for the presentation layer.
I completely agree with what Roger writes that there definitely seems to be an attitude problem. Some people are, to a certain degree, condescending towards others and seem to think that they know it all. Please, let me inform you that no one knows it all.
When I was younger, I thought I could do everything better than older people who hadn’t delivered a perfect solution. Naturally, in certain areas, I was wrong. Hell, everyone in the world can step in and think they can do something better than anyone else previous to them, but the vital mistake in that approach is that you never have all the facts, you don’t know what problems and obstacles the person before you ran into, and during what circumstances it was developed.
And that’s why it’s so saddening, especially with people who are around 20, coming off with such an attitude. Sure, they can be frickin’ geniuses, theoretically, but unless you’ve worked with web developing and customers for a long time, you’re not really the one in title to condemn others (and really, no one ever actually is in title to do that).
So, unless you can’t be humble, open for other people’s opinions, and most importantly, respectful, don’t waste your time trying to tell others how to do their job, because they sure as hell won’t listen to you. Please don’t bother, if you’re more interested in becoming a dictator than a democrat.
Ok, I got ranting a little there. But, HTML 5 can be a good thing, it really can. But please, I humbly ask you to consider and think through what I’ve written above, and remember that all other emerging technologies and companies certainly won’t stand still while the work proceeds.