<?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: Aleksandra Rataj</title>
    <description>The latest articles on DEV Community by Aleksandra Rataj (@aleksandra_rataj).</description>
    <link>https://dev.to/aleksandra_rataj</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3147203%2F127d2820-132a-4e5f-b2d8-7ea906446435.jpg</url>
      <title>DEV Community: Aleksandra Rataj</title>
      <link>https://dev.to/aleksandra_rataj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aleksandra_rataj"/>
    <language>en</language>
    <item>
      <title>🧭 Introduction to Web Accessibility (a11y) – where to start?</title>
      <dc:creator>Aleksandra Rataj</dc:creator>
      <pubDate>Mon, 26 May 2025 20:51:25 +0000</pubDate>
      <link>https://dev.to/aleksandra_rataj/introduction-to-web-accessibility-a11y-where-to-start-5h6d</link>
      <guid>https://dev.to/aleksandra_rataj/introduction-to-web-accessibility-a11y-where-to-start-5h6d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;, often abbreviated as &lt;strong&gt;a11y&lt;/strong&gt;, ensures digital content and functionality are usable by people with disabilities — including visual, auditory, motor, and cognitive impairments. It’s not an optional feature or a stretch goal. In many regions, it’s a legal requirement. Everywhere, it’s a core quality standard.&lt;/p&gt;

&lt;p&gt;One in five people experience disability. If your app doesn’t support screen readers, keyboard navigation, or high contrast modes — it’s broken for millions.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 What is Web Accessibility?
&lt;/h2&gt;

&lt;p&gt;Web accessibility refers to the design and development of websites, tools, and technologies so that people with disabilities can &lt;strong&gt;perceive&lt;/strong&gt;, &lt;strong&gt;navigate&lt;/strong&gt;, &lt;strong&gt;interact with&lt;/strong&gt;, and &lt;strong&gt;contribute&lt;/strong&gt; to the web.&lt;/p&gt;

&lt;p&gt;Accessibility supports a broad range of user contexts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual&lt;/strong&gt;: blind, low vision, color blindness,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditory&lt;/strong&gt;: deaf or hard of hearing,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Motor&lt;/strong&gt;: limited fine motor control, paralysis,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive/Neurological&lt;/strong&gt;: dyslexia, ADHD, memory impairments,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporary&lt;/strong&gt;: broken arm, noisy environments, bright sunlight,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aging-related&lt;/strong&gt;: declining vision, hearing, dexterity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔐 Legal Requirements
&lt;/h2&gt;

&lt;p&gt;But it’s not just about ethics — it's also about law and business. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WCAG 2.1 AA&lt;/strong&gt; is the prevailing global standard (WCAG 2.2 is the latest version, but not yet widely required).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;European Accessibility Act (EAA)&lt;/strong&gt;: Enforces accessibility compliance in the EU from June 2025 for e-commerce, banking, telecom, and other digital services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Americans with Disabilities Act (ADA)&lt;/strong&gt; and &lt;strong&gt;Section 508 (US)&lt;/strong&gt; also apply to many websites, including private sector entities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Understanding WCAG
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Web Content Accessibility Guidelines (WCAG)&lt;/strong&gt; are published by the &lt;strong&gt;W3C&lt;/strong&gt; (World Wide Web Consortium). They define measurable success criteria to evaluate and improve web accessibility.&lt;/p&gt;

&lt;p&gt;WCAG is based on &lt;strong&gt;four principles&lt;/strong&gt;, abbreviated &lt;strong&gt;POUR&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Perceivable&lt;/strong&gt; – users must be able to perceive content (e.g., alt text for images, text captions for video).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operable&lt;/strong&gt; – all interface elements must be usable via keyboard and other input methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understandable&lt;/strong&gt; – content and interaction must be predictable and consistent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust&lt;/strong&gt; – content must be compatible with current and future assistive technologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each guideline is testable at &lt;strong&gt;Level&lt;/strong&gt; &lt;strong&gt;A&lt;/strong&gt;, &lt;strong&gt;AA&lt;/strong&gt;, or &lt;strong&gt;AAA&lt;/strong&gt;. Most regulations require &lt;strong&gt;Level AA compliance&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Where to start - 5 essential first steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Use Semantic HTML 🧱
&lt;/h3&gt;

&lt;p&gt;Semantic elements give &lt;strong&gt;meaning&lt;/strong&gt; and &lt;strong&gt;structure&lt;/strong&gt; to content. They allow assistive technologies (like screen readers) to understand your UI without relying on custom ARIA roles.&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="c"&gt;&amp;lt;!-- ✅ Good: semantic button --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Good: form with label --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ❌ Bad: generic div with click handler --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"submitForm()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&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;Use instead of div/span:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Page landmarks&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text structure&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;–&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Forms and inputs&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interactions&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;a href&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt;: Semantic HTML improves SEO, maintainability, and reduces code complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Ensure full keyboard accessibility ⌨️
&lt;/h3&gt;

