<?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: Shaniz Mumbua</title>
    <description>The latest articles on DEV Community by Shaniz Mumbua (@yueren).</description>
    <link>https://dev.to/yueren</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4227223%2F26793bb5-17b8-4392-b908-e127b34ee6ec.jpg</url>
      <title>DEV Community: Shaniz Mumbua</title>
      <link>https://dev.to/yueren</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yueren"/>
    <language>en</language>
    <item>
      <title>My First Accessibility Audit: Learning Semantic HTML and Building for Everyone</title>
      <dc:creator>Shaniz Mumbua</dc:creator>
      <pubDate>Wed, 04 Nov 2026 21:40:58 +0000</pubDate>
      <link>https://dev.to/yueren/my-first-accessibility-audit-learning-semantic-html-and-building-for-everyone-51fp</link>
      <guid>https://dev.to/yueren/my-first-accessibility-audit-learning-semantic-html-and-building-for-everyone-51fp</guid>
      <description>&lt;h1&gt;
  
  
  My First Accessibility Audit: Learning Semantic HTML and Building for Everyone
&lt;/h1&gt;

&lt;p&gt;When I started learning HTML, my main focus was making websites display correctly in the browser. I paid attention to headings, paragraphs, images, and links, but I didn't always think about what those elements meant.&lt;/p&gt;

&lt;p&gt;During my practical web development training at WeCan Academy, I learned that writing HTML is not just about how a webpage looks. It's also about making its content understandable and accessible to different users.&lt;/p&gt;

&lt;p&gt;This introduced me to &lt;strong&gt;semantic HTML and web accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Semantic HTML?
&lt;/h2&gt;

&lt;p&gt;Semantic HTML means using HTML elements according to their meaning and purpose rather than choosing elements only for their appearance.&lt;/p&gt;

&lt;p&gt;For example, instead of using &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; elements for every part of a webpage, we can use meaningful elements such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; for introductory content.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; for navigation links.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; for the main page content.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; for related content grouped together.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; for independent, self-contained content.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; for footer information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These elements help browsers, search engines, developers, and assistive technologies understand the structure of a webpage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before and After: Non-Semantic vs Semantic HTML
&lt;/h2&gt;

&lt;p&gt;Initially, a webpage layout might be written using generic &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; elements:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before: Non-semantic HTML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"logo"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;My Website&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navigation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"main"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Welcome to My Website&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;This is my first paragraph.&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although this can display content, the HTML doesn't clearly communicate the purpose of each part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After: Semantic HTML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My Website&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Main navigation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"index.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"about.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"contact.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Welcome to My Website&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is my first paragraph.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second example gives the content a meaningful structure, making it easier to understand and navigate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned From My Accessibility Audit
&lt;/h2&gt;

&lt;p&gt;I audited my personal portfolio using Chrome DevTools Lighthouse and the WAVE Web Accessibility Evaluation Tool.&lt;/p&gt;

&lt;p&gt;Here are three important accessibility practices I worked on:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Alternative Text for Images
&lt;/h3&gt;

&lt;p&gt;Images need appropriate alternative text so that screen readers can communicate their content to users who cannot see them.&lt;/p&gt;

&lt;p&gt;I improved my profile image from a generic description to a more meaningful one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
    &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./images/photo.jpg"&lt;/span&gt;
    &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Portrait of Shaniz Ann Mumbua"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Proper Heading Structure
&lt;/h3&gt;

&lt;p&gt;Headings help organize content and make it easier to navigate.&lt;/p&gt;

&lt;p&gt;I checked that my page had one main &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; heading, followed by &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; headings for the main sections. This created a more logical content hierarchy.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Descriptive Links and Page Language
&lt;/h3&gt;

&lt;p&gt;I checked that links communicated their purpose instead of using vague text such as "click here".&lt;/p&gt;

&lt;p&gt;I also confirmed that my HTML document included:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps browsers and screen readers identify the language of the page.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Accessibility Audit Results
&lt;/h2&gt;

&lt;p&gt;After making improvements, I tested my website using both tools.&lt;/p&gt;

&lt;p&gt;My results were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lighthouse Accessibility:&lt;/strong&gt; 100/100&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAVE AIM Score:&lt;/strong&gt; 10/10&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAVE Errors:&lt;/strong&gt; 0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contrast Errors:&lt;/strong&gt; 0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerts:&lt;/strong&gt; 0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These results were encouraging, although I learned that automated tools cannot identify every accessibility problem. Manual testing is still important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This exercise changed how I think about writing HTML. I now understand that good web development is not only about creating attractive pages but also about making websites understandable and usable by different people.&lt;/p&gt;

&lt;p&gt;As I continue learning web development, I want to make accessibility part of my development process from the beginning rather than treating it as something to add at the end.&lt;/p&gt;

&lt;p&gt;I'm still learning, building, and improving one project at a time!&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>beginners</category>
      <category>html</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
