HN Debrief

HTML Can Do That

  • Programming
  • Developer Tools
  • Open Source
  • Infrastructure

The post is a tour of things plain HTML can now handle that many developers still associate with JavaScript or UI frameworks, including modal dialogs, popovers, grouped details sections, hidden content that browser search can reveal, datalists, and newer form and media features. The core reaction was enthusiasm that the web platform has finally caught up on a lot of bread and butter UI work, especially for server-rendered apps that want fast load times, less code, and better default accessibility. Several people said they are already shipping production interfaces with dialog and popover APIs, or are ripping out old accordion and modal code because the built-ins are now good enough.

If your team is still defaulting to JavaScript for every small interaction, it is worth revisiting what browsers now do natively. Keep native HTML as the baseline, then add custom components only where the product truly needs stronger search, richer date picking, or tighter visual control.

Discussion mood

Mostly positive and a little exasperated. People like that modern HTML and CSS finally cover many common UI needs, and they are frustrated that teams still reach for custom JavaScript by reflex. The negative edge comes from native controls still failing in important product cases like comboboxes, date pickers, styling, and uneven browser behavior.

Key insights

  1. 01

    Popover is real now, positioning is the catch

    Popover and dialog are no longer toy APIs. People are using them heavily in production because top-layer rendering, automatic stacking, and cascade-close behavior remove a lot of the brittle plumbing that custom overlays used to need. The remaining pain point is placement near the trigger element. CSS anchor positioning helps, and some say it clicks once you use it, but support is still uneven enough that this is where native UI stops feeling effortless.

    Use native popovers and dialogs first for overlays, menus, and confirmations. Budget extra implementation time if precise anchored positioning is central to the interaction, and verify browser support before making it your only path.

      Attribution:
    • dajonker #1
    • nozzlegear #1
    • doginasuit #1
  2. 02

    Datalist is not a real combobox

    Datalist covers the demo version of autocomplete, not the product version. It lets users type arbitrary values, does not give you rich search or typo handling, and in practice still has enough support and behavior problems that teams building serious forms keep swapping it out for custom comboboxes or a small framework island. That changes how to read the original post. Native HTML has advanced, but one of the most common enterprise form widgets is still not solved cleanly.

    Do not standardize on datalist for IDs, people pickers, or any field where the user must choose from a controlled set. Treat it as a light enhancement for simple suggestions, not as a replacement for a proper searchable select.

      Attribution:
    • yurishimo #1 #2
    • vlucas #1
    • Groxx #1
    • Arch-TK #1
  3. 03

    Date and color inputs still leak the platform

    Native pickers are convenient until your product needs consistency. Date controls submit normalized values, but the displayed format follows browser and operating system conventions, which can confuse users in multilingual or cross-region workflows. Color input has the same issue in a different form, with entirely different picker UIs depending on platform. This is where native controls stop feeling like universal building blocks and start exposing the host environment.

    If support tickets or internal workflow depend on everyone seeing the same control and same format, test native inputs on real target devices before committing. For admin tools and specialized workflows, a custom picker may still be the lower-risk choice.

      Attribution:
    • silvestrov #1
    • hk1337 #1 #2
    • jimmygrapes #1
    • waltbosz #1
  4. 04

    These APIs strengthen server-rendered apps

    Declarative actions for popovers and dialogs were defended not as syntactic sugar, but as infrastructure for pages that are interactive before scripts load and still work under stricter security settings. That fits a broader push back toward server-side rendering, where fast time to interactive, direct links, and graceful degradation matter more than keeping all state in a client runtime. The interesting shift is that newer browser APIs are no longer just competing with JavaScript frameworks. They are making the old multi-page web feel modern again.

    If you are rethinking frontend architecture, native HTML features now materially improve the case for server-rendered interfaces. Re-evaluate whether a full client application is buying enough to justify its operational and performance cost.

      Attribution:
    • esprehn #1
    • jamescun #1
    • michaelchisari #1
    • stagas #1
  5. 05

    Hidden content can now stay searchable

    The hidden-until-found behavior landed as more than a curiosity. It solves a concrete usability problem for accordions, tabs, trees, pricing footnotes, and other collapsed sections that used to disappear from on-page search unless users expanded everything first. People also pointed out that the same reveal-on-find behavior can be controlled on many hidden elements, which makes it a broader content-disclosure tool than the original examples suggest.

    If your product hides large amounts of reference content behind tabs or accordions, add reveal-on-search behavior instead of forcing users to manually expand sections. It is a small change that removes a surprisingly common navigation failure.

      Attribution:
    • dofm #1
    • wvbdmp #1
    • akersten #1
    • megaman821 #1
    • culi #1
  6. 06

    The bigger win is semantic defaults

    Several comments pushed past specific APIs and argued that the biggest mistake in frontend remains replacing semantic elements with generic divs. Buttons, links, forms, and disclosure widgets already carry behavior, keyboard support, and accessibility expectations that custom markup has to painstakingly rebuild. The post resonated because it reminded people how much needless complexity starts with throwing away the browser's defaults before the real work even begins.

    Audit your design system for components that wrap native elements instead of replacing them. You will usually get accessibility, input handling, and maintenance wins faster from semantic cleanup than from adding another library.

      Attribution:
    • fHr #1
    • hendurhance #1
    • nobleach #1
    • xboxnolifes #1

