<?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: Chris </title>
    <description>The latest articles on DEV Community by Chris  (@chris_devto).</description>
    <link>https://dev.to/chris_devto</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%2F2563452%2Fc2a9dcc1-e8fc-4731-bfeb-28904cf39919.jpeg</url>
      <title>DEV Community: Chris </title>
      <link>https://dev.to/chris_devto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chris_devto"/>
    <language>en</language>
    <item>
      <title>French courts just rejected a 71% accessibility compliance score</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Fri, 10 Jul 2026 12:04:52 +0000</pubDate>
      <link>https://dev.to/chris_devto/french-courts-just-rejected-a-71-accessibility-compliance-score-ed0</link>
      <guid>https://dev.to/chris_devto/french-courts-just-rejected-a-71-accessibility-compliance-score-ed0</guid>
      <description>&lt;p&gt;Disability groups took Carrefour to court because visually impaired users were routinely blocked from completing basic tasks on their site and mobile app.&lt;/p&gt;

&lt;p&gt;In June 2026, the French judicial court ruled against Carrefour.&lt;/p&gt;

&lt;p&gt;Carrefour didn't deny their legal obligation but their defence would match what many project managers try and argue - they claimed they were already 71% compliant under the RGAA (the official French digital accessibility framework).&lt;/p&gt;

&lt;p&gt;They essentially argued: &lt;em&gt;"Look, we've done some work"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The court’s response was a sharp reality check&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The eCommerce site in question cannot just be somewhat accessible it must be totally accessible."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Carrefour has exactly six months to achieve compliance across all 106 criteria of the technical framework, or face a daily penalty of &lt;strong&gt;€500 for every day&lt;/strong&gt; they remain non-compliant. Ultimately this is a failure under their CTO &lt;a href="https://www.cionet.com/tv/olivier-gibert-global-cto-at-carrefour-future-proofing-a-retail-giant" rel="noopener noreferrer"&gt;Olivier Gibert's&lt;/a&gt; leadership.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why "mostly accessible" is a nonsense.
&lt;/h3&gt;

&lt;p&gt;The court used this example&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If a building has a staircase, 100% of the steps must be covered by a handrail. If you only install a handrail on 71% of the steps and leave the top 29% completely bare, the staircase is fundamentally unsafe and unusable for someone who relies on that rail.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In code, accessibility works exactly the same way. If a user can browse your store, filter categories, and add an item to their cart, but your checkout form fields lack proper HTML labels or your "Place Order" button is a flat &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; with no keyboard focus state, &lt;strong&gt;the entire site is broken for that user.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don't get partial credit for letting a user build a shopping cart if you block them from spending their money at the final step.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Developers need to shift their mindset
&lt;/h3&gt;

&lt;p&gt;An automated score really tells a disabled user nothing about if they can use your website. If a company thinks they're doing great but the mega-menu doesn't even work with keyboard properly it indicates there is still lots of work to do. &lt;/p&gt;

&lt;p&gt;This case proves, arguing "we did some work" is not going to prevent fines.  If the company is not testing with disabled users, what the team is doing has a technical name:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Guessing&lt;/em&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Raising a good Pull Request</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Fri, 10 Jul 2026 11:41:05 +0000</pubDate>
      <link>https://dev.to/chris_devto/raising-a-good-pull-request-1ba7</link>
      <guid>https://dev.to/chris_devto/raising-a-good-pull-request-1ba7</guid>
      <description>&lt;p&gt;A great Pull Request (PR) should read like a high-quality blog post.&lt;/p&gt;

&lt;p&gt;I'm sure everyone's experienced this, you open a teammate’s PR only to find a blank description, an obscure title, and a wall of changed code. &lt;/p&gt;

&lt;p&gt;You have a million questions. What is this? What issue does it fix? How do I test this? Who approved this decision? Who did you speak to? What were the trade-offs? How do I run this locally? What visually does it change? Why did you do it like this?&lt;/p&gt;

&lt;p&gt;Sloppy PRs are a plague on development teams, laziness leads to bad habits, random project nicknames, and a sea of unexplained acronyms that nobody else understands. When you submit a lazy PR, you are telling your team, &lt;em&gt;"my time is more valuable than yours."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For those early in their career, mastering this skill is one of the fastest ways to stand out and show great professionalism. To demonstrate clear technical communication.&lt;/p&gt;

&lt;p&gt;It's one of the telling signs of a poor development culture. It can snowball, once this becomes culture, normalised, developers can get more and more sloppy.&lt;/p&gt;

&lt;p&gt;A PR requires the reviewer to checkout the code, review it locally and verify it works. This can take days. It doesn't mean put your finger in the air and glance at the code to get sense if it's OK.  However if your pull request looks like this that's can encourage that behaviour. Throwing it over the fence getting someone else to do the work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 1 year test
&lt;/h2&gt;

&lt;p&gt;When you open a PR, imagine you are returning to this exact page in one year's time. The context will be completely gone from your memory.&lt;/p&gt;

&lt;p&gt;A great PR acts as a permanent historical record for your repository. It bridges the gap between your immediate thoughts and the long-term documentation of your codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  Anatomy of a high quality PR
&lt;/h2&gt;

&lt;p&gt;To write a PR that your teammates will love to review it can follow a simple format.&lt;/p&gt;

&lt;h2&gt;
  
  
  What
&lt;/h2&gt;

&lt;p&gt;Link directly to the tracking ticket or issue. State exactly what problem this code solves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why
&lt;/h2&gt;

&lt;p&gt;The "Why" document the technical trade offs you made and mention who you spoke with to align on this solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;If you changed the user interface, attach a screenshot, an image, or a short video demonstration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anything else?
&lt;/h2&gt;

&lt;p&gt;Write a step-by-step guide explaining how the reviewer can pull down your branch and verify the changes locally.  &lt;/p&gt;

&lt;p&gt;Ban internal acronyms &lt;/p&gt;

&lt;p&gt;Add comments to the code. If someone is unclear of there is something that needs to be explained add this. &lt;/p&gt;

&lt;p&gt;Add any resources that support your decision, how did you arrive this?&lt;/p&gt;




&lt;h2&gt;
  
  
  Create a markdown template
&lt;/h2&gt;

&lt;p&gt;The easiest way to break bad PR habits is to automate the process. You can use platforms like &lt;a href="https://github.blog/developer-skills/github/issue-and-pull-request-templates/" rel="noopener noreferrer"&gt;The GitHub Blog&lt;/a&gt; to set up a standard &lt;code&gt;pull_request_template.md&lt;/code&gt; file in your repository.&lt;/p&gt;

&lt;p&gt;When a template autofills every time a team member opens a new branch, it forces everyone to slow down, fill in the blanks, and provide the clarity the team deserves. &lt;/p&gt;

</description>
      <category>git</category>
      <category>pullrequest</category>
      <category>tooling</category>
      <category>githubactions</category>
    </item>
    <item>
      <title>React's architectural accessibility gaps</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Wed, 01 Jul 2026 09:38:47 +0000</pubDate>
      <link>https://dev.to/chris_devto/reacts-architectural-accessibility-gaps-2d40</link>
      <guid>https://dev.to/chris_devto/reacts-architectural-accessibility-gaps-2d40</guid>
      <description>&lt;h2&gt;
  
  
  Unless you build it yourself there's no auto lang sync, change announcements, or focus management
&lt;/h2&gt;

&lt;p&gt;Imagine a language toggle on a website. The user clicks it, the content and UI swaps from English to French, it looks done but what's expected for accessibility?  There are 3 aspects that need checking in this context.&lt;/p&gt;

&lt;p&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbg6416rcky38iv2r1g56.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbg6416rcky38iv2r1g56.jpeg" alt="Language UI toggle with English and Francais as the option" width="800" height="186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WCAG 3.1.1 (language of page) &lt;code&gt;&amp;lt;html lang=""&amp;gt;&lt;/code&gt;has to update
&lt;/h3&gt;

&lt;p&gt;Screen readers use the &lt;code&gt;lang&lt;/code&gt; attribute to choose a pronunciation engine. If it's stuck on &lt;code&gt;en&lt;/code&gt; while the visible text is now French, every word gets read with English phonetics. Its completely mispronounced, it's a bit like Siri reading French in a English accent, it's going to get all sorts of things wrong.&lt;/p&gt;

&lt;h3&gt;
  
  
  WCAG 2.4.2 (page titled) &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; has to update
&lt;/h3&gt;

&lt;p&gt;As the language changes so does the title &lt;em&gt;"Welcome to our website"&lt;/em&gt; changes to &lt;span&gt;&lt;em&gt;"Bienvenue sur notre site web."&lt;/em&gt;&lt;/span&gt; Screen reader title announcements, and browser history all rely on this.&lt;/p&gt;

&lt;h3&gt;
  
  
  WCAG 2.4.3 - focus has to be considered
&lt;/h3&gt;

&lt;p&gt;The user clicks the language toggle, the content changes however the user's focus needs to be considered.&lt;/p&gt;

&lt;h3&gt;
  
  
  WCAG 4.1.3 - status messages
&lt;/h3&gt;

&lt;p&gt;Requires that important changes, be announced to screen readers even if the user's focus never moves there.&lt;/p&gt;

&lt;h3&gt;
  
  
  React has an architectural gap
&lt;/h3&gt;

&lt;p&gt;React doesn't automatically handle any of these, it's down to the Developer to be aware and fill in these gaps.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Does SSR (server-side rendering) fix these issues within React?
&lt;/h3&gt;

&lt;p&gt;Not really. SSR (Server-Side Rendering) simply means computing the HTML on the server before sending it to the client. SSR is a prerequisite for &lt;a href="https://dev.to/blog/why-is-progressive-enhancement-often-ignored"&gt;progressive enhancement&lt;/a&gt; in JavaScript frameworks.&lt;/p&gt;

&lt;p&gt;Server-side rendering lets you compute the correct &lt;code&gt;lang&lt;/code&gt; and &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; before the HTML leaves the server. Search, AI crawlers and assistive tech that read the document before hydration get the right values immediately.&lt;/p&gt;

