<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/css" href="https://www.aaron-gustafson.com/c/feed.min.css" ?><feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:amg="https://www.aaron-gustafson.com.com/amg-dtd/"><title>Aaron Gustafson: Latest Links</title><subtitle>The latest 20 links.</subtitle><id>https://www.aaron-gustafson.com</id><link href="https://www.aaron-gustafson.com/feeds/latest-links.xml" rel="self"/><link href="https://www.aaron-gustafson.com"/><author><name>Aaron Gustafson</name><uri>https://www.aaron-gustafson.com</uri></author><updated>2026-05-20T21:35:36Z</updated><entry><id>https://www.aaron-gustafson.com/notebook/links/artificial-intelligence-has-one-chance-to-get-accessibility-right/</id><title type="html"><![CDATA[Artificial Intelligence Has One Chance To Get Accessibility Right]]></title><link href="https://www.aaron-gustafson.com/notebook/links/artificial-intelligence-has-one-chance-to-get-accessibility-right/" rel="alternate" type="text/html" /><link href="https://www.forbes.com/sites/keelycatwells/2026/05/03/artificial-intelligence-has-one-chance-to-get-accessibility-right/" rel="related" type="text/html" /><published>2026-05-20T21:35:36Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a pointed reminder that AI trained on an inaccessible web will reproduce that inaccessibility at scale — unless we intervene thoughtfully and intentionally.</p><p>That’s the part too many people seem eager to hand-wave away. These systems are not arriving with some magically enlightened understanding of disability, inclusion, or accessible implementation. They’re being trained on the web as it is, which means they are taking all of its worst practices as truth.</p><p>If we want AI-assisted coding to improve outcomes rather than exponentially accelerate harm, accessibility must be foundational.</p>]]></content><amg:twitter><![CDATA[AI is inheriting the web’s accessibility debt. If we want a different outcome, we need to change the training data, the defaults, and the incentives now.]]></amg:twitter><amg:summary><![CDATA[<p>A pointed reminder that if AI is trained on an inaccessible web, it will reproduce that inaccessibility at scale unless we intervene intentionally.</p>]]></amg:summary><summary type="html"><![CDATA[<p>A pointed reminder that if AI is trained on an inaccessible web, it will reproduce that inaccessibility at scale unless we intervene intentionally.</p>]]></summary><category term="accessibility" /><category term="AI/ML" /><category term="inclusive design" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://imageio.forbes.com/specials-images/imageserve/69f5669f2264431211d8f7b1/0x0.jpg?format=jpg&amp;height=900&amp;width=1600&amp;fit=bounds" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/</id><title type="html"><![CDATA[Building a general-purpose accessibility agent—and what we learned in the process]]></title><link href="https://www.aaron-gustafson.com/notebook/links/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/" rel="alternate" type="text/html" /><link href="https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/" rel="related" type="text/html" /><published>2026-05-20T21:33:33Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This post is a detailed and useful look at GitHub’s accessibility agent experiment.</p><p>It dovetails nicely with <a href="/notebook/identifying-accessibility-data-gaps-in-codegen-models/">my post on identifying accessibility data gaps in codegen models</a> and <a href="/notebook/optimizing-your-codebase-for-ai-coding-agents/">my follow-up on optimizing codebases for AI coding agents</a>. The former argued that these systems are already biased toward reproducing the web’s accessibility failures; the latter argued that if we want agents to be useful, we need to give them clearer structure, better documentation, and better examples.</p><p>What I especially appreciate here is how grounded the whole effort seems to be. One takeaway is that you can’t just wave your hands and tell an LLM to “do accessibility”; you need concrete guidance, clear expectations, and solid examples. Another is that accessibility work is too contextual to treat as a simple linting problem. And, perhaps most importantly, this is a good reminder that if we want AI systems to help improve accessibility, we have to be intentional about the data, patterns, and codebases we are feeding them. Otherwise they’ll just automate the same mistakes faster.</p>]]></content><amg:twitter><![CDATA[A useful look at GitHub’s accessibility agent experiment and what it takes to make these systems genuinely helpful rather than merely busy.]]></amg:twitter><amg:summary><![CDATA[<p>A useful look at GitHub’s accessibility agent experiment and a nice complement to my recent posts on accessibility data gaps in codegen models and optimizing codebases for AI coding agents.</p>]]></amg:summary><summary type="html"><![CDATA[<p>A useful look at GitHub’s accessibility agent experiment and a nice complement to my recent posts on accessibility data gaps in codegen models and optimizing codebases for AI coding agents.</p>]]></summary><category term="accessibility" /><category term="AI/ML" /><category term="software development" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.blog/wp-content/uploads/2026/01/generic-github-copilot-blocks-logo.png?fit=1920%2C1080" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/ai-companies-will-fail-we-can-salvage-something-from-the-wreckage/</id><title type="html"><![CDATA[AI companies will fail. We can salvage something from the wreckage]]></title><link href="https://www.aaron-gustafson.com/notebook/links/ai-companies-will-fail-we-can-salvage-something-from-the-wreckage/" rel="alternate" type="text/html" /><link href="https://www.theguardian.com/us-news/ng-interactive/2026/jan/18/tech-ai-bubble-burst-reverse-centaur" rel="related" type="text/html" /><published>2026-04-29T12:40:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>Cory Doctorow offers a characteristically sharp critique of the AI bubble, but what I found most useful here is his framing of how these systems are actually meant to be deployed: not to empower workers, but to turn them into “reverse centaurs.”</p><p>That framing cuts through a lot of the marketing nonsense. The promise is always that AI will help people do their jobs better. The deployment story, far too often, is that a human gets stuck reviewing machine output at impossible speed while absorbing the blame when things go wrong. That’s not augmentation; it’s a liability dump.</p>]]></content><amg:twitter><![CDATA[This is a sharp and useful read from Cory Doctorow, especially his framing of workers being turned into ‘reverse centaurs’ and accountability sinks.]]></amg:twitter><amg:summary><![CDATA[<p>Cory Doctorow offers a characteristically sharp critique of the AI bubble, but what I found most useful here is his framing of how these systems are actually meant to be deployed: not to empower workers, but to turn them into ‘reverse centaurs.’</p>]]></amg:summary><summary type="html"><![CDATA[<p>Cory Doctorow offers a characteristically sharp critique of the AI bubble, but what I found most useful here is his framing of how these systems are actually meant to be deployed: not to empower workers, but to turn them into ‘reverse centaurs.’</p>]]></summary><category term="AI/ML" /><category term="society" /><category term="the future" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/accessible-faux-nested-interactive-controls/</id><title type="html"><![CDATA[Accessible faux-nested interactive controls]]></title><link href="https://www.aaron-gustafson.com/notebook/links/accessible-faux-nested-interactive-controls/" rel="alternate" type="text/html" /><link href="https://piccalil.li/blog/accessible-faux-nested-interactive-controls/" rel="related" type="text/html" /><published>2026-04-29T12:35:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>Eric Bailey walks through a clever pattern for getting the feel of nested interactive controls without sacrifice the platform’s semantics to get there.</p><p>In this piece, Eric digs into accessible name length, accidental activation, stacking context weirdness, and progressive enhancement too. That kind of thoroughness matters because patterns like this can go sideways in a hurry when folks cargo-cult only the CSS and skip the reasoning.</p>]]></content><amg:twitter><![CDATA[This is a clever pattern from Eric Bailey: keep the larger click target, keep the secondary actions, and don’t sacrifice semantics to get there.]]></amg:twitter><amg:summary><![CDATA[<p>Eric Bailey walks through a clever pattern for getting the feel of nested interactive controls without actually violating the platform’s semantics.</p>]]></amg:summary><summary type="html"><![CDATA[<p>Eric Bailey walks through a clever pattern for getting the feel of nested interactive controls without actually violating the platform’s semantics.</p>]]></summary><category term="accessibility" /><category term="CSS" /><category term="progressive enhancement" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://piccalil.b-cdn.net/api/og-image?slug=accessible-faux-nested-interactive-controls/" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/ai-assisted-coding-transforms-pdf-to-web-app-using-nys-design-system/</id><title type="html"><![CDATA[AI-assisted coding transforms PDF to web app using NYS Design System]]></title><link href="https://www.aaron-gustafson.com/notebook/links/ai-assisted-coding-transforms-pdf-to-web-app-using-nys-design-system/" rel="alternate" type="text/html" /><link href="https://www.linkedin.com/posts/plasticmind_designsystem-ai-civictech-share-7420295564430450688-0RM5/" rel="related" type="text/html" /><published>2026-04-29T12:30:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a compelling illustration of what becomes possible when a design system is structured well enough to be usable by both people and machines.</p><p>What’s exciting to me here is not “AI turned a PDF into an app” so much as what made that possible: components, tokens, utilities, and enough design-system clarity to give the model something useful to work with. That’s a big part of the story so many people miss. If your system is inconsistent, vague, or poorly documented, AI is just going to amplify that mess.</p>]]></content><amg:twitter><![CDATA[A well-structured design system is not just a delivery mechanism for consistency; it’s also critical infrastructure for AI-assisted coding.]]></amg:twitter><amg:summary><![CDATA[<p>This is a compelling illustration of what becomes possible when a design system is structured well enough to be usable by both people and machines.</p>]]></amg:summary><summary type="html"><![CDATA[<p>This is a compelling illustration of what becomes possible when a design system is structured well enough to be usable by both people and machines.</p>]]></summary><category term="AI/ML" /><category term="pattern libraries" /><category term="web development" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://static.licdn.com/aero-v1/sc/h/c45fy346jw096z9pbphyyhdz7" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/modern-css-feature-support-for-shadow-dom/</id><title type="html"><![CDATA[Modern CSS Feature Support For Shadow DOM]]></title><link href="https://www.aaron-gustafson.com/notebook/links/modern-css-feature-support-for-shadow-dom/" rel="alternate" type="text/html" /><link href="https://shadow-dom-css.adobe.com/" rel="related" type="text/html" /><published>2026-04-29T12:25:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>Adobe has produced a tremendously useful resource for anyone working with Shadow DOM and trying to understand where modern CSS features actually stand in practice, not just in theory.</p><p>What I especially like here is the framing: not simply “supported” or “unsupported,” but whether a feature is actually advisable in Shadow DOM, how it crosses boundaries, and where browsers still disagree. That’s the kind of nuance you need when you’re building real components instead of admiring specs from afar.</p>]]></content><amg:twitter><![CDATA[This is exactly the kind of resource the web platform needs more of: practical, test-backed guidance on how modern CSS features actually behave with Shadow DOM.]]></amg:twitter><amg:summary><![CDATA[<p>This is a tremendously useful resource for anyone working with Shadow DOM and trying to understand where modern CSS features actually stand in practice, not just in theory.</p>]]></amg:summary><summary type="html"><![CDATA[<p>This is a tremendously useful resource for anyone working with Shadow DOM and trying to understand where modern CSS features actually stand in practice, not just in theory.</p>]]></summary><category term="CSS" /><category term="web components" /><category term="developer tools" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/ai-is-locking-people-out-at-scale/</id><title type="html"><![CDATA[AI is locking people out. At Scale.]]></title><link href="https://www.aaron-gustafson.com/notebook/links/ai-is-locking-people-out-at-scale/" rel="alternate" type="text/html" /><link href="https://conesible.de/wab/" rel="related" type="text/html" /><published>2026-04-29T12:20:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>An important and sharply argued framing of AI-generated accessibility failures as a civil-rights problem, not just a quality-control issue.</p><blockquote><p>This is not a minor bug trend. It is a systematic civil-rights failure that has now found its way into software as a whole, through lightning-fast adoption of AI systems that are trained on over 20 years of institutional barriers.</p></blockquote><p>The numbers here are bad enough on their own, but what makes this especially troubling is where these systems are being deployed: education, healthcare, finance, employment, and other places people can’t simply opt out of. That’s why I appreciate how direct this project is about accountability. If we automate interface generation without putting accessibility at the center, we’re automating exclusion.</p>]]></content><amg:twitter><![CDATA[This is the right framing: inaccessible AI-generated interfaces are not a minor bug trend; they’re a civil-rights failure at scale.]]></amg:twitter><amg:summary><![CDATA[<p>An important and sharply argued framing of AI-generated accessibility failures as a civil-rights problem, not just a quality-control issue.</p>]]></amg:summary><summary type="html"><![CDATA[<p>An important and sharply argued framing of AI-generated accessibility failures as a civil-rights problem, not just a quality-control issue.</p>]]></summary><category term="accessibility" /><category term="AI/ML" /><category term="society" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/the-incredible-overcomplexity-of-the-shadcn-radio-button/</id><title type="html"><![CDATA[The Incredible Overcomplexity of the Shadcn Radio Button]]></title><link href="https://www.aaron-gustafson.com/notebook/links/the-incredible-overcomplexity-of-the-shadcn-radio-button/" rel="alternate" type="text/html" /><link href="https://paulmakeswebsites.com/writing/shadcn-radio-button/" rel="related" type="text/html" /><published>2026-04-29T12:15:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p><em>It’s just a radio button.</em></p><p>Paul’s teardown is a good illustration of how far modern front-end practice can drift from the simple, robust platform primitives we already have.</p><blockquote><p>If you can use a native HTML element or attribute with the semantics and behavior you require already built in, instead of re-purposing an element and adding an ARIA role, state or property to make it accessible, then do so.</p></blockquote><p>Reading this reminded me of a pair of pieces I’ve linked to before: <a href="/links/2015-09-01-making-radio-buttons-and-checkboxes-easier-to-use/">Making radio buttons and checkboxes easier to use</a> and <a href="/links/2022-12-11-there-can-be-only-one-options-for-building-choose-one-fields/">There can be only one: Options for building “choose one” fields</a>.</p><p>We have spent an astonishing amount of time and energy overcomplicating a control HTML already gives us, often in the name of developer experience or styleability. More often than not, all we’re really doing is trading resilience for ceremony.</p>]]></content><amg:twitter><![CDATA[It’s just a radio button. We really don’t need two component libraries, ARIA role remapping, and client-side JS to do what HTML already does.]]></amg:twitter><amg:summary><![CDATA[<p>It’s just a radio button. Paul’s teardown is a good illustration of how far modern front-end practice can drift from the simple, robust platform primitives we already have.</p>]]></amg:summary><summary type="html"><![CDATA[<p>It’s just a radio button. Paul’s teardown is a good illustration of how far modern front-end practice can drift from the simple, robust platform primitives we already have.</p>]]></summary><category term="HTML" /><category term="accessibility" /><category term="web development" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/accessibility-in-the-end-of-deterministic-design-again/</id><title type="html"><![CDATA[Accessibility in the End of Deterministic Design (Again)]]></title><link href="https://www.aaron-gustafson.com/notebook/links/accessibility-in-the-end-of-deterministic-design-again/" rel="alternate" type="text/html" /><link href="https://www.deque.com/axe-con/sessions/accessibility-in-the-end-of-deterministic-design-again/" rel="related" type="text/html" /><published>2026-04-29T12:10:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>The framing Anna Cook uses for her talk is an important one: accessibility isn’t something generative interfaces will magically solve; it’s the groundwork we need in order to make those systems trustworthy at all.</p><p>I also appreciate the callback in the title. We’ve been here before. The particulars may be new, but the core challenge is familiar: how do we build resilient, inclusive systems when the output is fluid, personalized, or otherwise beyond a designer’s exact control? Accessibility is not a bolt-on answer to that question; it’s where the answer has to begin.</p>]]></content><amg:twitter><![CDATA[Accessibility isn’t something generative interfaces will magically solve; it’s the groundwork we need in order to make them trustworthy at all.]]></amg:twitter><amg:summary><![CDATA[<p>Accessibility isn’t something generative interfaces will magically solve; it’s the groundwork we need in order to make those systems trustworthy at all.</p>]]></amg:summary><summary type="html"><![CDATA[<p>Accessibility isn’t something generative interfaces will magically solve; it’s the groundwork we need in order to make those systems trustworthy at all.</p>]]></summary><category term="accessibility" /><category term="AI/ML" /><category term="inclusive design" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/making-keyboard-navigation-effortless/</id><title type="html"><![CDATA[Making keyboard navigation effortless]]></title><link href="https://www.aaron-gustafson.com/notebook/links/making-keyboard-navigation-effortless/" rel="alternate" type="text/html" /><link href="https://blogs.windows.com/msedgedev/2026/03/05/making-keyboard-navigation-effortless/" rel="related" type="text/html" /><published>2026-04-29T12:05:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>I’m very excited by <code>focusgroup</code>: a declarative way to handle a bunch of keyboard-navigation patterns that currently require a lot of brittle JavaScript.</p><p>This is exactly the sort of thing I want to see the platform absorb. We’ve spent years rebuilding common interaction patterns with roving <code>tabindex</code>, focus management, and piles of event handling code. If the browser can take more of that on, we get lighter pages, more consistent experiences, and fewer opportunities for developers to get keyboard support wrong.</p>]]></content><amg:twitter><![CDATA[I’m very excited by `focusgroup`: less bespoke roving-`tabindex` code, more consistent keyboard UX, and a healthier platform overall.]]></amg:twitter><amg:summary><![CDATA[<p>I’m very excited by <code>focusgroup</code>: a declarative way to handle a bunch of keyboard-navigation patterns that currently require a lot of brittle JavaScript.</p>]]></amg:summary><summary type="html"><![CDATA[<p>I’m very excited by <code>focusgroup</code>: a declarative way to handle a bunch of keyboard-navigation patterns that currently require a lot of brittle JavaScript.</p>]]></summary><category term="accessibility" /><category term="HTML" /><category term="web standards" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/the-webaim-million-the-2026-report-on-the-accessibility-of-the-top-1000000-home-pages/</id><title type="html"><![CDATA[The WebAIM Million: The 2026 report on the accessibility of the top 1,000,000 home pages]]></title><link href="https://www.aaron-gustafson.com/notebook/links/the-webaim-million-the-2026-report-on-the-accessibility-of-the-top-1000000-home-pages/" rel="alternate" type="text/html" /><link href="https://webaim.org/projects/million/" rel="related" type="text/html" /><published>2026-04-29T12:00:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>The latest WebAIM Million is a sobering reminder that, at scale, the web is getting more complex faster than it is getting more accessible.</p><p>There are a lot of grim numbers in here, but the one that really sticks with me is how many of the same, eminently-fixable issues continue to dominate year after year. We’re still talking about contrast, missing labels, empty buttons, and missing alt text. In other words, this is not a story about edge cases. It’s a story about fundamentals.</p>]]></content><amg:twitter><![CDATA[The latest WebAIM Million is not encouraging: more complexity, more ARIA, and more detectable barriers across the top million home pages.]]></amg:twitter><amg:summary><![CDATA[<p>The latest WebAIM Million is a sobering reminder that, at scale, the web is getting more complex faster than it is getting more accessible.</p>]]></amg:summary><summary type="html"><![CDATA[<p>The latest WebAIM Million is a sobering reminder that, at scale, the web is getting more complex faster than it is getting more accessible.</p>]]></summary><category term="accessibility" /><category term="the web" /><category term="industry" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/under-the-hood-of-mdns-new-frontend/</id><title type="html"><![CDATA[Under the hood of MDN’s new frontend]]></title><link href="https://www.aaron-gustafson.com/notebook/links/under-the-hood-of-mdns-new-frontend/" rel="alternate" type="text/html" /><link href="https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/" rel="related" type="text/html" /><published>2026-04-24T12:05:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a fascinating look at how MDN rebuilt its frontend around server-rendered HTML, web components, and a clear understanding of where interactivity actually belongs (and how to deliver it).</p><p>I particularly appreciated how plainly this post describes a mismatch a lot of teams create for themselves: wrapping largely-static content in an app shell, then shipping a pile of JavaScript just to re-assert what the server already knew. MDN’s new approach feels refreshing, despite being grounded in age-old best practices: Keep the content first-class, treat interactivity as optional (and isolated), and only ship what the page actually needs.</p><p>There’s a lot to like here, but more than anything I love seeing MDN embrace an architecture that’s truly aligned with the platform it documents.</p>]]></content><amg:twitter><![CDATA[This is a fascinating architecture write-up from MDN: fewer abstractions, less shipped JavaScript, and interactivity where it actually belongs.]]></amg:twitter><amg:summary><![CDATA[<p>This is a fascinating look at how MDN rebuilt its frontend around server-rendered HTML, web components, and a clear understanding of where interactivity actually belongs.</p>]]></amg:summary><summary type="html"><![CDATA[<p>This is a fascinating look at how MDN rebuilt its frontend around server-rendered HTML, web components, and a clear understanding of where interactivity actually belongs.</p>]]></summary><category term="web components" /><category term="web development" /><category term="progressive enhancement" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/endgame-for-the-open-web/</id><title type="html"><![CDATA[Endgame for the Open Web]]></title><link href="https://www.aaron-gustafson.com/notebook/links/endgame-for-the-open-web/" rel="alternate" type="text/html" /><link href="https://www.anildash.com/2026/03/27/endgame-open-web/" rel="related" type="text/html" /><published>2026-04-24T12:00:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a sobering but necessary reminder that the open web’s current crisis is not theoretical; it’s already playing out across publishing, open source, standards, and shared infrastructure.</p><p>I appreciate how clearly Anil connects dots that too many people are still treating as separate problems. This isn’t just about AI summaries siphoning traffic from publishers or slop code drowning maintainers or bad actors ignoring long-standing norms like <code>robots.txt</code>. It’s all of those things at once. The through-line is extraction: taking value from open systems without giving anything back, then undermining the very ecosystems that made that extraction possible in the first place.</p><blockquote><p>The good of the web only exists because of the openness of the web. They can’t just keep on taking and taking without expecting people to finally draw a line and saying “enough”.</p></blockquote><p>If you care about the web as a public good, this post is worth your time.</p>]]></content><amg:twitter><![CDATA[This is a tough read, but an important one: the attacks on the open web are not abstract anymore.]]></amg:twitter><amg:summary><![CDATA[<p>A sobering but necessary reminder that the open web’s current crisis is not theoretical; it’s already playing out across publishing, open source, standards, and shared infrastructure.</p>]]></amg:summary><summary type="html"><![CDATA[<p>A sobering but necessary reminder that the open web’s current crisis is not theoretical; it’s already playing out across publishing, open source, standards, and shared infrastructure.</p>]]></summary><category term="the web" /><category term="AI/ML" /><category term="society" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.anildash.com/images/tunnel.jpg" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/slidevars/</id><title type="html"><![CDATA[slideVars]]></title><link href="https://www.aaron-gustafson.com/notebook/links/slidevars/" rel="alternate" type="text/html" /><link href="https://codepen.github.io/slideVars/" rel="related" type="text/html" /><published>2026-04-23T12:20:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a lovely little utility from Chris Coyier that turns CSS custom properties into a live control panel.</p><p>It’s one of those tools that immediately makes me want to crack open a demo and start playing. What’s especially nice is that it doesn’t ask you to invent some parallel configuration universe if you don’t want to; it can just inspect the variables you already have and give you a UI for experimenting with them. That makes it feel less like a framework and more like a really practical enhancement to the way many of us already work.</p>]]></content><amg:twitter><![CDATA[slideVars feels like the kind of tiny, practical tool that makes design and front-end iteration a whole lot more fun.]]></amg:twitter><amg:summary><![CDATA[<p>A lovely little utility from Chris Coyier that turns CSS custom properties into a live control panel.</p>]]></amg:summary><summary type="html"><![CDATA[<p>A lovely little utility from Chris Coyier that turns CSS custom properties into a live control panel.</p>]]></summary><category term="CSS" /><category term="developer tools" /><category term="web development" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/ai-is-accidently-making-documentation-accessible/</id><title type="html"><![CDATA[AI is accidently making documentation accessible]]></title><link href="https://www.aaron-gustafson.com/notebook/links/ai-is-accidently-making-documentation-accessible/" rel="alternate" type="text/html" /><link href="https://gerireid.com/blog/ai-is-accidently-making-documentation-accessible/" rel="related" type="text/html" /><published>2026-04-23T12:15:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>The real takeaway is that documentation written for clarity is better for everyone — human or machine!</p><p>In other words, AI use is reinforcing what good documentation has always required: clear structure, explicit language, sensible headings, and fewer assumptions about what the reader already knows. That’s good for machines, sure, but it’s even better for people navigating with assistive tech, reading in a second language, or simply trying to get an answer quickly.</p><blockquote><p>AI has not invented new rules for writing, it has made the cost of ignoring the old ones obvious.</p></blockquote>]]></content><amg:twitter><![CDATA[AI didn’t invent better documentation practices; it just exposed how valuable structure, clarity, and explicitness have always been.]]></amg:twitter><amg:summary><![CDATA[<p>Documentation written for clarity is better for everyone — human or machine!</p>]]></amg:summary><summary type="html"><![CDATA[<p>Documentation written for clarity is better for everyone — human or machine!</p>]]></summary><category term="accessibility" /><category term="AI/ML" /><category term="writing" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://gerireid.com/images/open-graph.png" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/design-systems-cant-automate-away-all-of-your-accessibility-considerations/</id><title type="html"><![CDATA[Design systems can’t automate away all of your accessibility considerations]]></title><link href="https://www.aaron-gustafson.com/notebook/links/design-systems-cant-automate-away-all-of-your-accessibility-considerations/" rel="alternate" type="text/html" /><link href="https://zeroheight.com/blog/design-systems-cant-automate-away-all-of-your-accessibility-considerations/" rel="related" type="text/html" /><published>2026-04-23T12:10:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>Eric does an excellent job outlining the kinds of accessibility issues design systems and automated tooling can reduce, but never fully eliminate.</p><p>This is the part too many teams miss: accessibility doesn’t end at the component boundary. A well-built component library can give you a stronger foundation, but it can’t guarantee the right labels, the right heading structure, the right focus management, or the right overall experience once those pieces are assembled into an interface. That work still requires judgment, care, and testing with actual people.</p>]]></content><amg:twitter><![CDATA[Passing automated checks is not the same thing as delivering an accessible experience.]]></amg:twitter><amg:summary><![CDATA[<p>Eric does an excellent job outlining the kinds of accessibility issues design systems and automated tooling can reduce, but never fully eliminate.</p>]]></amg:summary><summary type="html"><![CDATA[<p>Eric does an excellent job outlining the kinds of accessibility issues design systems and automated tooling can reduce, but never fully eliminate.</p>]]></summary><category term="accessibility" /><category term="inclusive design" /><category term="pattern libraries" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://zh-marketing-wordpress-uploads.s3.amazonaws.com/wp-content/uploads/2025/11/blog-feature-computer-yellow.png" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/the-power-of-no-in-internet-standards/</id><title type="html"><![CDATA[The Power of ‘No’ in Internet Standards]]></title><link href="https://www.aaron-gustafson.com/notebook/links/the-power-of-no-in-internet-standards/" rel="alternate" type="text/html" /><link href="https://www.mnot.net/blog/2026/02/13/no" rel="related" type="text/html" /><published>2026-04-23T12:05:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is an important piece about where power actually lives on the web: not in the specification itself, but in whether powerful players choose to participate, implement, and ship.</p><p>I also appreciate Mark’s call for more ambition here. Too often, we talk about the web as if it’s destined to be an OS for web apps rather than a public-interest platform in its own right. That’s not inevitable. But getting somewhere better requires recognizing that refusal, delay, and strategic disinterest can be every bit as consequential as formal opposition.</p>]]></content><amg:twitter><![CDATA[A useful reminder that the real power in standards work is often the power to say no.]]></amg:twitter><amg:summary><![CDATA[<p>This is an important piece about where power actually lives on the web: not in the specification itself, but in whether powerful players choose to participate, implement, and ship.</p>]]></amg:summary><summary type="html"><![CDATA[<p>This is an important piece about where power actually lives on the web: not in the specification itself, but in whether powerful players choose to participate, implement, and ship.</p>]]></summary><category term="web standards" /><category term="the web" /><category term="society" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mnot.net/blog/image/wait_here.jpeg" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/nice-select/</id><title type="html"><![CDATA[Nice Select]]></title><link href="https://www.aaron-gustafson.com/notebook/links/nice-select/" rel="alternate" type="text/html" /><link href="https://nerdy.dev/nice-select" rel="related" type="text/html" /><published>2026-04-23T12:00:00Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>This is a terrific demonstration of how far the platform has come: a richly styled <code>select</code> that leans on native semantics, native accessibility, and progressive enhancement instead of fighting the browser.</p><p>What I especially appreciate here is the restraint. Yes, there’s some clever CSS and a little JavaScript to help with positioning, but the whole thing is built on top of the platform, not in spite of it. That’s the interesting takeaway for me: we can build interfaces that feel bespoke without throwing away the reliability and accessibility native controls already give us.</p>]]></content><amg:twitter><![CDATA[This is exactly the sort of UI work I love seeing: ambitious, polished, and still rooted in native controls and progressive enhancement.]]></amg:twitter><amg:summary><![CDATA[<p>This is a terrific demonstration of how far the platform has come: a richly styled <code>select</code> that leans on native semantics, native accessibility, and progressive enhancement instead of fighting the browser.</p>]]></amg:summary><summary type="html"><![CDATA[<p>This is a terrific demonstration of how far the platform has come: a richly styled <code>select</code> that leans on native semantics, native accessibility, and progressive enhancement instead of fighting the browser.</p>]]></summary><category term="CSS" /><category term="HTML" /><category term="progressive enhancement" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://nerdy.dev/media/nice-selects.jpg" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/people-are-not-static-we-are-dynamic-in-order-to-meet-our-needs-at-any-point-in-our-lives-or-day-the-uis-we-create-must-be-able-to-adapt-to-us-not-the-other-way-around-/</id><title type="html"><![CDATA[Different contexts, different tools, same person]]></title><link href="https://www.aaron-gustafson.com/notebook/links/people-are-not-static-we-are-dynamic-in-order-to-meet-our-needs-at-any-point-in-our-lives-or-day-the-uis-we-create-must-be-able-to-adapt-to-us-not-the-other-way-around-/" rel="alternate" type="text/html" /><link href="https://www.linkedin.com/posts/derekfeatherstone_accessibility-disability-activity-7434648295420870656-mH3o" rel="related" type="text/html" /><published>2026-03-05T18:38:46Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>People are not static, we are dynamic. In order to meet our needs at any point in our lives or day, the UIs we create must be able to adapt to us — not the other way around.</p><blockquote><p>I know someone that uses her screen reader on her mobile phone, but when she’s on her desktop computer, she uses a mangifier.</p><p>Different contexts, different tools, same person.</p><p>I know someone that uses voice controls on his computer. He uses direct commands like “Click Contact Us” when he’s near the start of his day, and commands like “Click link, twelve” when he’s near the end of his day with lower energy and less clear speech and a dry mouth.</p><p>Different energy/capacity, same tools, same person.</p><p>I know someone that uses a switch on his computer. He also uses the onscreen keyboard on his computer. The one that he chooses reflects the task he’s trying to accomplish and how he can minimize switching between the tools.</p><p>Different task, same context, same tools, same person.</p><p>Disability is not black and white… it’s every shade of every colour.</p></blockquote>]]></content><amg:twitter><![CDATA[People are not static, we are dynamic. In order to meet our needs at any point in our lives or day, the UIs we create must be able to adapt to us — not the other way around.]]></amg:twitter><amg:summary><![CDATA[<p>People are not static, we are dynamic. In order to meet our needs at any point in our lives or day, the UIs we create must be able to adapt to us — not the other way around.</p>]]></amg:summary><summary type="html"><![CDATA[<p>People are not static, we are dynamic. In order to meet our needs at any point in our lives or day, the UIs we create must be able to adapt to us — not the other way around.</p>]]></summary><category term="accessibility" /><category term="progressive enhancement" /><category term="inclusive design" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://static.licdn.com/aero-v1/sc/h/c45fy346jw096z9pbphyyhdz7" /></entry><entry><id>https://www.aaron-gustafson.com/notebook/links/some-blind-fans-to-experience-super-bowl-with-tactile-device-that-tracks-ball/</id><title type="html"><![CDATA[Some blind fans to experience Super Bowl with tactile device that tracks ball]]></title><link href="https://www.aaron-gustafson.com/notebook/links/some-blind-fans-to-experience-super-bowl-with-tactile-device-that-tracks-ball/" rel="alternate" type="text/html" /><link href="https://apnews.com/article/nfl-blind-fans-super-bowl-6daf12a08127c46c23dab6100a659681" rel="related" type="text/html" /><published>2026-02-06T19:40:06Z</published><content type="html" xml:base="https://www.aaron-gustafson.com"><![CDATA[<p>A few years ago, a couple students at the University of Washington asked me to come to their campus for a visit. They gave me a demo of an early prototype they’d been working on — a haptic feedback device that could allow someone who is Blind or low vision to follow a game. The demo took video data from a tennis match and mapped it onto the haptic tablet. It felt like Pong, but they had a bolder vision — tackling fast-moving and complicated sports like basketball, football, American football, and hockey.</p><p>I immediately invited them to pitch us for the AI for Accessibility Grant Program that I ran for Microsoft. With so much focus on assistive technology to enable folks to work and accomplish common life tasks, I loved that the OneCourt team was interested in enabling people with disabilities to enjoy leisure activities like sporting events. Moreover, I saw the potential to enable Blind and low-vision parents to experience their kids’ sporting events, which could be life-changing for them.</p><p>Needless to say, they wowed both me and the rest of the seleciton committee. We funded them to expand their prototypes and pursue partnerships with different professional sports leagues, teams, and venues. They were ambitious and it’s paying off.</p><p>Fast forward a few years and they’re enabling a handful of Blind &amp; low vision sports fans to exerience the Super Bowl in a whole new way, using their technology. It’s amazing and I could not be more proud of them.</p><p>Congrats y’all!</p>]]></content><amg:twitter><![CDATA[So proud of the OneCourt team for their work in bringing more leisure opportunities to the Blind & low vision community.]]></amg:twitter><category term="accessibility" /><category term="inclusive design" /><category term="AI/ML" /><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://dims.apnews.com/dims4/default/9b439cc/2147483647/strip/true/crop/5333x3554+0+1/resize/980x653!/quality/90/?url=https%3A%2F%2Fassets.apnews.com%2F1b%2Fe5%2F28e0bd88c1be654d380ee1c3b2f2%2F9a7b2e31c9464fa6a86eb6d04b0a3266" /></entry></feed>