Sign in

Kristóf Poduszló

@kripod.dev
104 followers 278 following 50 posts

Software engineer with a special interest in accessibility. Builds for the web, mainly using React and Tailwind CSS nowadays.

PostsRepliesMedia
Kristóf Poduszló @kripod.dev · 20/09/2026
Quoting this skeet for my next AGENTS.md 😄 jk but the phenomenon is very real
001
Kristóf Poduszló @kripod.dev · 13/09/2026
On a high-DPI screen, a chat can stop half a pixel off the bottom. The gap is too small to notice, yet the browser stops following new messages. Here’s why, with a demo and a small fix: www.kripod.dev/blog/half-a-...
kripod.dev
Half a pixel from the bottom
Your chat looks caught up, yet new messages land out of view. The browser thinks you scrolled away, and it’s not wrong.
001
Kristóf Poduszló @kripod.dev · 09/09/2026
Thanks, such a great resource to begin with! Not sure how could I miss the jsonfeed.org format so far. I thought assistive tech already made shortcuts available for landmark role elements like <main> and <footer>, obsoleting skip links and id-based announcements on the long run. Correct me if wrong
110
Kristóf Poduszló @kripod.dev · 09/09/2026
A phone… with a stylus? Pencil, I mean? We just went full circle.
000
Kristóf Poduszló @kripod.dev · 09/09/2026
Nobody walks into a meeting and says "Hi, I'm Sam, I'm in debt." Or in therapy. Or gay. Yet here I am, telling the whole internet. www.kripod.dev/blog/im-gay-...
kripod.dev
I’m gay, and so are you
A carol, a meme, a reunion. On the older meaning of a word, the newer one that arrived uninvited, and the daily question of who gets told which.
061
Kristóf Poduszló @kripod.dev · 02/09/2026
> Bramus asked developers which control they build, then used the tally as evidence for which control is usable! I was trying to push back on the whole idea and think outside the box back then 😅 bsky.app/profile/krip...
030
Kristóf Poduszló @kripod.dev · 02/09/2026
Couldn’t agree more. I just quoted your take on this if you don’t mind 😄 bsky.app/profile/krip...
010
Kristóf Poduszló @kripod.dev · 02/09/2026
Ten years of accessibility links in a private note. One question kept coming back. Who decided this, and where do I go to disagree? There’s almost always an answer, and it’s rarely where you’d look first. www.kripod.dev/blog/accessi...
kripod.dev
Accessibility decisions made without you
Voice control hears “click Next.” Nothing happens: a well-meant label made your button answer to “Continue.” That label is yours, but ARIA decided the rest.
000
Reposted by Kristóf Poduszló
Eric Bailey @ericwbailey.website · 24/08/2026
One thing that I'm particularly delighted about was a great GitHub engineer partnering with the accessibility team to quietly push this out. A lot of people use GitHub via the command line and email, and folks there often forget it: github.blog/engineering/... www.osnews.com/story/144892...
osnews.com
The text mode lie: why modern TUIs are a nightmare for accessibility – OSnews
0235
Kristóf Poduszló @kripod.dev · 21/08/2026
The scene about Porco’s backstory showing all those planes ascending hits different. Especially considering how fragile things can feel nowadays.
010
Kristóf Poduszló @kripod.dev · 18/08/2026
envista loads your .env files. The right ones. Cascades by mode, in Vite’s order. Searches upward, so nested packages find the root .env. Node’s util.parseEnv does the parsing. envista is the last mile. Zero deps. github.com/kripod/envista
github.com
GitHub - kripod/envista: Cascading .env loader built on Node's own parser. Zero dependencies.
Cascading .env loader built on Node's own parser. Zero dependencies. - kripod/envista
130
Kristóf Poduszló @kripod.dev · 04/08/2026
None. I rely upon a ‘prefers-color-scheme’ query, waiting for a browser-level toggle to be implemented sooner or later 😄 I could only hope cookie consent overlays will disappear to a similar fate eventually. One can dream…
170
Kristóf Poduszló @kripod.dev · 02/08/2026
I couldn’t agree more. I went through a long period of burnout myself. A paradigm shift like the current one isn’t easy to adapt to and I wouldn’t be honest if I told I’m fully comfortable even now.
010
Kristóf Poduszló @kripod.dev · 02/08/2026
I was a bit hesitant getting this off my chest but here goes nothing 🙈
kripod.dev
In defense of AI
I used to view LLMs as slop machines stealing our craft. A reflection on burnout, originality, and why we aren’t being replaced.
300
Reposted by Kristóf Poduszló
Ollie Williams @ollie-williams.bsky.social · 31/07/2026
OpaqueRange API landed in Chrome/Edge beta youtu.be/Sp9C68TZXiE?...
youtu.be
Try the OpaqueRange API. Stop using mirror divs to measure text positions in inputs!
YouTube video by Patrick Brosset
1113
Reposted by Kristóf Poduszló
Jake Archibald @jakearchibald.com · 28/07/2026
I made an accessibility error when coding up some tooltips. Here's where I went wrong, and how you can avoid making the same mistake: jakearchibald.com/2026/my-tool...
jakearchibald.com
Fixing my tooltip accessibility mistake
aria-describedby isn't always enough.
413018
Kristóf Poduszló @kripod.dev · 24/07/2026
Interesting approach. I wish constants declared on the module level and then passed around as props wouldn’t have to be annotated as Stable<T> manually.
110
Kristóf Poduszló @kripod.dev · 10/07/2026
On the other hand, though, dermal exposure is worse for cyclists, as they check on their tires much more frequently than drivers. I’m not a fan of cars, nor do I even own one. I’m just playing the devil’s advocate to stay impartial.
000
Kristóf Poduszló @kripod.dev · 10/07/2026
What about bike tires, though? Apparently 6PPD-Q isn’t exclusive to cars.
110
Kristóf Poduszló @kripod.dev · 17/06/2026
Moment.html
000
Reposted by Kristóf Poduszló
Stef Walter @stephaniewalter.bsky.social · 01/06/2026
Fontastic Space is a free tool to help you find the mathematically optimal font pairing. It give you pairing score on multiple categories (including anatomical comparison of ascender, cap height, x-height and more) fontastic.space/
Screenshot of Fontastic Space web app comparing two font Libre Baskerville to Libre Franklin. The word Handgloves is shown in both fonts at 72px with typographic guides. Filters to compare include guides, overlay, size, etc.
3445
Reposted by Kristóf Poduszló
Eduardo.𝚟𝚞𝚎 @esm.dev · 15/05/2026
TIL you can very simply type the key of a `for in` loop in TS by just hoisting the variable
2292
Reposted by Kristóf Poduszló
bombshell @bomb.sh · 14/05/2026
Given recent exploits, we set out to harden our GitHub Actions. Our approach to syncing workflows across multiple repos made it easy.
bomb.sh
One repo, every workflow
How Bombshell maintains GitHub Actions across many repositories from a single source of truth, making hardening against recent npm supply-chain attacks a one-PR job
0111
Reposted by Kristóf Poduszló
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 06/05/2026
Really cool idea 🤯 - Install this web font - Just add plain text to the DOM - It renders a chart using font ligatures No JS, no hydration FOUC franktisellano.github.io/datatype/
515525
Reposted by Kristóf Poduszló
Eric Bailey @ericwbailey.website · 09/04/2026
A post on social media promoting a post I wrote. ericwbailey.website/published/a-...
ericwbailey.website
A compelling title that is cryptic enough to get you to take action on it
An enticing social media preview summary.
144512
Reposted by Kristóf Poduszló
Harry Roberts @csswizardry.com · 02/04/2026
🎨 I gotta say, my latest is a little treasure trove: what even is `contain`?! csswizardry.com/2026/04/what...
csswizardry.com
What Is CSS Containment and How Can I Use It? – CSS Wizardry
CSS containment lets you isolate layout and paint work to self-contained ‘islands’. Here’s what each contain value does and how to use it safely.
2288
Reposted by Kristóf Poduszló
Artem Zakharchenko @kettanaito.com · 30/03/2026
Excited to open source Async History Stack: an undo/redo system I've been using for a while. ⏳ Async-friendly 🚫 Abortable entries 🚦 Merges, batches, chained operations 🌱 Works with anything github.com/kettanaito/...
github.com
GitHub - kettanaito/async-history-stack: Arbitrary change history management in JavaScript.
Arbitrary change history management in JavaScript. - kettanaito/async-history-stack
1297
Kristóf Poduszló @kripod.dev · 30/01/2026
Feels as if the real achievement were the team behind the initiative, while the product itself is “just” a positive side-effect 😄
010
Kristóf Poduszló @kripod.dev · 23/01/2026
Fascinating! Imagine the impact this could make on accessibility if all the semantics are wired up correctly. The only prop I couldn’t wrap my head around was `$mix={15}` 😅
110
Kristóf Poduszló @kripod.dev · 21/01/2026
Imagine following AI advice without a second opinion for the sake of “compliance” to avoid legal fines. I heard about a company having an enthusiastic blind customer reaching out about a11y issues. A coworker proposed hiring them. Sadly, the firm rather contracted an infamous a11y company instead.
041
Kristóf Poduszló @kripod.dev · 18/01/2026
At Wise we had plenty of internal presentations on how the majority of customer support inquiries can be resolved by AI agents See also anti-fraud startups like SEON or Fingerprint, both of which use AI in their core pattern matching algos Perhaps the lack of publicity is for ensuring compliance?
010
Kristóf Poduszló @kripod.dev · 13/01/2026
It tells a lot that their flagship campaign slogan ‘the safe choice’ leaked and so the opposition registered the corresponding domain biztosvalasztas.hu, despite Fidesz trying to cope in digital spaces. Funnily enough the opposition even filed a patent for the slogan above to benefit from propaganda
110
Kristóf Poduszló @kripod.dev · 13/08/2025
So far so good! The name choice might be a bit of a stretch considering the small amount of authors the project was influenced by. I have my own flavor based upon the comparison of UA stylesheets if interested: github.com/kripod/css-h...
github.com
111
Kristóf Poduszló @kripod.dev · 19/07/2025
Looks neat! Keep up the great work 🙌
010
Kristóf Poduszló @kripod.dev · 28/06/2025
Today marks the first illegal Budapest Pride march 🏳️‍🌈 🇭🇺 Just a reminder how brittle democracy can be, despite the citizens becoming more inclusive over time. Evil triumphs when the good do nothing…
082
Reposted by Kristóf Poduszló
Jen Simmons @jensimmons.bsky.social · 05/03/2025
Styling HTML form controls is something web designers & developers have wanted for years! My team is working on a solution — apply `appearance: base` and switch to a new interoperable consistent default control. Then override it using new pseudo-elements. See the details: drafts.csswg.org/css-forms/
drafts.csswg.org
CSS Form Control Styling Level 1
411321
Kristóf Poduszló @kripod.dev · 22/02/2025
Could be a coincidence but ‘Réka’ is also a Hungarian given name for females 😄
000
Reposted by Kristóf Poduszló
Haz @haz.dev · 15/02/2025
Here's the math needed to adjust a color's lightness and eliminate the gray area where WCAG2 and APCA conflict on black/white foregrounds. Yes, it's CSS. And yes, it's blazingly fast. Usage: background: oklch⁠(⁠from⁠ ⁠<⁠color⁠>⁠ ⁠var⁠(⁠-⁠-⁠_⁠ak⁠-⁠safe⁠-⁠l⁠)⁠ ⁠c⁠ ⁠h⁠)⁠;
Screenshot of a CSS registered property with an initial value that consists of 12 lines of functions: calc(), clamp(), cos(), and several other mathematical operations.