&lt;p&gt;Users must be able to navigate and operate your app without a mouse.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All interactive elements must be &lt;strong&gt;focusable&lt;/strong&gt; (&lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, custom components with &lt;code&gt;tabindex="0"&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Ensure a &lt;strong&gt;visible focus outline&lt;/strong&gt; is present (:focus-visible or outline).&lt;/li&gt;
&lt;li&gt;Maintain a &lt;strong&gt;logical tab order&lt;/strong&gt; (e.g., DOM order should match visual layout).&lt;/li&gt;
&lt;li&gt;Prevent &lt;strong&gt;focus traps&lt;/strong&gt; (e.g., in modals or side panels).&lt;/li&gt;
&lt;li&gt;Allow exiting with &lt;strong&gt;Escape&lt;/strong&gt;, especially for dialogs and overlays.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your app.&lt;/li&gt;
&lt;li&gt;Put the mouse away.&lt;/li&gt;
&lt;li&gt;Use Tab, Shift+Tab, Enter, Space, Esc, and Arrow keys to operate all features.&lt;/li&gt;
&lt;li&gt;Fix what breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Keyboard shortcuts:&lt;/strong&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fyex38sg2p8fw71xcalpp.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.amazonaws.com%2Fuploads%2Farticles%2Fyex38sg2p8fw71xcalpp.png" alt="List of keyboard shortcuts" width="800" height="256"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;*Source: &lt;a href="https://a11y-guidelines.orange.com/" rel="noopener noreferrer"&gt;a11y-guidelines.orange.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Write accurate alternative text and labels 💬
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Images&lt;/strong&gt;: use the &lt;code&gt;alt&lt;/code&gt; attribute to describe the function or meaning of an image.&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="c"&gt;&amp;lt;!-- Informative --&amp;gt;&lt;/span&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;"earrings.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Handmade resin earrings with dried flowers"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Decorative (no meaning) --&amp;gt;&lt;/span&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;"divider.svg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"presentation"&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;&lt;strong&gt;Icons &amp;amp; custom buttons&lt;/strong&gt;: for elements with no visible text, add accessible labels using &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&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="c"&gt;&amp;lt;!-- SVG icon button --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Close dialog"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;svg&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt; &lt;span class="na"&gt;focusable=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;...&lt;span class="nt"&gt;&amp;lt;/svg&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Avoid redundant or unhelpful labels like "image", "icon", "button" unless needed for clarity.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Manage focus and dialogs properly 🎯
&lt;/h3&gt;

&lt;p&gt;Modals, popovers, and menus need explicit accessibility handling.&lt;br&gt;
Requirements for a dialog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;role="dialog"&lt;/code&gt; or &lt;code&gt;role="alertdialog"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;aria-modal="true"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Include &lt;code&gt;aria-labelledby&lt;/code&gt; or &lt;code&gt;aria-label&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Trap focus inside the dialog.&lt;/li&gt;
&lt;li&gt;Restore focus to the triggering element on close.&lt;/li&gt;
&lt;li&gt;Dismiss via Escape key.
&lt;/li&gt;
&lt;/ul&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;role=&lt;/span&gt;&lt;span class="s"&gt;"dialog"&lt;/span&gt;
  &lt;span class="na"&gt;aria-modal=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
  &lt;span class="na"&gt;aria-labelledby=&lt;/span&gt;&lt;span class="s"&gt;"dialog-title"&lt;/span&gt;
  &lt;span class="na"&gt;tabindex=&lt;/span&gt;&lt;span class="s"&gt;"-1"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"dialog-title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Confirm Purchase&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;Are you sure you want to proceed?&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;Yes&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;No&lt;span class="nt"&gt;&amp;lt;/button&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;Use libraries like &lt;code&gt;@headlessui/react&lt;/code&gt;, &lt;code&gt;react-aria&lt;/code&gt;, or &lt;code&gt;Radix UI&lt;/code&gt; for robust focus management.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Use automated and manual testing tools 🛠️
&lt;/h3&gt;

&lt;p&gt;Automation helps catch obvious issues. Manual testing catches the rest.&lt;/p&gt;

&lt;p&gt;✅ Automated tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;axe DevTools (browser extension)&lt;/li&gt;
&lt;li&gt;Lighthouse (Chrome DevTools → Accessibility tab)&lt;/li&gt;
&lt;li&gt;jest-axe (for unit tests)&lt;/li&gt;
&lt;li&gt;Testing Library (use &lt;code&gt;getByRole&lt;/code&gt;, &lt;code&gt;getByLabelText&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Screen reader testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NVDA (Windows)&lt;/li&gt;
&lt;li&gt;VoiceOver (macOS)&lt;/li&gt;
&lt;li&gt;JAWS (Enterprise)&lt;/li&gt;
&lt;li&gt;Test actual user flows (forms, dialogs, menus) with screen reader on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Manual checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can you tab through the interface logically?&lt;/li&gt;
&lt;li&gt;Does every element have a visible focus style?&lt;/li&gt;
&lt;li&gt;Are ARIA roles used only when necessary?&lt;/li&gt;
&lt;li&gt;Is color contrast sufficient? (Use tools like WebAIM Contrast Checker)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🧩 Accessibility is a team responsibility
&lt;/h2&gt;

&lt;p&gt;Accessibility is not a checklist. It’s a product quality discipline that must be integrated into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧱 Design: use color responsibly, follow accessible patterns,&lt;/li&gt;
&lt;li&gt;💻 Code: write semantic markup, test keyboard and screen reader behavior,&lt;/li&gt;
&lt;li&gt;🧪 QA: include a11y in test cases and regression testing,&lt;/li&gt;
&lt;li&gt;🧑‍🔧 Product: define accessibility as part of “done”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📌 Final Recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Do the basics right: semantic HTML, visible focus, correct labels.&lt;/li&gt;
&lt;li&gt;Use the right tools: automate, but never skip manual testing.&lt;/li&gt;
&lt;li&gt;Test with real assistive tech: NVDA, VoiceOver, keyboard only.&lt;/li&gt;
&lt;li&gt;Make a11y a process: part of design reviews, code reviews, and CI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If your web app isn’t accessible, it’s not production-ready.&lt;/strong&gt; Accessibility is about engineering for inclusion, &lt;strong&gt;compliance&lt;/strong&gt;, and &lt;strong&gt;quality&lt;/strong&gt;. Start now. Make it a habit. Make it part of your workflow.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>wcag</category>
    </item>
  </channel>
</rss>
