<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Wilson Siaw</title>
    <description>The latest articles on DEV Community by Wilson Siaw (@wilsonsiaw).</description>
    <link>https://dev.to/wilsonsiaw</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1047997%2Fc5f6455b-1a35-46e1-9e80-6afacb77ec14.jpg</url>
      <title>DEV Community: Wilson Siaw</title>
      <link>https://dev.to/wilsonsiaw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wilsonsiaw"/>
    <language>en</language>
    <item>
      <title>Tutorial: React + Emailjs</title>
      <dc:creator>Wilson Siaw</dc:creator>
      <pubDate>Wed, 27 Mar 2024 20:27:43 +0000</pubDate>
      <link>https://dev.to/wilsonsiaw/tutorial-react-emailjs-36bl</link>
      <guid>https://dev.to/wilsonsiaw/tutorial-react-emailjs-36bl</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this tutorial, we will go through the process of setting up Emailjs with a React application built using the Vite build tool.&lt;br&gt;
Emailjs is a software application that lets you "send email directly from your code". The benefit is that you do not have to build a complex server on the backend of your web application to handle emails. Let's begin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Scaffold React Project using Vite
&lt;/h3&gt;

&lt;p&gt;On the Command Line Interface, navigate to where you want to keep your project on your device and run the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm create vite@latest


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You will be presented with the following:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? Project name: &amp;gt; vite_project


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;For this tutorial, we will name our project ContactForm. (You can enter any name relevant to the project you are building) &lt;/p&gt;

&lt;p&gt;Next, we will type the project name at the prompt and press Enter.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? Project name: &amp;gt; ContactForm


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After this, we are presented with a selection of frameworks. Use the arrow keys to select &lt;strong&gt;React&lt;/strong&gt; and press Enter. Then we are given a list of variants of &lt;strong&gt;React&lt;/strong&gt;. Again use the arrow keys to select &lt;strong&gt;JavaScript&lt;/strong&gt; and press Enter.&lt;/p&gt;

&lt;p&gt;After you have done the above, Vite will give you the precise commands to follow to complete scaffolding the project. The commands are:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

cd ContactForm
npm install
npm run dev


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Run the commands above and wait for Vite to finish scaffolding the project. Once this process has run its course you should have a React project with a file structure similar to what we have below in your favorite code editor. Note that we are using VS Code for this tutorial.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkl1es8p0tvngp4mle35.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkl1es8p0tvngp4mle35.png" alt="React File Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more about the Vite build tool &lt;a href="https://vitejs.dev/" rel="noopener noreferrer"&gt;here&lt;/a&gt; is a link to the documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Build ContactForm
&lt;/h3&gt;

&lt;p&gt;Now let us go ahead and build a simple contact form. The form will have only 3 fields. &lt;/p&gt;

&lt;p&gt;Look for App.jsx in the project structure and delete all the redundant code in the file until you are left with something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1zfh2lejxy8be03l4la.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1zfh2lejxy8be03l4la.png" alt="Remove code from App.jsx"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can now write the code for our form. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12sjm171jm0p1e8dqeyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12sjm171jm0p1e8dqeyk.png" alt="React Form Inputs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things to note from the code above:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We have created 3 form inputs: 2 text inputs and a textarea.&lt;/li&gt;
&lt;li&gt;We have also added an optional placeholder identifying what each input does for our users.&lt;/li&gt;
&lt;li&gt;We have also created a "name" attribute. Take special note of this attribute because we will need it to set up our Emailjs templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Speaking of which let us now navigate to &lt;a href="https://www.emailjs.com/" rel="noopener noreferrer"&gt;Emailjs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Configure Emailjs
&lt;/h3&gt;

&lt;p&gt;On the Emailjs homepage sign up for a free account. Once you have signed in you will be presented with a page like the below below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3eukktp22qr37qxxpsz1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3eukktp22qr37qxxpsz1.png" alt="Email js startup page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow these steps:&lt;/p&gt;

&lt;p&gt;a. Click on Add New Service&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3oxmnii3j6yj8dcmyt6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3oxmnii3j6yj8dcmyt6.png" alt="Add a service"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b. In this tutorial, we will use Gmail. After selecting the service, you should have the following on your screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivh6kits07qhavu29qtt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivh6kits07qhavu29qtt.png" alt="Select a service"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;c. Click "Connect Account" and connect your email to Emailjs. Take note of the service ID. We will need it later. Now click "Create Service". Once the service has been connected successfully, you will get the following screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1auhi1i4fpidt5xwv79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1auhi1i4fpidt5xwv79.png" alt="Create a service"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take note of the &lt;strong&gt;Service ID&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The next thing to do is create an email template. &lt;/p&gt;

&lt;p&gt;d. Select Email Templates. Click "Create New Template". Note how variables are defined in Emailjs. In this instance "from_name" is a variable&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvnqg44ong56zfqgonhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvnqg44ong56zfqgonhk.png" alt="Default email template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e. Remember the name attributes we created in our code earlier? Let's replace the variables in Emailjs with those attributes like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1joezjv2lcsrydix1fv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1joezjv2lcsrydix1fv.png" alt="Setting emailjs variable"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: to edit the content of the email, click "Edit Content" and select Design Editor from the pop-up menu. Then save the template. &lt;/p&gt;

