We just published the results for the first-ever State of HTML survey, the results of months of hard work not only on my part, but also from Lea Verou, who designed the survey questions, and many volunteers helping out with translation, accessibility, testing, and much more.
The survey was a success to say the least, with over 20,000 respondents taking part and answering up to 90 questions! And we’re hoping the resulting data will prove to be a useful resource for the web dev community for years to come.
But we also know not everybody has the time to parse through pages of stats and data visualizations. So if that’s you, here’s a quick recap of the most interesting findings from the survey.
People Love Datalist
A key innovation of this year’s survey was the ability for respondents to not only specify their experience with a feature (“used it”, “heard of it”, “never heard of it”), but also their sentiment, in other words whether they were happy/unhappy, interested/uninterested, etc,
And the feature that came in first in terms of positive sentiment was datalist, with 55.4% positive sentiment and only 3.9% negative sentiment (the rest being neutral).
Datalist is a not-so-new element (it became widely supported by browsers around 2019) that lets you create an autocomplete/typeahead component without any JavaScript. And while it may not be as flexible as your typical JavaScript implementation, it’s still quite handy — and way easier to get right!
Other favorites included the newly-baseline’d Popover API and its cousin, the dialog element, both similar to datalist in that they emulate natively features that developers have long relied on JavaScript for.
In other words, even though many of us have embraced JavaScript front end frameworks over the past decade, at the end of the day we’d still rather let the browser take care of things!
…But Hate Forms
While respondents shared their love for many web APIs, there was one area where they made no secret of their discontent: forms.
We asked respondents what were their pain points around HTML forms, and that question collected over 11,000 responses — and I’m talking about freeform comments, not just clicking a checkbox!
So what were people so mad about? Number one with over 3,600 comments was styling, or the lack thereof. The select element especially was a recurring culprit, which makes sense for such an omnipresent UI element – and which is why there’s a proposal in the works for a new, easier-to-style alternative.
Apart from styling issues, respondents shared their various gripes about other form input elements, chief among them <input type="date" />
. As one respondent mentioned, “date inputs are not really usable and not fully accessible”.
Validation was also a big pain point, especially when trying to do more advanced tasks such as validating one field conditionally based on the value of another.
And it’s worth pointing out that form input elements also came in first both when respondents were asked about existing HTML features or browser APIs they were unable to use because of browser differences or lack of support, and features they were unable to use for other reasons.
Web Components… Exist
When it comes to web components, the developer community is roughly split into three camps. The first one thinks they’re the next big thing, and that they’re going to take over the industry any day now, just you see!
The second camp believes they are a doomed initiative, especially when front end frameworks already offer all the same features and more.
And finally, the third camp has been quietly using web components here and there when they make sense, and mostly keeping to themselves.
It’s fair to say that camp #2 was well represented in the survey, with many complaining about web component’s lack of interoperability with React, Vue, and other frameworks; or even questioning the need for them altogether. And 3 out of the top 5 features with the most negative sentiment were also web components-related.
Among people who did use web components, yet again styling & customization was a big concern, showing that we might want more ready-made solutions; but we still want to be able to adapt them to our needs.
Yet as with the rest of the web platform, web components are constantly evolving. And until their time does come, it’s totally fine to only use them on an ad-hoc basis.
We Need Datatables, Tabs, and Switches, and We Need Them Yesterday!
Respondents were asked what elements they’d add to HTML if they could pick anything, and the top three results were datatables (tables with sorting, filtering, etc. controls), tabs, and toggles/switches.
This is interesting because all three are components that are relatively rare in static sites (although dark mode toggles are becoming a thing), but extremely common in any kind of dashboard or app.
This recalls the age-old dichotomy between documents and apps, and although we’ve long since moved past the idea that HTML is only good for describing static content, the fact that these elements are still missing shows that we haven’t quite embraced HTML as an app-centric platform either yet.
The Divide Is… Closing?
Five years ago, some random guy you’ve probably never heard about named Chris wrote a landmark article entitled The Great Divide. In it, Chris talks about what Brad Frost would later call the “front-of-the-front-end” (HTML/CSS) and “back-of-the-front-end” (JavaScript) split.
Granted, the survey audience may not be totally representative of the industry at large, and about 12% of respondents found the survey through having answered the State of JS survey before.
But at least according to our data, this divide may not be as stark as once thought. About 22% of survey respondents used Next.js for example, and when asked how they allocated their time between writing HTML/CSS and JavaScript/TypeScript code, 59% said they spent more than half their time writing JavaScript – even though the survey was clearly aimed at people interested in HTML.
In my own experience at least, even if you work primarily on the “front” of the front end, very often the HTML and CSS you deal with will be generated by a JavaScript framework of some kind, meaning you can’t help but step in the back to see what’s going on from time to time.
It’ll be interesting to see how this trend evolves. As HTML gains more features, will the need to cover both ends of the front end spectrum diminish? Or maybe, back-of-the-front-end developers will realize they don’t need to hit every single nail with the JavaScript hammer after all?
Stay Tuned
If only there was a way to figure this out! Like for example, some kind of recurring survey that would help us track these trends over time… But wait, there is! The 2024 edition of the State of HTML survey will take place later this year, and you can already sign up for our mailing list to be notified when that happens.
In the meantime, go check out the full 2023 results and let us know if you find any insights of your own!