<?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: Ilknur Eren</title>
    <description>The latest articles on DEV Community by Ilknur Eren (@ilknur).</description>
    <link>https://dev.to/ilknur</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%2F4018541%2F94961991-50e3-46fd-ae59-57bfa731550e.jpg</url>
      <title>DEV Community: Ilknur Eren</title>
      <link>https://dev.to/ilknur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ilknur"/>
    <language>en</language>
    <item>
      <title>Getting started with iOS VoiceOver: a beginner's guide</title>
      <dc:creator>Ilknur Eren</dc:creator>
      <pubDate>Sun, 13 Sep 2026 02:48:37 +0000</pubDate>
      <link>https://dev.to/ilknur/getting-started-with-ios-voiceover-a-beginners-guide-498c</link>
      <guid>https://dev.to/ilknur/getting-started-with-ios-voiceover-a-beginners-guide-498c</guid>
      <description>&lt;p&gt;VoiceOver is the screen reader built into every iPhone and iPad. If you build, design, or test anything that runs on an iPhone, you should know how to use it. Testing your apps with VoiceOver will be the one of the best ways to find out whether the your app or website is accessible.&lt;/p&gt;

&lt;p&gt;This guide walks you through the common gestures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, the set up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you turn VoiceOver on, give yourself a quick way to turn it off. How you interact with the phone will change. When you're new, it's easy to feel stuck once the gestures change.&lt;/p&gt;

&lt;p&gt;Go to Settings &amp;gt; Accessibility &amp;gt; Accessibility Shortcut.&lt;br&gt;
Choose VoiceOver.&lt;/p&gt;

&lt;p&gt;Now you can turn VoiceOver on or off by triple-clicking the side button (or the Home button on older phones). If you get lost, three clicks and you're back to no VoiceOver mode.&lt;/p&gt;

&lt;p&gt;Once VoiceOver is on your relationship with the screen changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practice in a safe sandbox&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every beginner should spend a few minutes in VoiceOver Practice. Go to Settings &amp;gt; Accessibility &amp;gt; VoiceOver and tap VoiceOver Practice. (The button only appears while VoiceOver is on.)&lt;/p&gt;

&lt;p&gt;It opens a blank screen where you can tap, flick, and swipe freely. The phone says which gesture it detected, without changing any settings. It's the perfect place to learn the Magic Tap, a two-finger double-tap that starts or stops music and answers or ends calls, before you try it in the real world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select first, then double-tap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In VoiceOver mode, your finger explores. A single tap doesn't open an app. Instead, it draws a thick black border around the item (the VoiceOver cursor) and the phone speaks its name aloud.&lt;/p&gt;

&lt;p&gt;Once you hear the item you want, you activate it with a double-tap. But you don't have to hit the icon itself twice. Once the black border is on an item, you can double-tap anywhere on the screen to "click" it.&lt;/p&gt;

&lt;p&gt;Think of it this way:&lt;/p&gt;

&lt;p&gt;One tap looks at the button.&lt;br&gt;
Double-tap presses the button.&lt;/p&gt;

&lt;p&gt;Separating selection from activation is what keeps you in control, even when you can't see the screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flick to move through the screen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To move from item to item, flick one finger to the right. The cursor jumps to the next item and reads it aloud, like turning the pages of a book. Flick left to go back.&lt;/p&gt;

&lt;p&gt;Flicking is faster than dragging your finger around. It also shows you something important as a developer: the order VoiceOver reads things in. If the focus order jumps around or skips a control, your users will notice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scroll with three fingers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since a one-finger swipe now moves between items, scrolling needs more fingers. To scroll a long list or a webpage, swipe up or down with three fingers. It feels a bit like pushing the page away.&lt;/p&gt;

&lt;p&gt;When you reach the top or bottom of a list, the phone plays a low "thump" sound. That's how you know there's no more content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Automated accessibility checks catch missing labels. They don't catch a button that reads as "button," a focus order that makes no sense, or a custom control that VoiceOver can't reach at all. Only a real screen reader shows you that.&lt;/p&gt;

&lt;p&gt;So the next time you're about to mark a ticket done, turn VoiceOver on and try the flow yourself. Ten minutes of testing will teach you more than any checklist.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>a11y</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My CPACC journey</title>
      <dc:creator>Ilknur Eren</dc:creator>
      <pubDate>Sat, 25 Jul 2026 14:42:26 +0000</pubDate>
      <link>https://dev.to/ilknur/my-cpacc-journey-1kg8</link>
      <guid>https://dev.to/ilknur/my-cpacc-journey-1kg8</guid>
      <description>&lt;p&gt;The Certified Professional in Accessibility Core Competencies (CPACC) is a credential offered by the International Association of Accessibility Professionals (IAAP). It is designed for people who work in or around accessibility, engineers, designers, and others.&lt;br&gt;
