Semantic Markup is web design/development in a perfect world. It refers to using html tags solely for the purpose that they were intended (ie not for visual or layout purposes). It means using the <table> tag when you are displaying information in multi columns, not for the purposes of design or page layout. It means using <ul> (unordered list) for just that-a list in which the order would not change its meaning; and a <dl> (definition list) for a list of terms with their definition. Semantic markup is coding the way that things should be for the best interest of other coders as well as for computers to understand us human coders.
Designers should use this method for coding because we have the technology and training now to make this possible and it is the best way for all parties to clearly communicate with each other. Before we had CSS, table based layouts were the only way designers could accomplish the type of layouts that they wanted. Now those methods are obsolete and we have much cleaner and simpler ways of achieving the layouts that we desire and the <table> tag should be used for it’s true purpose: creating a table. Reading html code can be a daunting task for us and I imagine that it is even harder for a computer to analyse and comprehend the subtleties of what that coder was thinking when he coded the way he did. By using these rules we can help each other and the machine to understand the information that it is receiving- this can help us in many ways. Search engines now may understand the content of our pages more clearly and screen readers can help people with disabilities read out content and understand what they are being told.
Adopting semantic markup finally has laid down some set rules that we can follow to better able ourselves to communicate with our peers and the machine and to streamline the way all web developers work.