Posts Tagged ‘web standards’

Microsoft Do A U-Turn On IE8

// March 4th, 2008 // 1 Comment » // browsers

After all the fuss and malarkey described in a previous post on A BulletProof idea, Microsoft have apparently listened to what designers and developers have been saying on various blogs and publications and decided to reverse their initial decision. IE8 will now show pages requesting “Standards” mode in IE8’s Standards mode. In a nutshell – Microsoft has reversed its decision to make IE8 behave like IE7 unless specifically requested.

The IE Blog states:

“We decided to keep IE7’s Standards mode available in IE8. Our thinking was that this facility would be helpful as the web moves gradually from the large quantity of legacy content authored around IE7’s behaviors to a new era of much more interoperable and web standards compliant browsers. We based the decision to have an additional mode in IE8 on our experience with feedback from IE7. Specifically, during the transition from IE6 to IE7, many end-users found pages authored for the previous IE version’s Standards mode didn’t work well with the new version’s Standards mode.”

“We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously.”

Dean Hachamovitch General Manager Internet Explorer

Read: Microsoft’s Interoperability Principles and IE8

Check Out: IE8 Features

Using Semantic Naming Conventions In Your Mark-Up

// February 25th, 2008 // 1 Comment » // POSH, tutorials, web standards

When marking up a document, how many of us pay attention to good naming conventions? By this I mean using mark up that is meaningful and nonpresentational.

Let’s take a very basic web page which has main navigation, a header which contains the company branding or logo, a sidebar for additional content, a main content area and a footer area which has site content such as copyright information. Before we all used web standards and meaningful mark-up our document would probably resemble something like this:

Example 1 non-semantic mark up

The way each div element is named is not telling you anything about the content, only giving clues to how the content is being presented. Even though we can achieve valid mark up using these naming conventions, they are non-semantic and as we are aiming for a true separation of presentation from content we need to have a re-think of these names by using semantic mark-up.

Let’s take another look at our document and break it down piece by piece:

#Navigation

Looking at our mark-up we have just #navigation, but what kind of navigation? Is it primary, sub or whatever? As this will be the main navigation in our document lets give it a meaningful name, lets call it #nav_main. This clearly tells us that this is the main navigation not the sub or the secondary but the main navigation.

#Header

The company logo is something I have seen named as ‘header’ or ‘head’ or even in some cases ‘banner’. Not at all semantic as it’s presentational, but how about ‘brand’ or ‘branding’. That is what we are putting there – the company branding or identity. When we see a famous logo like Fedex for example, we don’t say “oh that’s the company header” we say ‘Ah! Thats the company brand identity or ‘Branding’ So, in our example let’s use #branding

#Sidebar

A question we must ask ourselves here is “what is the sidebar actually for and what is it going to contain?” In our example we are going to use it for additional content. Let’s say for example we want to put a small thumbnail gallery like a flickr feed inside the sidebar, we can label this “Additional content” but more semantically we can re-name this to #content_sub If we kept it as #sidebar we would be using a presentational name which goes against our goal of separating presentation from content.

#Content

Our example has one area of main content which needs to be given a definition. Instead of just calling it ‘content’ which could be anything on the page, let’s give it more meaning, let’s call it #content_main
Here we can achieve an added bonus, you have probably seen those ‘skip to main content’ links on some websites right? Now that we have a meaningful ‘hook’ in place, we really can skip to main content rather than putting a ‘skip to content’ link in the page and linking it to just something with the name ‘#content’.

#Footer

Finally we come to the ‘footer’ of our page. Now footers have a wide range of possibilities and are often overlooked. In fact they are a vital component of your website as they can contain some useful information.
In our example, we are going to put some copyright information, a link to a site map, and a link to an accessibility statement. This tells us that the footer is going to contain content relating to information about the site. So I think it would be common sense to re-name the footer to #site_info

Now let’s look at the changes we have made to our mark-up:
Example 2 using semantic mark up

All we have done is change our naming conventions from presentational sounding mark-up to semantic mark-up giving our document’s content structure something that is meaningful and not presentational.

Advantages

Using naming conventions in this way can help yourself or a design team working together on a project in more ways than one. In a team environment, naming conventions make it simple to understand mark-up that has been written by a designer or a developer, as everyone in that team will understand a set of pe-defined conventions that the team have created and agreed upon. It will also reduce the margin for error with deadlines looming so in turn can help reduce costs as well.

It can also be a great deal of help to yourself. You probably have old items or snippets of code created months ago which you might not have looked at in a while, and whilst reading through them thought “what the hell does that relate to?”. It’s so easy to forget why you gave something a certain name when you created that code, so by using the same named conventions, you have ease of reference when reading through your code.

Not Just Mark-Up

A common head-scratcher is often when naming images. In our #branding we could use the same name for our company logo image – branding.jpg. Here we are naming our image semantically by naming it what it is rather than what it looks like.

