My First Accessibility Audit: Learning Semantic HTML and Building for Everyone

The modern web is built on a foundation of code that too often overlooks a substantial portion of the global population. For decades, the primary objective of front-end development has been visual presentation—ensuring that a website looks polished and renders correctly across various desktop and mobile browsers. However, as the digital ecosystem has matured, a critical paradigm shift has taken place within the software engineering community. Developers are increasingly recognizing that aesthetic appeal is secondary to functional inclusivity. This realization forms the cornerstone of modern web development training programs worldwide, challenging novices to rethink the very nature of how digital spaces are constructed.
During recent practical web development training at WeCan Academy, developers are being confronted with the reality that writing HTML is not merely about dictating how a webpage appears on a screen. Instead, it is an exercise in data architecture and communication, ensuring that content is fully understandable, navigable, and accessible to users with diverse abilities. This pedagogical approach introduces students to two fundamental pillars of contemporary software engineering: semantic HTML and comprehensive web accessibility. By moving away from generic structural wrappers and embracing purposeful code, developers can help bridge the digital divide for millions of users who rely on assistive technologies to navigate the internet.
Defining Semantic HTML and Its Structural Imperative
Semantic HTML refers to the practice of using markup elements according to their literal meaning and functional purpose, rather than selecting elements purely for how they render visually in a browser. In the early days of the web, and frequently in modern beginner codebases, developers relied heavily on generic container elements such as <div> and <span> to partition layouts. While these elements are technically valid and easily styled with Cascading Style Sheets (CSS), they carry no inherent meaning. To a web browser, a search engine crawler, or a screen reader utilized by a visually impaired individual, a page constructed entirely of nested <div> tags appears as an uncontextualized block of text and layout boxes.
To resolve this opacity, modern HTML standards provide a robust suite of semantic elements—such as <header>, <nav>, <main>, <section>, <article>, <aside>, and <footer>. These tags explicitly declare the role of the enclosed content. For instance, a <nav> element explicitly informs an assistive technology that the contained links govern site navigation, allowing a screen reader user to jump directly to the menu without listening to every link read aloud. Similarly, search engine optimization (SEO) algorithms favor semantic markup because it provides clear signals regarding the hierarchy and relevance of page content.
Comparative Analysis: Non-Semantic Versus Semantic Architecture
The structural difference between non-semantic and semantic code becomes starkly apparent when examining the underlying markup of a basic webpage. In a typical non-semantic implementation, developers often attempt to mimic layout structure using arbitrary class names inside generic containers.
Consider a standard non-semantic template:
<div class="header">
<div class="logo">My Website</div>
<div class="navigation">
<div>Home</div>
<div>About</div>
<div>Contact</div>
</div>
</div>
<div class="main">
<div class="content">
<div class="title">Welcome to My Website</div>
<div>This is my first paragraph.</div>
</div>
</div>
While this block of code can be styled using CSS to resemble a functional website, the underlying markup fails to communicate any relational hierarchy. The browser interprets this merely as a collection of anonymous boxes.
In contrast, a semantic refactoring of the exact same layout transforms the code into a meaningful document outline:
<header>
<h1>My Website</h1>
<nav aria-label="Main navigation">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
</header>
<main>
<section>
<h2>Welcome to My Website</h2>
<p>This is my first paragraph.</p>
</section>
</main>
This updated structure immediately establishes context. The browser and assistive technologies recognize the banner as a <header>, isolate the menu links within a distinct <nav> landmark, and designate the primary narrative block inside a <main> element accompanied by proper heading tags.
Conducting the First Practical Accessibility Audit
Transitioning from theoretical knowledge to practical application requires rigorous evaluation. As part of an ongoing curriculum at WeCan Academy, students are tasked with performing comprehensive accessibility audits on their personal portfolio websites. This process involves deploying industry-standard diagnostic tools, specifically Chrome DevTools Lighthouse and the WAVE Web Accessibility Evaluation Tool, to uncover hidden barriers in their code.
The audit process highlights three critical remediation categories that frequently challenge novice developers: alternative text for images, proper heading hierarchies, and descriptive link phrasing combined with document language declarations.
1. Implementing Meaningful Alternative Text
Images are inherently invisible to screen readers unless explicitly described through metadata. Omitting alternative text, or providing redundant descriptions such as "image" or "photo," alienates users who depend on audio-based navigation. During the audit phase, developers learn to replace generic tags with precise, contextual descriptions. For example, a profile photograph is updated from an empty or vague attribute to a descriptive alternative:
<img src="./images/photo.jpg" alt="Portrait of Shaniz Ann Mumbua">
This specific text allows a screen reader to verbally convey not just that an image is present, but what the image depicts, ensuring the user shares an equivalent informational experience to a sighted visitor.
2. Establishing Rigorous Heading Hierarchies
Visual styling often tempts developers to use heading tags (<h1> through <h6>) based on font size rather than structural importance. However, screen reader users frequently navigate a webpage by jumping from heading to heading to build a mental map of the content. An improper hierarchy—such as skipping from an <h1> directly to an <h4>—disrupts this flow and confuses the user. The audit process enforces a strict validation rule: every page must feature one, and only one, primary <h1> heading, followed by sequentially nested <h2>, <h3>, and subsequent tags that accurately reflect the subordination of subtopics.
3. Crafting Descriptive Hyperlinks and Declaring Page Language
Vague link text, such as "click here" or "read more," forces screen reader users to listen to links entirely out of context, robbing them of destination awareness. Remediation involves rewriting anchor text to explicitly state where the link leads, such as "Read our complete privacy policy." Additionally, audits verify the presence of a fundamental HTML attribute at the root of the document:
<html lang="en">
This declaration informs speech synthesizers and translation software of the primary human language utilized in the document, ensuring accurate pronunciation and character rendering.
Evaluating Audit Results and Industry Implications
Upon completing the targeted code remediation, developers re-run automated diagnostics to measure improvements. Typically, these iterations yield near-perfect scores across core web vitals and accessibility metrics:
- Accessibility Score: Consistently reaching the 90 to 100 percentage range on automated tooling suites.
- Best Practices & SEO: Achieving optimized performance grades due to clean, standardized markup.
- Compliance Alignment: Satisfying baseline requirements outlined in international standards such as the Web Content Accessibility Guidelines (WCAG).
However, industry experts and accessibility advocates emphasize that automated tools represent only the first line of defense. Automated software can typically detect only 30% to 50% of all accessibility errors, such as missing alt attributes or insufficient color contrast. The remaining majority—including logical keyboard navigation, focus trap management, and complex interactive widget behavior—requires rigorous manual testing by human developers utilizing screen readers and keyboard-only navigation protocols.
Broader Impact and Future Development Paradigms
The integration of accessibility audits into foundational web development training signifies a broader cultural shift within the tech sector. Historically, accessibility (often abbreviated as a11y) has been treated as an afterthought—a remediation step bolted onto a finished product just prior to deployment, or worse, a costly patch applied only after facing legal challenges related to digital discrimination.
By embedding inclusive design principles into the earliest stages of learning, academies like WeCan Academy are fostering a new generation of software engineers who view accessibility as a core architectural requirement. Building for everyone from the ground up reduces technical debt, expands market reach for businesses, and fulfills the ethical mandate of the internet as an open, universally accessible public utility. As web standards continue to evolve, the transition from visual-first styling to semantic, inclusive engineering marks an indispensable evolution in how digital spaces are inhabited and shared.