&lt;p&gt;But SSR has nothing to say about what happens &lt;em&gt;after&lt;/em&gt; hydration, when a user clicks the toggle without a full page reload. That's a client-side state change happening entirely within the React tree, and SSR's job is already finished by then. SSR fixes the document the server ships on first load. It doens't handle the interaction that happens after, React doesn't ship an aria-live title-watcher to address that gap automatically.&lt;/p&gt;

&lt;p&gt;Quick aside, this client-side interaction gives a smooth interaction to the user, they don't get a page reload flash when interacting with the page, but this is less relevant with &lt;code&gt;@view-transition&lt;/code&gt; now shipping in &lt;a href="https://caniuse.com/view-transitions" rel="noopener noreferrer"&gt;many browsers&lt;/a&gt;, &lt;a href="https://live-transitions.pages.dev/" rel="noopener noreferrer"&gt;a great demo&lt;/a&gt; can be found here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does React Router fix things?
&lt;/h3&gt;

&lt;p&gt;Ryan Florence, who built Reach Router &lt;a href="https://github.com/remix-run/react-router/discussions/9555" rel="noopener noreferrer"&gt;wrote about why automatic focus management on route change got dropped&lt;/a&gt;, he laid out the actual blocker, &lt;em&gt;"focus management and scroll restoration are, in most cases, mutually exclusive, because moving focus to a new element also scrolls it into view, which fights with React Router's scroll restoration on back/forward navigation."&lt;/em&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"this is a big problem that I don't know how to solve and why I've opened this discussion. Without a resolution here this effort is blocked"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The official &lt;a href="https://web.archive.org/web/20250212171604/https://reactrouter.com/6.28.0/upgrading/reach" rel="noopener noreferrer"&gt;migration guide from Reach Router to React Router v6&lt;/a&gt; stated a goal of the rewrite &lt;em&gt;"stop doing not-good-enough focus management by default."&lt;/em&gt; The people who built the router, hit this wall and documented hitting it. React Router's &lt;a href="https://reactrouter.com/how-to/accessibility" rel="noopener noreferrer"&gt;own current accessibility docs&lt;/a&gt; now frame it as your problem to solve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;React Router doesn't make any assumptions about your UI as the route changes. There are some important features you'll want to consider as a result, including: Focus management and Live-region announcements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Chris Ferdinandi ran into the same issue last year, &lt;a href="https://gomakethings.com/articles/shifting-focus-on-route-change-with-react-router/" rel="noopener noreferrer"&gt;&lt;em&gt;"I recently worked on a project with React Router, which I thought handled this automatically, but for some reason was not in my app"&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ok this is React, does Next.js fix this?
&lt;/h3&gt;

&lt;p&gt;The App Router's &lt;code&gt;generateMetadata&lt;/code&gt; solves &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; and announcement issue &lt;a href="https://github.com/vercel/next.js/issues/86660" rel="noopener noreferrer"&gt;with caveats&lt;/a&gt; better than plain React but there is an &lt;a href="https://github.com/vercel/next.js/issues/49386" rel="noopener noreferrer"&gt;open bug&lt;/a&gt; that mentions the focus issue in particular saying &lt;em&gt;"Today, nextjs does nothing to help with this."&lt;/em&gt; It seems like some version of this has been around since 2019.&lt;/p&gt;

&lt;h3&gt;
  
  
  So what actually fixes these issues in React?
&lt;/h3&gt;

&lt;p&gt;Ok, so now we know the problems and a bit of the history of what-is-and-isn't-possible what are the steps needed for the fixes?&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Change the &lt;code&gt;lang&lt;/code&gt; attribute
&lt;/h4&gt;

&lt;p&gt;This is the only one that's a single, simple DOM write addressing &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/language-of-page.html" rel="noopener noreferrer"&gt;WCAG 3.1.1&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;documentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lang&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;locale&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 'fr'&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;locale&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A quick note, if your language toggle lives inside a design system (DS), it generally can't reach past its own subtree to mutate &lt;code&gt;document.documentElement&lt;/code&gt; and doing so anyway is bad practice for a shared component.  The realistic pattern is for the DS component to tell the app something changed via a callback, the app is responsible for updating the document.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Announce the change with custom text, not the title
&lt;/h4&gt;

&lt;p&gt;One fix is creating new element with an &lt;code&gt;aria-live&lt;/code&gt; region so this can announce the content changes &lt;em&gt;"Language changed to French"&lt;/em&gt;, as a spoken message addressing &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html" rel="noopener noreferrer"&gt;WCAG 4.1.3&lt;/a&gt;. There might dedicated React plugins that address this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;announcement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setAnnouncement&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;translatedTitle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;                          &lt;span class="c1"&gt;// updates the real title, for tabs/history&lt;/span&gt;
  &lt;span class="nf"&gt;setAnnouncement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Language changed to &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;languageName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="c1"&gt;// separate, custom text for AT&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;locale&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;translatedTitle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;languageName&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;aria-live&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"polite"&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"visually-hidden"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;announcement&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This doesn't touch &lt;code&gt;document.documentElement.lang&lt;/code&gt;, so it's possible to ship an &lt;code&gt;aria-live="polite"&lt;/code&gt; region that proudly announces a language switch, in an English-voiced, mispronouncing the French it's reading, because the structural &lt;code&gt;lang&lt;/code&gt; attribute it depends on is still wrong.&lt;/p&gt;

&lt;p&gt;Quick digress, there is a &lt;a href="https://romaricpascal.is/posts/title-element-aria-live/" rel="noopener noreferrer"&gt;hack to announce a document's title changes with aria-live&lt;/a&gt; with &lt;code&gt;display: block&lt;/code&gt; on &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;, but it's fragile and inconsistently supported across screen readers not a real fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Shift focus, but where? It depends on context
&lt;/h3&gt;

&lt;p&gt;In this context switching the language acts as a full content change, managing the focus so assistive tech users aren't left stranded on the toggle. Shifting focus to the &lt;code&gt;body&lt;/code&gt; is one choice but this is debatable.  &lt;/p&gt;

&lt;p&gt;In 2019, &lt;a href="https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/" rel="noopener noreferrer"&gt;Marcy Sutton did some disabled user testing with Fable&lt;/a&gt;, across five participants using screen readers, screen magnification, voice navigation, keyboard-only, and switch access, found three workable approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus the heading &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; this tested as the fastest, clearest experience, it announces the new content immediately and drops the user straight into it.
&lt;/li&gt;
&lt;li&gt;Focus the content wrapper &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, also moved screen reader users past top-level navigation successfully, though testers found it noticeably more subtle than a heading.&lt;/li&gt;
&lt;li&gt;Focus a visually hidden skip-link. Headings and wrappers worked well for screen readers but broke down elsewhere. Screen magnification users hit some problems, a wrapper or heading spanning a wide layout caused the browser to scroll to the middle of it when zoomed in, cutting off text at both edges. For this group, doing nothing sometimes beat the "best practice" pattern. Separately, keyboard-only users couldn't reach the &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; landmark at all, since landmark regions aren't keyboard-focusable by default. A small, focusable skip-link sidesteps both problems.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a complex UI, the skip-link appears to be the safer default specifically because it was the only pattern that held up across every disability group tested.  For a straightforward use-case or site, focusing the &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; wrapper gives a good experience.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useRef&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;locale&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;headingRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// tabIndex={-1} lets us focus it programmatically&lt;/span&gt;
    &lt;span class="c1"&gt;// without adding it to the natural tab order&lt;/span&gt;
    &lt;span class="nx"&gt;headingRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;locale&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;headingRef&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;tabIndex&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;translatedTitle&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Anything else?
&lt;/h4&gt;

&lt;p&gt;For the &lt;code&gt;title&lt;/code&gt; specifically, &lt;a href="https://react.dev/blog/2024/12/05/react-19" rel="noopener noreferrer"&gt;React 19&lt;/a&gt; added native support for hoisting &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tags rendered anywhere in your tree up into &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;.  Worth knowing if you're on an older React version but native hoisting only covers &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; but it explicitly does not cover &lt;code&gt;lang&lt;/code&gt;, which is &lt;code&gt;htmlAttributes&lt;/code&gt;, and it does nothing for the announcement live region either.  &lt;/p&gt;

&lt;h3&gt;
  
  
  React is one of many options, SvelteKit doesn't have these issues
&lt;/h3&gt;

&lt;p&gt;These gaps don't apply to all JS libraries / frameworks. For example, SvelteKit ships fixes for all three problems as framework defaults.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://svelte.dev/docs/kit/accessibility" rel="noopener noreferrer"&gt;SvelteKit's accessibility docs&lt;/a&gt; describe a built-in fix, the framework injects a live region onto the page that reads out the new page name after every navigation, determining what to say by inspecting the &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; element itself.&lt;/p&gt;

&lt;p&gt;You still have to set a unique title per page, using &lt;code&gt;&amp;lt;svelte:head&amp;gt;&lt;/code&gt; which can appear in any component and writes directly into &lt;code&gt;document.head&lt;/code&gt; but the live-region announcement on top of it is the framework's job, not yours.&lt;/p&gt;

&lt;p&gt;However just like React, if you are doing a client side route change without a full page reload, you still need to update the &lt;code&gt;lang&lt;/code&gt; attribute client-side using &lt;code&gt;&amp;lt;svelte:document&amp;gt;&lt;/code&gt; and focus is returned the &lt;code&gt;body&lt;/code&gt; &lt;a href="https://svelte.dev/docs/kit/accessibility" rel="noopener noreferrer"&gt;but this can be managed&lt;/a&gt; using &lt;code&gt;autofocus&lt;/code&gt;. React has none of this.&lt;/p&gt;

&lt;h3&gt;
  
  
  The takeaway
&lt;/h3&gt;

&lt;p&gt;These are architectural gaps with React, its down the the developer to be aware, resolve and manage these issues with ensure accessibility standards are met.&lt;/p&gt;

