<?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: Khahliso Sekoto</title>
    <description>The latest articles on DEV Community by Khahliso Sekoto (@khahliso).</description>
    <link>https://dev.to/khahliso</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%2F4111154%2Fd61e1e6b-f0a2-42a1-8979-a7651e77a61b.jpeg</url>
      <title>DEV Community: Khahliso Sekoto</title>
      <link>https://dev.to/khahliso</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/khahliso"/>
    <language>en</language>
    <item>
      <title>Building for Everyone: Deep Diving into Advanced HTML Tables &amp; Web Accessibility (a11y)</title>
      <dc:creator>Khahliso Sekoto</dc:creator>
      <pubDate>Mon, 07 Sep 2026 15:02:38 +0000</pubDate>
      <link>https://dev.to/khahliso/building-for-everyone-deep-diving-into-advanced-html-tables-web-accessibility-a11y-3a30</link>
      <guid>https://dev.to/khahliso/building-for-everyone-deep-diving-into-advanced-html-tables-web-accessibility-a11y-3a30</guid>
      <description>&lt;p&gt;Hey everyone! 👋 &lt;/p&gt;

&lt;p&gt;Continuing my journey through the Full Stack JavaScript path on &lt;strong&gt;The Odin Project&lt;/strong&gt;, today I shifted focus over to a module that separate amateur layouts from production-grade engineering: &lt;strong&gt;Advanced HTML Tables and Accessibility (a11y)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tables seem straightforward at first glance, but formatting complex data data accessibly requires deep intentionality. Here is a quick summary of my core takeaways today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;What Tables Are NOT For 🚫&lt;br&gt;
The most fundamental rule: tables are strictly meant for &lt;em&gt;tabular data&lt;/em&gt;. In the early days of the web, developers used tables to layout entire pages. Today, that is a massive anti-pattern. Architecture belongs to CSS Flexbox/Grid; tables belong strictly to organized data sets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Building for Assistive Tech &amp;amp; Visual Impairment &lt;br&gt;
Data means nothing if a screen reader can't map out the relationships between headers and metrics. I learned how to move past simple grids to create a genuinely accessible structure using:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;caption&amp;gt;&lt;/code&gt;: Acts like a title/summary for the table so screen reader users can quickly understand its context without reading every row.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;scope="col"&lt;/code&gt; &amp;amp; &lt;code&gt;scope="row"&lt;/code&gt;: Creates clear linear relationships for primary grids.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;id&lt;/code&gt; &amp;amp; &lt;code&gt;headers&lt;/code&gt; attributes: An advanced method where you give headers a unique ID and explicitly link specific data cells to them. This is crucial for multi-layered tables where a cell might correspond to multiple tiered categories.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;categories.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Structural Segregation (&lt;code&gt;&amp;lt;thead&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;tbody&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;tfoot&amp;gt;&lt;/code&gt;)&lt;br&gt;
Instead of just stacking rows blindly, intermediate HTML segments data systematically. &lt;code&gt;&amp;lt;thead&amp;gt;&lt;/code&gt; manages header tags, &lt;code&gt;&amp;lt;tbody&amp;gt;&lt;/code&gt; wraps the core looping items, and &lt;code&gt;&amp;lt;tfoot&amp;gt;&lt;/code&gt; handles the calculation/summary row at the bottom. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Grouping &amp;amp; Spanning (&lt;code&gt;&amp;lt;colgroup&amp;gt;&lt;/code&gt;, &lt;code&gt;colspan&lt;/code&gt;, &lt;code&gt;rowspan&lt;/code&gt;)&lt;br&gt;
I practiced using &lt;code&gt;&amp;lt;colgroup&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;col&amp;gt;&lt;/code&gt; to isolate entire vertical column stripes for unified structural styling right from the top of the element, alongside combining grid blocks horizontally and vertically without causing layout clipping.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What's your approach?
&lt;/h3&gt;

&lt;p&gt;To the tech community: Accessibility (a11y) is often treated as an afterthought, but building it directly into your semantic HTML makes life so much easier. &lt;strong&gt;What are your go-to tools or extensions for testing screen-reader behavior while developing locally?&lt;/strong&gt; Let's swap tips below! 👇&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>html</category>
      <category>a11y</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Finished The Odin Project Foundations &amp; What I've Learned So Far</title>
      <dc:creator>Khahliso Sekoto</dc:creator>
      <pubDate>Mon, 07 Sep 2026 09:47:08 +0000</pubDate>
      <link>https://dev.to/khahliso/how-i-finished-the-odin-project-foundations-what-ive-learned-so-far-i55</link>
      <guid>https://dev.to/khahliso/how-i-finished-the-odin-project-foundations-what-ive-learned-so-far-i55</guid>
      <description>&lt;p&gt;Hey everyone! 👋 &lt;/p&gt;