The exam covers three broad areas: disabilities, accessibility and universal design, and accessibility standards and laws.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I decided to take it
&lt;/h2&gt;

&lt;p&gt;I have spent most of my career as an engineer with a focus on accessibility. I write code. I help teams build things that work for everyone. I write articles educating on accessibility standards. I knew the WCAG guidelines and semantic HTML. I knew how to test with a screen reader.  I live and breathe accessibility.&lt;/p&gt;

&lt;p&gt;Taking the CPACC felt like a chance to solidify the years of accessibility work. &lt;/p&gt;

&lt;h2&gt;
  
  
  What studying actually looked like
&lt;/h2&gt;

&lt;p&gt;I spent several months preparing for the exam last year. I worked through the IAAP Body of Knowledge, read research, and took practice tests. I watched youtube tutorials and completed the CPACC prep course offered by Deque University.&lt;/p&gt;

&lt;p&gt;The technical material felt familiar at first. Assistive technology, accessibility standards, barrier types, I had touched most of this on m. But the exam goes deeper than surface familiarity. I had to understand how different types of assistive technology work, not just that they exist.&lt;/p&gt;

&lt;p&gt;The history and policy sections were where things really opened up for me. Studing for the CPACC exam, I realized how much context I had been missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The exam itself
&lt;/h2&gt;

&lt;p&gt;The CPACC test covers a wide range of topics. Some questions put you in real-world scenarios and ask you to apply what you know. Others test precise definitions and legal details.&lt;/p&gt;

&lt;p&gt;I felt prepared walking in, and the exam still challenged me. That is a good thing. A credential that is easy to get is not worth much.&lt;br&gt;
After months of studying, I passed. I am now a CPACC certified engineer.&lt;/p&gt;

&lt;p&gt;But more than the credential, I walked away with a broader view of accessibility. I understand more about the lived experiences of people with disabilities. I understand more about the assistive technologies they rely on, the legal and policy frameworks that shape what companies are required to do — and what they should do even when they are not required to.&lt;/p&gt;

&lt;p&gt;That last part matters. Requirements set a floor. Good accessibility work aims higher.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping the certification
&lt;/h2&gt;

&lt;p&gt;The CPACC is not a one-time achievement. Like many professional credentials, it requires ongoing education to maintain. it requires attending accessibility conferences, taking courses. I need to earn continuing education credits to keep my certification active.&lt;/p&gt;

&lt;p&gt;Honestly, I see that as a feature. Accessibility is a living field. Standards evolve. Technology changes. New research shapes best practices. Staying certified means staying current. &lt;/p&gt;

&lt;h2&gt;
  
  
  Should you take it?
&lt;/h2&gt;

&lt;p&gt;If you work in accessibility, I think the CPACC is worth pursuing. Not just for the credential, but for what the process of studying teaches you.&lt;/p&gt;

&lt;p&gt;Technical skills alone are not enough to do this work well. You need context. You need history. You need to understand the people your work is meant to serve.&lt;/p&gt;

&lt;p&gt;The CPACC exam pushed me toward all of that. I truly feel like I am a better engineer because of it.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>certification</category>
      <category>webdev</category>
      <category>website</category>
    </item>
    <item>
      <title>Accessible Form Labels</title>
      <dc:creator>Ilknur Eren</dc:creator>
      <pubDate>Sat, 11 Jul 2026 00:00:15 +0000</pubDate>
      <link>https://dev.to/ilknur/accessible-form-labels-5fpl</link>
      <guid>https://dev.to/ilknur/accessible-form-labels-5fpl</guid>
      <description>&lt;p&gt;Labels are a foundational part of any accessible form. Without properly implemented, users who rely on screen readers have no way to understand what a field is asking for. A label does two things: it tells the user what a field is for, and it connects that meaning to the input in the code so assistive technology can announce it. There are a number of basic form label accessibility rules all developers should follow to build accessible forms. &lt;/p&gt;

&lt;h2&gt;
  
  
  Use the &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element
&lt;/h2&gt;

&lt;p&gt;Every input needs a visible, programmatic label. The most reliable way to label an input is with the HTML  element, linked to the input using matching for and id attributes. Example is below:&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="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 address&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above, the first line is the label of the form field. With the proper for and id, we can programmatically link the  tag to the  tag. Additionally to linking the label, when the for and id values match, clicking or tapping the label text also moves focus to the input. &lt;/p&gt;