</description>
      <category>react</category>
      <category>a11y</category>
      <category>designsystem</category>
      <category>l10n</category>
    </item>
    <item>
      <title>Your accessibility score is lying to you</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Tue, 07 Apr 2026 22:38:35 +0000</pubDate>
      <link>https://dev.to/chris_devto/your-accessibility-score-is-lying-to-you-5fh2</link>
      <guid>https://dev.to/chris_devto/your-accessibility-score-is-lying-to-you-5fh2</guid>
      <description>&lt;p&gt;Automated accessibility testing tools, such as &lt;a href="https://www.deque.com/axe/" rel="noopener noreferrer"&gt;axe-core by Deque&lt;/a&gt;, &lt;a href="https://wave.webaim.org/" rel="noopener noreferrer"&gt;WAVE&lt;/a&gt;, &lt;a href="https://developer.chrome.com/docs/lighthouse/overview" rel="noopener noreferrer"&gt;Lighthouse&lt;/a&gt; are bit like a spellcheck for web accessibility. They are really useful for identifying and resolving many common accessibility issues quickly. &lt;/p&gt;

&lt;p&gt;There are a whole range of tools that provide similar services, a way to detect some of the most common accessibility issues across a page.&lt;/p&gt;

&lt;h3&gt;
  
  
  The problem with automated accessibility scores
&lt;/h3&gt;

&lt;p&gt;The problem is the way their reporting gives a score of out 100%. It gives the impression to the uneducated that an automated scoring once it reaches 80 or 90% is pretty good.  However, these scores can be deeply misleading.&lt;/p&gt;

&lt;p&gt;Automated tests typically detect only 20% to 40% of real accessibility issues. What about with AI I hear you scream? I'm sure that will increase but for now let's pause that for this post.  Like a spell-checker that flags spelling mistakes but cannot understand meaning or context, it can't tell you if the book makes sense. These tools identify technical errors but miss &lt;a href="https://www.youtube.com/watch?v=MTtvETBVW48" rel="noopener noreferrer"&gt;many barriers&lt;/a&gt; that only humans can detect.&lt;/p&gt;

&lt;p&gt;Deque’s own marketing materials claim they can detect &lt;a href="https://accessibility.deque.com/hubfs/Accessibility-Coverage-Report.pdf" rel="noopener noreferrer"&gt;up to 57% of issues&lt;/a&gt;, although at the time of writing I find it hard to review how they're arrived at this. Which websites? How was this tested etc? Are there user testing videos?&lt;/p&gt;

&lt;h3&gt;
  
  
  How this scoring misleads those in power
&lt;/h3&gt;

&lt;p&gt;I was sat in a presentation recently, cringing, where a Product Owner and Lead Designer proudly assert their automated score of 70% suggesting their &lt;em&gt;"almost there"&lt;/em&gt; when they are so far away from the reality...  &lt;/p&gt;

&lt;p&gt;Suddenly there was another &lt;a href="https://www.atlassian.com/agile/project-management/epics" rel="noopener noreferrer"&gt;epic&lt;/a&gt; piece of work to educate certain stakeholders about this misleading nature of this score.&lt;/p&gt;

&lt;p&gt;A site scoring 70% might appear nearly compliant but if we accept the marketing claims of 57% then a “70%” score equates to roughly 39.9% of actual accessibility compliance.  This discrepancy leads people to believe that accessibility work is largely complete, when in fact the majority of blockers remain unresolved.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Automated score (%)&lt;/th&gt;
&lt;th&gt;Approx. % of actual issues detected (57%)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;17.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;22.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;28.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;34.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;39.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;45.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;51.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  The wider consequences
&lt;/h3&gt;

&lt;p&gt;When teams focus on improving their automated score, accessibility becomes a checkbox exercise rather than a genuine effort to create accessible experiences. Developers start &lt;em&gt;“fixing for the tool”&lt;/em&gt; instead of fixing for disabled users.  The whole goal is to simply get the tooling to give a green light.&lt;/p&gt;

&lt;p&gt;This has several negative effects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teams make superficial somewhat performative, changes to satisfy tooling rather unblock disabled people.&lt;/li&gt;
&lt;li&gt;Businesses suddenly think they are compliant when they are not, giving them a sense of false confidence.&lt;/li&gt;
&lt;li&gt;Leadership tend to use these scores to justify reducing investment in accessibility.
&lt;/li&gt;
&lt;li&gt;Most importantly, disabled users remain unable to complete tasks such as checking out, navigating menus, or using interactive features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why automated tools still matter
&lt;/h3&gt;

&lt;p&gt;Don't get me wrong, automated accessibility tools should not be dismissed, They are excellent for identifying obvious issues and ensuring consistency across large codebases. However, they are only a starting point, not a comprehensive solution. They are not a replacement for testing with real disabled users.&lt;/p&gt;

&lt;p&gt;The things below can't be skipped&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual testing with assistive technologies&lt;/li&gt;
&lt;li&gt;User testing with people with disabilities
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without these, even a &lt;em&gt;“perfect”&lt;/em&gt; automated score is somewhat meaningless.&lt;/p&gt;

&lt;h3&gt;
  
  
  Time to get uncomfortable
&lt;/h3&gt;

&lt;p&gt;The uncomfortable truth is that, in many organisations Accessibility isn’t treated as a commitment to unblocking people, it’s a risk management piece. For some leaders, it’s not about people, it’s about protection. &lt;/p&gt;

&lt;p&gt;They invest in automated tools, chase high Accessibility scores because if they’re ever challenged legally, they can point to those numbers as &lt;em&gt;“evidence”&lt;/em&gt; of compliance, hoping no one looks too closely.&lt;/p&gt;

&lt;p&gt;Sometimes the companies selling these Accessibility testing tools also have a vested interest in keeping those scores high. Their products are compared against other platforms, and a higher &lt;em&gt;“score”&lt;/em&gt; looks better in sales demos. They get their subscription fees whether or not disabled people can actually use the product or service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Update the metrics
&lt;/h3&gt;

&lt;p&gt;I would love for these tools to update their scoring metrics. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Change their metrics, imagine if axe-core or Lighthouse had a maximum score of 57%.  There was no way to get to 100%, that would shift the understanding instantly.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Misunderstanding these scores can give an organisations a dangerous illusion of compliance and may not actually improve the experience for disabled people.&lt;/p&gt;




&lt;h3&gt;
  
  
  Further reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=MTtvETBVW48" rel="noopener noreferrer"&gt;A false sense of accessibility: What automated testing tools are missing #id24 2025&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://accessible.org/automated-scans-wcag/" rel="noopener noreferrer"&gt;Accessible.org: Accessibility Scans Reliably Flag 13% of WCAG Criteria&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/pulse/automated-accessibility-test-tools-find-even-less-than-robert-dodd-pk7be/" rel="noopener noreferrer"&gt;LinkedIn: Automated Accessibility Test Tools Find Even Less than 30%–50%&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://karlgroves.com/the-problem-with-automated-website-accessibility-testing-tools/" rel="noopener noreferrer"&gt;The Problem with Automated Website Accessibility Testing Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cover image alt&lt;br&gt;
[Two large circular graphics are shown side by side on a light background. The left circle is green with “100%” inside and labelled “Automated accessibility score.” The right circle is orange with “57%” inside and labelled “Actual issues detected.” Below the circles, a caption reads book  “Automated testing tools only catch a fraction of real accessibility issues.”]&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>frontend</category>
      <category>automation</category>
      <category>lighthouse</category>
    </item>
    <item>
      <title>Why accessible video is still not possible on Instagram</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Tue, 16 Dec 2025 09:38:42 +0000</pubDate>
      <link>https://dev.to/chris_devto/why-accessible-video-is-still-not-possible-on-instagram-8p</link>
      <guid>https://dev.to/chris_devto/why-accessible-video-is-still-not-possible-on-instagram-8p</guid>
      <description>&lt;p&gt;TL;DR - Basic video accessibility features, closed captions and audio descriptions are still not possible on Instagram.&lt;/p&gt;




&lt;p&gt;Instagram was launched in 2010, it has grown into a cultural force. While Meta doesn’t publish Instagram’s profit precisely, it is estimated that Instagram’s advertising revenue alone reached approximately &lt;a href="https://www.lemonde.fr/en/economy/article/2024/02/02/earning-39-billion-in-profits-in-2023-meta-soars-on-the-stock-market_6488740_19.html" rel="noopener noreferrer"&gt;$39 billion in 2023&lt;/a&gt; (and will likely make up over &lt;a href="https://www.emarketer.com/press-releases/instagram-will-make-up-more-than-half-of-metas-us-ad-revenues-in-2025/" rel="noopener noreferrer"&gt;half of Meta’s US ad revenue in 2025&lt;/a&gt;). The cultural and financial impact of the platform is impossible to understate.&lt;/p&gt;

&lt;p&gt;However for millions of disabled people, the short-form-video experience is incomplete, frustrating, and often exclusionary.&lt;/p&gt;

&lt;h2&gt;
  
  
  The missing accessibility features
&lt;/h2&gt;

&lt;p&gt;The core issue lies in the lack of support for industry-standard accessibility features:&lt;/p&gt;

&lt;h3&gt;
  
  
  Closed captions are not fully supported
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Closed_captioning" rel="noopener noreferrer"&gt;Closed captions&lt;/a&gt; (CC), like those found on Netflix or broadcast television, are not really possible on Instagram. Closed captions are a vital feature for the deaf and those hard of hearing community. They usually appear at the bottom of the video with high-contrast text (eg white text on a black background) and, crucially, can be switched on and off by the user. They also allow for adjustments in text size and shape, and can be picked up and processed by assistive technologies.&lt;/p&gt;