Find Out More

Please Note: The above article is not a definitive guide, just a seed to plant into your mind about the idea of using good well formed and semantic mark-up. POSH (Plain Old Semantic Mark-Up) is quite a debatable subject and I would suggest reading more from some of the authors listed below to learn more in greater detail:

“There is a danger of adversly effecting semantics through incorrect use of CSS.” Andy Clarke

Read: Semantics and Design by Andy Clarke

Learn about the origins of POSh and Semantic XHTML from the Microformats Wiki
Read: POSH – Microformats
Read: Semantic XHTML

Here’s a great article from Digital Web entitled Mark-Up As A Craft which gives an extensive list of guidelines to aid you in creating well formed and semantic mark-up.

These are just a few pointers that I hope you will take a look at and learn from. Good Luck!

IE 8 Causes A Stir

// January 31st, 2008 // 6 Comments » // Internet Explorer, browsers, microsoft

Later this year we will see the latest incarnation of Microsoft’s Internet Explorer browser, IE8. This comes hot on the heels (2 years later – not bad for Microsoft) of IE7 which was not the success that Microsoft hoped to achieve, but nevertheless it gave greater web standards support than IE6 much to the joy of web designers around the globe.

IE 8 promises to be a giant leap forward in web standards support, offering many options to designers and developers that have been missing from previous versions of the browser. It will also follow the CSS 2.1 spec due to the changes being made to IE’s rendering engine. (No more ‘Has Layout’ yay!). Also it is the latest standards compliant browser to pass the Acid 2 Test.

However, there is a caveat – Microsoft fear that with such significant changes being made to IE’s rendering engine to provide standards support, websites previously built without standards in mind will become broken.

What angered the web community with IE 7 was that websites that looked great in IE6 and designed with standards in mind became broken in IE7. According to Roger Johansson this was because:

  1. Sites that have an XML declaration before the DOCTYPE, making IE 6 use quirks mode, but not IE 7. Both browsers still get the same CSS, so IE 7 renders it differently.
  2. Sites that depend heavily on CSS hacks that no longer work in IE 7.
  3. Sites that use conditional comments to feed a bugfix stylesheet to IE without specifying a version number, thereby making IE 7 load the bugfixes and mess up rendering.

A Fourth Problem – The DOCTYPE switch

Microsoft have themselves found a fourth – the DOCTYPE switch. This is a vital component enabling advanced CSS layouts to be displayed correctly. To cut a long story short, this means that a document with a well formed DOCTYPE of a current HTML standard will display and render the information in Standards Compliant Mode using W3C’s box model. If no DOCTYPE was found then the information would be displayed or rendered in Quirks Mode using a non standard box model.

The Solution?

Microsoft’s proposal to fix this is to implement a snippet of code in the HTTP header of documents:
<meta http-equiv="X-UA-Compatible" content="IE=8" />.

This new HTTP header makes future versions of IE being able to render documents just as they would in previous versions. In this case, IE 8 being able to render documents as they would render in IE7. This would solve the problem I mentioned earlier in this post when vendors complained about their IE6 sites breaking in IE7. It also means that you need to specifically declare that you want IE8 to be IE8 then you have to put in this HTTP header or the browser will just behave like IE7.

Reaction

These latest developments have caused a furore in the world of web design. Eric Meyer and Johnathan Snook are some of those in the ‘yes’ camp with Rachel Andrew and John Resig firmly in the ‘No’ camp. There are one or two out there sitting on the fence who still can’t quite decide, Ethan Marcotte says that he “feels uneasy about it.”

Safari have responded by saying that they would not be implementing version targetting on the Safari browser, while Mike Davies says that it is “The end of the line for IE”.

What does concern me is that it could bring back the bad old days of targeting specific browsers or browser ‘lock out’. Developers that are not that ‘well informed’ about the HTTP header would in the future just not include this new snippet of code, forever locking their sites to render in IE7 in whatever future version of IE is current. Savvy developers could use this to their advantage by locking down support for IE and turning their attention to other browsers – just like the bad old days…….again!

Another interesting development that came to light recently, was that Microsoft has warned corporate administrators that it will push a new version of Internet Explorer 7 their way next month (February 2008), and it has posted guidelines on how to ward off the automatic update if admins want to keep the older IE6 browser on their companies’ machines.

This was announced last October (2070),when Microsoft said it would no longer require users to prove they owned a legitimate copy of Windows XP before they were allowed to download the newer browser. Microsoft explained that the move was prompted by security concerns.

“Because Microsoft takes its commitment to help protect the entire Windows ecosystem seriously, we’re updating the IE7 installation experience to make it available as broadly as possible to all Windows users.” Steve Reynolds, IE program manager.

When you consider that more than 1 in 3 people worldwide still use IE6, there is going to be some big problems for all of us ahead.