<?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: Dave</title>
    <description>The latest articles on DEV Community by Dave (@davedavies).</description>
    <link>https://dev.to/davedavies</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1871695%2F8a19fcfc-fb44-427b-a6b0-ca8fd9b1efe2.jpg</url>
      <title>DEV Community: Dave</title>
      <link>https://dev.to/davedavies</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/davedavies"/>
    <language>en</language>
    <item>
      <title>AI is becoming a new sales channel. Here's how to make sure your products show up.</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Wed, 14 Jan 2026 11:29:15 +0000</pubDate>
      <link>https://dev.to/davedavies/ai-is-becoming-a-new-sales-channel-heres-how-to-make-sure-your-products-show-up-2b1h</link>
      <guid>https://dev.to/davedavies/ai-is-becoming-a-new-sales-channel-heres-how-to-make-sure-your-products-show-up-2b1h</guid>
      <description>&lt;p&gt;I'm not particularly an "AI will fix everything" person - but if you follow any AI news it's becoming increasingly clear that the largest technology platforms are pushing hard to turn AI into a place where shopping happens right in their apps, not just where people go to research or 'chat'.&lt;/p&gt;

&lt;p&gt;And so if you're responsible for growth, revenue, or digital performance across your online store, then &lt;em&gt;AI-driven shopping&lt;/em&gt; is an important topic in 2026, because when buying behaviour changes, the rules for visibility change with it.&lt;/p&gt;

&lt;p&gt;In this article, we'll look at future predictions on how AI-driven shopping is starting to take shape, why accessibility is set to matter far beyond compliance, and how to make sure your products remain visible as buying behaviour continues to evolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shift towards AI-driven shopping that's already underway
&lt;/h2&gt;

&lt;p&gt;Over the past year, we've seen a clear pattern emerge: AI systems are moving beyond recommendations and into execution.&lt;/p&gt;

&lt;p&gt;This idea is often called &lt;em&gt;&lt;strong&gt;agentic commerce&lt;/strong&gt;&lt;/em&gt;, which simply means AI completing tasks on someone's behalf. Not just "show me the options", but "compare these, pick the best one, and buy it".&lt;/p&gt;

&lt;p&gt;Google, Shopify, Microsoft, OpenAI, and Amazon are all experimenting with versions of this. Google and Shopify recently announced the &lt;strong&gt;&lt;a href="https://ucp.dev" rel="noopener noreferrer"&gt;Universal Commerce Protocol (UCP)&lt;/a&gt;&lt;/strong&gt; - an open standard designed to let AI agents interact with your own online store and the products you're selling across the entire shopping journey, from discovery through to checkout and post-purchase support.&lt;/p&gt;

&lt;p&gt;The important thing to note here isn't predicting the exact interface your customers will use in five years' time. It's recognising that &lt;strong&gt;AI is becoming a new sales channel&lt;/strong&gt;, just like search engines and marketplaces did before it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And early adopters almost always win.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The accessibility win hiding in plain sight
&lt;/h2&gt;

&lt;p&gt;There's an important human dimension to this.&lt;/p&gt;

&lt;p&gt;Many disabled people are already &lt;a href="https://www.youtube.com/watch?v=Ij-GLix2QUQ" rel="noopener noreferrer"&gt;using AI tools every day to help their daily life&lt;/a&gt;. People who rely on keyboards, voice input, screen readers, or other assistive technologies. AI can explain in plain English, summarise complexity, and bypass frustrating interfaces.&lt;/p&gt;

&lt;p&gt;So it's not a stretch to imagine the same pattern applying to shopping.&lt;/p&gt;

&lt;p&gt;Why would anyone manually visit 20 different websites - many of which are slow, confusing, or inaccessible - when you can ask an AI for recommendations and buy from there? And for a lot of shoppers, that would be a genuine improvement.&lt;/p&gt;

&lt;p&gt;That shift alone is likely to make online shopping more inclusive. And that's a good thing.&lt;/p&gt;

&lt;p&gt;But it also introduces a competitive reality:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI agents can only recommend and sell products from stores they can reliably understand.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you weren't already convinced that an accessible site is beneficial for your customers, then this is where accessibility stops being a nice-to-have and starts becoming commercially important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon has already been testing this - and it shows the risk
&lt;/h2&gt;

&lt;p&gt;Amazon's recent &lt;strong&gt;“Buy For Me”&lt;/strong&gt; experiment is a useful early signal - and the reaction from independent merchants shows what can go horribly wrong when agents act without enough certainty.&lt;/p&gt;

&lt;p&gt;A recent to report in the &lt;a href="https://archive.is/20260107052832/https://www.ft.com/content/724c2910-76f2-45d7-8f2e-0ac5c82a5ad2" rel="noopener noreferrer"&gt;Financial Times&lt;/a&gt; explained how independent retailers discovered their products being listed and sold through Amazon's AI-driven experience without consent, sometimes with incorrect information or stock availability. &lt;em&gt;Modern Retail&lt;/em&gt; also reported that merchants were unhappy with how Amazon positioned itself between them and their customers, including the use of Amazon-controlled relay email addresses that interfered with customer data and communication.&lt;/p&gt;

&lt;p&gt;You can make moral arguments about this, but there's also a practical one: if an agent can't reliably use your site, someone else will try to "standardise" the experience for you.&lt;/p&gt;

&lt;p&gt;While it's not entirely clear what went wrong with some of these stores, when a platform cannot reliably understand or transact on a merchant's site, it has an incentive to &lt;strong&gt;proxy the experience&lt;/strong&gt;, standardise it, and pull it into its own system.&lt;/p&gt;

&lt;p&gt;That standardisation often strips out nuance, brand control, and direct customer relationships.&lt;/p&gt;

&lt;p&gt;The mere existence of opt-out mechanisms tells us something important: &lt;strong&gt;merchants are going to care, increasingly, about how AI agents interact with their stores - and on what terms&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI shopping agents commonly fail on product pages
&lt;/h2&gt;

&lt;p&gt;Here's the reassuring part if you already care about customer experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI agents fail in many of the same places humans fail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On product pages, the most common problem areas seem to be &lt;strong&gt;product variants&lt;/strong&gt; that change visually but not programmatically, &lt;strong&gt;stock messages&lt;/strong&gt; that aren't clearly exposed, &lt;strong&gt;price changes&lt;/strong&gt; that only appear after interaction, &lt;strong&gt;add-to-cart actions&lt;/strong&gt; with no clear success or failure signal, and &lt;strong&gt;errors communicated&lt;/strong&gt; only through colour, animation, or layout.&lt;/p&gt;

&lt;p&gt;Without a &lt;em&gt;deterministic confirmation&lt;/em&gt; or error state, agents cannot know whether the action succeeded, whether retry logic is needed, or whether the flow should continue to checkout.&lt;/p&gt;

&lt;p&gt;These are exactly the kinds of issues that frustrate customers who browse without a mouse, rely on keyboards, or use assistive technologies.&lt;/p&gt;

&lt;p&gt;Humans can adapt. But AI agents often don't. They skip, hallucinate or produce unreliable results.&lt;/p&gt;

&lt;h2&gt;
  
  
  What decides whether your products get shown by AI agents
&lt;/h2&gt;

&lt;p&gt;As AI becomes a sales channel, the primary optimisation goal shifts.&lt;/p&gt;

&lt;p&gt;It's no longer just about relevance or brand recognition. It's about &lt;strong&gt;certainty&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI agents are optimised for clear product identity, predictable interactions, and reliable outcomes. If a product page introduces ambiguity, the safest option for an agent is simply not to recommend it.&lt;/p&gt;

&lt;p&gt;That's why I expect we'll start hearing terms like “eligible listings”, “supported checkout”, “reliable integrations”, or “agent compatible”. These won't be framed as accessibility requirements. They'll be framed as platform quality standards.&lt;/p&gt;

&lt;p&gt;But under the hood, these map very closely to the same foundational patterns accessibility specialists have been fixing for years.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because &lt;strong&gt;accessibility is the cheapest way to make complex interfaces machine-readable at scale&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why accessibility helps AI agents understand your store
&lt;/h2&gt;

&lt;p&gt;When business owners hear about "accessibility", they often think about compliance and regulations.&lt;/p&gt;

&lt;p&gt;That's not the useful mental model here.&lt;/p&gt;

&lt;p&gt;Accessibility, at its core, is about making sure names are explicit, roles are clear, values and states are exposed, and errors explain what happened and what to do next.&lt;/p&gt;

&lt;p&gt;Those qualities make interfaces easier for humans with access needs. They also make interfaces easier for machines to reason about.&lt;/p&gt;

&lt;p&gt;That's why I expect AI commerce systems to treat accessibility implicitly as a quality signal, alongside things like data consistency, fulfilment reliability, returns behaviour, and customer satisfaction.&lt;/p&gt;

&lt;p&gt;Not because AI systems particularly care about ethics - but because accessible systems are easier to automate, test, and scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on commerce standards and AI protocols
&lt;/h2&gt;

&lt;p&gt;You may have seen recent announcements from Google and Shopify about the &lt;strong&gt;Universal Commerce Protocol (UCP)&lt;/strong&gt; proposal.&lt;/p&gt;

&lt;p&gt;While it's not confirmed as a standard yet, UCP is an open standard designed to give AI agents a shared language for commerce - covering discovery, buying, and post-purchase support - and to work across platforms and alongside other protocols like Agent2Agent (A2A), Agent Payments Protocol (AP2), and Model Context Protocol (MCP).&lt;/p&gt;

&lt;p&gt;It's an important signal that the ecosystem is aligning around the need for structured, reliable commerce interactions.&lt;/p&gt;

&lt;p&gt;But you don't need to bet on UCP "winning", or even on which platform ends up dominating AI-driven shopping.&lt;/p&gt;

