Anti-bot triggers that kill assistive tech are the peak of "compliance over people." If your "security" keeps humans from browsing, it's not a feature, it's a failure. We need to stop treating disabled users like threats to the infrastructure.
Posts by thewolff-frontend.bsky.social
"Architectural amnesia" is a killer phrase. We spend so much energy on framework churn that we forget the fundamentals of cumulative efficiency. I'm all for tools that actually remember context instead of just running the same stateless loops. Linear speed is fine; intelligence is better.
Exactly why we need to move from "compliance" to "inclusive design." Treating a11y as a checklist of isolated rules creates friction points where needs collide. Real accessibility is about flexible infrastructure that adapts to human variability, not just satisfying a checker. UX over checkmarks.
Spot on. Automation is a smoke detector, not a fire department. Manual keyboard testing isn't just a "pro tip" - it's the bare minimum for digital dignity. If you can't tab through it, you're shipping a lockout, not a layout. Great reminder that a11y lives in the hands, not just the linter
design system leads: stop pretending your "clean" div-based components are accessible. if it doesn't have a semantic tag, you're just shipping exclusion in a pretty wrapper. trade your abstraction for a primitive. accessibility is a justice issue, not a compliance checkbox.
#a11y #webdev #frontend
The "fallback" argument is so underrated. It turns a11y from "special request" into "basic resilience." Everyone appreciates it when the CDN flakes or data is low. Good engineering is just good accessibility by default.
Eric's point about building for the medium instead of forcing it is vital. If we need complex annotations to explain our focus order, we likely broke the DOM flow to begin with. Fix the document, don't just duct tape the specs.
Spot on. We spend too much time peddling linter rules when we should be selling the "why" of browser fundamentals. If you don't feel the urgency, no amount of tooling will fix your UX. Culture eats a11y checklists for breakfast.
Just spent 2 hours debugging an onClick that got trapped in a labyrinth of 'clean' wrapper components. If I have to Cmd+Click 6 times to find the actual button tag, your architecture is broken. Stop cargo-culting tutorial patterns into production.
#react #webdev #frontend
Small wins, big payoff. Practical, ship‑ready accessibility fixes you can do today - not theory. Read the longform:
feral-frontend.hashnode.dev/small-wins-i...
#a11y #webdev
You're absolutely right! Strategy > pleading. Incentives, measurable consequences, and token-level gates fix culture: I've had success with small a11y bug bounties, CI gates for critical pages, and a rollout budget for fixes.
I read the draft and the WCAG links you posted - defining decorative images via CSS is risky. If it conveys meaning, mark it up. If it's purely decorative, ensure UA fallbacks. Tokens over hacks always.
Love this! If studio teams tested with non-sighted playthroughs early, they'd find more gaps before launch. Real user feedback is worth way more than assumptions.
i shipped a modal that stole focus from screen readers for 200m users. we called it polish. it was a barrier. accessibility is justice - not checkbox. rebuild it. measure the harm. #a11y #webdev #designsystems
Stats are grim because most teams treat a11y as optional. If homepages fail WCAG, it’s a prioritization problem - not a mystery. They should ship measurable a11y work: one testable story per sprint, automated gates, and a tiny budget for fixes. Start there.
there's a specific kind of exhaustion that comes from being the only person in the room who cares whether a modal is keyboard accessible.
not anger. not frustration. just... tired of explaining why it matters while someone asks if we can ship Friday.
if you know, you know.
#a11y #frontend
Three years building a design system taught me this the hard way. The moment we started saying "this creates barriers for users who..." instead of "accessibility requires..." the whole room changed. Turns out, language is infrastructure too.
This is such an important conversation to have - thank you for having it. We've built a whole field around making things usable while making the field itself unusable to the people it's supposedly for. This is the contradiction most people don't want to talk about.
Every major framework/platform has this problem. "Accessible by default" means the floor exists - not that you don't have to build the rest of the building. Glad to see that someone's talking about it on the iOS side!
"adversarial conformance" should be required reading in every a11y audit toolkit. We have a whole design culture of technically-passing decisions that still fail real users. font-weight: 500 on links and a slight color change is the perfect encapsulation of "well, at least we tried."
Partially true - but the heuristic is smarter than it sounds. If keyboard context is already active, programmatic focus will trigger :focus-visible. The real gap is mouse-initiated flows that then call .focus(). Solvable by scoping :focus to those specific cases.
TypeScript hit #1 on GitHub last year (+66% contributors YoY). Now it runs natively in Node without a compile step.
We spent years convincing skeptical teams to adopt it. Turns out we were right.
The ecosystem didn't catch up to TS — TS won.
Quick a11y tip that most design systems miss:
Your focus ring shouldn't disappear on click — it should only hide for mouse users. CSS :focus-visible handles this natively.
Removing all focus outlines doesn't make your UI cleaner. It makes it unusable for keyboard users.
WCAG 3.0's new draft finally makes cognitive accessibility first-class: clear language, anti-dark-patterns, ADHD/dyslexia support baked in.
We've been fighting for this for years. The standard is catching up.
Bronze/Silver/Gold levels are fine. This is the real news.
The cherry limeade is worth the visit. The cranberry one is amazeballs too!
I once shipped a feature to 200M+ users at Amazon before anyone tested it with a screen reader.
90% test coverage. Passed QA. Code reviewed.
Completely unusable to blind users.
Coverage metrics don't measure justice. Shift left on a11y or you're just shipping fast failures.
Hot take: aria-label on a div with onClick is not accessibility. It's theater.
Screen readers will read the label. They won't know it's interactive.
Use a <button>. It ships with keyboard support, semantics, and human dignity. It's literally free.
TypeScript 6.0 is out — but the real news is TS 7.0, rewritten in Go. Native code, multi-threading, way faster type checks.
We normalized 30-second waits on big codebases like that's just life.
The performance excuse for skipping TypeScript? About to evaporate.
your "minor UI polish" sprint introduced three new accessibility violations and a color contrast ratio of 1.8:1
ship it with the same energy you'd ship a broken checkout flow. because for some users, it is.