<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://arokem.github.io/a11y4jekyll/feed.xml" rel="self" type="application/atom+xml" /><link href="https://arokem.github.io/a11y4jekyll/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-02-02T21:33:47-05:00</updated><id>https://arokem.github.io/a11y4jekyll/feed.xml</id><title type="html">Accessible Jekyll Template</title><subtitle>A WCAG 2.1 Level AA and Title II compliant Jekyll template</subtitle><author><name>Your Name</name></author><entry><title type="html">Building Accessible Websites: A Guide</title><link href="https://arokem.github.io/a11y4jekyll/blog/2026/01/30/building-accessible-websites/" rel="alternate" type="text/html" title="Building Accessible Websites: A Guide" /><published>2026-01-30T12:00:00-05:00</published><updated>2026-01-30T12:00:00-05:00</updated><id>https://arokem.github.io/a11y4jekyll/blog/2026/01/30/building-accessible-websites</id><content type="html" xml:base="https://arokem.github.io/a11y4jekyll/blog/2026/01/30/building-accessible-websites/"><![CDATA[<p>Web accessibility ensures that websites are usable by everyone, including people with disabilities. This post covers the fundamentals of creating accessible web content.</p>

<h2 id="why-accessibility-matters">Why Accessibility Matters</h2>

<p>Approximately 15% of the world’s population experiences some form of disability. By making your website accessible, you:</p>

<ul>
  <li>Reach a wider audience</li>
  <li>Improve usability for all users</li>
  <li>Comply with legal requirements (ADA Title II, Section 508)</li>
  <li>Enhance SEO and site performance</li>
  <li>Demonstrate social responsibility</li>
</ul>

<h2 id="key-accessibility-principles">Key Accessibility Principles</h2>

<h3 id="1-semantic-html">1. Semantic HTML</h3>

<p>Use proper HTML elements for their intended purpose:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">&lt;!-- Good: Semantic HTML --&gt;</span>
<span class="nt">&lt;nav&gt;</span>
  <span class="nt">&lt;ul&gt;</span>
    <span class="nt">&lt;li&gt;&lt;a</span> <span class="na">href=</span><span class="s">"/"</span><span class="nt">&gt;</span>Home<span class="nt">&lt;/a&gt;&lt;/li&gt;</span>
    <span class="nt">&lt;li&gt;&lt;a</span> <span class="na">href=</span><span class="s">"/about/"</span><span class="nt">&gt;</span>About<span class="nt">&lt;/a&gt;&lt;/li&gt;</span>
  <span class="nt">&lt;/ul&gt;</span>
<span class="nt">&lt;/nav&gt;</span>

<span class="c">&lt;!-- Bad: Non-semantic HTML --&gt;</span>
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"nav"</span><span class="nt">&gt;</span>
  <span class="nt">&lt;span</span> <span class="na">onclick=</span><span class="s">"navigate('/')"</span><span class="nt">&gt;</span>Home<span class="nt">&lt;/span&gt;</span>
  <span class="nt">&lt;span</span> <span class="na">onclick=</span><span class="s">"navigate('/about')"</span><span class="nt">&gt;</span>About<span class="nt">&lt;/span&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<h3 id="2-keyboard-navigation">2. Keyboard Navigation</h3>

<p>Ensure all interactive elements are keyboard accessible:</p>

<ul>
  <li>Use semantic elements (button, a, input) instead of div/span with click handlers</li>
  <li>Provide visible focus indicators</li>
  <li>Maintain a logical tab order</li>
  <li>Include skip navigation links</li>
</ul>

<h3 id="3-alternative-text">3. Alternative Text</h3>

<p>All images should have descriptive alt text:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">&lt;!-- Decorative image --&gt;</span>
<span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">"pattern.png"</span> <span class="na">alt=</span><span class="s">""</span> <span class="na">role=</span><span class="s">"presentation"</span><span class="nt">&gt;</span>