&lt;p&gt;Improving accessibility on your product pages makes your store easier to understand for &lt;strong&gt;any&lt;/strong&gt; agent, on &lt;strong&gt;any&lt;/strong&gt; surface, using &lt;strong&gt;any&lt;/strong&gt; protocol.&lt;/p&gt;

&lt;h2&gt;
  
  
  The questions your product pages must answer
&lt;/h2&gt;

&lt;p&gt;If AI is becoming a new sales channel, here's the simplest way I'd assess the readiness of your products - and it's something you can sanity-check yourself without new tools, new vendors, or a six-month project.&lt;/p&gt;

&lt;p&gt;Can your product pages clearly answer these questions - &lt;em&gt;for someone who isn't using a mouse, and for a system that can't "see" your design&lt;/em&gt; - without guesswork?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What exactly is this product?&lt;/li&gt;
&lt;li&gt;What options or variants can I choose?&lt;/li&gt;
&lt;li&gt;What changed when I selected that option?&lt;/li&gt;
&lt;li&gt;Is it in stock right now?&lt;/li&gt;
&lt;li&gt;What happens when I add it to cart?&lt;/li&gt;
&lt;li&gt;Did that action succeed or fail?&lt;/li&gt;
&lt;li&gt;If it failed, what do I do next?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This often breaks down when key choices only appear after a mouse click, or when product options are built in a way that assumes visual interaction. If the product doesn't fully exist without clicking around, the options are effectively hidden, and both keyboard users and AI agents are forced to guess, or to give up.&lt;/p&gt;

&lt;p&gt;If the answers rely on visuals alone, animations, or assumptions about how someone is browsing, both customers and AI agents will struggle.&lt;/p&gt;

&lt;p&gt;If the answers are explicit, predictable, and exposed in the page itself, you've removed a whole category of friction - for people &lt;em&gt;and&lt;/em&gt; for machines.&lt;/p&gt;

&lt;p&gt;I regularly see these failures in areas like product options and variant selectors, as shown in my review of &lt;a href="https://davedavies.dev/reviews/accessible-product-options/" rel="noopener noreferrer"&gt;accessible product options&lt;/a&gt; and my breakdown of &lt;a href="https://davedavies.dev/reviews/accessible-custom-dropdown" rel="noopener noreferrer"&gt;accessible custom dropdowns&lt;/a&gt;. It's also why I've written before about how &lt;strong&gt;Shopify checkout accessibility is largely solved&lt;/strong&gt;, while product pages remain the fragile part of the flow in &lt;a href="https://davedavies.dev/blog/shopify-checkout-accessibility-product-pages/" rel="noopener noreferrer"&gt;this article on checkout vs product pages&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Being easy to understand is how your store stays visible as AI shopping grows
&lt;/h2&gt;

&lt;p&gt;AI shopping isn't a distant prediction anymore. It's the clear direction of travel.&lt;/p&gt;

&lt;p&gt;The stores that win won't be the loudest or the most experimental. They'll be the easiest to understand - for people and for machines.&lt;/p&gt;

&lt;p&gt;If your store works well for customers who browse without a mouse, use a keyboard, or rely on assistive technologies, it's also far more likely to work well for AI agents deciding what to recommend and what to skip.&lt;/p&gt;

&lt;p&gt;That's not a compliance argument.&lt;br&gt;&lt;br&gt;
It's a commercial one.&lt;/p&gt;

&lt;p&gt;Early adopters get the head start. Start by making your product pages unambiguous, then keep iterating as the channel matures.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>a11y</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>How to write good alt text for your product images</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Thu, 02 Oct 2025 12:50:58 +0000</pubDate>
      <link>https://dev.to/davedavies/how-to-write-good-alt-text-for-your-product-images-52hl</link>
      <guid>https://dev.to/davedavies/how-to-write-good-alt-text-for-your-product-images-52hl</guid>
      <description>&lt;p&gt;Imagine scrolling through a website, but you can't see the images.&lt;/p&gt;

&lt;p&gt;How would you know what they contain? &lt;/p&gt;

&lt;p&gt;This is the daily reality for millions of people who use screen readers to navigate the web. Alt text (short for &lt;em&gt;alternative text&lt;/em&gt;) serves as their eyes, describing what's in an image when they can't see it.&lt;/p&gt;

&lt;p&gt;Done well, alt text is powerful. It makes sure no one misses out because of an image they couldn’t see.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The good news?&lt;/strong&gt; Writing good alt text isn’t that complicated. It just takes a little thought and a clear focus on what your customer needs. And beyond accessibility, well-crafted alt text also supports SEO, helps when images fail to load, and provides context in text-only environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this guide, you’ll learn how to create alt text that works for everyone - clear, concise, and effective.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is alt text and why does it matter?
&lt;/h2&gt;

&lt;p&gt;Alt text is the written description of an image that sits in your website’s code. If the image doesn’t load, or if someone is using a screen reader, the alt text is what gets read aloud instead.&lt;/p&gt;

&lt;p&gt;Without it, all your customer hears is “image” - or worse, the filename - which is as unhelpful as it sounds. With it, they get the same information as everyone else.&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%2Fg577xi4ehmimj9ftn3oe.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%2Fg577xi4ehmimj9ftn3oe.png" alt="Example graphic of code showing correct use of alt text" width="800" height="101"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s a simple product photo described in a way that actually helps the customer decide if it’s what they want.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to write good alt text
&lt;/h2&gt;

&lt;p&gt;Good alt text follows a few simple principles. Think of it as describing what's in the image, to someone who it's looking at it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would be useful and helpful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Be descriptive&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alt text should be as specific and accurate as possible. The goal is to give a clear idea of what the image shows and why it’s there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip for SEO: It’s fine to include a keyword if it naturally fits the description, but your priority is always to describe the image truthfully.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Keep it concise&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Good alt text is usually short - a few words to one sentence. &lt;/p&gt;

&lt;p&gt;Focus on the essentials. If your image needs a lot of explanation (like a chart or infographic), provide a short summary in the alt and a fuller description in the page text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Skip "picture of..."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don’t need to start with "picture of" or "image of". Screen readers already announce that it’s an image. Just describe what matters.&lt;/p&gt;

&lt;p&gt;The only time you might name the type of image is if it adds meaning. For example, on an art site: "&lt;em&gt;Painting of sunflowers by Vincent van Gogh&lt;/em&gt;" makes sense, because the format is important.&lt;/p&gt;

&lt;p&gt;But on a product page, "&lt;em&gt;image of a blue cotton shirt&lt;/em&gt;" is unnecessary - just write "&lt;em&gt;Blue cotton shirt with button-down collar&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Match the context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alt text isn’t just about describing what's visible. It should also reflect the purpose of the image on the page.&lt;/p&gt;

&lt;p&gt;A photo of a bag of coffee beans could be described in many ways, but on a checkout page you’d want: "&lt;em&gt;250g bag of freshly roasted Arabica beans, ground for espresso&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;That description helps a customer confirm exactly what they’re buying.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context matters too
&lt;/h2&gt;

&lt;p&gt;What is the context of the image? Am I trying to show a blue shirt, a historical tour, or a modelling agency?&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%2Fe8h9x4hlyo8tzsro73r6.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%2Fe8h9x4hlyo8tzsro73r6.png" alt="Example image of a person standing in front of historic stone arches" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The "correct" alt text depends on the purpose of the image on the page. In this photo by &lt;a href="https://www.pexels.com/photo/contemplative-moment-in-historic-architecture-34045412/" rel="noopener noreferrer"&gt;Hans Town Kun&lt;/a&gt; are we:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selling the shirt:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;alt="Model wearing a navy button-up shirt and ripped jeans, posing by a stone wall"&lt;/code&gt; would work, because the focus shifts to the clothing. That’s what the customer needs to know.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General description (on a personal bio page):&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;alt="Young man in a navy shirt leaning against a wooden railing in front of a stone wall"&lt;/code&gt; would work. Focus on describing the person so visitors know who they’re reading about.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;On a travel blog:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;alt="Person standing in front of historic stone arches"&lt;/code&gt;. Here the building is the important detail, not the person’s outfit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fxzy31wph4dpds7fbzegf.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%2Fxzy31wph4dpds7fbzegf.png" alt="Person and dog giving each other a high five on a sandy beach" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s a lifestyle photo where the story depends on context. In this photo by &lt;a href="https://www.pexels.com/photo/woman-and-australian-shepherd-high-five-on-beach-34035071/" rel="noopener noreferrer"&gt;Efrem Efre&lt;/a&gt;, we could feasibly use the following alt text:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selling the jacket:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;alt="Model is wearing the orange jacket in medium, high-fiving a dog on the beach"&lt;/code&gt; would work, because the focus shifts to the clothing. That’s what the customer needs to know.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General description (blog post about dogs):&lt;/strong&gt;&lt;br&gt;
alt="Person and dog giving each other a high five on a sandy beach" would work because the focus is on the human connection and personality, giving visitors a sense of who they are.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;On a travel blog:&lt;/strong&gt;&lt;br&gt;
alt="Person and dog on a sandy beach by the water with forest in the background". This focuses on the location and atmosphere, since the image supports a story about place.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final tips for writing alt text that works
&lt;/h2&gt;

&lt;p&gt;Good alt text isn’t about ticking a compliance box or trying to please search engines. It’s about making sure no customer is left out, no matter how they browse your site.&lt;/p&gt;

&lt;p&gt;You'll do well if you just remember these 3 golden rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Be clear&lt;/strong&gt; - say what the image shows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be concise&lt;/strong&gt; - a short sentence is usually enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match the context&lt;/strong&gt; - write what’s most useful for the page it’s on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try this today:&lt;/strong&gt; pick three images on your site and rewrite the alt text using these rules. You’ll see how quickly it becomes easier once you focus on purpose, not pixels.&lt;/p&gt;

