Bad Google: Can anyone at Google write XHTML?
April 10th, 2008 Posted in Google, Web DesignWhat is Google? Well, Google is a publicly run company that was founded in 1998. It also happens to provided almost 4 billion search results per month. It’s used by around 55% of people in the United States and is the number one search engine. Oh, and it turns over about $4billion (although that’s bound to be much more now).
So why can’t it get a simple web page right? Google.com has 50 validation errors when queried with W3C Html Validation Service. Now, I know that some of these errors are a consequence of other problems, but my argument still stands. Surely one of the 17,000 has suggested that they fix it?
What’s wrong with the biggest Internet company’s web site…
The Head
- No doctype – “Don’t forget to add a doctype” is the title of a page in the W3C guidelines, so why has Google forgotton? Maybe to shove the browser into Quirks Mode? Hmmm… More about quirks mode. Oh, and if your Google, here’s how to define a doctype.
- The style tags have no attribute type. <style></style> should be <style type=”text/css”></style> Maybe this is a doctype issue?
- The script tags have no attribute type <script></script> should be <script type=”text/javascript”></script>.
- We can let Google away with no Meta data (I suppose).
- A language would be nice. Let’s just presume that Google has its own made up one.
The Body
- The main tag is insane. <body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload=”sf();if(document.images){new Image().src=’/images/nav_logo3.png’}” topmargin=3 marginheight=3> The old school page properties are a) old and b) pointless as there is a style element defined in the head. And there are no quotes around these, which is a parsers worst nightmare!! Some of them, like TOPMARGIN, are not even ‘real’ attributes. Blaming it all on the incorrect doctype is simply not good enough here.
- The JavaScript is executable, but not pretty. There is a delimiter (;) after the first function but not inside the if statement.
- Span tags are used for the menu system. A much better idea would be an unordered list. <ul><li style=”selected”>Web</li>…<li>Mail</li></ul>
- There are more attributes on the page without quote around them
- More out of date tags like <center>
- Tables to mark up the search. This is one of my pet hates in web design. Tables are for tabular data!!
- <br> is outdated in itself -a big company like Google should be using semantic HTML <br/>, but that isn’t even the issue here. There are multiple occurrences of two line breaks (<br/><br/>) being next to each other - these should be on their own.
- There are also a load of horrible mistakes that mean Google won’t validate. An example would be using & instead of & or not closing a <a> tag.
I remember reading an article in .net about accessibility and Google. It was an interview with one of Google’s disability gurus (who also happened to be visually impaired). He was adamant that Google take care to make sure screen readers can read Google’s pages. What now strikes me as odd is that he used the phrase “modern screen readers”. Google’s landing page isn’t even modern! Granted Google alt all their images, but that doesn’t excuse the long <span> menu which doesn’t provide any way of skipping past it. The screen reader on my machine, WebbIE (part of Thunder), reads out every single item in the span tag by default. Not nice.
The only thing that I could maybe forgive Google’s lacklustre homepage is that it renders perfectly even if CSS is disabled. That means that it can cater for audiences far and wide running 20,000 year old machines. Okay, I exaggerate, but why not have an alternative to the main page that handles older browsers.
Don’t get me wrong I’m no accessibility or web design guru, but common sense should tell Google to update the home page.
I might be making a bold statement by saying that Google is the be all and end all of the internet, so I won’t. I will say, however, that it would be nice to see one of the most visited pages on earth validate.