You may have heard these terms spouted and never have truly understood them, so let me tell you what they mean to me. Semantic Markup is all about using the right HTML tags to correctly describe or contain the data. If you output an address in your document then it should be contained within the
address tag. We pride ourselves in producing semantic markup for all our products and services.
This also helps many other aspects of your development including making your markup/HTML cleaner and more readable and in turn easier to maintain. Additionally it makes it easier for search engines like Google, Yahoo and MSN to index your pages which in turn makes it easier for people to find your site and the content in your pages.
Another great aspect of using semantic markup is that you generally tend to have a nice separation of the data and the display. This means that your HTML just contains markup and the data and you leave all the presentation or look and feel in external CSS style sheets. This speeds up the download of you pages as well as the time it takes for the browser to render the content.
For years I like every other developer, wrote page after page using tables to layout the pages. Tables were never designed to be used as such, but the HTML specification hadn’t advanced enough to provide designers and developers the tools they needed for advanced layouts. Thus many hacks were used to force tables to do what we wanted them to instead of what they were intended to be used for. They were intended to be used for tabular data. The table tag is a valid tag and should be used in right situations. The right situation however is not for layout for many reasons.
One of the main reasons is what we talked about in the section above about semantic markup. A table used for layout isn’t describing the data and just serves to clutter the code. One look at some of the pages in our portfolio will show you that we mean what we say about using tableless design.
Another reason that many web designers and developers aren’t aware of is that a table actually gets parsed or read twice when a browser reads a web page. The first pass is to recognize all the data. The second time is to read the layout. We now know that using tables for layout slows our pages down with added code that’s not needed and it causes the browser to read that information twice.