&lt;p&gt;Done well, alt text is invisible but powerful. It helps your customers, supports your SEO, and builds trust in your brand. Every image is a chance to welcome someone in, or shut them out.&lt;/p&gt;

&lt;p&gt;Make it welcoming.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Shopify checkout is highly accessible - but your product pages might be letting you down</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Thu, 11 Sep 2025 17:59:56 +0000</pubDate>
      <link>https://dev.to/davedavies/shopify-checkout-is-highly-accessible-but-your-product-pages-might-be-letting-you-down-410o</link>
      <guid>https://dev.to/davedavies/shopify-checkout-is-highly-accessible-but-your-product-pages-might-be-letting-you-down-410o</guid>
      <description>&lt;p&gt;Shopify has put real effort into making its checkout process accessible, meaning customers who use a keyboard or screen reader can complete their purchase without barriers. For you, that’s great news - it reduces abandoned carts and protects revenue.  &lt;/p&gt;

&lt;p&gt;But here’s the problem: the checkout is only the final step. If customers can’t navigate your product pages properly, they’ll never even get to that accessible checkout.  &lt;/p&gt;

&lt;p&gt;On peak shopping days like Black Friday and Cyber Monday, &lt;a href="https://davedavies.dev/blog/black-friday-cyber-monday-sales-advantage/" rel="noopener noreferrer"&gt;accessible journeys give your business a measurable sales advantage&lt;/a&gt; over your inaccessible competitors. But that advantage isn’t just seasonal - it applies every day of the year&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR for business leaders
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Problem:&lt;/strong&gt; If customers can’t use your product pages, they never reach Shopify’s accessible checkout.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact:&lt;/strong&gt; You’re excluding up to 20% of your potential customers, and your marketing spend is wasted.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Apply six simple changes to your product pages (below).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt; More customers add items to their basket and complete their purchase.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Shopify checkout stands out
&lt;/h2&gt;

&lt;p&gt;Shopify has publicly committed to following &lt;strong&gt;WCAG 2.2 AA&lt;/strong&gt; — the internationally recognised Accessibility standard for inclusivity. This means their checkout is &lt;em&gt;regularly&lt;/em&gt; tested so that people with different access needs can use it.  &lt;/p&gt;

&lt;p&gt;They also run &lt;em&gt;regular usability testing&lt;/em&gt; with people who rely on assistive technology, such as screen readers.&lt;/p&gt;

&lt;p&gt;So the last step of your sales funnel is already strong. The question is: &lt;strong&gt;how do you make sure your customers can actually reach it?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Six ways to make your product pages accessible
&lt;/h2&gt;

&lt;p&gt;Shopify gives you strong foundations, but your product pages are still your responsibility. Shopify even publish their own &lt;a href="https://shopify.dev/docs/storefronts/themes/best-practices/accessibility" rel="noopener noreferrer"&gt;accessibility best practices&lt;/a&gt; - and here are six practical improvements you can apply right now to help more people buy from you:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Make product options easy to use
&lt;/h3&gt;

&lt;p&gt;Customers need to be able to pick the right size, colour, or material - whether they’re using a mouse, a keyboard, or a screen reader. If those options don’t work for everyone, some customers can’t buy at all.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; On some sites, option buttons are built using non-interactive code - such as a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element styled to look clickable. These don’t behave like real form controls, so they’re invisible to screen readers and often unreachable by keyboard. In practice, this means customers can’t select a size, change quantity, or even add a product to their basket.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add meaningful image descriptions
&lt;/h3&gt;

&lt;p&gt;Photos sell your products. But if someone can’t see the image clearly, they rely on a short written description (known as &lt;a href="https://davedavies.dev/blog/can-ai-be-used-to-write-good-descriptive-alt-text/" rel="noopener noreferrer"&gt;&lt;em&gt;alt text&lt;/em&gt;&lt;/a&gt;). Instead of "Product image", say "Blue waterproof jacket with hood". Clear descriptions help customers make confident buying decisions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; Without alt text, some screen readers fall back to reading out the file name, like "IMG_1234.jpg". That’s meaningless for customers and doesn’t help them decide whether to buy.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Announce changes clearly
&lt;/h3&gt;

&lt;p&gt;When a customer chooses a different option, the price or stock level might change. Make sure that update is obvious to everyone - including those using screen reader software. If changes aren’t announced, people may think nothing has happened and leave without buying.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; On some sites, changing an option updates the price - but no announcement is made for screen reader users. Customers think the price hasn’t changed until checkout, which causes confusion and drop-offs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Label every field and every button
&lt;/h3&gt;

&lt;p&gt;From quantity boxes to "Add to basket", labels matter. They tell customers what each control does, and for people using assistive technology they're the only way to understand and use those controls. Without clear labels, some customers simply can’t complete their order.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; A quantity box without a label might be announced by a screen reader as "edit text" with no context. The customer has no way of knowing it controls quantity, so they can’t order more than one item and may abandon the purchase.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Make sure focus is always visible
&lt;/h3&gt;

&lt;p&gt;When customers navigate with a keyboard, they need to see where they are on the page. A clear focus highlight (often a box or underline) shows which button or link is currently active. Without it, navigating is guesswork.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; On some sites, pressing the tab key moves through the page but there’s no visible outline showing where you are. Customers quickly lose track, miss important actions, and may abandon the site altogether.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Provide clear page structure
&lt;/h3&gt;

&lt;p&gt;Customers should be able to scan your product page quickly and find the information that matters most - like product details, price, and delivery. Use clear headings and consider adding a “Skip to product information” link to help people get there faster.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; On many product pages, the actual product information is buried past menus, banners and product image. For customers using screen readers, it means wading through extras before reaching the product description - many never get that far.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Quick self-check
&lt;/h2&gt;

&lt;p&gt;Open one of your product pages right now and ask yourself:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can I choose a size or colour using only the keyboard?
&lt;/li&gt;
&lt;li&gt;Do all product images have meaningful descriptions?
&lt;/li&gt;
&lt;li&gt;If I change a product option, is the new price or stock level clear?
&lt;/li&gt;
&lt;li&gt;Are all fields and buttons clearly labelled?
&lt;/li&gt;
&lt;li&gt;Are buttons and swatches large enough to tap easily on mobile?
&lt;/li&gt;
&lt;li&gt;Can I quickly scan the page and jump to the product details?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the answer is “no” to any of these, you’re losing customers before they even reach Shopify’s excellent checkout.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Why this matters for your sales
&lt;/h2&gt;

&lt;p&gt;When customers can use your product pages without barriers, more of them reach Shopify’s accessible checkout - and more of them complete their order.&lt;/p&gt;

&lt;p&gt;Accessible product pages don’t just reduce drop-offs. They increase conversions, make your marketing spend more effective, and open the door to customers who would otherwise be excluded.&lt;/p&gt;

&lt;p&gt;Accessibility isn’t just the right thing to do. It’s smart business. When more people can buy, more people do buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sales advantage of accessibility
&lt;/h2&gt;

&lt;p&gt;Shopify has already set the standard with its accessible checkout. Once people reach it, Shopify claim their checkout converts &lt;strong&gt;15% better on average&lt;/strong&gt; than other platforms - so you’re in a strong position.&lt;/p&gt;

&lt;p&gt;But that advantage is wasted if customers can’t use your product pages to get there.&lt;/p&gt;

&lt;p&gt;Make those pages accessible, and you unlock the full value of Shopify’s checkout: fewer drop-offs, more conversions, and access to the 20% of customers too often excluded online.&lt;/p&gt;

&lt;p&gt;Accessibility isn’t just compliance. It’s a growth strategy.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>marketing</category>
      <category>shopify</category>
      <category>growth</category>
    </item>
    <item>
      <title>Black Friday and Cyber Monday: why accessibility could be your biggest sales advantage</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Wed, 27 Aug 2025 20:05:59 +0000</pubDate>
      <link>https://dev.to/davedavies/how-much-money-is-your-business-losing-on-black-friday-and-cyber-monday-137f</link>
      <guid>https://dev.to/davedavies/how-much-money-is-your-business-losing-on-black-friday-and-cyber-monday-137f</guid>
      <description>&lt;p&gt;Black Friday and Cyber Monday (BFCM) are make-or-break moments for many businesses. In 2024, UK shoppers spent a whopping &lt;a href="https://www.reuters.com/business/retail-consumer/britons-spent-46-bln-online-over-black-fridaycyber-monday-period-says-adobe-2024-12-03/" rel="noopener noreferrer"&gt;£3.63 billion online across Black Friday and Cyber Monday&lt;/a&gt;. Globally, sales run into the trillions.&lt;/p&gt;

&lt;p&gt;But here's a scary fact: if your website isn’t accessible, a significant chunk of that spend will never reach you, and it’ll go to your competitors instead.&lt;/p&gt;

&lt;p&gt;Research shows UK businesses collectively lose &lt;a href="https://www.clickawaypound.com/" rel="noopener noreferrer"&gt;£17.1 billion a year&lt;/a&gt; because shoppers using assistive technology abandon websites that don’t work for them. During BFCM alone, that translates into nearly &lt;strong&gt;£446 million in lost revenue&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s almost half a billion pounds walking out the door in one weekend.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much revenue can your business lose on Black Friday and Cyber Monday?
&lt;/h2&gt;

&lt;p&gt;It’s easy to dismiss numbers in the billions as "&lt;em&gt;someone else’s problem&lt;/em&gt;". But let’s zoom in.&lt;/p&gt;

