Heydon Pickering
heydonworks.com · Personal blog · on HN since 2012
Heydon Pickering writes about front-end web development, accessibility, CSS, progressive enhancement, and writing less code.
What HN saysHN commenters link his 'Poisoning Well' piece, the poisoned version of an article aimed at scrapers, and his critique of ARIA's aria-controls and screen reader support.
45HN people shared it
10linked it in comments
45stories submitted
1.4Kstory points
10 months agolast shared
2012people per year2026
Most-shared posts
- 1Testing HTML with Modern CSS6 people · 10 points · first shared 2024 · discussion on HN
- 2The Problem with Full Stack5 people · 45 points · first shared 2018 · 22 comments on HN
- 3Writing Less Code3 people · 587 points · first shared 2016 · 200 comments on HN
- 4Please disable JavaScript to view this site3 people · 252 points · first shared 2020 · 268 comments on HN
- 5Aria-Controls is Poop3 people · 3 points · first shared 2016 · discussion on HN
- 6Poisoning Well2 people · 120 points · first shared 2025 · 127 comments on HN
- 7Progressive Enhancement Makes Me Sad2 people · 59 points · first shared 2016 · 60 comments on HN
- 8Developer Fallacies2 people · 23 points · first shared 2016 · 2 comments on HN
- 9Font Hacking2 people · 10 points · first shared 2013 · discussion on HN
- 10Practical ARIA examples to enhance your application accessibility2 people · 5 points · first shared 2014 · discussion on HN
- 11Confessions of a CSS Expert2 people · 4 points · first shared 2014 · discussion on HN
- 12What Is a Single-Page Application?2 people · 4 points · first shared 2024 · discussion on HN
- 13Shit Yourself2 people · 2 points · first shared 2023 · discussion on HN
- 14Poisoning well2 people · first shared 2025
- 15Tetris and The Power Of CSS1 people · 220 points · first shared 2013 · 46 comments on HN
What HN people wrote when they linked it
robocat · 2025-09-06
Humans have been refining their gibberish for centuries.
I admire your idealism that "the real thing" is coherently different from good gibberish. The poisoned version of the same article is great: https://heydonworks.com/nonsense/poisoning-well/ (I love me some surrealism so gibberish is something I sometimes choose to input into my own model in my head).
The scary part of AI is that it shows how crappy most of the training material is.
g5095 · 2020-11-29
currently exploring view-source:https://heydonworks.com/ by deconstructing the rendered source and injecting the output back into the body..
1vuio0pswjnm7 · 2022-10-09
"In some cases, however, these banners can serve as trackers themselves, as they engage in a privacy-breaching data exchange before the user even has a chance to opt out."
See, e.g., https://arxiv.org/abs/2102.08779v1
Blocking the banners, which generally require Javascript to function, is enough to stop consent, but keeping Javascript enabled still enables and/or strengthens the ability to track. No doubt JS is on by default in Brave. Can it be disabled globally for all websites or only on a site-by-site basis. The project was co-founded by the creator of Javascript.
There will be people who make statements such "Disabling Javascript breaks every website." What they will not admit is that it breaks various tactics, including but not limited to cookie banners, used in tracking. And it breaks online advertising as a "business model". "Tech" companies have vested interests in Javascript remaining enabled. Dark patterns are used to ensure it stays on. This is unfortunate for all the legitimate uses of JS and the websites who only use JS responsibly.
https://heydonworks.com/
The above website "breaks" if Javascript is enabled. It demonstrates that so-called "modern" browsers running Javascript allow website developers to play games with website visitors. They can try to make visitors enable or disable Javascript by causing them to believe something will not "work".
Meanwhile, I use a 1.3MB static binary text-only browser that does not run Javascript, store cookies,…
isleyaardvark · 2025-10-31
Screen readers have and continue to lag in implementing standards designed specifically for accessibility, so I would say they are obviously not sophisticated enough.
(One example: https://heydonworks.com/article/aria-controls-is-poop)
nvader · 2025-09-05
A link to the poisoned version of the same article:
https://heydonworks.com/nonsense/poisoning-well/
tinchox5 · 2024-08-29
Repo: https://github.com/zumerlab/orbit
Source file: https://github.com/zumerlab/orbit/blob/main/src/scss/_support.scss
Orbit related documentation: https://zumerlab.github.io/orbit-docs/tools/support/
Good to read: https://heydonworks.com/article/testing-html-with-modern-css
not_your_vase · 2023-04-08
Look what I found: https://heydonworks.com/article/shit-yourself/
scandox · 2019-01-04
He's quoting someone else though he is agreeing with them. The full quote is:
> We need to address the undervaluing of HTML and CSS for what it is: gender bias. Even though we wouldn’t have computer science without pioneering women, interloping men have claimed it for themselves. Anything less than ‘real programming’ is now considered trivial, silly, artsy, female. That attitude needs to eat a poisoned ass.
And it's from this link: http://www.heydonworks.com/article/reluctant-gatekeeping-the-problem-w…
I admit I don't understand the point. I haven't experienced this perception of HTML/CSS as something "trivial, silly, artsy, female". It's possible though that this does exist? In some places? I mean people do have a tendency to think of what they're good at as superior to the things they're bad at...and loads of programmers are really bad at HTML/CSS.
technojunkie · 2016-08-29
When you fork a Github project, you'll have to examine the code to see what it's doing and how.
With HTML and CSS, it's mostly visual but you can find improvements on semantics or simplifying what's there. If you can improve performance by rewriting a javascript function into CSS, such as animations, submit a pull request with your suggestions.
With Javascript, look for bugs and improve the code that's written. Javascript easily becomes a mess and is often referred to as spaghetti code when it becomes hard to manage.
Overall, look for ways to simplify the code, even if it means more code overall although usually it means less code.
Two examples:
https://philipwalton.com/articles/untangling-deeply-nested-promise-cha…
http://www.heydonworks.com/article/on-writing-less-damn-code
heydonworks · 2012-09-04
My two icon font sets (a generic set and a complementary set for app designers) have been hinted using Font Squirrel's algorithm. You may find these of some use: http://www.heydonworks.com/article/an-app-icon-font