HTMHell
htmhell.dev · Group blog · on HN since 2019
HTMHell is a collection of bad HTML practices and markup tips, with an annual advent calendar of articles on HTML and accessibility.
What HN saysHN commenters cite it as a reference for correct HTML semantics, such as anchor tags used as buttons, and for avoiding unnecessary JavaScript.
28HN people shared it
7linked it in comments
36stories submitted
1.1Kstory points
8 months agolast shared
2019people per year2026
Most-shared posts
- 1A collection of bad practices in HTML6 people · 170 points · first shared 2019 · 87 comments on HN
- 2How HTML Changes in ePub3 people · 9 points · first shared 2025 · discussion on HN
- 3HTML: The Bad Parts3 people · 7 points · first shared 2023 · 1 comments on HN
- 4The HTML Elements Time Forgot3 people · 4 points · first shared 2025 · discussion on HN
- 5You don't need JavaScript for that3 people · 2 points · first shared 2023 · discussion on HN
- 6My favourite colour is Chuck Norris red2 people · 519 points · first shared 2024 · 100 comments on HN
- 7Never Underestimate HTML2 people · 6 points · first shared 2023 · discussion on HN
- 8Template for Accessibility Guidelines2 people · 2 points · first shared 2023 · discussion on HN
- 9The UX of HTML (2023)1 people · 183 points · first shared 2024 · 92 comments on HN
- 10Htmhail1 people · 92 points · first shared 2024 · 61 comments on HN
- 11Replacing JavaScript with Just HTML1 people · 47 points · first shared 2025 · 10 comments on HN
- 12Hell is other people's markup1 people · 22 points · first shared 2025 · 3 comments on HN
- 13HTML attributes for improved accessibility and user experience1 people · 13 points · first shared 2023 · 2 comments on HN
- 14The Depths of the Input Element1 people · 4 points · first shared 2023 · discussion on HN
- 15Native HTML light and dark color scheme switching1 people · 3 points · first shared 2024 · discussion on HN
What HN people wrote when they linked it
antibland · 2019-11-12
For the button wrapped in a link example [0], which is invalid HTML, many people don't know it's valid to wrap a button inside a form, using the form's action as the destination. Not something I use often, but it's at least a thing worth knowing.
<form action="link.html" method="get" target="_blank">
<button type="submit">Link</button>
</form>
[0] https://www.htmhell.dev/4-link-also-button/
mmatuzo · 2019-11-12
I've added "read more" links to make it more obvious that there's more!
https://www.htmhell.dev/
ChrisArchitect · 2026-03-20
Some recent discussion on that one a couple Advents ago:
https://htmhell.dev/adventcalendar/2024/20/ (https://news.ycombinator.com/item?id=42468318)
croisillon · 2024-11-02
not exactly that but there is http://youmightnotneedjs.com/ and https://www.htmhell.dev/adventcalendar/2023/2/
Etheryte · 2024-08-09
This is the worst of both worlds, it doesn't conform to the spec and it has incorrect semantics. See HTMHell [0] for a brief discussion on the topic, albeit with a slightly different example.
[0] https://www.htmhell.dev/8-anchor-tag-used-as-button/
geor9e · 2024-01-27
I thought this comment was saying they only used html like this other HN post was talking about https://www.htmhell.dev/adventcalendar/2023/2/ . But no, the comments just saying they put all the .js and .css inside the .html file.
rypskar · 2019-11-12
#9 https://www.htmhell.dev/9-cookie-consent-from-hell/ is missing good code.
A cookie consent where the only option is OK give zero value. If you don't track users there is no need for the dialog and if you track the users this dialog do not show that tracking is turned off to you click OK