&lt;p&gt;Black Friday &amp;amp; Cyber Monday can account for &lt;strong&gt;&lt;a href="https://www.voguebusiness.com/consumers/black-friday-and-cyber-monday-did-they-work" rel="noopener noreferrer"&gt;up to 15% of annual online sales&lt;/a&gt;&lt;/strong&gt;, with some businesses reporting that &lt;strong&gt;&lt;a href="https://woocommerce.com/posts/black-friday-stats-and-trends/" rel="noopener noreferrer"&gt;over 50% of their yearly sales happen across BFCM and the holiday period&lt;/a&gt;&lt;/strong&gt;. That means that if your business turns over £20 million a year, you could realistically be taking &lt;strong&gt;£3-£4 million in sales over just one long weekend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now imagine your product pages are inaccessible to just &lt;strong&gt;2% of your customers&lt;/strong&gt;. That’s a &lt;strong&gt;£60,000 - £80,000 loss in a single weekend&lt;/strong&gt;. And that’s a conservative calculation: research shows &lt;strong&gt;10–15% of customers often click away&lt;/strong&gt; because of accessibility barriers.&lt;/p&gt;

&lt;p&gt;At that level, you could be looking at &lt;strong&gt;£300,000–£600,000&lt;/strong&gt; in lost revenue - all within 48 hours.&lt;/p&gt;

&lt;p&gt;And the damage doesn’t stop there. Accessibility problems don’t just cost you one sale, they cost you repeat sales, loyalty, and lifetime value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why customers with access needs stay loyal to accessible brands
&lt;/h2&gt;

&lt;p&gt;Disabled shoppers are among the most loyal customers online - provided you serve them well. The research is crystal clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://abilitynet.org.uk/news-blogs/research-shows-businesses-lose-17-billion-ignoring-accessibility-needs" rel="noopener noreferrer"&gt;83% of shoppers with access needs limit their purchases to websites they know are accessible&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;86% say they would spend more if sites were easier to use.&lt;/li&gt;
&lt;li&gt;11% have paid more on an accessible site rather than buy cheaper elsewhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accessibility doesn’t just protect your BFCM sales, it earns you loyalty year-round.&lt;/p&gt;

&lt;p&gt;And these customers are "&lt;em&gt;power shoppers&lt;/em&gt;" too. &lt;a href="https://makeitfable.com/article/insights-the-state-of-online-shopping-for-people-with-disabilities/" rel="noopener noreferrer"&gt;50% of consumers who use assistive technology shop online weekly&lt;/a&gt; (vs 22% of the general population). They often consolidate purchases with brands they trust. Once you win them, they stay. Once you lose them, they rarely come back.&lt;/p&gt;

&lt;p&gt;It’s not just disabled customers either.&lt;/p&gt;

&lt;p&gt;Older shoppers - who hold a disproportionate amount of disposable income - increasingly rely on larger text, clear navigation, and voice input. If your site isn’t accessible, you’re turning away your wealthiest demographic too.&lt;/p&gt;

&lt;h2&gt;
  
  
  E-commerce sales are doubling - and accessibility will decide who wins
&lt;/h2&gt;

&lt;p&gt;Global e-commerce isn’t slowing down. According to &lt;a href="https://www.morganstanley.com/ideas/global-ecommerce-growth-forecast-2022" rel="noopener noreferrer"&gt;Morgan Stanley research&lt;/a&gt;, the e-commerce market is expected to nearly double by 2026. By that measure, &lt;strong&gt;27% of all retail sales will be online purchases&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The growth of e-commerce is proof that the way people shop has fundamentally changed. Without improved accessibility, customers with access needs risk being left behind. These are the very shoppers who stand to benefit most from the convenience of online retail - but unless websites work for them, they’re excluded from what is rapidly becoming everyday life.&lt;/p&gt;