&lt;h2&gt;
  
  
  When a visible label isn't practical
&lt;/h2&gt;

&lt;p&gt;Some designs use a search bar with a button, or a compact inline form, where a visible label would feel visually cluttered. In those cases, use aria-label or aria-labelledby to provide a label programmatically without showing it visually.&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;!-- aria-label: attach a label string directly to the input --&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;"search"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Search the site"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- aria-labelledby: point to an existing element on the page by its id --&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;"signup-heading"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Create your account&lt;span class="nt"&gt;&amp;lt;/h2&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;aria-labelledby=&lt;/span&gt;&lt;span class="s"&gt;"signup-heading"&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;Use &lt;code&gt;aria-labelledby&lt;/code&gt; when label text already exists on the page. It references that text by id, so screen readers announce it without duplication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Placeholder text is not a label
&lt;/h2&gt;

&lt;p&gt;This is one of the most common labeling mistakes. Placeholder text disappears the moment someone starts typing, screen readers don't reliably announce it as label text, and its low contrast often fails WCAG minimums. It can hint at expected format (like "MM/DD/YYYY"), but it must never stand in for a real label.&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;!-- Wrong: no label, placeholder only --&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;"text"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Full name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Right: visible label + placeholder as a format hint --&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;"dob"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Date of birth&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;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"dob"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"dob"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"MM/DD/YYYY"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Marking required fields
&lt;/h2&gt;

&lt;p&gt;If a field is required, mark it in two ways: in the code and in the visible label.&lt;br&gt;
Add &lt;code&gt;required&lt;/code&gt; (or &lt;code&gt;aria-required="true"&lt;/code&gt;) to the input so assistive technology announces it. Then add visible text — like "(required)" — next to the label so sighted users also see it.&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="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Full name (required)&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;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;required&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;A red asterisk alone is not sufficient. Screen readers may not announce it, sighted users may not know what it means without a legend, and color alone never conveys meaning in an accessible way. If you do use an asterisk, include a visible legend near the top of the form — for example, "Fields marked with * are required" — and wrap the asterisk in &lt;span&gt; so screen readers skip it and rely on the required attribute instead.&lt;br&gt;
&lt;/span&gt;&lt;/p&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;p&amp;gt;&lt;/span&gt;Fields marked with &lt;span class="nt"&gt;&amp;lt;span&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="nt"&gt;&amp;gt;&lt;/span&gt;*&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt; are required.&lt;span class="nt"&gt;&amp;lt;/p&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;"phone"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Phone number &lt;span class="nt"&gt;&amp;lt;span&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="nt"&gt;&amp;gt;&lt;/span&gt;*&lt;span class="nt"&gt;&amp;lt;/span&amp;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;"tel"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"phone"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"phone"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Keep labels close to their inputs
&lt;/h2&gt;

&lt;p&gt;Sighted users scan forms by proximity. Labels should appear directly above or immediately to the left of their input, not below and not far away. This also helps users who zoom in on a page, since distant labels may scroll out of view.&lt;/p&gt;
&lt;h2&gt;
  
  
  Label groups of related inputs
&lt;/h2&gt;

&lt;p&gt;For radio buttons, checkboxes, and other grouped inputs, use&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="nt"&gt;&amp;lt;fieldset&amp;gt;&lt;/span&gt; and &lt;span class="nt"&gt;&amp;lt;legend&amp;gt;&lt;/span&gt; to label the group as a whole. Each individual option still needs its own &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;.
html
&lt;span class="nt"&gt;&amp;lt;fieldset&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;legend&amp;gt;&lt;/span&gt;Preferred contact method&lt;span class="nt"&gt;&amp;lt;/legend&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;"radio"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact-email"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"contact"&lt;/span&gt; &lt;span class="na"&gt;value=&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="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"contact-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;"radio"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact-phone"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"contact"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"phone"&lt;/span&gt;&lt;span class="nt"&gt;&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;"contact-phone"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Phone&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/fieldset&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;legend&lt;/code&gt;&amp;gt;, a screen reader user hears "Email, radio button" with no context about what they're choosing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Accessible forms are not an edge case or a nice-to-have, they are a baseline requirement. The labeling practices covered in this article are some of the most impactful changes you can make, because labels are the foundation everything else builds on. A form without proper labels fails before a user even has a chance to fill it out.&lt;/p&gt;

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