&lt;p&gt;Instagram offers some users &lt;a href="https://help.instagram.com/7487270478066359/?cms_platform=iphone-app&amp;amp;helpref=platform_switcher" rel="noopener noreferrer"&gt;automated closed captions&lt;/a&gt; but it doesn’t let users edit this text or really control any aspect of it relying on automation. It’s &lt;a href="https://en.wikipedia.org/wiki/Closed_captioning" rel="noopener noreferrer"&gt;not possible to add a relevant caption file&lt;/a&gt; which is essential for accuracy and compliance.&lt;/p&gt;

&lt;p&gt;Open captions which are often ‘burned’ directly into the video file, meaning they cannot be turned off, adjusted, or read some assistive technology. These are possible but which is something, but open captions have been normalised as an aesthetic addition to a video, rather than an accessibility need. They are often flashy and are used to drive engagement rather than serve deaf people and those with hearing loss.&lt;/p&gt;

&lt;h3&gt;
  
  
  Audio description is not possible
&lt;/h3&gt;

&lt;p&gt;Equally, &lt;a href="https://en.wikipedia.org/wiki/Audio_description" rel="noopener noreferrer"&gt;audio descriptions&lt;/a&gt; which is a secondary audio track that narrates key visual elements for people who are blind or have low vision is not a built-in possibility on Instagram’s video features. This means content creators cannot easily upload a separate audio track to ensure their visual stories are accessible to everyone.&lt;/p&gt;

&lt;p&gt;There are 3 core layers of why this is happening&lt;/p&gt;

&lt;p&gt;The missing features are basic and would be simple for a company with Meta’s resources to implement. The reasons for this failure are structural and I can sort of break them down into three parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regulation (the Government layer)
&lt;/h3&gt;

&lt;p&gt;In jurisdictions like the UK, broadcast television is bound by strict laws that force broadcasters to include features like closed captions and audio description. Instagram, however, removes this legal obligation because it is classified as a tech platform, not a traditional broadcaster, allowing it to operate in a regulatory grey zone with fewer accessibility requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Legal Liability (the structural layer)
&lt;/h3&gt;

&lt;p&gt;On broadcast TV, the channel or network is legally responsible for the content’s accessibility. On Instagram, that legal liability has been effectively shifted to the user creating the content. The platform doesn’t feel compelled to provide the tools because the creators shoulder the burden. &lt;a href="https://www.theguardian.com/film/2015/oct/20/netflix-film-studios-lawsuit-song-captioning-deaf-skyfall" rel="noopener noreferrer"&gt;Netflix only started to take captioning seriously after they were sued in 2015&lt;/a&gt;. (Does the &lt;a href="https://chrisyoong.com/blog/understanding-the-european-accessibility-act" rel="noopener noreferrer"&gt;European Accessibility Act&lt;/a&gt; apply? Quite possibility, but that’s another post)&lt;/p&gt;

&lt;h3&gt;
  
  
  Culture (the top-down layer)
&lt;/h3&gt;

&lt;p&gt;Ultimately, this points to a deep-seated cultural issue. Meta has a long, public history of deprioritising accessibility features in favour of new monetisation tools and engagement drivers. &lt;a href="https://abilitynet.org.uk/news-blogs/new-threads-app-fails-accessibility-test" rel="noopener noreferrer"&gt;Threads was launched without features to add alt text&lt;/a&gt;. The lack of basic functionality points to a persistent top-down culture where the needs of disabled users are not treated as a priority, if at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the solution?
&lt;/h2&gt;

&lt;p&gt;The fix is almost laughably simple for a company of Meta’s scale. They possess virtually unlimited resources and could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Establish a dedicated, empowered Accessibility Team within Instagram.&lt;/li&gt;
&lt;li&gt;Run a short development sprint (allocate time) to allow users to upload external caption files (SRT, VTT formats) and separate Audio Description tracks.&lt;/li&gt;
&lt;li&gt;Launch a global marketing campaign to educate content creators on the importance and process of adding these features.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Will they do it?
&lt;/h2&gt;

&lt;p&gt;Instagram short-form-video “Reels” launched over 5 years ago in 2020, and the fact that such a basic, fundamental features are still missing speaks volumes. It is unlikely to happen until the regulatory or public pressure becomes financially too great to ignore&lt;/p&gt;

&lt;h2&gt;
  
  
  In the meantime, what are the workarounds?
&lt;/h2&gt;

&lt;p&gt;Use other platforms. Creators who value accessibility should post their video content on platforms like YouTube, which have robust, fully adjustable closed caption support and audio description options, and then link back to their Instagram profile.&lt;/p&gt;

&lt;p&gt;The platform may be an cultural force, but until it provides truly accessible tools, it excludes a significant portion of people with health conditions or impairments.&lt;/p&gt;




&lt;p&gt;Cover image: Instagram Reels, with the Reels icon on the left (a play button inside a stylised film strip) and two smartphones on the right displaying the Instagram app. One phone shows a user profile, and the other shows a dancing video playing in the Reels interface.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>wcag</category>
      <category>eaa</category>
    </item>
    <item>
      <title>Accessibility: FashionNova fined $5.15M, Vueling Airlines €90,000</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Thu, 02 Oct 2025 10:48:51 +0000</pubDate>
      <link>https://dev.to/chris_devto/fashionnova-fined-515m-vueling-airlines-eu90000-48he</link>
      <guid>https://dev.to/chris_devto/fashionnova-fined-515m-vueling-airlines-eu90000-48he</guid>
      <description>&lt;p&gt;&lt;em&gt;FashionNova, Vueling Airlines, Auchan, Carrefour, E. Leclerc, Picard Surgelés logos on white background&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/European_Accessibility_Act" rel="noopener noreferrer"&gt;European Accessibility Act&lt;/a&gt; (EAA) came into force on 28th June this year. But what’s happened since June?&lt;/p&gt;

&lt;p&gt;On 7 July 2025, two visual-impairment advocacy groups (&lt;a href="https://apidv.org/" rel="noopener noreferrer"&gt;apiDV&lt;/a&gt; and &lt;a href="https://droitpluriel.fr/" rel="noopener noreferrer"&gt;Droit Pluriel&lt;/a&gt;), with legal support from the collective &lt;a href="https://ratio-avocats.be/2025/05/05/interet-a-agir/" rel="noopener noreferrer"&gt;Intérêt à Agir&lt;/a&gt;, &lt;a href="https://www.franceinfo.fr/economie/commerce/auchan-carrefour-leclerc-et-picard-mis-en-demeure-par-des-associations-car-leurs-sites-et-applications-de-vente-ne-sont-pas-entierement-accessibles-aux-aveugles-et-malvoyants_7370614.html" rel="noopener noreferrer"&gt;issued formal warnings&lt;/a&gt; to four large French retailers Auchan, Carrefour, E. Leclerc, and Picard Surgelés for failing to make their online supermarket services fully accessible.&lt;/p&gt;

&lt;p&gt;If the retailers haven’t fully complied by 1 September 2025, the associations plan to take legal action to enforce their obligation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vueling Airlines
&lt;/h3&gt;

&lt;p&gt;Meanwhile last year in 2024, airline &lt;a href="https://www.vueling.com/en" rel="noopener noreferrer"&gt;Vueling&lt;/a&gt; in Spain was &lt;a href="https://accessible-eu-centre.ec.europa.eu/content-corner/news/vueling-airlines-fined-failing-make-their-website-accessible-2024-04-26_en" rel="noopener noreferrer"&gt;fined €90,000&lt;/a&gt; in for failing to make their website accessible. They were fined even before the EAA came into force, demonstrating that accessibility enforcement isn’t just theoretical, the EAA will only make expectations even clearer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fashion Nova was fined millions
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.claimdepot.com/settlements/fashion-nova-accessibility-settlement" rel="noopener noreferrer"&gt;Fashion Nova in the US was fined $5,150,000&lt;/a&gt;, individuals who are legally blind and attempted to access the Fashion Nova using screen reading software now may be eligible to submit a claim.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.tpgi.com/weekly-reading-list-august-18-2025/" rel="noopener noreferrer"&gt;Featured on TGPi, Weekly Reading List August 18 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want more simple, actionable tips? I'm Chris, a UX Developer with a focus in accessibility, available for hire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/chrisyoong/" rel="noopener noreferrer"&gt;Follow me on LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>a11y</category>
      <category>eaa</category>
      <category>wcag</category>
    </item>
    <item>
      <title>Why does big tech not run Accessibility bug bounties?</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Thu, 02 Oct 2025 10:45:11 +0000</pubDate>
      <link>https://dev.to/chris_devto/why-does-big-tech-not-run-accessibility-bug-bounties-1n1k</link>
      <guid>https://dev.to/chris_devto/why-does-big-tech-not-run-accessibility-bug-bounties-1n1k</guid>
      <description>&lt;p&gt;&lt;em&gt;A dark blue background filled with a grid of light blue binary code (ones and zeros). In the center, a large, stylised outline of a beetle or bug is visible in a slightly brighter blue. The bug is flanked on either side by a large, light blue curly brace, enclosing it like a piece of code. The overall image represents a programming or software bug.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10 reasons why this would be great
&lt;/h2&gt;

&lt;p&gt;The biggest names in tech, from &lt;a href="https://bughunters.google.com/" rel="noopener noreferrer"&gt;Google&lt;/a&gt; to &lt;a href="https://hackerone.com/netflix" rel="noopener noreferrer"&gt;Netflix&lt;/a&gt;, invest millions in security bug bounty programs. They pay ethical hackers, also known as researchers, to find vulnerabilities, Netflix can pay upto $25,000 for a critical bug viewing it as a smart business move to prevent security vulnerabilities in their software, systems, or websites.&lt;/p&gt;

&lt;h3&gt;
  
  
  So why not for Accessibility bugs?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; It’s a somewhat perfect analogy to security. The principle is identical, crowdsource the identification of critical flaws that the internal Production team might miss. Lack of proper keyboard navigation is a critical bug, just like a security vulnerability. The only difference is &lt;em&gt;who&lt;/em&gt; is at risk.&lt;/li&gt;