&lt;p&gt;And for businesses, the upside is clear: a Forrester study found that every &lt;strong&gt;$1 invested in accessibility&lt;/strong&gt; can yield &lt;strong&gt;up to $100 in benefits&lt;/strong&gt;, from increased revenue to reduced support costs and stronger brand reputation (&lt;a href="https://testparty.ai/blog/the-business-case-for-digital-accessibility" rel="noopener noreferrer"&gt;TestParty via Forrester’s findings&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Accessibility isn’t just a moral or compliance box to tick, it’s a smart business choice with measurable returns.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 simple ways to make the most of Black Friday and Cyber Monday with accessibility checks
&lt;/h2&gt;

&lt;p&gt;The good news is that you don’t need to be an accessibility expert to spot the biggest issues before November. A simple round of testing can reveal whether customers will be able to buy during your busiest sales weekend.&lt;/p&gt;

&lt;p&gt;Here’s a quick checklist you can try today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Do a no-mouse test.&lt;/strong&gt; Put your mouse aside and try to complete a purchase with just the keyboard (Tab, Shift+Tab, Enter, Space). If you can’t, neither can your customers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check your discount code box.&lt;/strong&gt; Can a screen reader pick up its label? If not, customers won’t be able to claim your BFCM offers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open and close your popups.&lt;/strong&gt; Do they trap you? Can you close them with Escape? Many shoppers will abandon your site if a promo banner blocks them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resize text.&lt;/strong&gt; Zoom your browser to 200%. Does the layout still work? If it breaks, so will the sale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run a free screen reader test.&lt;/strong&gt; VoiceOver (on iPhone/Mac) or NVDA (on Windows) are enough to catch serious issues. Try searching, adding to basket, and checking out.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These five steps won’t uncover everything, but they’ll give you a good start to show you whether customers with access needs can complete the journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessible websites convert more sales on Black Friday and Cyber Monday
&lt;/h2&gt;

&lt;p&gt;Every year, businesses pour money into advertising, discounts, and promotions for Black Friday and Cyber Monday. But if your website isn’t accessible, a portion of that spend goes straight to your competitors - because customers arrive, try to buy, and then leave.&lt;/p&gt;

&lt;p&gt;The question isn’t whether customers with access needs will shop during Black Friday and Cyber Monday. They will. The question is: &lt;em&gt;will they shop with you, or with someone else?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Accessibility isn’t just about preventing lost revenue. It’s one of the most effective ways to &lt;strong&gt;increase your Black Friday and Cyber Monday sales&lt;/strong&gt;. If you want to make the most of the biggest shopping weekend of the year, make sure every customer can complete their purchase.&lt;/p&gt;

&lt;p&gt;Start fixing accessibility today - it could be the difference between record sales or record losses this Black Friday and Cyber Monday.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>startup</category>
      <category>tutorial</category>
      <category>discuss</category>
    </item>
    <item>
      <title>WCAG Colour Contrast: What does the 4.5:1 ratio actually mean?</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Sat, 08 Feb 2025 19:10:18 +0000</pubDate>
      <link>https://dev.to/davedavies/wcag-colour-contrast-what-does-the-451-ratio-actually-mean-3c92</link>
      <guid>https://dev.to/davedavies/wcag-colour-contrast-what-does-the-451-ratio-actually-mean-3c92</guid>
      <description>&lt;p&gt;Anyone who has worked with web accessibility will likely be familiar with the &lt;a href="https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html" rel="noopener noreferrer"&gt;WCAG Colour Contrast Requirements&lt;/a&gt;. These guidelines specify that text (and images of text) must have a contrast ratio of &lt;em&gt;at least&lt;/em&gt; 4.5:1.&lt;/p&gt;

&lt;p&gt;Read this article, with an interactive colourblindess simulator at &lt;a href="https://davedavies.dev/posts/wcag-colour-contrast-explained/" rel="noopener noreferrer"&gt;https://davedavies.dev/posts/wcag-colour-contrast-explained/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But have you ever wondered what that 4.5:1 ratio actually means, and where it comes from?&lt;/p&gt;

&lt;h2&gt;
  
  
  First, what exactly is colour contrast?
&lt;/h2&gt;

&lt;p&gt;Colour contrast refers to the &lt;em&gt;perceptible difference&lt;/em&gt; between text and its background. This contrast is crucial for readability, affecting both legibility and accessibility for everyone - especially those with vision impairments. It plays a key role in how easily users can engage with your content.&lt;/p&gt;

&lt;p&gt;A colour contrast ratio of 4.5:1 means that the lighter colour is &lt;em&gt;4.5 times brighter&lt;/em&gt; than the darker colour. This isn't arbitrary - this ratio is based on how our eyes perceive different levels of brightness and has been meticulously determined to ensure text legibility and overall visual accessibility for users with varying vision abilities, including colour blindness.&lt;/p&gt;

&lt;p&gt;Note that larger text (&amp;gt;18pt) or bolder text (&amp;gt;14pt), requires a slightly lower ratio of 3:1. This is because of its inherent ease of readability. The technical term for this is "relative luminance" - how bright each colour appears to the human eye.")&lt;/p&gt;

&lt;h2&gt;
  
  
  Different types of colour vision
&lt;/h2&gt;

&lt;p&gt;When discussing colour contrast, it's important to understand that people perceive colours differently. Colour blindness, or Colour Vision Deficiency (CVD), affects approximately 1 in 12 men and 1 in 200 women worldwide. The three most common types are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Protanopia&lt;/strong&gt;: Difficulty distinguishing between red and green colour, with reds appearing darker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deuteranopia&lt;/strong&gt;: Similar to protanopia, but without the darkening effect on reds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tritanopia&lt;/strong&gt;: Difficulty distinguishing between blue and yellow colour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might notice that there's not much difference between &lt;em&gt;protanopia&lt;/em&gt; and &lt;em&gt;deuteranopia&lt;/em&gt; in the demonstration above. This isn't a mistake - both deficiencies are forms of red-green colour blindness that affect our eyes in remarkably similar ways. The key difference? Protanopia affects the red-sensitive cone cells in our retinas, while deuteranopia affects the green-sensitive ones. Because these cone cells work together to help us distinguish colours, the end result looks quite similar, though protanopia tends to make reds appear slightly darker.&lt;/p&gt;

&lt;p&gt;Tritanopia, on the other hand, looks noticeably different because it affects our blue-sensitive cone cells, which operate more independently from the red and green receptors. This is why the tritanopia simulation shows such a distinct shift in how blues and yellows are perceived.&lt;/p&gt;

&lt;p&gt;This visualisation helps explain why colour alone should never be used to convey information - what might be an obvious colour difference to someone with typical colour vision could be indistinguishable to someone with CVD. This is why maintaining proper contrast ratios is crucial for accessibility, regardless of how users perceive colour.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the heck is relative luminance?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Relative luminance&lt;/em&gt; is calculated using &lt;strong&gt;Red&lt;/strong&gt;, &lt;strong&gt;Green&lt;/strong&gt;, and &lt;strong&gt;Blue&lt;/strong&gt; (RGB) values weighted to match how bright a colour appears to the human eye. Red contributes 30%, Green contributes 59%, while Blue contributes just 11%. &lt;/p&gt;

&lt;p&gt;Understanding this concept helps to explain why some colour combinations are easier to read. It also explains why &lt;em&gt;pure blue&lt;/em&gt; &lt;strong&gt;(0,0,255)&lt;/strong&gt; appears much darker than &lt;em&gt;pure green&lt;/em&gt; &lt;strong&gt;(0,255,0)&lt;/strong&gt; to our eyes, despite both being at maximum value, since blue only contributes 11% to our perceived brightness, while green contributes 59% - that’s a dramatic difference in luminance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who decided that a 4.5:1 or 3:1 ratio was needed?
&lt;/h2&gt;

&lt;p&gt;This goes back to the early 1990s, when accessibility research - led by groups like the Trace R&amp;amp;D Center - laid the foundation for modern contrast standards. Researchers investigated how different luminance levels affect readability, leading to a framework that established minimum contrast ratios for effective communication. The specific ratios emerged from rigorous studies of reading performance and informed the development of the Web Content Accessibility Guidelines (WCAG)&lt;/p&gt;

&lt;p&gt;And bear in mind that these colour contrast guidelines don’t just affect those with poor eyesight. I’m certain we’ve all struggled to read text in bright sunlight or on badly designed websites. Studies consistently show that &lt;em&gt;everyone&lt;/em&gt; benefits from a minimum of a 4.5:1 colour contrast ratio when reading standard-sized text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why these numbers matter in practice
&lt;/h2&gt;

&lt;p&gt;Understanding the science behind contrast ratios, relative luminance, and colour vision deficiencies might seem academic, but it all comes together in practical application. When we combine our knowledge of how:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different cone cells interpret colours (as we saw in the colour blindness demonstration)&lt;/li&gt;
&lt;li&gt;Relative luminance affects perceived brightness (like why blue appears darker than green)&lt;/li&gt;
&lt;li&gt;Contrast ratios ensure readability (the 4.5:1 standard)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can make better design decisions that work for everyone. For instance, that bright yellow text that passes contrast requirements on a white background? It might be technically compliant at 4.5:1, but for someone with tritanopia, it could be nearly invisible. Or that subtle grey text that looks "sleek" on your monitor might become completely unreadable on a phone in sunlight.&lt;/p&gt;

&lt;p&gt;This is why WCAG guidelines aren't just arbitrary numbers - they're carefully calculated standards that take into account the full spectrum of human vision, from typical colour vision to various types of CVD, from perfect lighting conditions to real-world scenarios. When we follow these guidelines, we're not just ticking boxes for accessibility compliance - we're creating interfaces that work better for everyone, in every situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for checking colour contrast
&lt;/h2&gt;

&lt;p&gt;Setting minimum colour contrast isn’t incredibly straightforwards, &lt;strong&gt;but with over 86% of the most common accessibility failures being down to colour contrast&lt;/strong&gt; - let’s see how to fix it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Colour contrast tools
&lt;/h3&gt;

&lt;p&gt;My go-to tool is the fantastically designed &lt;a href="http://colourcontrast.cc/" rel="noopener noreferrer"&gt;colourcontrast.cc&lt;/a&gt;. There’s loads of tools which do this, and you can even just make your own simple JavaScript tool if you wanted - but I love the design of this site, and there’s zero room for ambiguity.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>design</category>
      <category>inclusion</category>
    </item>
    <item>
      <title>Preparing your business for the European Accessibility Act</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Tue, 31 Dec 2024 08:54:38 +0000</pubDate>
      <link>https://dev.to/davedavies/preparing-your-business-for-the-european-accessibility-act-16bl</link>
      <guid>https://dev.to/davedavies/preparing-your-business-for-the-european-accessibility-act-16bl</guid>
      <description>&lt;p&gt;The &lt;strong&gt;European Accessibility Act (EAA)&lt;/strong&gt; is a significant step forward in ensuring equal access to goods and services for everyone, particularly those with disabilities. With the compliance deadline of &lt;strong&gt;June 28, 2025&lt;/strong&gt; fast approaching accessibility is no longer optional — it’s a legal requirement, and it’s time for businesses to evaluate their readiness. &lt;/p&gt;

&lt;p&gt;This guide is designed to help business owners and stakeholders understand the key aspects of the EAA, how it affects your organisation, and how to achieve compliance effectively. We’ll also explore how compliance can benefit your business in surprising ways.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This guide is not legal advice.&lt;/strong&gt; Always consult with your legal team about how the EAA applies to your specific business.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the European Accessibility Act?
&lt;/h2&gt;

&lt;p&gt;Adopted in 2019 and transposed into national laws by 2022, the European Accessibility Act aims to harmonise accessibility requirements across the EU. It removes barriers caused by inconsistent rules in member states, making products and services more accessible to people with disabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who does the EAA apply to?
&lt;/h3&gt;

&lt;p&gt;The EAA applies to any business selling products or services within the EU, regardless of location. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key applicability criteria include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business size: Organisations with 10 or fewer employees &lt;strong&gt;or&lt;/strong&gt; an annual turnover of less than €2 million are exempt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Product and Service Scope:&lt;/strong&gt; The EAA covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Websites, e-commerce platforms, and mobile apps.&lt;/li&gt;
&lt;li&gt;Banking services, ATMs, and self-service kiosks.&lt;/li&gt;
&lt;li&gt;Computers, smartphones, and other consumer technology.&lt;/li&gt;
&lt;li&gt;Digital transportation services, such as travel booking apps.&lt;/li&gt;
&lt;li&gt;E-books and media streaming platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At Tiny Octopus, as digital accessibility experts - that's what we're going to be focussing on. &lt;/p&gt;

&lt;p&gt;Even non-EU businesses must comply if they serve EU markets. For instance, a U.S.-based SaaS provider offering services to EU residents must meet EAA standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Prepare for EAA Compliance in 5 Steps
&lt;/h2&gt;

&lt;p&gt;To comply with the EAA, businesses must take a proactive approach to ensure their products, services, and processes meet accessibility requirements. Here’s how to get started:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Assess your current accessibility&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Start with an audit of your products and services, including websites and apps. Test for compatibility with assistive technologies using tools like Google Lighthouse. However, automated tools alone are insufficient—manual testing is crucial for finding nuanced issues.&lt;/p&gt;

&lt;p&gt;Follow the EN 301 549 standard, which incorporates WCAG 2.1 AA guidelines for web content, software, and hardware accessibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Publish an Accessibility Statement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create an accessibility statement that includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How your products and services meet accessibility standards.&lt;/li&gt;
&lt;li&gt;Measures taken to improve accessibility.&lt;/li&gt;
&lt;li&gt;Contact details for accessibility-related queries.&lt;/li&gt;
&lt;li&gt;A process for filing complaints with enforcement authorities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This statement should be prominently displayed, such as on your website’s footer or help page.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Offer Accessibility Training for Employees&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Compliance isn’t just about products; it’s about culture. Train your team to prioritise accessibility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Train developers, designers, and marketers on WCAG principles and usability.&lt;/li&gt;
&lt;li&gt;Equip support teams to handle accessibility queries effectively.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Monitor and Maintain Accessibility&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Accessibility is an ongoing process. Regularly audit your products to address new barriers as technologies evolve. Use automated testing tools for routine checks, and complement them with manual reviews for comprehensive coverage.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Plan Proactively for the 2025 Deadline&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Start accessibility planning now. While some businesses may have years to prepare, early action positions you ahead of competitors and avoids last-minute compliance challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens if you don’t comply with the EAA?
&lt;/h2&gt;

&lt;p&gt;Failing to meet EAA requirements can lead to significant consequences, and enforcement will be carried out by individual EU member states. Here’s what’s at stake:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fines:&lt;/strong&gt; Penalties may reach up to €3 million, depending on the country and severity of the violation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restricted market access:&lt;/strong&gt; Non-compliant products or services may be removed from the market entirely, resulting in loss of revenue and reputation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legally enforced changes:&lt;/strong&gt; Court orders may mandate changes to your operations, potentially incurring additional costs and downtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repetitional harm of being labeled as non-inclusive can’t be understated. Today’s customers value brands that demonstrate empathy and inclusivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why accessibility compliance benefits everyone
&lt;/h2&gt;

&lt;p&gt;Beyond avoiding legal penalties, complying with the EAA is an opportunity for growth. Making accessibility a priority improves your offerings and expands your reach. Here's how it benefits your business:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Broader Customer Base&lt;br&gt;
By improving accessibility, your products and services become more usable for the over 87 million people with disabilities in the EU. But it doesn’t stop there—accessible design also benefits elderly users, people with temporary impairments, and anyone navigating your offerings in challenging conditions (e.g., low light or noisy environments).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced Brand Reputation&lt;br&gt;
Inclusive businesses are viewed more favourably by customers, investors, and partners. Demonstrating a commitment to accessibility can strengthen relationships and improve customer loyalty.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved User Experience&lt;br&gt;
Accessibility measures, like clear navigation and readable fonts, often overlap with usability best practices. The result? A better overall experience for all users, boosting engagement and customer satisfaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Higher Revenue&lt;br&gt;
Research shows that inclusivity boosts profitability. A 2022 study revealed that accessible websites see higher conversion rates and lower bounce rates, directly impacting your bottom line.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where to go from here?
&lt;/h2&gt;

&lt;p&gt;The EAA isn’t just about legal compliance — it’s an opportunity to build a better, more inclusive digital presence. Taking steps to meet these requirements now positions your business for success, both in 2025 and beyond.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make accessibility your strength, not a challenge.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Build An Accessible Toggle Switch with Modern HTML &amp; CSS (Without JavaScript)</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Fri, 16 Aug 2024 19:13:47 +0000</pubDate>
      <link>https://dev.to/davedavies/how-to-build-an-accessible-toggle-switch-without-javascript-using-modern-html-css-3ac7</link>
      <guid>https://dev.to/davedavies/how-to-build-an-accessible-toggle-switch-without-javascript-using-modern-html-css-3ac7</guid>
      <description>&lt;p&gt;When your designer hands you a slick UI featuring toggle switches, your priority is to make sure these switches are accessible. So, how do you go about building an accessible toggle switch without relying on JavaScript?&lt;/p&gt;

&lt;h2&gt;
  
  
  Building an Accessible Toggle Switch with HTML and CSS
&lt;/h2&gt;

&lt;p&gt;JavaScript is a powerful tool, and we use it every day at Tiny Octopus. However, browser vendors have equipped us with the necessary features to build accessible components without it. By using HTML and CSS, you can create a toggle switch that’s both functional and accessible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View the finished Accessible Toggle Switch: &lt;a href="https://codepen.io/Tiny-Octopus/pen/xxoWLZP?editors=1100" rel="noopener noreferrer"&gt;https://codepen.io/Tiny-Octopus/pen/xxoWLZP?editors=1100&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Start with an HTML Checkbox
&lt;/h3&gt;

&lt;p&gt;At the very beginning, we'll start with a well-structured HTML checkbox. This uses an &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; element paired with a &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element, ensuring they are correctly attributed and displaying a visible label.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;label for="toggle"&amp;gt;
  &amp;lt;input type="checkbox" name="toggle" id="toggle" /&amp;gt;
  This is the toggle label
&amp;lt;/label&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fu3zvicazcfz453j62cbh.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%2Fu3zvicazcfz453j62cbh.png" alt="An unstyled HTML radio form element" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To meet &lt;a href="https://www.w3.org/WAI/WCAG21/Understanding/use-of-color" rel="noopener noreferrer"&gt;WCAG Success Criteria 1.4.1 (Use of Color)&lt;/a&gt;, avoid conveying the checkbox status &lt;em&gt;solely&lt;/em&gt; through color. Instead, we're going to add in two icons (sourced from Material UI) to indicate the state of the checkbox.&lt;/p&gt;

&lt;p&gt;Place a &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; between the &lt;code&gt;checkbox&lt;/code&gt; and the &lt;code&gt;label&lt;/code&gt; to hold the check and cross icons. We'll then use a pseudo-element to create a toggle that covers one icon at a time, visually indicating whether the checkbox is checked or unchecked.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;label class="toggle" for="toggle"&amp;gt;
  &amp;lt;input type="checkbox" name="toggle" id="toggle" class="toggle__input" /&amp;gt;

  &amp;lt;span class="toggle__display" hidden&amp;gt;
    &amp;lt;svg aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark" width="18" height="14" viewBox="0 0 18 14" fill="none" xmlns="http://www.w3.org/2000/svg"&amp;gt;
      &amp;lt;path d="M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z" fill="currentcolor" stroke="currentcolor" /&amp;gt;
    &amp;lt;/svg&amp;gt;
    &amp;lt;svg aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross" width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"&amp;gt;
      &amp;lt;path d="M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z" fill="currentcolor" /&amp;gt;
    &amp;lt;/svg&amp;gt;
  &amp;lt;/span&amp;gt;

  This is the toggle label
&amp;lt;/label&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key HTML Considerations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Using the &lt;code&gt;hidden&lt;/code&gt; Attribute:&lt;/strong&gt; Apply the &lt;code&gt;hidden&lt;/code&gt; attribute to the &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; containing the SVG icons. This ensures that if CSS fails to load, users still see a simple checkbox with a label. The hidden value will be overridden in CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aria Attributes:&lt;/strong&gt; Set &lt;code&gt;aria-hidden="true"&lt;/code&gt; on the SVGs, as they are decorative and should not be announced by screen readers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focusability:&lt;/strong&gt; Add &lt;code&gt;focusable="false"&lt;/code&gt; to the SVGs to prevent an issue in Internet Explorer where SVGs are focusable by default.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Style the Toggle Switch with CSS
&lt;/h3&gt;

&lt;p&gt;Now that the HTML is in place, it’s time to style our toggle switch to make it visually appealing and accessible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* 
  Define color variables using CSS custom properties for easy maintenance and theming.
  This allows for quick updates and supports light/dark mode switching.
*/
:root {
  --color-toggle-bg-default: #fbe4e2; 
  --color-toggle-bg-checked: #cce6d0; 
  --color-toggle-border: rgba(0, 0, 0, 0.2);
  --color-focus-ring: #4c9aff;
  --color-icon-checkmark: #006838;
  --color-icon-cross: #9e1b1b;
}

/* 
  Set up the basic structure of the toggle component. 
  Using flexbox to align items and create spacing between the elements.
*/
.toggle {
  display: flex;
  align-items: center;
  position: relative;
  cursor: pointer; 
  gap: 1rem;
  flex-wrap: wrap;
}

/* 
  Hide the actual checkbox input but keep it accessible.
  Position it absolutely to cover the toggle switch area, making the entire area clickable.
*/
.toggle__input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
}