The initial value:

calc(l * (1 - clamp(0, (l - (0.56 + (c / 0.4) * (-0.005 + (0.055 * cos(((h + 45) * pi / 180)))))) * ((0.72 + (c / 0.4) * (0.015 + (0.035 * cos((h * pi / 180))))) - l) * 1000, 1)) + ((0.56 + (c / 0.4) * (-0.005 + (0.055 * cos(((h + 45) * pi / 180))))) * (1 - clamp(0, (l - ((0.56 + (c / 0.4) * (-0.005 + (0.055 * cos(((h + 45) * pi / 180))))) + (0.72 + (c / 0.4) * (0.015 + (0.035 * cos((h * pi / 180)))))) / 2) * 1000, 1)) + (0.72 + (c / 0.4) * (0.015 + (0.035 * cos((h * pi / 180))))) * clamp(0, (l - ((0.56 + (c / 0.4) * (-0.005 + (0.055 * cos(((h + 45) * pi / 180))))) + (0.72 + (c / 0.4) * (0.015 + (0.035 * cos((h * pi / 180)))))) / 2) * 1000, 1)) * clamp(0, (l - (0.56 + (c / 0.4) * (-0.005 + (0.055 * cos(((h + 45) * pi / 180)))))) * ((0.72 + (c / 0.4) * (0.015 + (0.035 * cos((h * pi / 180))))) - l) * 1000, 1))
4354
Kristóf Poduszló @kripod.dev · 20/12/2024
There’s even an @eslint.org rule which prevents using labels in general but has the options ‘allowLoop’ and ‘allowSwitch’ to exempt those constructs: eslint.org/docs/latest/...
eslint.org
no-labels - ESLint - Pluggable JavaScript Linter
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
030
Kristóf Poduszló @kripod.dev · 17/12/2024
I agree. Just tried putting my thoughts more concisely, using a shorthand for ‘in my opinion’. The answer here, like for most engineering problems, is ‘it depends’ 😄
000
Kristóf Poduszló @kripod.dev · 16/12/2024
Reduce should never be used with a non-primitive accumulator imo. We have more semantic alternatives like: • Object.fromEntries() + entries​.map() • Object.groupBy() / Map.groupBy() Even for primitives we’ll have Math.sumPrecise() soon ⏳ github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-math-sum: TC39 proposal to add a summation method to JavaScript
TC39 proposal to add a summation method to JavaScript - tc39/proposal-math-sum
1100
Kristóf Poduszló @kripod.dev · 08/12/2024
Visually-hidden elements should be preferred over explicit labeling. Despite being aware of that, I could never explain the “whys” before this article.
010
Kristóf Poduszló @kripod.dev · 07/12/2024
Had to use Safari for browsing the @npmjs.bsky.social ‘Versions’ tab of @astro.build The ‘astro’ package has 1,000+ releases and the associated page just froze while searching on Chrome: www.npmjs.com/package/astr... Perhaps the ‘content-visibility’ CSS property could help? web.dev/articles/con...
web.dev
content-visibility: the new CSS property that boosts your rendering performance  |  Articles  |  web.dev
The CSS content-visibility property enables web content rendering performance benefits by skipping rendering of off-screen content. This article shows you how to use this new CSS property for faster i...
020
Kristóf Poduszló @kripod.dev · 05/12/2024
It was all fun until missing the flagpole top in the invisible bit of “that” level 🙃
110
Kristóf Poduszló @kripod.dev · 04/12/2024
Just upgraded kripod.dev to Astro v5. While the migration took some effort, I could pull it off in one go thankfully to the well-written guidelines. It took less than an hour, running stronger than ever 🚀
kripod.dev
Kristóf Poduszló
Software engineer with a special interest in accessibility. Builds for the web, mainly using React and Tailwind CSS nowadays.
010
Kristóf Poduszló @kripod.dev · 03/12/2024
Literal unions ("a" | "b") are a thing while literal intersections aren’t 😅 The former has a certain ring to it, I hope that might help.
010
Reposted by Kristóf Poduszló
Ollie Williams @ollie-williams.bsky.social · 30/11/2024
fullystacked.net/svg-icons/
fullystacked.net
The best approach to SVG icons
Inline SVG, <use>, <symbol>, spritesheets, JSX...
031
Kristóf Poduszló @kripod.dev · 30/11/2024
Also, @joshwcomeau.com wrote extensive guidance on the subtleties of px vs. rem www.joshwcomeau.com/css/surprisi...
joshwcomeau.com
The Surprising Truth About Pixels and Accessibility: should I use pixels or rems? • Josh W. Comeau
“Should I use pixels or rems?”. In this comprehensive blog post, we'll answer this question once and for all. You'll learn about the accessibility implications, and how to determine the best unit to u...
110
Kristóf Poduszló @kripod.dev · 30/11/2024
‘Reflow’ deserves more spotlight as a WCAG criterion. Visitors of a website should be able to browse content comfortably on a 320×256px viewport. That equals 400% zoom on a 1280×1024px screen but such an enlargement may also consist of 200% text-only + 200% UI zoom. www.w3.org/WAI/WCAG22/U...
w3.org
Understanding Success Criterion 1.4.10: Reflow | WAI | W3C
100
Kristóf Poduszló @kripod.dev · 30/11/2024
I wish the @tailwindcss.com will revise some changes before releasing v4, especially concerning accessibility. It’s such a responsibility to get things right at their scale. Perhaps advanced features like breaking out of atomicity might be put behind a flag or at least discouraged by the docs? 🤔
110