&lt;li&gt; A bug bounty program provides a direct and immediate channel for feedback. Issues can be reported and triaged in real-time, allowing for rapid fixes and a continuous cycle of improvement.&lt;/li&gt;
&lt;li&gt; A bounty program almost gamifies accessibility bugs in a way. It creates this technical competitive environment that encourages technical experts to find and report the most critical issues, accelerating the discovery of flaws and raising the standard of Accessibility testing across the industry. It also creates this technical environment where Accessibility bugs are treated like the technical bugs they are.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;It aligns the financial incentives&lt;/strong&gt;, Accessibility professionals, Designers and other Developers are being paid for their detailed labour and feedback, bugs are being fixed while the company benefits from the labour. It encourages others to learn about Accessibility and even try and find bugs as now there’s a method to get paid for this labour. Someone posting they were &lt;em&gt;"paid $1,000 to fix a P3 Netflix Accessibility bug"&lt;/em&gt; might help change the culture.&lt;/li&gt;
&lt;li&gt; It's proactive, not reactive. Many companies fix accessibility issues only after receiving a legal threat or public backlash. A bug bounty program would incentivise a proactive approach, encouraging companies to find and fix issues before they become a liability.&lt;/li&gt;
&lt;li&gt; Companies that publicly champion accessibility through a bounty program can build a reputation for inclusivity. This not only attracts a wider customer base but also helps recruit and retain talent who want to work for socially responsible organisations.&lt;/li&gt;
&lt;li&gt; A bug bounty program allows companies to pay for verified bugs on an as needed basis with a fixed allocated budget.&lt;/li&gt;
&lt;li&gt; Accessibility advocates and testers often perform valuable, unpaid labour by reporting bugs and providing feedback. A bounty program would finally validate and compensate for this work, turning a moral obligation into a paid, professional pursuit.&lt;/li&gt;
&lt;li&gt; A public bug bounty program signals a genuine commitment to Accessibility. It makes a company's efforts transparent, showing the community that their feedback is not only heard but valued and compensated.&lt;/li&gt;
&lt;li&gt;Beyond all business justifications, running a bug bounty program would also acknowledge the ethical duty companies have to ensure their products are usable and accessible to everyone, regardless of ability. By doing so, they demonstrate that they value the well-being of all their users.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Someone at a big tech company with the budget to launch an Accessibility bug bounty program might like to see this post.&lt;/p&gt;




&lt;p&gt;Want more insights? I'm Chris, a UX Developer with a focus in accessibility, available for hire. &lt;a href="https://www.linkedin.com/in/chrisyoong/" rel="noopener noreferrer"&gt;Follow me on LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ux</category>
      <category>testing</category>
      <category>security</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Use of Colour (Level A) WCAG 1.4.1 - Accessibility Design tips</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Thu, 02 Oct 2025 10:36:56 +0000</pubDate>
      <link>https://dev.to/chris_devto/use-of-colour-level-a-wcag-141-accessibility-design-tips-4112</link>
      <guid>https://dev.to/chris_devto/use-of-colour-level-a-wcag-141-accessibility-design-tips-4112</guid>
      <description>&lt;p&gt;Don't use colour as the only way to tell people something important. &lt;a href="https://www.w3.org/WAI/WCAG21/Understanding/use-of-color.html" rel="noopener noreferrer"&gt;Colour is not used as the only visual means of conveying information&lt;/a&gt;, indicating an action, prompting a response, or distinguishing a visual element.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is WCAG 1.4.1 important?
&lt;/h3&gt;

&lt;p&gt;There are various eye conditions that mean people see colours in different ways. This includes various types of &lt;a href="https://www.colourblindawareness.org/colour-blindness/types-of-colour-blindness/" rel="noopener noreferrer"&gt;colour blindness&lt;/a&gt;, some people need high contrast, some people need low contrast, there’s a whole spectrum of people that might see the world differently.&lt;/p&gt;

&lt;p&gt;Web Content Accessibility Guidelines (WCAG) 1.4.1 means by not relying on colour alone within a Design,&lt;/p&gt;

&lt;h3&gt;
  
  
  Let’s give an example, what's the problem with these links?
&lt;/h3&gt;

&lt;p&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%2F9m7v2ynd0bq8g3ry463c.jpeg" 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%2F9m7v2ynd0bq8g3ry463c.jpeg" alt="A screenshot of a website's footer, with three vertical columns of links on a light, neutral background. Each column has a darker colour heading: 'Overview,' 'Resources,' and 'Favorites.' The links in each column are in a clean, sans-serif font and are not underlined. The links under 'Overview' include common site navigation like 'Feature Tour,' 'Sell Online,' and 'Shopping Cart.' The 'Resources' column lists links such as 'Documentation,' 'Theme Store,' and 'API Docs.' Finally, the 'Favorites' column contains a curated list of specialized topics like 'Best Practices 2015,' 'Javascript for Designers,' and 'Atomic Styles.' There is confusion as to what is a heading and what is a link as only colour is being used" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Only colour is communicating what is a heading and what is a link. In this example “Overview” is a heading but the rest are links, all the spacing is the same, the font size and weight is the same. Meaning what is a link and what isn't is harder to determine.&lt;/p&gt;

&lt;p&gt;Below is what someone with blurred vision might see.&lt;/p&gt;

&lt;p&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%2Fenx8hwhxzu2kkck5o5yf.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%2Fenx8hwhxzu2kkck5o5yf.png" alt="A side-by-side comparison of two footers. On the left, a sharp and clear rendering of a footer is shown. It has three columns with bold titles followed by a list of links. The text is sharp and easy to read. On the right, the same footer is shown, but it is heavily blurred, out of focus, and appears smaller. This comparison highlights the difference between a clear and an out-of-focus image of the same design." width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Someone with cataracts, glaucoma, age-related macular degeneration might see reduced contrast. Notice how the contrast is harder to see so the colour difference of what's a link and what isn't makes less of an impact, it’s less noticeable.&lt;/p&gt;

&lt;p&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%2Fyg7qy3p4c8e88a3hqyyy.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%2Fyg7qy3p4c8e88a3hqyyy.png" alt="A side-by-side comparison of two website footers. On the left, a footer is shown in a crisp, dark font on a light background. On the right, the same footer is shown, but the text is in a light gray font, making it appear washed out and difficult to read. The background on the right is also slightly lighter than the one on the left. The image highlights the contrast between readable and unreadable text colour choices" width="799" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Achromatopsia, is one type of colourblindness in this context the colour is stripped this is what this person might see.&lt;/p&gt;

&lt;p&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%2Fc8hys0ewwnq2c3ubdlyk.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%2Fc8hys0ewwnq2c3ubdlyk.png" alt="A side-by-side comparison of two website footers. On the right, the same footer is shown as the previous images, but the background is a much brighter white, making the links appear darker in contrast. The image illustrates the possible effect of a Achromatopsia on text legibility" width="799" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The solution to WCAG 1.4.1 is to add a second visual cue. Colour is not used as the only visual means of conveying information.&lt;/p&gt;

&lt;p&gt;In this example, the links or headings need to have a second visual cue. Often links as historically blue and underlined. The blue colour lets sighted users know it's a link, but the underline provides that extra visual cue for people who might see colours differently.&lt;/p&gt;

&lt;p&gt;Historical fun fact, the creator of the blue link chose it because &lt;a href="https://www.inc.com/ava-levinson/why-are-hyperlinks-blue/91227997" rel="noopener noreferrer"&gt;he liked blue&lt;/a&gt; and it was partially down to the fact that screens at the time could also show a small amount of colours, so they could have easily been green or something else.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to meet WCAG in this context?
&lt;/h3&gt;

&lt;p&gt;So, for links to be accessible, you need to ensure they are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Distinct from other text, they shouldn't blend in with the surrounding text.&lt;/li&gt;
&lt;li&gt;Identified by more than just colour, they need a non-colour visual cue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Underlines are typically the best, easier and simplest solution to this problem. More on this in a moment, however underlines are not the only solution to this problem. WCAG often describes the problem rather than a set of solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 1 - change of size and shape
&lt;/h3&gt;

&lt;p&gt;In this solution the headings are made bigger, bolder and there is more spacing between the heading and the links. This ensures that 1.4.1 is met and more than colour is being used to determine the difference. The headings are very clear and they are different. Not as good as it could be but still works.&lt;/p&gt;

&lt;p&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%2Fw2d5jg63ff5mxrm29v7b.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%2Fw2d5jg63ff5mxrm29v7b.png" alt="A screenshot of a website's footer, with three vertical columns of generic links on a light background. Each column is topped with a bold heading, larger font and more spacing, these headings read 'Overview,' 'Resources,' and 'Favorites.' indicating a clear visual difference between what is considered a heading and link. Providing a solution to WCAG 1.4.1" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 2 - remove the confusion
&lt;/h3&gt;

&lt;p&gt;Another solution is to remove the headings entirely, this way there’s no confusion at all, all of these are links due to the positioning.&lt;/p&gt;

&lt;p&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%2Fghdmfsmomw1fu6waz2e4.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%2Fghdmfsmomw1fu6waz2e4.png" alt="A screenshot of a website's footer, with three vertical columns of generic links on a light background. Each column's heading has now been removed, demostating that without these headings it's clear all of these are links as the removing headings now reduces the confusion" width="781" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 3 - underline the links
&lt;/h3&gt;

&lt;p&gt;The most simple solution is to add an underline to the links, this sticks with a known convention.&lt;/p&gt;

&lt;p&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%2Fa42cfbls3rsv8qhdtp18.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%2Fa42cfbls3rsv8qhdtp18.png" alt="A screenshot of a website's footer, showing three vertical columns of links. Unlike some other versions of the same footer, the titles for the columns are missing this makes it clearer that all of these items are links" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 4 - style the underlines
&lt;/h3&gt;

&lt;p&gt;Don't like the way those underlines look? How about giving the underline more breathing room, along with a reduced opacity to make it more subtle?&lt;/p&gt;