/* 
  Styling the visual representation of the toggle switch.
  Using CSS variables for sizing and spacing, and applying a smooth transition for state changes.
*/
.toggle__display {
  --offset: 0.25em;
  --diameter: 1.8em;

  display: inline-flex;
  align-items: center;
  justify-content: space-around;
  box-sizing: content-box;
  width: calc(var(--diameter) * 2 + var(--offset) * 2);
  height: calc(var(--diameter) + var(--offset) * 2);
  border: 0.1em solid var(--color-toggle-border);
  position: relative;
  border-radius: 100vw;
  background-color: var(--color-toggle-bg-default);
  transition: background-color 250ms, transform 250ms;
}

/* 
  The knob inside the toggle switch, which moves when toggled.
  Positioned absolutely inside the switch and centered vertically.
*/
.toggle__display::before {
  content: "";
  z-index: 2;
  position: absolute;
  top: 50%;
  inset-inline-start: var(--offset);
  box-sizing: border-box;
  width: var(--diameter);
  height: var(--diameter);
  border: 0.1em solid var(--color-toggle-border);
  border-radius: 50%;
  background-color: white;
  transform: translateX(0) translateY(-50%);
  will-change: transform;
  transition: transform 250ms;
}

/* 
  Focus-visible is used to apply the focus ring only when navigating via keyboard.
  This prevents the focus ring from appearing during mouse clicks, enhancing the visual experience.
*/
.toggle__input:focus-visible + .toggle__display {
  outline: 2px solid var(--color-focus-ring);
  outline-offset: 4px;
}

/* 
  Change the background color when the toggle is checked (active state).
  This applies the green color to indicate the "on" state.
*/
.toggle__input:checked + .toggle__display {
  background-color: var(--color-toggle-bg-checked); 
}

/* 
  Move the knob to the right when the toggle is checked.
  This visually represents the "on" state.
*/
.toggle__input:checked + .toggle__display::before {
  transform: translateX(100%) translateY(-50%);
}

/* 
  Styling for the icons inside the toggle (e.g., checkmark and cross).
  Using inline-block for flexibility and inheriting colors for easy theming.
*/
.toggle__icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  color: inherit;
  fill: currentcolor;
  vertical-align: middle;
  overflow: hidden;
}

/* 
  Specific styling for the "cross" icon (used for "off" state).
  A slightly smaller size and dark red color.
*/
.toggle__icon--cross {
  color: var(--color-icon-cross);
  font-size: 85%;
}

