<?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: Felipe Arriaga Carriço</title>
    <description>The latest articles on DEV Community by Felipe Arriaga Carriço (@fecarrico).</description>
    <link>https://dev.to/fecarrico</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%2F4018366%2Fbd01666e-f2d1-475a-b3d9-e32b1e828a01.jpg</url>
      <title>DEV Community: Felipe Arriaga Carriço</title>
      <link>https://dev.to/fecarrico</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fecarrico"/>
    <language>en</language>
    <item>
      <title>A11Y.md: Accessibility before any prompt</title>
      <dc:creator>Felipe Arriaga Carriço</dc:creator>
      <pubDate>Mon, 06 Jul 2026 20:49:01 +0000</pubDate>
      <link>https://dev.to/fecarrico/a11ymd-accessibility-before-any-prompt-1ige</link>
      <guid>https://dev.to/fecarrico/a11ymd-accessibility-before-any-prompt-1ige</guid>
      <description>&lt;h3&gt;
  
  
  And if accessibility wasn't something you simply validate, but something the system already knows?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!rgOD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b94227c-c478-4524-a373-5b6f9f00e00c_800x450.png" rel="noopener noreferrer"&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%2Fwpix95hq6az8bspijxyc.png" alt="A11Y.md project logo in a retro computer screen style. The text reads 'A11Y.md — The Persistent Context System for Accessibility' in coral tones on a black background." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If context defines AI behavior, then accessibility needs to be part of that DNA from the very first prompt.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the simple — and necessary — premise behind &lt;strong&gt;A&lt;a href="https://github.com/fecarrico/A11Y.md" rel="noopener noreferrer"&gt;11Y.md&lt;/a&gt;&lt;/strong&gt;: a configuration file that acts as the accessibility “conscience” of your project, guiding code agents to follow inclusive standards automatically and organically.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;a href="https://v0-projecta11y.vercel.app/" rel="noopener noreferrer"&gt;Project A11Y.md&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;A context system for building accessible software by default — for developers and AI, with enforceable rules aligned to WCAG.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Inspired by the &lt;em&gt;CLAUDE.md&lt;/em&gt; file model, it is not meant to be just another best practices guide or an infinite checklist, but rather a validation protocol and a persistent context architecture for AI agents that generate code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A11Y.md&lt;/strong&gt; is a common abbreviation for &lt;em&gt;accessibility&lt;/em&gt;: between the “A” and the “Y”, there are 11 letters (&lt;em&gt;ccessibilit&lt;/em&gt;). But there’s an interesting detail: it can also be read as “&lt;strong&gt;ally&lt;/strong&gt;“. An ally. And that is exactly what this project sets out to be.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!MyHj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8aa9164-316d-4be7-8dea-21dbb5d6fd57_800x220.png" rel="noopener noreferrer"&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%2Fuuqbkx3ayw005gskrtat.png" alt="Text in a retro computer screen style, in coral tones on a green background: " width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The discomfort: two parallel worlds&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;During a conversation about accessibility in the Community Lounge at the TDC Summit AI São Paulo 2026, where I am a coordinator, I perceived a chasm.&lt;/p&gt;

&lt;p&gt;On one side, certification and legal compliance — necessary, but slow. On the other, &lt;em&gt;vibe coding&lt;/em&gt; and AI generating interfaces at an absurd speed. The result?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;We are scaling digital exclusion faster than ever.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The question has changed: &lt;em&gt;Who is left out when the AI works, but isn’t accessible?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Reactive accessibility starts too late&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Today, accessibility is treated as the final stage of the pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You design,&lt;/li&gt;
&lt;li&gt;You develop (or the AI develops),&lt;/li&gt;
&lt;li&gt;Then, you validate.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At this pace of agents and copilots, the error has already scaled before we even open the validator. If accessibility only enters at the end, it will never reach the speed of innovation.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;From checklist to a context ally&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We treat accessibility as a to-do list: &lt;em&gt;Is there contrast? Is there a label?&lt;/em&gt; But anyone working with LLMs already understands the game: the model doesn't follow rules, it follows context. Without context, the AI improvises. And improvisation in accessibility is the recipe for exclusion.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If we don’t provide the base context, the AI will prefer the visually “beautiful” path over the functionally “inclusive” one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What the audit reveals (real examples)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To understand the impact of missing context, see what happens in interfaces that “look” correct but are unoperable.&lt;/p&gt;

&lt;p&gt;The following examples were generated from a recent project I worked on using &lt;em&gt;Figma Make&lt;/em&gt; and &lt;em&gt;Antigravity (Gemini 3 Flash)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The code blocks with errors were already present in the project, and the improvement suggestions were generated by using &lt;strong&gt;A11Y.md&lt;/strong&gt; as a reviewer:­&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1. The fake button&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!DEFi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193a7f4-6b90-4c30-853a-1aa0f3cbbb10_800x450.png" rel="noopener noreferrer"&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%2Fjcf7qyzlxut08bbq9k2u.png" alt="Two identical buttons side by side. Above the left one, we see a muted audio icon, and below it, the code snippet div. Above the right one, we see a working audio icon, and below it, the code snippet button." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is common to see AI generating clickable elements using &lt;code&gt;div&lt;/code&gt;. Visually it works, but in practice, you have created an element invisible to keyboard and screen readers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The common error (works… for mouse users)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div onClick={() =&amp;gt; navigate('/components')}&amp;gt;
  Explore Components
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­ &lt;strong&gt;The problem&lt;/strong&gt;   &lt;/p&gt;