<span class="c">&lt;!-- Informative image --&gt;</span>
<span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">"chart.png"</span> <span class="na">alt=</span><span class="s">"Bar chart showing 40% increase in sales"</span><span class="nt">&gt;</span>
</code></pre></div></div>

<h3 id="4-color-contrast">4. Color Contrast</h3>

<p>Text must have sufficient contrast against its background:</p>

<ul>
  <li>Normal text: at least 4.5:1 contrast ratio</li>
  <li>Large text (18pt+ or 14pt+ bold): at least 3:1 contrast ratio</li>
  <li>Don’t rely on color alone to convey information</li>
</ul>

<h3 id="5-aria-labels">5. ARIA Labels</h3>

<p>Use ARIA attributes to enhance accessibility when semantic HTML isn’t enough:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;button</span> <span class="na">aria-label=</span><span class="s">"Close dialog"</span><span class="nt">&gt;</span>×<span class="nt">&lt;/button&gt;</span>
<span class="nt">&lt;nav</span> <span class="na">aria-label=</span><span class="s">"Main navigation"</span><span class="nt">&gt;</span>...<span class="nt">&lt;/nav&gt;</span>
<span class="nt">&lt;div</span> <span class="na">role=</span><span class="s">"alert"</span> <span class="na">aria-live=</span><span class="s">"polite"</span><span class="nt">&gt;</span>Form submitted successfully<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<h2 id="testing-for-accessibility">Testing for Accessibility</h2>

<p>Use these tools to test your website:</p>

<ol>
  <li><strong>Automated Testing:</strong>
    <ul>
      <li>WAVE (Web Accessibility Evaluation Tool)</li>
      <li>axe DevTools</li>
      <li>Lighthouse (built into Chrome DevTools)</li>
    </ul>
  </li>
  <li><strong>Manual Testing:</strong>
    <ul>
      <li>Keyboard navigation (Tab, Shift+Tab, Enter, Space)</li>
      <li>Screen reader testing (NVDA, JAWS, VoiceOver)</li>
      <li>Browser zoom (up to 200%)</li>
      <li>Color contrast checkers</li>
    </ul>
  </li>
  <li><strong>User Testing:</strong>
    <ul>
      <li>Test with real users who have disabilities</li>
      <li>Gather feedback on pain points</li>
      <li>Iterate based on findings</li>
    </ul>
  </li>
</ol>

<h2 id="common-mistakes-to-avoid">Common Mistakes to Avoid</h2>

<ul>
  <li>Using <code class="language-plaintext highlighter-rouge">div</code> or <code class="language-plaintext highlighter-rouge">span</code> with click handlers instead of buttons</li>
  <li>Missing alt text on images</li>
  <li>Poor color contrast</li>
  <li>Removing focus indicators</li>
  <li>Auto-playing videos with sound</li>
  <li>Time limits that are too short</li>
  <li>Missing form labels</li>
  <li>Unclear error messages</li>
  <li>Complex navigation without skip links</li>
</ul>

<h2 id="resources">Resources</h2>

<p>Learn more about web accessibility:</p>

<ul>
  <li><a href="https://www.w3.org/WAI/WCAG21/quickref/">WCAG 2.1 Guidelines</a></li>
  <li><a href="https://webaim.org/articles/">WebAIM Articles</a></li>
  <li><a href="https://www.a11yproject.com/checklist/">A11Y Project Checklist</a></li>
  <li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility">Mozilla Accessibility Documentation</a></li>
</ul>

<h2 id="conclusion">Conclusion</h2>

<p>Building accessible websites is not just about compliance—it’s about creating a better web for everyone. By following WCAG guidelines and testing thoroughly, you can ensure your site is usable by all visitors.</p>

<p>Remember: accessibility is an ongoing process, not a one-time fix. Continuously test, learn, and improve your site’s accessibility.</p>]]></content><author><name>Template Author</name></author><category term="accessibility" /><category term="web-development" /><category term="wcag" /><summary type="html"><![CDATA[Web accessibility ensures that websites are usable by everyone, including people with disabilities. This post covers the fundamentals of creating accessible web content.]]></summary></entry></feed>