&lt;p&gt;I'm incredibly excited to share that I have officially crossed a major milestone on my self-taught software engineering journey: &lt;strong&gt;I've completed the Foundations path of The Odin Project and officially selected the Full Stack JavaScript track!&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;When I first started, the terminal felt like a foreign language and managing files via git version control felt completely overwhelming. Looking back now, it's amazing to see how much has clicked.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Builds I'm Most Proud Of
&lt;/h3&gt;

&lt;p&gt;During the fundamentals phase, everything is about getting your hands dirty with real code. Two projects stood out to me as the ultimate tests of what I had learned:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Etch-a-Sketch Canvas:&lt;/strong&gt; This was a massive breakthrough for my JavaScript skills. It forced me to move past static variables and understand dynamic DOM manipulation, nested loops to generate grid squares, and handling live mouse hover event listeners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Landing Page:&lt;/strong&gt; My first deep dive into modern responsive layouts. I focused heavily on writing clean, semantic HTML structure and mastering the layout alignment control of CSS Flexbox.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can check out my progress, repositories, and current focus right here:&lt;br&gt;
👉 &lt;strong&gt;My GitHub Profile:&lt;/strong&gt; [://github.com]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/KhahlisoSekoto" rel="noopener noreferrer"&gt;https://github.com/KhahlisoSekoto&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📐 What's Next: Diving into Intermediate Assets (SVGs)
&lt;/h3&gt;

&lt;p&gt;To jumpstart the Full Stack JavaScript path, I kicked off my week with the intermediate HTML/CSS module focusing on &lt;strong&gt;Scalable Vector Graphics (SVGs)&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Coming out of the lesson, a few engineering concepts really stuck with me regarding asset choice and performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vector vs. Raster Mechanics:&lt;/strong&gt; Traditional pixel grids (PNGs/JPEGs) struggle and pixelate when resized. Because SVGs rely on math equations in an HTML-like XML structure, they scale infinitely with zero drop in resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Embedding Trade-off:&lt;/strong&gt; Learning the choice between embedding an SVG &lt;em&gt;inline&lt;/em&gt; (total control for CSS/JS animations, but leaves a heavy DOM footprint that can hurt initial page caching) vs. &lt;em&gt;linked&lt;/em&gt; (cleaner markup using standard &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tags, but acts as a frozen asset). &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowing Limitations:&lt;/strong&gt; SVGs are incredibly efficient for UI frameworks and icon systems (like Feather Icons), but completely the wrong tool for photorealistic rendering where high textures cause massive code bloat.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💬 Let's Connect!
&lt;/h3&gt;

&lt;p&gt;To the self-taught dev community or anyone currently pushing through The Odin Project: &lt;strong&gt;What was the biggest breakthrough concept or project that made frontend programming finally click for you?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Let's discuss workflows below! 👇&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>html</category>
    </item>
    <item>
      <title>Dynamic DOM Manipulation &amp; Hover Mechanics: Cracking the Etch-a-Sketch Project</title>
      <dc:creator>Khahliso Sekoto</dc:creator>
      <pubDate>Sat, 05 Sep 2026 13:09:03 +0000</pubDate>
      <link>https://dev.to/khahliso/dynamic-dom-manipulation-hover-mechanics-cracking-the-etch-a-sketch-project-3cjo</link>
      <guid>https://dev.to/khahliso/dynamic-dom-manipulation-hover-mechanics-cracking-the-etch-a-sketch-project-3cjo</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%2Fpwryhgm0mv16uxe74r7s.jpeg" 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%2Fpwryhgm0mv16uxe74r7s.jpeg" alt=" " width="800" height="1136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another milestone unlocked! &lt;/p&gt;

&lt;p&gt;Today I finished building my browser-based Etch-a-Sketch project as part of The Odin Project Foundations curriculum. &lt;/p&gt;

&lt;p&gt;This project was a fantastic challenge that pushed me to dive deep into:&lt;br&gt;
-Dynamic DOM Manipulation — using JavaScript loops to generate grids on the fly.&lt;br&gt;
-Advanced Flexbox Layouts — calculating pixel dimensions and border boxes perfectly without breaking rows.&lt;br&gt;
-Event Listeners — capturing mouse movements to create interactive, hover-based drawing mechanics.&lt;/p&gt;

&lt;p&gt;It felt incredible to wrap things up, document it in my README, and push the final build straight to GitHub via the terminal! &lt;/p&gt;

&lt;p&gt;Try it out live: &lt;a href="https://lnkd.in/dmtJMm7U" rel="noopener noreferrer"&gt;https://lnkd.in/dmtJMm7U&lt;/a&gt;&lt;br&gt;
View the source code: &lt;a href="https://lnkd.in/drgtVEa8" rel="noopener noreferrer"&gt;https://lnkd.in/drgtVEa8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Onwards to the next challenge! &lt;/p&gt;

&lt;h1&gt;
  
  
  TheOdinProject #WebDevelopment #JavaScript #CSSFlexbox #CodingJourney #BuildInPublic #FrontEnd
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