&lt;p&gt;This element:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does not receive keyboard focus,&lt;/li&gt;
&lt;li&gt;Does not respond to Enter or Space,&lt;/li&gt;
&lt;li&gt;Is not announced as interactive by screen readers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words: it is not a button; it only looks like one.&lt;br&gt;&lt;br&gt;
­&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The contextualized correction&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;button onClick={() =&amp;gt; navigate('/components')}&amp;gt;
  Explore Components
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­ &lt;strong&gt;Why this is better:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native focus,&lt;/li&gt;
&lt;li&gt;Automatic keyboard support,&lt;/li&gt;
&lt;li&gt;Semantic recognition by assistive technologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You didn’t add accessibility. You just stopped breaking the browser’s default behavior.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2. Typography is not aesthetics, it’s access&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!fRQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d79614b-bc96-4357-8adb-674dc23f0c70_800x447.png" rel="noopener noreferrer"&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%2F2s67i5mqvu897knrmlnh.png" alt="Two text boxes side by side. On the left, small text reads: " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“Minimalism” often demands an invisible price: &lt;em&gt;legibility&lt;/em&gt;. Fonts that are too small may look elegant, until you try to read them in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A low-light environment,&lt;/li&gt;
&lt;li&gt;A phone in the sun,&lt;/li&gt;
&lt;li&gt;Or with any level of low vision.
­&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The error&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;p className="text-[10px]"&amp;gt;
  Important information, but unreadable.
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below 12px, you begin to significantly compromise readability. It's not a preference; it's a physiological limitation.&lt;br&gt;&lt;br&gt;
­&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The correction:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;p className="text-xs"&amp;gt;
  Legibility is not a detail, it's a condition of use.
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Why this is better:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintains a functional minimum for reading,&lt;/li&gt;
&lt;li&gt;Reduces cognitive effort,&lt;/li&gt;
&lt;li&gt;Avoids relying exclusively on zoom or user adjustments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the layout needs to be dense, the solution is to improve hierarchy and contrast.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;3. Silent forms&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!Mwnb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d3b123-4886-4135-a50a-3e0db5b116cd_800x450.png" rel="noopener noreferrer"&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%2Fjf58iu83kqpp2curpr22.png" alt="Two email forms side by side. On the left, the label " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The error&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;label&amp;gt;Email&amp;lt;/label&amp;gt;
&amp;lt;input type="email" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­ &lt;strong&gt;The problem&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Screen readers allow direct navigation between form fields, ignoring surrounding content. When the input is not associated with the label, it loses its accessible name.&lt;/p&gt;

&lt;p&gt;The user arrives at the field, but doesn’t know what it represents. Because for assistive technologies, visual proximity means nothing; only explicit relationships in the code matter.&lt;br&gt;&lt;br&gt;
­&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The correction&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;label htmlFor="email"&amp;gt;Email&amp;lt;/label&amp;gt;
&amp;lt;input id="email" type="email" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­ &lt;strong&gt;Why this is better:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates an explicit semantic link,&lt;/li&gt;
&lt;li&gt;Allows the field to be announced correctly,&lt;/li&gt;
&lt;li&gt;Improves form navigation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here, it’s not a matter of “good practice,” but about interface comprehension.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;4. Feedback no one hears&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!Ghwz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed21780b-3d88-4e9b-9c27-9954cc379ab0_800x450.png" rel="noopener noreferrer"&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%2Fqv6log78ux8fau6lw3d6.png" alt="Two identical interface alerts side by side. On the left, we read " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern interfaces are full of dynamic states: errors, successes, alerts. But there is one detail: not every visual change is perceived by assistive technologies.&lt;/p&gt;

