Search My Network

Thursday, April 14, 2011

Web Standards: Confusion and Lack of Attention to Detail

I run a few Google Groups, and among them is the "Web Design and Development" Group (@ http://groups.google.com/group/SiteDesign).  We were discussing all the problems associated with the W3 schools website and its inaccuracies (see http://w3fools.com/ for that full story) when another web designer commented on how the current tools offered by the current best practices of web standards is completely inadequate since we still do not yet have a full tool set to replace our old table design hacks.

This is true.  It is completely and accurately true.  The web design industry is crippled because of the lack of standards on one end, the poor implementation of standards on another, the confusion that surrounds it on another, the corporate meddling and corruption of our web standards, and the extreme lack of support for standardization from the browser developers.

Hence, my reply.  I have tried to clarify it a bit more for non-designers and illustrate my points a little better below:

NOTE For those not active in web media design and development professions:
As a background, I should mention that good looking web design used to be pretty easy to do using tables.  Anyone could easily build a nice website with very little HTML knowledge.  But the method of using tables to design layouts has always, from the very beginning, been a hack.  It is also a great deal harder to modify and manage because of the spaghetti code that tables based web design techniques produce.  As web designers we always knew it.  Eventually, CSS (first introduced as a standard by the W3C in 1996) gained support by the masses and eventually gained enough support (of varying degrees) by implementation through different browsers, the last of which was Internet Explorer which dominated the browser market.

CSS has evolved dramatically by promising to separate structuring code from layout, design, styling and formatting code.  This is supposed to allow the actual content to shine through.  A page designed according to best practices using CSS (as opposed to old school table design hacks) uses less memory, loads faster and can be easier to manage.  It also has some drawbacks (the main drawback of CSS is that when using external stylesheets, if the stylesheet wasn't loaded by the browser, which only happens rarely, the resulting page looks like an awful crappy mess), but on the whole is a great improvement to the way web media is delivered. 

Unfortunately, CSS is still in its infancy and extremely immature.  It is way too complex, even for some pros, because it fails to conform to traditional web coding standards.  It alienates the casual designer and aspiring company owner.  Web standards of all kinds are restricting their own use and implementation, as demonstrated in the post below.  And yet it is vitally important that business uses and complies to best practice web design using W3C standards in order to just to save the industry, as well as move it forward and promote our causes.  That still doesn't change the fact that doing so is, and continues to be, an incredible nightmare.

Don't get me wrong.  Without web standards and their best practices we are doomed to fail, but the standards themselves are currently failing us and the entire industry.

<rant>I feel like our web standards are letting us down, as well.  CSS has real alignment issues.  Not just CSS, but many of our web design standards (HTML/XHTML, XML, etc.).  HTML5 addresses some of the issues of the past (depreciated tags such as <b> and <i> that were staples of design formatting until someone had a brain fart with the xhtml standards), but depreciates other stuff for no good reason (or no reason at all).

There is a definite move towards requiring everyone to know CSS as we remove simple formatting options from HTML.  Just the fact that tables shouldn't be used is a pain, although it is a necessary pain.  Still, the W3C gods are not giving us the tools to replace one method with another.  At least not easily.  And the browsers aren't supporting the stuff that should work (simple things, like "vertical-align").

Although the easy path is to allow us the ability to apply align and valign to divs (as we did with tables), these familiar styling elements are ripped from us for no good reason at all.  Instead we are left with crap that isn't supported (read: doesn't work), makes no sense (eg: "floats") or uses confusing terms (if you are trying to wean us off of tables, why make us use {display:table;} (and etc...) for anything?  We only want to use tables based design to define a structured grid, why can't we come up with a grid tag or a {display:grid} attribute?  But no, that would be too easy and make way too much sense.

When HTML was derived from SGML it was intended to be easy to understand so that it would be available to all.  So that anyone could utilize it.  It no longer is.  It makes less and less sense.  And the reason people and business hire us to do what we do is not because they can't, but because we do it better.  That doesn't change no matter how simple or complex the code gets.  But by robbing the ease of coding from everyone else we rob them of the opportunity to get started with little investment so that they can reap rewards and then hire us as a better choice for their reward's investment back into their business.
  
Furthermore, I think it is extremely important that in a dynamic environment where content style and size is often changed according to user prefs to allow for the assistance of the disabled, the old, the various different browsers, different renderings and even differences existing on a small variety of platforms
(PC/Mac/Android/Linux/Unix/Amiga/MobilePhone/Tablet/Etc...), which challenges design (and designers) so completely, that we have not been armed with the appropriate tools to accommodate these challenges.  Mainly, I speak of HTML based self-adjusting columns.  We are getting a CSS based version (in level 3) that might have some support, but we are still awaiting any real support.  And this should have been accomplished way back in HTML2 or 3 (IMHO).  It's way long over due. 

I often said that we are still in the dark ages with web technologies, but Web design standards are still pathetic and we are really only crawling out of the caves.  It shouldn't be this way, not now, and certainly not still.

CSS is supposed to compliment HTML, not replace it.  This to me, is more annoying than anything.  As we take the ability to design a simple website out of the hands of the local yocal he can't easily or suddenly reap the rewards of his great idea that works and then redesign the site using a pro based on his initial success.  Instead, he has to hire a pro to put-up a site he can barely afford as an investment and hope he has hired the right guy so that he will benefit from the rewards.  But originally, this is what was happening, and it worked.  Now we have to have committed start-up investors just to any get commercial endeavor off the ground?  What happened to American Ingenuity?  Just like the auto manufacturers, we seem to be engineering-in complexity so that the local garage mechanic won't get under the hood? 

The CSS standard uses deceptive tags that do not even describe the intended purpose.  A floated object does not float, instead it creates havoc unless you know exactly what to do to clear it.  Quite honestly, this is crap.  "text-align" will align a whole lot more than text, so it should be "align".  "vertical-align" doesn't even work and in fact, you can not reliably align content in a dynamic height div the way you can a table.  That is a huge gaping flaw that has been overlooked, why?

I have long been a critic of the W3C and that's probably why they won't let me in, as I would push for change from the inside.  Most likely it's because I am not up to their standards, but although good, their standards are illogical and corrupt to the tradition of web design with HTML as it was intended.

I have another little rant on this subject here:  http://blog.abitofallright.com/2011/03/illogical-web-standards.html  I suppose I am illustrating my concerns better in this post, though. 

Obviously, this confusion is not all the fault of the W3C.  Browsers invent stuff that gets adopted.  They don't support stuff in the standards.  They provide a pathetic user interface experience many designers such as myself cringe at because it hampers the ability of the user to navigate (an example of this issue is described in my First Impression of FireFox 4 article).  Like it or not, the browsers have a big input on what happens in any standard.  Google's video codec will probably become part of a standard to deliver video media because they have made it public domain.  Obviously we need corporations to chip in.  But they are also mucking it up.

I am actually ashamed of the place we are at in this industry.  More should have been accomplished by now.  There should be less confusion and instead there is more.  And online entities are taking advantage of the confusion.  Search engines are stumped by stupid tricks and swayed by marketing platforms where they can display ads. 

In fact, ALL search engines are feeding us more spam than ever.  And part of that is that the algorithms are corrupted, part of it is that we have so much crap design out there that they refuse to update the search engines to reward good design methods. 

I am so sick of standards because they are not helping the industry move forward.  I love web design standards and incorporating their best practices, but they still sicken me because of all the crap.  
</rant>
  
OR, maybe I am just pissed-off today because I have seriously been looking hard and relentlessly for a position as a brand aware graphic web designer (or just a webmaster) who understands website search optimization for well over two years?
  
Yet, it doesn't change the fact that the web design industry is suffering from poor standardized web design support, still.