Accessibility
WCAG in Plain English
A plain-language guide to WCAG accessibility standards. Friendly explanations that make accessibility easier to understand, one criterion at a time.
Improving Client-side Page Routing for Better Accessibility
In the past, I’ve written about challenges that JavaScript frameworks bring to accessibility. Today I’d like to focus more closely on one way that single page app frameworks create barriers for people using assistive technology—client-side routing.
2025 Midyear Accessibility Lawsuit Report: Key Legal Trends
The numbers are in: digital accessibility lawsuits are on track to surge nearly 20% in 2025, with over 2,000 cases already filed in the first half of the year.
UsableNet’s Midyear ADA Lawsuit Report offers the most detailed view into this growing legal risk. Now in its sixth year, the report is built from the ground up by manually reviewing digital accessibility lawsuits in the U.S. to identify those involving websites, mobile apps, digital video, or physical spaces.
We break down the key trends from the 2025 report to help legal teams, digital leaders, and accessibility decision-makers prepare for what’s ahead.
Fast, Simple, High Impact: DIY Accessibility Testing for Any Team
Accessibility doesn’t have to be overwhelming or expensive. In fact, some of the most valuable improvements begin with quick, no-cost checks that anyone on a team can do. These small efforts take just a few minutes and can prevent real usability barriers for your users.
Why I don’t trust WCAG 2.2 and what I’m hoping from 3.0
You can follow WCAG 2.2 and still build inaccessible products. Here's what I want from WCAG 3.0.
CSS
So many ranges, so little time: A cheatsheet of animation-ranges for your next scroll-driven animation
Discover the new scroll-driven animation ranges in WebKit with this essential cheat sheet. It breaks down each timeline range - cover
, contain
, entry
, exit
, entry‑crossing
, and exit‑crossing
- and even shows how to mix them with offset values (like contain 50% exit) to fine‑tune when animations start and stop as elements scroll into view.
A handy use of subgrid to enhance a simple layout
subgrid
in CSS is really handy for getting a nice level of design detail in place, especially in terms of maintaining a nice reading line, as Andy shows in this article.
Tailwind is the Worst of All Worlds
It is a regrettable step backwards that takes everything bad about CSS and modern web development and brings it all together in one library.
JavaScript
The History of React Through Code
Learn React's history using pragmatic code samples and deep dives. This journey reveals the consistent design in React's APIs stemming from the very beginning.
LiftKit: The UI Framework for Perfectionists by Chainlift.io
LiftKit by Chainlift is an open-source design system based on the golden ratio available for React/Next.js, Webflow, and Figma.
Simple live reload for developing static sites
When developing my website, I’m using a simple client-side script to automatically reload the page whenever I make a change to the source files.
How it works, in a nutshell:
- Start
PerformanceObserver
to watch loaded URLs - Poll
HEAD
metadata - Check
Last-Modified
andETag
Duct UI - A DOM first frontend library
Duct is a modern UI framework that provides a clear separation between view code (templates) and logic code (companions). It embraces simplicity and maintainability through a well-defined component architecture.
Note: This library is currently in early development and may exhibit unexpected behavior. APIs are subject to change and components may not be fully stable. Use with caution in production environments.
Notes on rewriting JSX as Astro
After spending time building with Astro, I’ve collected some observations about the developer experience. Overall, Astro is a solid framework that gets the job done, though it has some quirks worth noting if you’re coming from JSX-land
Looking Ahead: Next.js 16
Over the past few months, we've been iterating on major improvements to Next.js, focusing on both the developer experience with Turbopack and the core capacities of the App Router with PPR and use cache. While we are not ready to enable those features on by default, we are looking to lay the groundwork for our users to try it out in Next.js 16 this summer.
Here’s a preview of what's coming in Next.js 16
UX
The Communication Crisis That’s Killing UX Design Careers
Junior UX designers are obsessing over the wrong skills. While they’re mastering design tools and AI prompts, they’re missing the capability that will make or break their career: the ability to defend their design decisions against stakeholders who think design is easy.
After 18 years in UX design and now as the head of DataArt’s design studio, this pattern of behavior has become unmistakable. Talented UX designers fail not because they can’t create good user interfaces, but because they can’t explain how or why their solutions work. Half of being a successful UX designer is presenting your design decisions, communicating with stakeholders, and navigating the politics of opinion versus evidence.
Few Guesses, More Success: 4 Principles to Reduce Cognitive Load in Forms
Four principles of form design — structure, transparency, clarity, and support — minimize users’ cognitive load and improve usability.
Miscellaneous
The Micro-Frontend Architecture Handbook
Over the years, in my role as a lead full-stack developer, solutions architect, and mentor, I’ve been immersed in the world of micro frontend architecture, working across different large-scale frontend projects where multiple teams, stacks, and deployment pipelines had to coexist somehow.
As projects grew in complexity and teams worked in parallel across different stacks, it became clear that monolithic approaches couldn’t keep up. I needed practical tools that allowed easy cross-app interaction, independent deployability, better team autonomy, framework-agnosticism, and more. Some solutions worked elegantly in theory but struggled in real-world conditions. Others made things messier and more painful than helpful.
And today, in this comprehensive hands-on tutorial, I want to share my expertise and tell you more about micro-frontend architecture—method by method—with code, tradeoffs, visuals, and real-world insights.
A Friendly Introduction to SVG
SVGs are one of the most remarkable technologies we have access to on the web. They’re first-class citizens, fully addressable with CSS and JavaScript. In this tutorial, I’ll cover all of the most important fundamentals, and show you some of the ridiculously-cool things we can do with this massively underrated tool.
The "Why I want to leave" list
The "Why I Want to Leave" list isn't about finding reasons to quit - it's about maintaining professional self-awareness and driving positive change. When used correctly, it can be a powerful tool for both personal growth and organizational improvement. However, if you find yourself adding items faster than you or the company can address them, and your attempts to influence change are consistently blocked, it might be time to consider new opportunities.
Frontend Performance Checklist For 2025
Our Frontend Performance Checklist is a comprehensive, platform-agnostic guide that enumerates key front‑end best practices and optimizations for maximizing website speed and efficiency. It distills these performance strategies into an actionable checklist to help developers build faster, more efficient web applications.
Are Software Engineers Depressed? Trends, Issues, and Support
During the pandemic years, we heard a lot about burnout, depression, and work-related anxiety among healthcare givers. But what about software engineers? Recent statistics are giving us a more thorough and accurate look at what it takes to stay sane while programming and managing code-based projects.
No matter how knowledgeable and experienced you might be in software engineering, mental health difficulties can still provide the “gotcha!” that stops or slows your professional growth. In a 2021 survey, the staff at Slack gathered data measuring the effects of stressors on tech sector workers in 2020. Survey respondents confirmed that
- 51% had been diagnosed with a mental health condition.
- 57% reported burnout.
- 71% said their productivity was reduced by a mental health issue.