&lt;p&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%2Fv0a3zn8tdlf6u90lwgdz.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%2Fv0a3zn8tdlf6u90lwgdz.png" alt="A screenshot of a website's footer, presented as three vertical columns of links on a light off-white background. Each column is topped with a bold title: 'Overview,' 'Resources,' and 'Favorites.' The links in all three columns are consistently underlined, indicating they are hyperlinked text and more accessible than without links meeting WCAG 1.4.1" width="739" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 5 - what about overlines instead?
&lt;/h3&gt;

&lt;p&gt;Don’t like underlines at all, how about overlines, so lines on top? A bit more unconventional, however still manages to comply with WCAG 1.4.1&lt;/p&gt;

&lt;p&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%2Fjb9b4alpzhfpk153k5pi.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%2Fjb9b4alpzhfpk153k5pi.png" alt="A side-by-side comparison of two website footers. On the left, a footer with three columns of links is shown. The columns are titled 'Overview,' 'Resources,' and 'Favorites.' The links in each column are in a clean, sans-serif font and are not underlined. b On the right, a second footer is shown. It has the same three columns and links as the one on the left. However, all the links in this footer are underlined. The overall image demonstrates a small but notable difference in design presentation, specifically the use of link underlining making it more accessible" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution 6 - how about an icon?
&lt;/h3&gt;

&lt;p&gt;Don’t like the overline, how about an arrow icon or shape so that the links are clearer?&lt;/p&gt;

&lt;p&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%2Fksqjxjo9tilm8pacz067.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%2Fksqjxjo9tilm8pacz067.png" alt="The image shows a website footer with three columns of hyperlinked text on a light background. Each column is headed by a bold title 'Overview,' 'Resources,' and 'Favorites.' The links under 'Overview' include common site navigation like 'Feature Tour,' 'Sell Online,' and 'Shopping Cart.' The 'Resources' column lists links to helpful content such as 'Documentation,' 'Theme Store,' and 'API Docs.' Finally, the 'Favorites' column contains a curated list of specialized topics like 'Best Practices 2015,' 'Javascript for Designers,' and 'Atomic Styles.' Each individual link is followed by a small, gray arrow pointing to the right, suggesting they are clickable links that lead to other pages." width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Those were 6 Design solutions that take the WCAG constraints and implement a creative Design solution. There's probably 100s more that could also work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I personally prefer adding a border, an outline, or an underline, or increasing the thickness of the text (or a combination of any of these) to highlight the active link. - &lt;a href="https://www.sarasoueidan.com/blog/css-scrollspy/" rel="noopener noreferrer"&gt;Sara Soueidan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“It is amazing to me how this suggestion causes so much angst and fighting. Designers often argue that they look ugly, some users claim they are distracting, others even claim they reduce accessibility.” - &lt;a href="https://adrianroselli.com/2016/06/on-link-underlines.html" rel="noopener noreferrer"&gt;Adrian Roselli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where some designers bristle. If there are a lot of links on a page, it could look awfully cluttered with underlines. That’s why some designers would rather remove the underline completely - &lt;a href="https://adactio.com/journal/22084" rel="noopener noreferrer"&gt;Jeremy Keith&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  But I don’t like any of these it spoils the vibe...
&lt;/h3&gt;

&lt;p&gt;Look I get it, there’s a layer of what visually looks good, feels nice. Some argue that underlines create visual noise, making the design look cluttered or less sophisticated. &lt;a href="http://chrisyoong.com/blog/types-of-accessibility-push-back" rel="noopener noreferrer"&gt;Change can be difficult&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For many users, a lack of an underline is even more distracting. They have to scan the entire section, mentally hover over each piece of text, or rely on a slight colour difference to figure out what is clickable and what isn't. This mental effort is called cognitive load. An underline eliminates this problem instantly, making the section scannable and reducing frustration.&lt;/p&gt;

&lt;p&gt;The problem is what one person sees as "visual noise" is, for another, a vital, expected cue that makes the page easier to use. This is when WCAG comes into play, to make things more detailed. A set of international technical standards that move away from opinion.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I’ve done a lot of audits in the first half of this year and at this point a believe that designing links without underlines is a kink. The idea that users don’t understand that links are clickable arouses some designers. I can’t explain it any other way. - &lt;a href="https://mastodon.social/@matuzo@front-end.social/114674911039663634" rel="noopener noreferrer"&gt;Manuel Matuzović&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is often the crux of this argument, there is an aversion to change due to aesthetics, meaning it looks nicer to some people. However this goes back to the concept of Design. &lt;a href="https://www.emilywray.com/blog/2018/9/24/where-instruction-meets-design" rel="noopener noreferrer"&gt;Design is about function first&lt;/a&gt;. Something can be beautiful first and lack function.&lt;/p&gt;

&lt;h3&gt;
  
  
  Function first, beauty second
&lt;/h3&gt;

&lt;p&gt;This watch (below) is beautiful, it might be the perfect choice for a photoshoot, for an &lt;em&gt;Instagram&lt;/em&gt; profile picture or something where the goal is visual aesthetics.&lt;/p&gt;

&lt;p&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%2F42n1k9alh1c52cq0vbsm.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%2F42n1k9alh1c52cq0vbsm.png" alt="A top-down shot of a minimalist watch with a plain white face and two silver hands. The watch has a silver-tone metal casing and a fine mesh metal strap. The watch face is blank without any numbers making it hard to tell the time, it has a raised circular border and four small, indented marks at the 12, 3, 6, and 9 o'clock positions. The watch is positioned diagonally across a white surface." width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;However, if the goal is to tell the time, consistently, reliably, this design choice fails as it's much harder to see the numbers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most people aren’t typically visiting most websites to admire the website. Typically they are trying to do something, they are trying to get in and get out. They are trying to find some information, buy something, contact someone, get something done. It should be usable, accessible, first and beautiful second.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's another example?
&lt;/h3&gt;

&lt;p&gt;Notice how the text adds a secondary visual cue to inform the user whether someone is online&lt;/p&gt;

&lt;p&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%2Fjbgnoid1aypva21whnff.jpeg" 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%2Fjbgnoid1aypva21whnff.jpeg" alt="The image provides a visual comparison of accessible versus non-accessible design, specifically for conveying status. On the left, labeled Accessible three user profiles are shown. Two have a solid green circle indicating they are online, while the middle profile has a white circle with a black outline and the text Last seen 5 min ago. This design is effective because it uses both color (green for online) and text/shape (a different shape and accompanying text) to communicate information, making it accessible to those who are colorblind. The right side, labeled Not Accessible, shows a similar setup but the middle profile's status is indicated by a solid red circle. This design fails in terms of accessibility because it relies on color alone to differentiate the status of the middle profile, which would be difficult or impossible for a colorblind person to distinguish from the green circles." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some more amazing &lt;a href="https://www.accessguide.io/guide/colorblind" rel="noopener noreferrer"&gt;examples can be found on Access Guide&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Further reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.accessguide.io/guide/colorblind" rel="noopener noreferrer"&gt;Don't use color alone to convey information (colorblind)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tpgi.com/well-color-us-surprised-this-sc-can-be-a-tricky-customer/" rel="noopener noreferrer"&gt;Well Color Us Surprised—This SC Can Be a Tricky Customer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://govtnz.github.io/web-a11y-guidance/ka/accessible-ux-best-practices/colour-and-contrast/design-with-colour-in-an-accessible-way/do-not-rely-on-colour-alone.html" rel="noopener noreferrer"&gt;Do not rely on colour alone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aaardvarkaccessibility.com/wcag-plain-english/1-4-1-use-of-color/" rel="noopener noreferrer"&gt;WCAG in Plain English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;What about the G183 &lt;a href="https://github.com/w3c/wcag/issues/201" rel="noopener noreferrer"&gt;loophole&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tempertemper.net/blog/colour-alone-can-be-used-to-convey-meaning-and-i-dont-like-it" rel="noopener noreferrer"&gt;Colour alone can be used to convey meaning, and I don’t like it!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Want more simple, actionable tips? I'm Chris, a UX Developer with a focus in accessibility, available for hire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/chrisyoong/" rel="noopener noreferrer"&gt;Follow me on LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>design</category>
      <category>webdev</category>
      <category>a11y</category>
      <category>wcag</category>
    </item>
    <item>
      <title>Why are NHS trusts buying Accessibility overlays?</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Thu, 02 Oct 2025 10:26:41 +0000</pubDate>
      <link>https://dev.to/chris_devto/why-are-nhs-trusts-buying-accessibility-overlays-1fd6</link>
      <guid>https://dev.to/chris_devto/why-are-nhs-trusts-buying-accessibility-overlays-1fd6</guid>
      <description>&lt;p&gt;The NHS is bound by the &lt;a href="https://www.gov.uk/guidance/accessibility-requirements-for-public-sector-websites-and-apps" rel="noopener noreferrer"&gt;Public Sector Bodies (Websites and Mobile Applications) Accessibility Regulations 2018&lt;/a&gt;. These regulations require websites and apps to meet the Web Content Accessibility Guidelines (WCAG) and to be usable by everyone - including disabled people.&lt;/p&gt;

&lt;p&gt;Unfortunately, some NHS trusts are relying on so-called &lt;a href="http://chrisyoong.com/blog/accessibility-overlay-scandal" rel="noopener noreferrer"&gt;accessibility overlays, which I've written about in more depth&lt;/a&gt;. These are plug-in toolbars that claim to “fix” accessibility problems automatically. These overlays don’t make websites compliant. In fact, they can create new barriers, often make things worse, interfere with assistive technologies like screen readers, and give organisations a false sense of compliance. Sometimes people mean well but often they are sold products that don’t work.&lt;/p&gt;

&lt;h3&gt;
  
  
  NHS Trusts using Accessibility overlays
&lt;/h3&gt;

