The Basics of HTML: Understanding Semantics and Its Importance
Tags: beginners, html, codenewbie, frontend
Published: 2023-10-14 18:23:15

## Introduction

In this post, I will explain what semantic HTML is, give examples, and answer the question of why it is necessary to structure your HTML document semantically. I will also give you my tips for writing semantic HTML.

First of all, what is semantic HTML? Semantic HTML allows us to structure our HTML document in such a way that each HTML tag gives added meaning to the document. In other words, the HTML tags we use in the document should give a description of that area of the document. 

Semantic markup has always been present within HTML. For instance, tags that allow you to define the title, heading, paragraphs, and different types of lists are a few of the tags that give a degree of meaning to the document. HTML5 takes this further by allowing you to define tags that add structure to the entire document and meaning to each individual tag.

As examples, observe how the HTML documents are structured below:

### HTML Document without semantic elements

![HTML document without semantic elements](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zouf1gpj8w1fp4qaht55.png)

The screenshot above shows how you would structure an HTML document without semantic tags. Compare and contrast this with the screenshot below:

### HTML Document with semantic elements

![HTML document with semantic elements](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3qjypub72g57x7ys9ku.png)

Observe how the HTML document with semantic elements differs from the one without. Instead of throwing all the tags and content between `div` tags we have added elements that define the structure of a typical web document such as `header`, `nav`, `section`, and `footer`. All-in-all, this approach will add clarity to your document structure.

### Importance of Semantic HTML

There are several reasons for adding semantic HTML elements to your document. Some of these include:

1. Structuring the document with semantic elements will make your document easier to read and maintain. Going back to the HTML document with the semantic elements above, you can instantly see what the tags represent. For example, the header tags instantly tell you that anything within those tags falls within the website header.
2. Another reason to use semantic tags is to help people with 
 visual or audio impairments. Using semantic HTML helps improve the accessibility of your website for such individuals. Screen readers are better able to read these tags and interpret them for such individuals.
3. SEO considerations are another good reason to use semantic elements in your document. Search engines have an easier time finding and giving importance to content that is in tags such as `header`, `nav`, and `footer` than generic `div` tags for example.
4. Writing an HTML document with semantic elements also helps you write code that is consistent across the document. Having this consistency will make it easier when you or someone else comes back to the document at a later time and needs to make changes. In other words, you are future-proofing your document.

### My Tip for Writing Semantic HTML

When writing your HTML document always ask yourself whether it is possible to replace an element with a semantic element that adds more meaning to the structure of the document. An exhaustive list of semantic elements you can use can be found [here](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#semantic_elements).

### Conclusion

In conclusion, writing your HTML with semantic elements will help you produce a well-structured document. It will also save you time in the future when you need to make changes to the document for any reason.

### Resources

Here is a list of resources you can use to learn more about semantic HTML elements and how to use them in your document.

You can find an exhaustive list of semantic HTML elements [here](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#semantic_elements).

[This](https://web.dev/learn/html/semantic-html/) page will go into further detail on Semantic HTML and also explain the Accessibility Object Model.

A good article on how to write good semantic markup for your document structure can be found [here](https://www.bitdegree.org/learn/html5-semantic-tags#the-origins-of-html5-semantic-tags).

A detailed guide on semantic HTML is available [here](https://www.browserstack.com/guide/html-semantic).