<?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: CLINTON HAMISI JONYANG</title>
    <description>The latest articles on DEV Community by CLINTON HAMISI JONYANG (@hamisi254iyf).</description>
    <link>https://dev.to/hamisi254iyf</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%2F4197806%2F0b64e264-0f4c-4cb2-91f0-7a1848f792d5.png</url>
      <title>DEV Community: CLINTON HAMISI JONYANG</title>
      <link>https://dev.to/hamisi254iyf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hamisi254iyf"/>
    <language>en</language>
    <item>
      <title>Semantic HTML &amp; Accessibility: What I Learned Auditing My Own Portfolio</title>
      <dc:creator>CLINTON HAMISI JONYANG</dc:creator>
      <pubDate>Wed, 21 Oct 2026 09:03:10 +0000</pubDate>
      <link>https://dev.to/hamisi254iyf/semantic-html-accessibility-what-i-learned-auditing-my-own-portfolio-5ggg</link>
      <guid>https://dev.to/hamisi254iyf/semantic-html-accessibility-what-i-learned-auditing-my-own-portfolio-5ggg</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo4zsvv1z2oyfteei5xe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo4zsvv1z2oyfteei5xe.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;When I built my first multi-page portfolio, I thought "if it looks right, it works." Then I ran Lighthouse and WAVE on my site — and realized &lt;strong&gt;looking right and being accessible are two different things&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here's what I learned about semantic HTML, the accessibility issues I found, and how I fixed them.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is semantic HTML (and why it matters)?
&lt;/h2&gt;

&lt;p&gt;Semantic HTML means using the tag that &lt;strong&gt;describes what the content is&lt;/strong&gt; — not just how it looks.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; says nothing. A &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; says "this is navigation." A &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; says "this is the top of the page." A &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; says "this is the primary content."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screen readers&lt;/strong&gt; use semantic tags to let users jump straight to the main content or navigation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search engines&lt;/strong&gt; understand your page structure better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other developers&lt;/strong&gt; (including future you) can read the code and instantly know what each block does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility tools&lt;/strong&gt; like Lighthouse and WAVE can only help if your structure is meaningful.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short: semantic HTML makes your site &lt;strong&gt;usable by more people, with less effort&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before / After: A Real Snippet
&lt;/h2&gt;

&lt;p&gt;Here's a block from an early draft of my site — pure &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; soup:&lt;/p&gt;



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

&amp;lt;div class="header"&amp;gt;
    &amp;lt;div class="logo"&amp;gt;My Site&amp;lt;/div&amp;gt;
    &amp;lt;div class="nav"&amp;gt;
        &amp;lt;div class="nav-item"&amp;gt;Home&amp;lt;/div&amp;gt;
        &amp;lt;div class="nav-item"&amp;gt;About&amp;lt;/div&amp;gt;
        &amp;lt;div class="nav-item"&amp;gt;Contact&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

Here's a block re-written with good semantic tags:

&amp;lt;header&amp;gt;
    &amp;lt;div class="logo"&amp;gt;My Site&amp;lt;/div&amp;gt;
    &amp;lt;nav aria-label="Main navigation"&amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href="index.html"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href="about.html"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href="contact.html"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/nav&amp;gt;
&amp;lt;/header&amp;gt;

What changed:

&amp;lt;div class="header"&amp;gt; → &amp;lt;header&amp;gt;

&amp;lt;div class="nav"&amp;gt; → &amp;lt;nav&amp;gt;

&amp;lt;div class="nav-item"&amp;gt; → &amp;lt;li&amp;gt; with a real &amp;lt;a&amp;gt; link

Same visual result. Completely different meaning to a screen reader.

Accessibility Issues I Found (and Fixed)
&amp;gt;Running Lighthouse and WAVE on my portfolio surfaced three problems:

1. Missing alt text on images
Issue: My profile image had no alt attribute. Screen readers announced it as just "image."

Fix:
&amp;lt;!-- Before --&amp;gt;
&amp;lt;img src="images/profile.jpg"&amp;gt;

&amp;lt;!-- After --&amp;gt;
&amp;lt;img src="images/profile.jpg" alt="Clinton Hamisi, founder of BlankSlate Blueprint Core"&amp;gt;
Now the image actually describes itself to anyone who can't see it.

2. Missing lang attribute on &amp;lt;html&amp;gt;
Issue: Without lang="en", screen readers may pronounce English text with the wrong accent or use the wrong dictionary.

Fix:
&amp;lt;!-- Before --&amp;gt;
&amp;lt;html&amp;gt;

&amp;lt;!-- After --&amp;gt;
&amp;lt;html lang="en"&amp;gt;
A one-word fix with a big impact.

3. Non-descriptive link text
Issue: One link simply said "click here." Out of context, it's meaningless — especially for someone tabbing through links with a screen reader.

Fix:
&amp;lt;!-- Before --&amp;gt;
&amp;lt;a href="https://github.com"&amp;gt;click here&amp;lt;/a&amp;gt;

&amp;lt;!-- After --&amp;gt;
&amp;lt;a href="https://github.com"&amp;gt;Visit my GitHub profile&amp;lt;/a&amp;gt;
The new text tells the user where they're going before they click.

What I'd Tell Anyone Starting Out
You don't need a perfect site. You need a clear structure and honest labels:

&amp;gt;Use &amp;lt;header&amp;gt;, &amp;lt;nav&amp;gt;, &amp;lt;main&amp;gt;, &amp;lt;article&amp;gt;, &amp;lt;aside&amp;gt;, &amp;lt;footer&amp;gt; — they're free and they help everyone.

&amp;gt;Add alt text to every image (describe what it shows, not what it is).

&amp;gt;Always set lang on &amp;lt;html&amp;gt;.

&amp;gt;Write link text that makes sense on its own.

A few small changes turned my portfolio from "looks fine" to actually usable.

See It Live
I deployed the updated portfolio on GitHub Pages:

🔗 hamisi254iyf.github.io/iyf-s12-week-01-Hamisi254IYF

The full accessibility report is in the repo, and every page in the site now passes Lighthouse's accessibility audit with a perfect score.

If you're building your first site — run Lighthouse on it today. You'll learn more in 5 minutes than in a week of guessing.

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

&lt;/div&gt;

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