Against the grain

  1. 01

    More native features also raise browser complexity

    The strongest pushback was not anti-HTML so much as anti-accumulation. Every new browser capability becomes another target that alternative engines have to implement, which raises the cost of maintaining browser diversity and makes new engines less realistic. That does not argue against using mature features already shipped everywhere, but it does challenge the habit of celebrating every platform addition as free progress.

    When adopting very new platform features, factor in ecosystem health as well as your own code reduction. If browser engine diversity matters to your users or your organization, wait for broad implementation before leaning on edge features.

      Attribution:
    • bellowsgulch #1
    • abanana #1
  2. 02

    A tiny local script is sometimes simpler

    One dissenting view was that not every interaction belongs in HTML just because browsers can absorb it. For things like sortable tables, a vendored JavaScript file under your control can be easier to customize than waiting for browsers to standardize a narrow built-in feature. The useful point is not nostalgia for jQuery. It is that native support is only a win when the browser primitive actually matches your product's needs.

    Do not force native solutions where a small, stable local script gives you a better fit with less compromise. The right comparison is total complexity over time, not whether a feature can be expressed declaratively.

      Attribution:
    • krapp #1 #2
  3. 03

    The platform is still catching up to old desktop UI

    A historical counterpoint argued that this apparent progress is really the web clawing back capabilities desktop toolkits had decades ago. From that perspective, the celebration is overdue rather than impressive, and it highlights how much time the industry spent rebuilding basic widgets on a weaker substrate. That framing tempers the triumphalism around modern HTML without denying that the new APIs are useful.

    Treat these additions as welcome repairs, not proof that the platform is suddenly complete. If you are building dense, application-like interfaces, keep a realistic view of where browser UI still lags traditional desktop frameworks.

      Attribution:
    • pavlov #1

In plain english

CSS
Cascading Style Sheets, the language used to control the visual styling of web pages.
UI
User Interface, the visual and interactive parts of a software product that people use directly.

Reference links

Modern web platform guidance

  • Modern CSS skill
    Suggested as a way to steer coding agents toward newer CSS patterns and standards.
  • Google Modern Web Guidance
    Referenced as official guidance for using modern CSS and web best practices with coding agents.
  • Command and CommandFor
    Cited to explain the longer push for declarative actions that work well with server-rendered interactive content.

View transitions and page navigation

Hidden content and disclosure patterns

Minimal web and JavaScript alternatives

  • Certified Web 1.0
    A project proposing standards and checks for document-style websites with minimal scripting and third-party dependencies.
  • NoScript
    Browser extension mentioned by people who browse with JavaScript disabled by default.
  • You Might Not Need JS
    Classic reference supporting the argument that many interactions can be done without JavaScript.

Form controls and browser support