&lt;p&gt;After some short amount of time doing some research, I discoverd at least 15 NHS trusts that have currently deployed overlays (there could easily more).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.awp.nhs.uk/accessibility" rel="noopener noreferrer"&gt;Avon &amp;amp; Wiltshire Mental Health Partnership NHS Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ashfordstpeters.nhs.uk/accessibility-statement" rel="noopener noreferrer"&gt;Ashford &amp;amp; St Peter’s Hospitals NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cuh.nhs.uk/accessibility-information/website-accessibility/recite-me-digital-accessibility-user-guide/" rel="noopener noreferrer"&gt;Cambridge University Hospitals NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://clch.nhs.uk/accessibility-statement" rel="noopener noreferrer"&gt;Central London Community Healthcare NHS Trust (CLCH)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cntw.nhs.uk/help/accessibility/" rel="noopener noreferrer"&gt;Cumbria, Northumberland, Tyne and Wear NHS Foundation Trust (CNTW)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.derbyshirehealthcareft.nhs.uk/about-us/using-website" rel="noopener noreferrer"&gt;Derbyshire Healthcare NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gwh.nhs.uk/accessibility/" rel="noopener noreferrer"&gt;Great Western Hospitals NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.humber.nhs.uk/accessibility/" rel="noopener noreferrer"&gt;Humber Teaching NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sbs.nhs.uk/accessibility-statement/" rel="noopener noreferrer"&gt;NHS Shared Business Services (NHS SBS)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.northumbria.nhs.uk/accessibility" rel="noopener noreferrer"&gt;Northumbria Healthcare NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.royalberkshire.nhs.uk/accessibility" rel="noopener noreferrer"&gt;Royal Berkshire NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.qehkl.nhs.uk/website-accessibility-statement.asp" rel="noopener noreferrer"&gt;The Queen Elizabeth Hospital King's Lynn NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uhb.nhs.uk/accessibility/reachdeck-toolbar/" rel="noopener noreferrer"&gt;University Hospitals Birmingham NHS Foundation Trust (UHB)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uhdb.nhs.uk/accessibility" rel="noopener noreferrer"&gt;University Hospitals of Derby and Burton NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uhs.nhs.uk/about-the-trust/about-this-website/reachdeck-web-accessibility-and-readability-toolbar" rel="noopener noreferrer"&gt;University Hospital Southampton NHS Foundation Trust&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why this matters
&lt;/h3&gt;

&lt;p&gt;By using overlays instead of making their websites genuinely accessible, these trusts are failing to comply with accessibility law. That puts them at legal risk, wastes money, but more importantly, it lets down the disabled patients, staff, and carers who rely on accessible information.&lt;/p&gt;

&lt;h3&gt;
  
  
  The way forward
&lt;/h3&gt;

&lt;p&gt;Accessibility can’t be bolted on with a widget. NHS trusts need to commit to building accessibility into their websites from the ground up. Stay tuned for part 2.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>a11y</category>
      <category>b2b</category>
    </item>
    <item>
      <title>Accessibility failures -FashionNova fined $5.15M, Vueling Airlines €90,000</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Mon, 18 Aug 2025 10:07:28 +0000</pubDate>
      <link>https://dev.to/chris_devto/fashionnova-fined-515m-vueling-airlines-eu90000-2f31</link>
      <guid>https://dev.to/chris_devto/fashionnova-fined-515m-vueling-airlines-eu90000-2f31</guid>
      <description>&lt;p&gt;&lt;a href="https://chrisyoong.com/blog/understanding-the-european-accessibility-act" rel="noopener noreferrer"&gt;The European Accessibility Act (EAA)&lt;/a&gt; came into force on 28th June this year. But what’s happened since June?&lt;/p&gt;

&lt;p&gt;On 7 July 2025, two visual-impairment advocacy groups (apiDV and Droit Pluriel), with legal support from the collective Intérêt à Agir, &lt;a href="https://www.franceinfo.fr/economie/commerce/auchan-carrefour-leclerc-et-picard-mis-en-demeure-par-des-associations-car-leurs-sites-et-applications-de-vente-ne-sont-pas-entierement-accessibles-aux-aveugles-et-malvoyants_7370614.html" rel="noopener noreferrer"&gt;issued formal warnings&lt;/a&gt; to four large French retailers Auchan, Carrefour, E. Leclerc, and Picard Surgelés for failing to make their online supermarket services fully accessible.&lt;/p&gt;

&lt;p&gt;If the retailers haven’t fully complied by 1 September 2025, the associations plan to take legal action to enforce their obligation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vueling Airlines
&lt;/h2&gt;

&lt;p&gt;Meanwhile last year in 2024, airline Vueling in Spain was fined &lt;a href="https://accessible-eu-centre.ec.europa.eu/content-corner/news/vueling-airlines-fined-failing-make-their-website-accessible-2024-04-26_en" rel="noopener noreferrer"&gt;€90,000&lt;/a&gt; in for failing to make their website accessible. They were fined even before the EAA came into force, demonstrating that accessibility enforcement isn’t just theoretical, the EAA will only make expectations even clearer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fashion Nova was fined millions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.claimdepot.com/settlements/fashion-nova-accessibility-settlement" rel="noopener noreferrer"&gt;Fashion Nova in the US was fined $5,150,000&lt;/a&gt;, individuals who are legally blind and attempted to access the Fashion Nova using screen reading software now may be eligible to submit a claim.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>frontend</category>
      <category>design</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Accessibility pushback</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Mon, 18 Aug 2025 09:52:06 +0000</pubDate>
      <link>https://dev.to/chris_devto/accessibility-pushback-4i6a</link>
      <guid>https://dev.to/chris_devto/accessibility-pushback-4i6a</guid>
      <description>&lt;h2&gt;
  
  
  Talking openly and debunking some common pushback
&lt;/h2&gt;

&lt;p&gt;Pushback or objections when advocating for accessibility is unfortunately very common. Companies are all at different points in their journey, and the &lt;a href="https://www.w3.org/TR/maturity-model/" rel="noopener noreferrer"&gt;Accessibility Maturity Model&lt;/a&gt; from W3C outlines these different stages. The less mature a company is in its journey, the more often pushback will be encountered, and the more nonsensical this pushback can be.&lt;/p&gt;

&lt;h3&gt;
  
  
  “It’s very common, everyone does it”
&lt;/h3&gt;

&lt;p&gt;A classic. One that’s used time and time again. This is really a simple &lt;a href="https://en.wikipedia.org/wiki/Argumentum_ad_populum" rel="noopener noreferrer"&gt;bandwagon fallacy&lt;/a&gt; that pops up a lot in Accessibility as a way to justify a decision. Just because lots of companies do it, doesn’t mean it’s accessible. It doesn’t mean it aligns with WCAG, it doesn’t mean it’s been tested with disabled people.&lt;/p&gt;

&lt;p&gt;Other flavours of this include “but Google does it..” There is an amazing blog post that tackles this common fallacy in depth.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://adrianroselli.com/2020/03/i-dont-care-what-google-or-apple-or-whomever-did.html" rel="noopener noreferrer"&gt;I Don’t Care What Google or Apple or Whoever Did&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It also compounds, sometimes these decisions are made in 2 seconds on a Thursday afternoon, if the company is a household name then other people copy it and thus the cycle continues.&lt;/p&gt;

&lt;p&gt;Does the pushback have engagement with the &lt;a href="https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines" rel="noopener noreferrer"&gt;Web Content Accessibility Guidelines&lt;/a&gt; (WCAG)? No, then this is ableism. We’ve all absorbed ableist ideas, because society itself is built on them, the good news is we can unlearn these. Is there a follow up task created to revisit it? No. Ableism. However, does the pushback engage with WCAG and provide solutions and compromises? This is healthier.&lt;/p&gt;

&lt;h3&gt;
  
  
  “Accessibility can’t be a bottle neck”
&lt;/h3&gt;

&lt;p&gt;There’s a lot to unpick in this sentence. This phrase frames accessibility compliance as a type of obstruction, not a normal part of the process. This misrepresents accessibility, this extra burden or the “cherry on top” rather than the flour in the cake that’s baked into the process. If something is a bottleneck, it suggests it’s an additional step tacked onto an existing process. It implies Accessibility is an add-on or afterthought. This is why it’s crucial to have an experienced accessibility specialist on the team from the beginning.&lt;/p&gt;

&lt;p&gt;It usually is used to ignore taking action. A way to argue that urgency has to override the work being asked to be completed. A way to create pressure and convenience so it can be ignored. However it just creates more work, if this is not fixed at Design stage, it ends up being way more expensive later on to resolve.&lt;/p&gt;

&lt;p&gt;Accessibility is about baking it in from the very first thought, rather than trying to retrofit it later. There’s been quite a few &lt;a href="https://www.lflegal.com/2020/05/accessibility-is-delicious/" rel="noopener noreferrer"&gt;food analogies&lt;/a&gt;. One that has been popularised is from an web accessibility engineer at Salesforce and co-host of the 13 Letters Podcast&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You can’t put the blueberries in the muffin after the muffin is baked.&lt;/em&gt; – Cordelia McGee-Tubb&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve seen other variations of this&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You can’t sprinkle on eggs after the cake comes out of the oven…taste along the way&lt;/em&gt; - Sara Basson&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also by calling it a bottleneck, this tries to shift responsibility. Someone or a team can implicitly “blame” accessibility itself for delays. Rather than looking inward at their own processes, lack of proactive planning, lack of training, poor hiring, unwillingness to change habits, read documentation, or insufficient knowledge. It also devalues the expertise of accessibility professionals. The language can be disheartening for those championing accessibility. It signals that their efforts are perceived as hindrances, annoyances to business as usual.&lt;/p&gt;

&lt;h3&gt;
  
  
  “We have to live in the real world”
&lt;/h3&gt;

&lt;p&gt;By suggesting that accessibility is not a part of the “real world,” it implies that the experiences and needs of 24% of people are somehow not part of this “real world”.&lt;/p&gt;

&lt;p&gt;It also frames the request as an extreme or unreasonable demand when the actual request is likely a very reasonable, well-documented best practice (“Can we add alt text to these images?”). By misrepresenting the request, it’s easier to dismiss it as impractical.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://news.airbnb.com/en-uk/innovating-to-make-travel-more-accessible/" rel="noopener noreferrer"&gt;Airbnb introduced a new accessibility category and generated an extra $5.5 million in 4 months.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  “We just sell [product] we’re not a bank”
&lt;/h3&gt;