/* 
  Specific styling for the "checkmark" icon (used for "on" state).
  A dark green color that contrasts well with the light green background.
*/
.toggle__icon--checkmark {
  color: var(--color-icon-checkmark);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fsljsdoncd8hgk017qgft.gif" 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%2Fsljsdoncd8hgk017qgft.gif" alt="Animation showing toggle switch in action" width="1196" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ensuring Accessibility in Your Toggle Switch Design
&lt;/h2&gt;

&lt;p&gt;To create an accessible toggle switch, consider the following key areas:&lt;/p&gt;

&lt;h3&gt;
  
  
  Focus State
&lt;/h3&gt;

&lt;p&gt;A clear focus state is crucial. Ensure that your toggle switch’s focus state is distinct and meets the required color contrast ratios. Opt for &lt;code&gt;outline&lt;/code&gt; over &lt;code&gt;box-shadow&lt;/code&gt; for better accessibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clear Labeling
&lt;/h3&gt;

&lt;p&gt;Your toggle switch must have a clear label, either visible or provided via an &lt;code&gt;aria-label&lt;/code&gt; attribute. This helps screen reader users understand the function of the switch.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Safari Switch Attribute
&lt;/h2&gt;

&lt;p&gt;Safari recently introduced an exciting new feature: the input[switch] control, available in Safari 17.4+. This new control supports standardized pseudo-elements like &lt;code&gt;::thumb&lt;/code&gt; and &lt;code&gt;::track&lt;/code&gt; for styling form controls, moving away from the older &lt;code&gt;::-webkit&lt;/code&gt; prefixed elements.&lt;/p&gt;

&lt;p&gt;These advancements in Safari not only make CSS more maintainable but also allow for creative, interactive toggle designs. For example, Apple’s Webkit blog features a Light/Dark mode toggle switch with embedded animations, showcasing the potential of these new features.&lt;/p&gt;

&lt;p&gt;While these updates are promising, always consider the user experience. Toggle switches should be used in scenarios where a setting can be clearly understood as being either “on” or “off.”&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>css</category>
      <category>design</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Create Accessible Charts in React: A Guide to Inclusive Data Visualisation</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Thu, 08 Aug 2024 20:27:42 +0000</pubDate>
      <link>https://dev.to/davedavies/how-to-create-accessible-charts-in-react-a-guide-to-inclusive-data-visualisation-1a4</link>
      <guid>https://dev.to/davedavies/how-to-create-accessible-charts-in-react-a-guide-to-inclusive-data-visualisation-1a4</guid>
      <description>&lt;h2&gt;
  
  
  What is Accessibility in Data Visualisation
&lt;/h2&gt;

&lt;p&gt;Data visualisation is key to communication but we found that many of the popular charting and graph libraries in ReactJS can be inaccessible to people using a screen reader. Accessibility in data visualisation is essential to making sure that all users, regardless of how they consume that data, can understand and interact with charts and graphs on your website. &lt;/p&gt;

&lt;p&gt;We've recently tested out &lt;a href="https://www.highcharts.com/" rel="noopener noreferrer"&gt;Highcharts&lt;/a&gt;, and have been impressed with the tools and features baked into the library to help you create accessible charts in React. &lt;a href="https://shop.highcharts.com/" rel="noopener noreferrer"&gt;Highcharts do charge for a license to use their software&lt;/a&gt;, but the quality and feature-set Highcharts provides outstrips any of the open source alternatives we've tested. &lt;/p&gt;

&lt;p&gt;The biggest accessibility draw for us was the ability for users to navigate through the charts using a keyboard, with the data being read out in a useful and meaningful way. Highcharts have &lt;a href="https://www.highcharts.com/demo" rel="noopener noreferrer"&gt;lots of demos&lt;/a&gt; you can go through, and &lt;a href="https://www.highcharts.com/docs/index" rel="noopener noreferrer"&gt;very thorough documentation&lt;/a&gt;. However we did find their documentation for using Highcharts with React a bit limited, so we've spent some time experimenting and written 3 examples below for building a line chart, a spline chart and a bar chart in React.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing the Right Chart Type
&lt;/h2&gt;

&lt;p&gt;Different chart types serve different data and user needs, making the selection process critical for effective and clear data visualisation. For example, &lt;strong&gt;bar charts&lt;/strong&gt; are excellent for presenting categorical data and comparing values across multiple categories and subcategories. They clearly illustrate the differences between data points, making trends easy to spot. In this chart, each bar represents the sales figures for a different product category across four quarters, allowing for a straightforward comparison of sales performance within each category over time.&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%2F9hwbvoek395q6afr0btt.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%2F9hwbvoek395q6afr0btt.png" alt="Bar chart titled ‘Sales Performance by Product Category,’ illustrating the sales figures (in thousands) for Electronics, Furniture, Clothing, Groceries, and Books across four quarters. The chart shows Groceries as the top-performing category in each quarter, with sales steadily increasing from Q1 to Q4, while Books have the lowest sales figures throughout the year." width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Line charts&lt;/strong&gt; are ideal for visualising data over time, helping to illustrate trends, progressions, or changes in a continuous dataset. They are particularly useful when you need to show the relationship between different data points over time, such as tracking the performance of a product or monitoring the growth in website traffic over a period.&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%2Fwozp746rhknzqoxc5l7z.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%2Fwozp746rhknzqoxc5l7z.png" alt="A line chart example, titled ‘Monthly Sales Data’ depicting example sales data (in thousands) across each month of the year." width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spline charts&lt;/strong&gt;, a variation of line charts, offer a smoother curve by using &lt;em&gt;splines&lt;/em&gt; (pronounced &lt;strong&gt;/splaɪn/&lt;/strong&gt; - rhymes with line) instead of straight lines to connect data points. This type of chart is good for emphasising the smoothness of transitions or when the data represents a pattern that naturally follows a curved pattern, such as temperature changes throughout a day.&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%2F1a2zlvdkjh41cbaa8t0r.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%2F1a2zlvdkjh41cbaa8t0r.png" alt="Spline chart titled ‘Temperature Changes Throughout the Day’ depicting temperature variations (in °C) from midnight to midnight. The chart shows a low of 12.5°C at 6 AM and a peak of 23.2°C at 3 PM, illustrating how the temperature rises during the morning and early afternoon and gradually cools down towards the evening." width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choosing the right chart type is essential for clear and effective data visualization. Highcharts provides a wide range of chart types, including bar charts, line charts, spline charts, and scatter plots (plus many many more chart types), enabling you to select the best option tailored to your specific data and the insights you wish to convey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Accessible Charts in React with Highcharts
&lt;/h2&gt;

&lt;p&gt;Highcharts makes it easy to create accessible charts. Here’s how to create a simple accessible line chart, spline chart &amp;amp; bar chart in a React application:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In an existing React application, install the &lt;code&gt;highcharts&lt;/code&gt; and &lt;code&gt;highcharts-react-official&lt;/code&gt; packages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install highcharts highcharts-react-official
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create a line chart component:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import Highcharts from 'highcharts';
import HighchartsReact from 'highcharts-react-official';
import HighchartsAccessibility from 'highcharts/modules/accessibility';

// Initialise HighchartsAccessibility module
HighchartsAccessibility(Highcharts);

export const AccessibleLineChart = () =&amp;gt; {
  const options = {
    title: {
      text: 'Monthly Sales Data'
    },
    xAxis: {
      categories: [
        'January', 'February', 'March', 'April', 'May', 'June', 
        'July', 'August', 'September', 'October', 'November', 'December'
      ],
      title: {
        text: 'Month'
      }
    },
    yAxis: {
      title: {
        text: 'Sales (in thousands)'
      }
    },
    series: [
      {
        name: 'Sales',
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
      }
    ],
    accessibility: {
      enabled: true,
      description: 'This chart shows the monthly sales data over a year, with sales peaking in September and October.'
    }
  };

  return (
    &amp;lt;HighchartsReact highcharts={Highcharts} options={options} /&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this line chart example, the &lt;code&gt;HighchartsAccessibility&lt;/code&gt; module is imported and initialised to enable accessibility features. The accessibility option in the chart configuration provides a description for screen readers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a spline chart component:
&lt;/h3&gt;

&lt;p&gt;You'll see in the example above that we're not actually telling Highcharts to return a line chart. Line charts seem to be the default chart type, so lets now get a Spline chart rendering instead.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import Highcharts from 'highcharts';
import HighchartsReact from 'highcharts-react-official';
import HighchartsAccessibility from 'highcharts/modules/accessibility';

// Initialise HighchartsAccessibility module
HighchartsAccessibility(Highcharts);

export const AccessibleSplineChart = () =&amp;gt; {
  const options = {
    chart: {
      type: 'spline'
    },
    title: {
      text: 'Temperature Changes Throughout the Day',
    },
    xAxis: {
      categories: [
        '12 AM', '1 AM', '2 AM', '3 AM', '4 AM', '5 AM', '6 AM', '7 AM', '8 AM', '9 AM', 
        '10 AM', '11 AM', '12 PM', '1 PM', '2 PM', '3 PM', '4 PM', '5 PM', '6 PM', '7 PM', 
        '8 PM', '9 PM', '10 PM', '11 PM'
      ],
      title: {
        text: 'Time of Day',
      },
    },
    yAxis: {
      title: {
        text: 'Temperature (°C)',
      },
    },
    series: [
      {
        name: 'Temperature',
        data: [
          14.0, 13.8, 13.5, 13.2, 13.0, 12.8, 12.5, 13.0, 14.5, 16.5, 
          18.0, 19.5, 21.0, 22.5, 23.0, 23.2, 22.8, 21.5, 19.8, 18.2, 
          17.0, 16.0, 15.2, 14.5
        ],
      },
    ],
    accessibility: {
      enabled: true,
      description:
        'This spline chart shows temperature variations throughout a day, with the lowest temperature observed early in the morning and the highest in the early afternoon.',
    },
  };

  return (
    &amp;lt;HighchartsReact highcharts={Highcharts} options={options} /&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main difference here is that in the &lt;code&gt;options&lt;/code&gt; object, we're defining a &lt;code&gt;chart&lt;/code&gt; property with a type &lt;code&gt;key&lt;/code&gt; set to &lt;code&gt;spline&lt;/code&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Create a bar chart component:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import Highcharts from 'highcharts';
import HighchartsReact from 'highcharts-react-official';
import HighchartsAccessibility from 'highcharts/modules/accessibility';

// Initialise HighchartsAccessibility module
HighchartsAccessibility(Highcharts);

export const AccessibleBarChart = () =&amp;gt; {
  const options = {
    chart: {
      type: 'bar'
    },
    title: {
      text: 'Sales Performance by Product Category',
    },
    xAxis: {
      categories: ['Electronics', 'Furniture', 'Clothing', 'Groceries', 'Books'],
      title: {
        text: 'Product Categories',
      },
    },
    yAxis: {
      title: {
        text: 'Sales (in thousands)',
      },
    },
    series: [
      {
        name: 'Q1',
        data: [150, 200, 100, 250, 80],
      },
      {
        name: 'Q2',
        data: [170, 240, 120, 280, 90],
      },
      {
        name: 'Q3',
        data: [180, 260, 140, 300, 100],
      },
      {
        name: 'Q4',
        data: [200, 280, 160, 320, 120],
      },
    ],
    accessibility: {
      enabled: true,
      description:
        'This bar chart compares sales performance across different product categories over four quarters, with the highest sales consistently seen in Groceries and the lowest in Books.',
    },
  };

  return (
    &amp;lt;HighchartsReact highcharts={Highcharts} options={options} /&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this bar chart example, once again all we need to update are the properties in the &lt;code&gt;options&lt;/code&gt; object. This time we're defining a &lt;code&gt;type: 'bar'&lt;/code&gt;, but you might also notice that we're returning 5 sets of data  this time in the &lt;code&gt;series&lt;/code&gt; property. Highcharts manages multiple datasets with ease, and still manages to organise that data in an intuitive way for screenreader users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chart Design Best Practices
&lt;/h2&gt;

&lt;p&gt;We always keep 3 points in mind when designing accessible charts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility:&lt;/strong&gt; Design charts with screen reader support and high-contrast colours to accommodate all users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity:&lt;/strong&gt; Keep charts straightforward and easy to interpret, with clear and concise labels and annotations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Colour Considerations:&lt;/strong&gt; Avoid relying solely on colour to convey information, ensuring the data is accessible to users with colour vision deficiencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Creating accessible charts is key to all users being able to read and interact with your visualisations. By following best practices developers can create clear, accessible &amp;amp; useful charts.&lt;/p&gt;

&lt;p&gt;Have you used Highcharts, or found another React charting library which meets your accessibility needs? Let us know in the comments below!&lt;/p&gt;

</description>
      <category>react</category>
      <category>a11y</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Can AI be used to write good descriptive alt text for images in 2024?</title>
      <dc:creator>Dave</dc:creator>
      <pubDate>Fri, 02 Aug 2024 08:07:57 +0000</pubDate>
      <link>https://dev.to/davedavies/can-ai-be-used-to-write-good-descriptive-alt-text-for-images-in-2024-36oh</link>
      <guid>https://dev.to/davedavies/can-ai-be-used-to-write-good-descriptive-alt-text-for-images-in-2024-36oh</guid>
      <description>&lt;h2&gt;
  
  
  The Importance of Alt Text for Accessibility and SEO
&lt;/h2&gt;

&lt;p&gt;Alt text on images is an absolute basic of digital accessibility. Alt text (sometimes referred to as alt tags) is the alternative text, or text description, of an image providing some context of the image to users who cannot see it. This may include blind or low vision users, situations where the image doesn’t load or is broken, and also includes search engine crawlers. Alt text serves as descriptive text to convey the meaning and context of visual content in a digital setting.&lt;/p&gt;

&lt;p&gt;Here in the UK, approximately 4.8% of UK adults have a vision disability that often requires the &lt;a href="https://commonslibrary.parliament.uk/research-briefings/cbp-9602/" rel="noopener noreferrer"&gt;use of assistive technology for accessing the web&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Understanding image content poses a critical challenge for individuals with visual impairments, which should always be your first consideration, but providing good quality alt text - and indeed providing a highly accessible website - boosts your SEO efforts and will improve the experience for all of your users (not to mention making sure you're complient to ADA or the &lt;a href="https://www.deque.com/blog/european-accessibility-act-eaa-top-20-key-questions-answered/" rel="noopener noreferrer"&gt;incoming EAA&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Alt Text Provides Context for Humans
&lt;/h2&gt;

&lt;p&gt;So providing alt text is a win-win for everyone, but writing good quality alt text is still hard, and so many websites still often have poorly written alt text or fail to use it entirely, leaving an entire keyboard and assistive technology user group frustrated or left out. According to &lt;a href="https://webaim.org/projects/million/#alttext" rel="noopener noreferrer"&gt;WebAIM&lt;/a&gt;, assistive technology &lt;strong&gt;users can expect a third of the images on popular home pages to have missing, questionable, or repetitive alternative text&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is a shocking statistic to have in 2024, so, with the rise of AI and Natural Language Models, can we now offload the role of writing alt text to a bot?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR - No.&lt;/strong&gt; While AI can provide some basic context and provide a good start to generating alt text, a human is still needed to ‘sense-check’ the image and provide more context to the alt text that AI isn’t able to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qualities of Good Alt Text
&lt;/h2&gt;

&lt;p&gt;Good alt text should be specific, concise, and relevant to the content and context of the image. It should avoid redundancy by not repeating information already provided by surrounding text. Additionally, it should capture the essential details without being overly descriptive.&lt;/p&gt;

&lt;p&gt;In short: to write good alt text, think about how you would describe that image to a friend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing AI Generated Alt Text Generators
&lt;/h2&gt;

&lt;p&gt;We tested multiple different AI alt text generators for existing images, and settled on the following three for our tests: &lt;a href="https://alttext.ai/" rel="noopener noreferrer"&gt;AltText.ai&lt;/a&gt;, &lt;a href="https://ahrefs.com/writing-tools/img-alt-text-generator" rel="noopener noreferrer"&gt;Ahrefs Free AI Image Alt Text Generator&lt;/a&gt;, and &lt;a href="https://protoolio.com/alt-text-generator" rel="noopener noreferrer"&gt;Protoolio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Some of these AI alt text generator sites offered commission and affiliate links, but we aren’t using any affiliate links for transparency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criteria for choosing the tools
&lt;/h2&gt;

&lt;p&gt;There are quite a lot of tools which claim to generate quality alt text using AI, but we wanted to narrow down our selection. The tools we chose matched the following criteria:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It needs to be generally available to everyone. There exist some Shopify and Wordpress-specific tools which we didn't test.&lt;/li&gt;
&lt;li&gt;It needs a free tier, and we didn’t want to create an account.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The images we tested
&lt;/h2&gt;

&lt;p&gt;We chose 3 images to test the AI alt text generators. The images were selected to cover a range of scenarios and complexities to see how well the AI alt text generators could handle them. The images were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.pexels.com/photo/seashore-269583/" rel="noopener noreferrer"&gt;A photograph of a beach sunset&lt;/a&gt; from Pixabay (we thought the AI would find this one easy)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Taylor_Swift_at_the_2023_MTV_Video_Music_Awards_4.png/1024px-Taylor_Swift_at_the_2023_MTV_Video_Music_Awards_4.png" rel="noopener noreferrer"&gt;A photograph of Taylor Swift&lt;/a&gt; at the 2023 MTV Video Music Awards from Wikipedia&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://moz.com/images/learn/Alt-Text-Image-V2-Learn-Center-CM-270.png?w=1000&amp;amp;h=1600&amp;amp;auto=compress%2Cformat&amp;amp;fit=crop&amp;amp;dm=1703106052&amp;amp;s=8a35c2b78cc37ba328c2e40cca7fa72d" rel="noopener noreferrer"&gt;An infographic from Moz&lt;/a&gt; explaining the importance of alt text&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The beach sunset photo from Pixabay
&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%2Fojaokk5fu6jv3y3r68c6.jpg" 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%2Fojaokk5fu6jv3y3r68c6.jpg" alt="A heart shape drawn in the sand on a beach at sunset, with gentle waves in the foreground and a colorful sky with clouds." width="500" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI generated results:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AltText.ai:&lt;/strong&gt; A heart shape drawn in the sand on a beach at sunset, with gentle waves in the foreground and a colorful sky with clouds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ahrefs:&lt;/strong&gt; A heart drawn on sandy beach at sunset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protoolio:&lt;/strong&gt; Serene beach at sunset with a heart drawn in the sand. Orange and pink hues illuminate the sky, reflecting on gentle ocean waves. Romantic and peaceful seaside scene.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Taylor Swift photo
&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%2F5sbhaxooaqekevudno7d.jpg" 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%2F5sbhaxooaqekevudno7d.jpg" alt="Taylor Swift at the 2023 MTV awards" width="250" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI generated results&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AltText.ai:&lt;/strong&gt; Person with blonde hair and bangs wearing a black dress and multiple layered necklaces, standing against a colorful and dark background.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ahrefs:&lt;/strong&gt; Taylor Swift's 'reputation' album cover with a snake, symbolizing negativity and controversy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protoolio:&lt;/strong&gt; Blonde woman wearing a black dress and layered necklaces at a red carpet event with colorful backdrop.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Infographic from Moz
&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%2Fn4ixkb16y7wc9yknxs40.jpg" 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%2Fn4ixkb16y7wc9yknxs40.jpg" alt="Infographic titled “How does alt text provide context for humans?” explaining benefits: aids low/vision-impaired users, facilitates screen readers, and offers context for image load issues." width="208" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI generated results&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AltText.ai:&lt;/strong&gt; Infographic titled “How does alt text provide context for humans?” explaining benefits: aids low/vision-impaired users, facilitates screen readers, and offers context for image load issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ahrefs:&lt;/strong&gt; Alt text: “Image showing various examples of alt text, demonstrating how it provides context for humans.”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protoolio:&lt;/strong&gt; Informative graphic by Moz explaining the importance of alt text in providing context for humans, particularly for individuals with low or impaired vision, users of screen readers, and addressing image load issues.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;We were actually surprised with how well some of the results came out. Clearly, AI has come a long way, and Generative Language Models are able to create fairly accurate and useful alt text. However, the nuances and specific contexts still require human oversight to ensure the alt text is truly beneficial for all users, especially those relying on assistive technologies.&lt;/p&gt;

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