&lt;p&gt;f. Let us change the name of our template before we return to our code editor. Go to Settings and change the template name to "Contact Form". For this tutorial, we will keep the Template ID as it is but you can change it if you want to. Save the template and go back to the Email Templates page.&lt;br&gt;
The page should now look like this. Take note of the &lt;strong&gt;Template ID&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nr0swkvdsqigviy021m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nr0swkvdsqigviy021m.png" alt="New email template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let us go back to our code editor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Configure the .env File
&lt;/h3&gt;

&lt;p&gt;We will put our Emailjs environment variables in a dotenv (.env) file. To read more about the purpose of this file click &lt;a href="https://www.npmjs.com/package/dotenv" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Navigate to the root of the folder structure in your project and create a .env file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d3mnmq5zzxuuvihgenr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d3mnmq5zzxuuvihgenr.png" alt="Folder structure with dotenv file"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's add our variables to this file. The variables we'll need from Emailjs are &lt;strong&gt;Service ID&lt;/strong&gt;, &lt;strong&gt;Template ID&lt;/strong&gt;, and &lt;strong&gt;Public Key&lt;/strong&gt;. You can find the Public Key in the Accounts tab of Emailjs. &lt;/p&gt;

&lt;p&gt;Now create these variables in the .env file. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhfm92us0b0hv9y17pdu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhfm92us0b0hv9y17pdu.png" alt="Environment variables"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Replace "YOUR SERVICE ID", "YOUR TEMPLATE ID" and "YOUR PUBLIC ID" with your IDs and key from Emailjs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Write the Send Email Function
&lt;/h3&gt;

&lt;p&gt;We will now go into App.jsx and write the function responsible for getting the data from the form inputs and sending it to Emailjs. &lt;/p&gt;

&lt;p&gt;But before we do this, we need to install the Emailjs dependency or SDK in our project. Open the terminal and make sure you are in the project folder. Run this command in the terminal.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install emailjs-com


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command will install email-js as a dependency in your project. To confirm that it has been installed open the package.json file in your project and check that "emailjs-com" is listed in the dependencies.&lt;/p&gt;

&lt;p&gt;After confirming Emailjs has been installed successfully, go ahead and import it into your project and write the function mentioned above.&lt;/p&gt;

&lt;p&gt;The function can be written like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2v8dv90f4sr59tfaixf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2v8dv90f4sr59tfaixf.png" alt="Send email function"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things to note from the code above:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;See how we import the environment variables from the .env file into our function.&lt;/li&gt;
&lt;li&gt;Notice how we prevent the default behavior when the button is submitted.&lt;/li&gt;
&lt;li&gt;Also notice how the onSubmit event handler is used.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a brief tutorial on using Emailjs in a React project using Vite. For a more in-depth look at Emailjs, you can visit the &lt;a href="https://www.emailjs.com/docs/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!!!&lt;/p&gt;

</description>
      <category>reactjsdevelopment</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Basics of HTML: Understanding Semantics and Its Importance</title>
      <dc:creator>Wilson Siaw</dc:creator>
      <pubDate>Sat, 14 Oct 2023 18:23:15 +0000</pubDate>
      <link>https://dev.to/wilsonsiaw/the-basics-of-html-understanding-semantics-and-its-importance-d1o</link>
      <guid>https://dev.to/wilsonsiaw/the-basics-of-html-understanding-semantics-and-its-importance-d1o</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;As examples, observe how the HTML documents are structured below:&lt;/p&gt;

&lt;h3&gt;
  
  
  HTML Document without semantic elements
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzouf1gpj8w1fp4qaht55.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzouf1gpj8w1fp4qaht55.png" alt="HTML document without semantic elements"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screenshot above shows how you would structure an HTML document without semantic tags. Compare and contrast this with the screenshot below:&lt;/p&gt;

&lt;h3&gt;
  
  
  HTML Document with semantic elements
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3qjypub72g57x7ys9ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3qjypub72g57x7ys9ku.png" alt="HTML document with semantic elements"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Importance of Semantic HTML
&lt;/h3&gt;

&lt;p&gt;There are several reasons for adding semantic HTML elements to your document. Some of these include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;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 &lt;code&gt;header&lt;/code&gt;, &lt;code&gt;nav&lt;/code&gt;, and &lt;code&gt;footer&lt;/code&gt; than generic &lt;code&gt;div&lt;/code&gt; tags for example.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  My Tip for Writing Semantic HTML
&lt;/h3&gt;

&lt;p&gt;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 &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Semantics#semantic_elements" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;p&gt;Here is a list of resources you can use to learn more about semantic HTML elements and how to use them in your document.&lt;/p&gt;

&lt;p&gt;You can find an exhaustive list of semantic HTML elements &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Semantics#semantic_elements" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://web.dev/learn/html/semantic-html/" rel="noopener noreferrer"&gt;This&lt;/a&gt; page will go into further detail on Semantic HTML and also explain the Accessibility Object Model.&lt;/p&gt;

&lt;p&gt;A good article on how to write good semantic markup for your document structure can be found &lt;a href="https://www.bitdegree.org/learn/html5-semantic-tags#the-origins-of-html5-semantic-tags" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A detailed guide on semantic HTML is available &lt;a href="https://www.browserstack.com/guide/html-semantic" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>html</category>
      <category>codenewbie</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
