christianheilmann.com
Learning HTML is the best investment I ever did
Excerpt
## Pointless labels It uses labels, which is a happy surprise, but fails to connect them to the right form elements. For a label to describe a form element, you need the element to connect to an ID, not a name. A name attribute is not unique, instead it clusters form elements together. So, you could have a few elements with the same name, but you need to have an ID on each to connect it to the label. … ## A lack of HTML interest and respect As browsers bend over backwards to fix broken HTML, developers stopped caring about it. If it doesn't break the build, it's less important than getting those JavaScript packages bundled. But this, to me, is lazy development. Why rely on a platform to fix bugs that we could avoid if we put in a tiny bit of effort? HTML has some exciting new features for us in 2025. A single element could replace a whole component library. Sure, the component might give us more predictable styling and more control. But it also is one more dependency, and could be a security, performance and maintenance issue. An issue we can't fix as we don't control it.
Related Pain Points
Incorrect label-to-form element connections
6Developers frequently fail to properly connect labels to form elements by using the name attribute instead of id. Labels must be connected to elements via ID (which is unique per element), not name (which clusters form elements together), leading to accessibility failures and poor UX.
Low developer interest and respect for HTML quality
5Developers deprioritize HTML quality because browsers are forgiving and fix broken HTML automatically. This leads to lazy development practices where incorrect HTML is tolerated if it doesn't break the build, despite the long-term maintenance and performance costs.