&lt;p&gt;The sentiment behind is built on a foundation of really shaky logic. There are multiple fallacies at play here.&lt;/p&gt;

&lt;p&gt;First, it uses the &lt;a href="https://medium.com/@edeubanks/argumentum-ad-simplicitate-9f5879fb7bb1" rel="noopener noreferrer"&gt;simplicity fallacy&lt;/a&gt;, implying that because a product is not essential, the need for accessibility is trivial. This ignores the fact that 1) the &lt;a href="https://en.wikipedia.org/wiki/European_Accessibility_Act" rel="noopener noreferrer"&gt;European Accessibility Act&lt;/a&gt; (EAA) is active and 2) a user’s experience is defined not by the product, but by the user interface.&lt;/p&gt;

&lt;p&gt;Second, this statement presents a &lt;a href="https://en.wikipedia.org/wiki/False_dilemma" rel="noopener noreferrer"&gt;false dichotomy&lt;/a&gt;, suggesting that a business is either a high-stakes, high-risk company like a bank that needs to care about accessibility, or it isn’t. In reality, the legal obligation to provide equal access exists for all, regardless of the industry.&lt;/p&gt;

&lt;p&gt;Third, the argument often stems from a place of appeal to ignorance, where a lack of personal experience with disability leads to the assumption that a website is universally usable simply because it works for the speaker. They’ve never been blocked making a purchase so “who cares”.&lt;/p&gt;

&lt;p&gt;Finally, this perspective often employs a straw man fallacy, arguing against a caricatured version of accessibility as an overly burdensome and costly process, rather than what it actually is: a set of foundational best practices that improve the experience for everyone.&lt;/p&gt;

&lt;p&gt;It sort of implies some companies need to be more accessible than others as they can cause larger harm. In some ways I can understand this while I don’t agree with it. The idea that a financial product needs to be more accessible than a luxury scarf company. If someone can’t buy a luxury scarf they can purchase a different scarf. However doesn’t everyone deserve a to be able to purchase a luxury scarf if they want to?&lt;/p&gt;

&lt;p&gt;Also, what happens when digital professionals that work at the luxury scarf company take their skills into the healthcare sector?&lt;/p&gt;

&lt;h3&gt;
  
  
  “This WCAG advice is from 2017?!”
&lt;/h3&gt;

&lt;p&gt;The implication of this sentiment is that because the advice is older therefore it’s not valid. It’s the inverse of an &lt;a href="https://en.wikipedia.org/wiki/Appeal_to_novelty" rel="noopener noreferrer"&gt;appeal to novelty&lt;/a&gt; fallacy. This fallacy suggests something is superior because it’s new.&lt;/p&gt;

&lt;p&gt;Of course there is the possibility that changes might have happened since 2017 and there is a better way to do things, a more accessible way. However this should be easily evidenced. Is there an issue raised against this pattern? Is there an existing discussion to read? Some new research to review?&lt;/p&gt;

&lt;p&gt;However, if recommended WCAG patterns are dismissed simply because they are old without any other justification it sets a really odd precedent.&lt;/p&gt;

&lt;p&gt;I think this stems back to a cultural issue. As WCAG was published in 1999, WCAG 2.0 in 2001, WCAG 2.2 in October 2023. Private companies have now been building digital products and services for over 26 years and have been able to ignore WCAG.&lt;/p&gt;

&lt;p&gt;26 years is a lifetime (and then some) in tech, there will undoubtedly be some digital professionals that have been able to progress to the most senior levels, sell courses and pass on “best practice” without even considering WCAG. Also, in the age of &lt;a href="https://en.wikipedia.org/wiki/Context_collapse" rel="noopener noreferrer"&gt;context collapse&lt;/a&gt;, casual advice can be presented with the same authority as in-depth research from professionals.&lt;/p&gt;

&lt;h3&gt;
  
  
  “If we’re sued we’ll revisit it”
&lt;/h3&gt;

&lt;p&gt;The argument implies that because no lawsuit has been filed yet, there is no problem, and therefore no action is needed. The absence of a lawsuit is being used as evidence that the issue isn’t important enough to address. This is a terrible strategy for several critical reasons. It’s a reactive, not proactive.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Also, “the biggest lie in software is Phase 2” - &lt;a href="https://blog.founddrama.net/2014/12/review-lean-ux/" rel="noopener noreferrer"&gt;Jeff Gothelf from Lean UX&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When dealing with pushback, ask&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is someone only looking for some type of last-minute sign off?&lt;/li&gt;
&lt;li&gt;Has someone engaged with the detail? With WCAG? With the the - resources shared? Have they chosen to reply selectively and ignored all other points?&lt;/li&gt;
&lt;li&gt;Is the person acting in good faith or engaging in demagogue behavior? Good faith means they are genuinely trying to find a solution. Demagogue behavior means they are focused on gaining support, even if it means ignoring facts or expert advice to do so.&lt;/li&gt;
&lt;li&gt;Can this be clearly captured as a bug to be prioritised later on?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When intent and expertise are aligned, accessibility challenges can be addressed as technical issues by professionals working together toward solutions. With the right people in the right roles, accessibility can stop being a tick-box exercise and becomes a natural, integrated part of creating better products.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>frontend</category>
      <category>design</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Scandinavian Airlines were fined $100,000 for accessibility bugs</title>
      <dc:creator>Chris </dc:creator>
      <pubDate>Sat, 14 Dec 2024 05:58:08 +0000</pubDate>
      <link>https://dev.to/chris_devto/scandinavian-airlines-were-fined-100000-for-accessibility-bugs-1lj1</link>
      <guid>https://dev.to/chris_devto/scandinavian-airlines-were-fined-100000-for-accessibility-bugs-1lj1</guid>
      <description>&lt;p&gt;They faced legal action in two different markets.&lt;/p&gt;

&lt;p&gt;Did you know, in 2017 the Norwegian government gave &lt;a href="https://en.wikipedia.org/wiki/Scandinavian_Airlines" rel="noopener noreferrer"&gt;Scandinavian Airlines (SAS)&lt;/a&gt; 12 months to fix accessibility bugs on their website.&lt;/p&gt;

&lt;p&gt;Instead of building their main website so that it was accessible inline with &lt;a href="https://www.w3.org/TR/WCAG21/" rel="noopener noreferrer"&gt;WCAG&lt;/a&gt;, SAS made a separate website after advice from a third-party company. They created a separate “assistive” experience for people with disabilities.&lt;/p&gt;

&lt;p&gt;Creating a separate experience for people with disabilities might seem like a good idea, it’s not. A separate experience is continued discrimination not equality.&lt;/p&gt;

&lt;p&gt;Meanwhile in the United States, the Department of Transport (DOT), also found that SAS’s website had accessibility bugs and ordered them to fix them. Airlines operating in the U.S. have to make their main website accessible to people with disabilities, as per the &lt;a href="https://www.transportation.gov/airconsumer/passengers-disabilities#:~:text=The%20ACAA%20prohibits%20discrimination%20against,Act%20is%20short%20on%20specifics." rel="noopener noreferrer"&gt;Air Carrier Access Act (ACAA)&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why did SAS create a different experience?
&lt;/h3&gt;

&lt;p&gt;They were sold the wrong solution by a third party. They were told this new, different, website would fix all of their accessibility issues and legally protect them - it didn’t.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate assistive websites have more issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;They often don’t have all the same information as the main site.&lt;/li&gt;
&lt;li&gt;They can be hard to keep up to date, maintaining two codebases.&lt;/li&gt;
&lt;li&gt;They might not have all the features of the main site.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What happened next?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://medium.com/confrere/its-illegal-to-have-an-inaccessible-website-in-norway-and-that-s-good-news-for-all-of-us-b59a9e929d54" rel="noopener noreferrer"&gt;SAS were told by the Norwegian government&lt;/a&gt; they would be charged &lt;strong&gt;€15,000 per day&lt;/strong&gt; should they not fix the issues. In under 10 days they resolved many of the issues.&lt;/p&gt;

&lt;p&gt;However in the US, &lt;a href="https://www.transportation.gov/briefing-room/dot7418" rel="noopener noreferrer"&gt;DOT fined SAS $100,000&lt;/a&gt;. They then had 12 months to fix their website otherwise they would face another £100,000 fine. SAS also had to stop using this different website, they had to make their main website accessible.&lt;/p&gt;

&lt;p&gt;They were told user journeys have to be able to be used by all people, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Booking or changing reservation (including all flight amenities)&lt;/li&gt;
&lt;li&gt;Checking in for a flight,&lt;/li&gt;
&lt;li&gt;Accessing a personal itinerary&lt;/li&gt;
&lt;li&gt;Accessing a personal frequent flyer account,&lt;/li&gt;
&lt;li&gt;Accessing flight schedules, and&lt;/li&gt;
&lt;li&gt;Accessing carrier contact information.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Companies should focus on making their main site accessible to everyone.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A competitor &lt;a href="https://www.norwegian.com/" rel="noopener noreferrer"&gt;Norwegian Airlines&lt;/a&gt; didn’t face such issues. If SAS simply made their website accessible from the start they wouldn’t have faced legal action in two different markets.&lt;/p&gt;

&lt;p&gt;Read more about this case and why &lt;a href="https://sheribyrnehaber.medium.com/accessibility-separate-but-equal-is-never-ok-e6e97d893d11" rel="noopener noreferrer"&gt;separate but equal is never OK by Sheri Byrne-Haber&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The European Accessibility Act
&lt;/h3&gt;

&lt;p&gt;The European Accessibility Act (EAA), which will come into force in 2025 is a law designed to create equal access for Europeans with disabilities by requiring a mix of products and services to be accessible. This will impact private companies should they wish to operate in the EU.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>javascript</category>
      <category>law</category>
    </item>
  </channel>
</rss>
