Comment by slopinthebag

19 hours ago

since the author brought up the native <dialog>, developers chose custom implementations of dialogs because they want better accessibility, better focus management, better mobile and touch screen reader support, and more flexibility. adobe's implementation is far more robust and flexible compared to the native dialog, and it's hard to justify "use the platform" when it results in a strictly worse end result.

When I tried using <dialog> for the first time, there was one major thing that stuck out to me as a bit of a problem with how it is implemented:

It has become a norm to expect that if you click/tap on the backdrop of a modal/dialog, it will dismiss the modal/dialog. That isn't the case with <dialog> by default, and you need to use either use a hacky JS handler that checks the bounding box of the dialog (because the backdrop click events just end up fed to the dialog element), or use an attribute, `closedby`='any' that does not work on iOS and has spotty support at best in desktop Safari

Yeah, that was kind of ignored in the article and it's definitely an issue for some platform features. Date pickers are another one where it's easy to outgrow the native implementation.

  • I was excited about the native date picker and tried to use it once, only to discover that you couldn't (can't still, I assume) disable dates other than by setting min and max. Every native browser widget I've tried to use doesn't implement the features my clients expect, so I don't use them. People want a better web platform and the only way to get it is JavaScript.

    • Yep.

      “We need a date picker to schedule a visit.”

      “Okay, use `<input type=date>`”

      “It needs to be a date in the future.”

      “No problem, add a `min="2026-10-05"` attribute.”

      “And we’re only available on weekdays.”

      “Okay, throw the native date picker away completely and build one yourself from scratch.”

      Did nobody involved ever bother to ask what the requirements were for a date picker? Excluding dates is one of the most common requirements there is!

      4 replies →

    • But also custom date pickers are the most broken thing you can find everywhere. Browse with a combination of browser/phone the developer didn't test, and you can't pick even the most basic single date. The most blatant are the fancy range pickers, instead of two date picker boxes: I have been pushed to a desktop browser because the mobile renders half of it off-screen, or don't hold open after tapping the start date, or works by dragging but breaks on single taps...

      2 replies →