&lt;p&gt;­&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The error&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{error &amp;amp;&amp;amp; (
  &amp;lt;div className="p-3 bg-red-100 text-red-700"&amp;gt;
    {error}
  &amp;lt;/div&amp;gt;
)}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The message appears on screen, but is not announced. For a screen reader, nothing happened.&lt;br&gt;&lt;br&gt;
­&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The correction&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{error &amp;amp;&amp;amp; (
  &amp;lt;div role="alert" aria-live="assertive"&amp;gt;
    {error}
  &amp;lt;/div&amp;gt;
)}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;­&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Why this is better:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Immediately informs state changes,&lt;/li&gt;
&lt;li&gt;Ensures errors are not overlooked,&lt;/li&gt;
&lt;li&gt;Maintains consistency between what is seen and what is perceived.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!8JIk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a5e65a-902e-4967-beed-57116073467e_800x162.png" rel="noopener noreferrer"&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%2Foztratw4qwtmbcmuzzl5.png" alt="Text in a retro computer screen style, in coral tones on a green background: " width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The A11Y.md Paradigm&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The point is not the isolated examples, but that they continue to happen because they depend on human memory in accelerated environments. &lt;strong&gt;A11Y.md&lt;/strong&gt; proposes three pillars:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Human-Centric:&lt;/strong&gt; Focus on the user’s real autonomy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Ready:&lt;/strong&gt; Guidelines written to guide code agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certifiable:&lt;/strong&gt; Rules mapped directly to the WCAG 2.2 standard.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the code agent (or your editor in &lt;em&gt;Vibe Coding&lt;/em&gt; mode) already “reads” in the project context that it is forbidden to use &lt;code&gt;div&lt;/code&gt; as a button or generate text below 12px, the error ceases to be an option.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AI won’t solve (alone) accessibility&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Let’s be realistic: AI won’t “solve” accessibility. Accessibility is experience. It’s the look of someone who perceives colors, the touch of someone who navigates without a mouse, the listening of someone who depends on voice.&lt;/p&gt;

&lt;p&gt;The human remains indispensable. &lt;strong&gt;A11Y.md&lt;/strong&gt; does not replace us; it guarantees that the basics are not neglected so we can focus on what really matters: the exceptional human experience.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;To use A11Y.md is simple:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!IwiN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef566f7-a5a2-4fd3-82eb-40d417a1e7ff_800x361.gif" rel="noopener noreferrer"&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%2Fbbbw62r1p1w814dtn8p6.gif" alt="Gif demonstrating the configuration of the A11Y.md file in Antigravity." width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/fecarrico/A11Y.md" rel="noopener noreferrer"&gt;Download the rules&lt;/a&gt;&lt;/strong&gt; &lt;a href="https://github.com/fecarrico/A11Y.md" rel="noopener noreferrer"&gt;from the official Github repository:&lt;/a&gt; Copy the content from the &lt;code&gt;/docs/pt-BR&lt;/code&gt; folder (or the English version as a good practice) to the root of your project repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inject into the prompt:&lt;/strong&gt; If you use &lt;em&gt;Cursor&lt;/em&gt;, &lt;em&gt;GitHub Copilot&lt;/em&gt;, &lt;em&gt;Claude&lt;/em&gt;, or &lt;em&gt;Antigravity&lt;/em&gt;, add to your global rules file (&lt;code&gt;.cursorrules&lt;/code&gt;, &lt;code&gt;GEMINI.md&lt;/code&gt;, or any other context system): &lt;em&gt;“When developing interfaces, strictly follow the development rules defined in the A11Y.md file.”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Call it directly:&lt;/strong&gt; You can also call &lt;strong&gt;A11Y.md&lt;/strong&gt; at any time directly in your agent: &lt;em&gt;“Analyze the project (which can be existing code or a Figma screen using MCP) using A11Y.md.”&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By doing this, your development environment will know — from the beginning — that accessibility is a basic requirement in code generation.&lt;/p&gt;

&lt;p&gt;­&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;An invitation to Open Source&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A11Y.md&lt;/strong&gt; is not just a file; it's a starting point. It can become an IDE plugin, a CI/CD pipeline, or a specialized agent. The project is open source (MIT license) because accessibility does not ask for permission; it asks for collaboration.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Accessibility cannot be a seal at the end of the process. It needs to be the restriction at the beginning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe the next step in accessibility is, finally, to become practical and accessible for those building the future, whether human or not.&lt;/p&gt;




&lt;h4&gt;
  
  
  References and inspirations
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="https://claude.com/blog/using-claude-md-files" rel="noopener noreferrer"&gt;Using CLAUDE.md files: Customizing Claude Code for your codebase&lt;/a&gt;&lt;/em&gt; — Claude&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="https://github.com/mneves75/ai-health-sync-ios/blob/master/DOCS/ACCESSIBILITY.md" rel="noopener noreferrer"&gt;ACCESSIBILITY.md&lt;/a&gt;&lt;/em&gt;— mneves75&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="https://github.com/redwoodjs/graphql/blob/main/docs/docs/a11y.md" rel="noopener noreferrer"&gt;a11y.md&lt;/a&gt;&lt;/em&gt; — RedwoodGraphQL&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="https://antigravity.codes/blog/user-rules" rel="noopener noreferrer"&gt;Antigravity Rules: Guide with AGENTS.md &amp;amp; Examples&lt;/a&gt;&lt;/em&gt;— Antigravity Codes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brasil.uxdesign.cc/a11y-md-acessibilidade-antes-de-qualquer-prompt-5c8778ccb310" rel="noopener noreferrer"&gt;Original articule in Portuguese&lt;/a&gt; - Felipe A. Carriço&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>a11y</category>
      <category>frontend</category>
      <category>uxdesign</category>
    </item>
  </channel>
</rss>
