by return_to_monke on 5/24/23, 11:12 AM with 292 comments
by corry on 5/24/23, 1:48 PM
Loading a new page, new tab, or simply navigating fully away to a new editing screen are all pretty heavy disorienting actions for something that could be pretty light.
But it's related to the amount of work being done in the modal.
For a very small amount of work (e.g. editing a single text field), inline-editing would be best; for a lot of work (e.g. composing a bunch of textboxes and including other data, etc) a dedicated page is best.
A modal belongs somewhere in-between - editing a few things at once, in context of other things.
"Can this modal be an inline-edit?" <-- first question I'd ask. If the answer is No:
"Will the work being done on the modal take more than 2 minutes to do?" <--- then I'd consider a separate page.
But things in-between seem perfect for a modal.
by huhtenberg on 5/24/23, 11:27 AM
This will worsen the UX more often than not. Guaranteed.
All complaints on the page are ultimately grievances against poorly thought-through implementations and as such they are rooted in the wrong thing. It's trivial to complement every modal window with a standalone version, in which case it's possible to bookmark them, middle-click on the links and what have you.
Start with the user experience, craft your implementation around that and all will be fine. Including the modal windows.
by chakintosh on 5/24/23, 12:33 PM
> Modal windows can't be bookmarked or shared as links
Why would the user want to bookmark or share a "modal". I believe the author is confusing a modal with a details page (a customer's details page in a CRM for example) on that we can agree that that kind of content is best shown on a separate page. A modal serves a specific function within a web page, be it a website or a web app. Its main function is to allow the user to perform certain tasks within a page, and those tasks will immediately reflect on the underlying page upon submission (or validation/confirmation ..etc). So I fail to understand why the author thinks a user would want to bookmark that modal.
> Modal windows can't be opened in a new tab
Nor should they. Modals, as mentioned above, are one layer above an underlying page, and they either show complimentary information related to an element within that page, or they allow to user to performa task. So they should inherently be accessible within the same tab, not a new one.
> Modal windows make the Back button confusing
Aside from the Close/Abort button inside the modal, a lot of interaction designers and front-end developers are now developing the modals in a way they would close if you press the back button of your browser. No confusion there in my opinion.
> Modal windows are hard to get right[...]if you need to support older browsers, good luck.
Can't find the date this article was published but I assume it's old because almost all new browsers support at least <dialog> element [1]
Modals are a double edged sword, like any UI component or UX pattern really.
[1] https://developer.mozilla.org/en-US/docs/Web/HTML/Element/di...
Further reading: https://www.nngroup.com/articles/modal-nonmodal-dialog/
by ab_goat on 5/24/23, 11:38 AM
For example, a user may want to edit a few items items in a list Rather than forcing the user to a new page to do each edit, you can pop up a modal and edit in place. With new pages, the user loses the context of the original list. The page swapping is very disruptive.
by kypro on 5/24/23, 11:49 AM
Lmao, I was making this point at work yesterday. It's really difficult to justify using a modal if you care about accessibility. It's not that it's impossible to do correctly, but even when it's done "correctly" it can still be confusing for users navigating with keyboards / screen readers. So modals are almost always either too much effort to do right, or just not the best approach.
Another thing I'd add to this list is that there are some people who browse without JS enabled. I know it's unpopular to care about those folks these days, but it is another reason to avoid modals where possible.
by qwertox on 5/24/23, 11:28 AM
by quickthrower2 on 5/24/23, 12:03 PM
I hit a bug where if I closed the popup (for a ticket on a board) it just reopened! And some ticket links don’t work. All these bugs and complexity for what?
Maybe the browsers should have a built in “open link as popup” for the rare times you want that. And the sites just make it a new page always.
by ibejoeb on 5/24/23, 1:41 PM
A modal is not, in itself, an overaly, window, frame, etc. Generally, it really shouldn't even be used as a noun. Modal describes the state of the interface. Most interfaces allow for multiple user interactions originating from the broader interface, i.e., it is multi-modal.
Sometimes, it is necessary to put the UI into a single-purpose state, so, in a single mode. This is required when two interactions can interfere with one another. When one interaction must not be interrupted by another, we must go modal.
The author seems to be chiefly complaining about unnecessary modality and the way that gives rise to clunky UIs that don't allow for things like linking. That's rooted in conflating on-screen, 3D elements like overlay dialog boxes with the concept of one of some interface being modal. An example of this would be an interface with a item list that, on item selection, conjures a modal overlay dialog box with the item details. In the base case, there is no dependency problem here, i.e., it's an entirely acceptable design to allow a user to view the details of two items at the same time, and therefor it doesn't call for a modal detail interface.
by notatoad on 5/24/23, 1:35 PM
Run it through user testing and see how your users actually react to new windows being opened all the time. A lot of them are going to be confused, and not be able to make it back to your site. Modals are popular because they work
by DonHopkins on 5/24/23, 12:33 PM
https://modalzmodalzmodalz.com/
MODALZMODALZMODALZ.COM
>We use too many damn modals. Let's just not. Help
>The bad news: Modals are the crutch of the inarticulate designer and developer. [...]
https://news.ycombinator.com/item?id=23645447
>bedatadriven on June 25, 2020 | next [–]
>I was just about to share this our designer, who is always talking me down from modals, when I reached the bottom and discovered that our designer is in fact the author.
>I seriously can't say enough for this message. Adrian helped us redesign our app 2 years ago, dispatching many many modals in the process, and delivering a huge increase in usability that our customers and users very much do care about.
by micheljansen on 5/24/23, 12:46 PM
Modals are often fine for dialogs and fleeting interactions that happen within the context of the page you are on. Those often don't need their own URL. Don't need to persist after a page refresh, shouldn't be shared, confusingly pollute browser history and benefit from instant loading.
I mostly agree with the author in their examples. If it walks like a page and it talks like a page, it probably should be a page. No need to throw the baby out with the bathwater otherwise.
by jasonlotito on 5/24/23, 11:57 AM
Compare Safari's Open File to Chrome's Open File. Chrome's Open File modal cannot be moved. Safari's can.
If you have a modal, and it blocks content, you have to be willing to say "I want to prevent my users from seeing this content while dealing with the modal. The content that is being blocked is not important, and it serves NO purpose."
by zuprau on 5/24/23, 2:30 PM
You don't even necessarily need to place it in a new page, probably you can just expand it inline.
Most modals are just lazy.
"Where should I put this piece of UI/information?"
"Just place it above everything else."
With SPAs you don't even have an excuse that "a full-page reload will take longer" because you can change the whole page/layout instantly.
by ptx on 5/24/23, 12:36 PM
by sva_ on 5/24/23, 11:22 AM
by physicsguy on 5/24/23, 11:49 AM
If I think about the engineering product I work on and where they do have modals, none of them would work with a separate page. It's things like "Load one or more of your saved graphs (which you can search and filter) into this existing page of graphs"
by davidthewatson on 5/24/23, 1:01 PM
There is no question that a design gets easier to parse for users when it is serialized by modality. Likewise, serialization is dramatically easier for implementors since it eliminates the need for concurrent execution.
Context matters. Those choices have strong historical reasons for their existence in operating systems and their user interfaces. However, they have little place for being emulated on the web.
Why? Because they give rise to all manner of bad implementation such as the fact that linking structures have not grown at the pace they should have, particularly as it relates to documentation.
All you have to do is look at Amazon's constant proxy to "click here, click there" as a sad excuse for why HCIs don't scale at the same rate as APIs and you can condemn a large portion of the last two decades of design on the internet since these patterns have been copied ad nauseum but only exist because we've employed tools that automated their creation when a link has always been worth a thousand words of "click here, click there".
REST applies to HCIs as much or more than APIs.
by HL33tibCe7 on 5/24/23, 12:34 PM
It’s the kind of bold, blanket statement that sounds really great and is a fun opinion to hold, but when confronted with reality crumbles (as many statements of that kind do).
by golergka on 5/24/23, 11:22 AM
Small messages that need to be brought to the user's attention and a simple "OK"/"Cancel" button? Yes, this is a good fit. That's what modal windows were originally created for.
by efitz on 5/24/23, 11:32 AM
by jmbwell on 5/24/23, 12:54 PM
> Modal windows can be used for views that don't constitute a "resource" or correspond to a domain entity:
> Alerts
> Confirmation dialogs
> Forms for creating/updating entities
by myth2018 on 5/24/23, 12:44 PM
> Because it looked good in the mockup
Indeed, tools like Figma can create a dangerous illusion of simplicity. I wonder how much time and effort has been wasted during the actual software development process, despite the initial, marginal savings in mockup design.
One must also take in account that the hourly rates for developers are typically higher than those of UI designers, so that it doesn't make much sense to increase productivity of the latter at the expense of the former.
by projektfu on 5/24/23, 12:08 PM
I have lots of frustration with modal views that: 1. block me from seeing the things that I probably need to enter into the view 2. disappear when you accidentally click outside them 3. don't scroll properly 4. don't allow scrolling of the page behind 5. don't play well with reasonable browser extensions (uBlock, but other things as well like Disconnect) or even the tracking prevention build into browsers. 6. store data in a weird place so that a second window of the same site in a different location opens the same (now incorrect) data in the modal.
These things are becoming super common in line-of-business apps, where they interrupt workflow. Better options:
1. New page, as recommended by this link 2. Expanding a region of interest to allow the form to fit 3. Making the page more interactive in other ways so that a modal doesn't seem like the best way to do the interaction
by 0xedb on 5/24/23, 11:27 AM
by yawnxyz on 5/24/23, 11:44 AM
SPA page loads can get really slow, which can frustrate or disorient users. Having too many page loads to sequentially drill down your info architecture can get really annoying for users. If your pages are 1 or 2 layers deep in your architecture, and the rest is shown in some way within the page (again, modals are one way to do it), as a piece of "fleeting information", your users will appreciate it.
by dvh on 5/24/23, 11:45 AM
by sureglymop on 5/24/23, 11:48 AM
by nfRfqX5n on 5/24/23, 12:42 PM
by ThatMedicIsASpy on 5/24/23, 12:05 PM
I refuse to read anything that is said after the example being useless.
by spaceman_2020 on 5/24/23, 12:04 PM
by tobr on 5/24/23, 11:38 AM
Linking to a separate page is like GOTO control flow. You leave it up to the user to figure out where to go from there, but the user usually doesn’t know the full sequence of steps that are part of a task. It’s your responsibility to guide them.
by mrpelz on 5/24/23, 1:28 PM
2. once again, there is a failure here to recognize which use cases are best served by a website (i.e., a set of web pages that use native browser navigation) or by a single-page application (which takes native UI paradigms such as multiple windows and modals and implements them using web technologies)
3. blanket criticism for single-page applications often comes from people who have no real understanding of web development and harbor nostalgia for the "good old days" when browsers acted only as display devices for server-generated HTML strings; those people aren't worth arguing with, I don't have time for them, I'd rather spend my time improving web technologies so that more people can implement applications that feel "native" yet work across different architectures, devices, screen sizes, languages, and writing directions, built on top of a platform that is privacy-centric by default, and not controlled by a single company
by bob1029 on 5/24/23, 1:53 PM
/MyResource/123 (all operations happen here as various "Modes")
vs
/MyResource/123/View
/MyResource/123/Export
/MyResource/123/EditPropertyA
/MyResource/123/EditPropertyB
/MyResource/123/Delete
etc...
This doesn't work for all things, but I mostly build internal admin dashboards when I am doing web development.One other benefit to using full routable pages for your various views is that you can subdivide the work a lot more easily. Assuming you have some common layout/style system (which you absolutely should), you can realistically part out the dev work at the grain of a URL at a time. We still have a few modals, but they are all of the "confirm scary operation XYZ" variety.
by EduardoBautista on 5/24/23, 11:45 AM
Modals can definitely be bookmarkable if they are dependent on a certain path or query param to appear.
by Gabrys1 on 5/24/23, 11:48 AM
> Modal windows can be used for views that don't constitute a "resource" or correspond to a domain entity: > [...] > Forms for creating/updating entities
Wow, in my opinion this a perfect example where a separate page IS still superior to a modal: how much better a "create issue" jira PAGE is vs the modal?
by dadalorian on 5/24/23, 12:08 PM
by 000ooo000 on 5/24/23, 12:12 PM
by NavyG on 5/24/23, 11:47 AM
We use modal windows specifically for this reason (for our payment application's checkout page).
Also using a modal significantly improves the checkout experience in case of SDK flows for payment methods like Klarna, Google pay etc.
Personally I feel modal windows are better aligned to the user's flow of attention. We also have redirection flows for these payment methods to open the authentication page in a new tab but we pick the modal flow ever single time for a better experience.
You can get a feel of what I'm talking about over here: https://demo-hyperswitch.netlify.app/checkout
by jrochkind1 on 5/24/23, 1:33 PM
Another reason might be to avoid losing state on the underlying page.
If you have a "SPA" style app, it might obviate both of these reasons. In an SPA app (ideally one with good URL and back button behavior of course) the difference between a modal window and a separate page perhaps becomes _only_ one of UX, which presentation is better?
But in a more traditional server-side-rendered app with minimal UI-focused JS, other considerations still exist which are legitimate, it seems to me.
by KevinChen6 on 5/24/23, 2:04 PM
by marcofiset on 5/24/23, 12:21 PM
That may sound like gibberish if you're not familiar with Phoenix LiveView, but it all makes sense and it just works.
by motoboi on 5/24/23, 12:52 PM
by js8 on 5/24/23, 11:42 AM
by dncornholio on 5/24/23, 1:17 PM
Just make it so that you can copy-paste the URL and you will see the same page with the same modal openen.
by nologic01 on 5/24/23, 11:33 AM
by nonethewiser on 5/24/23, 1:42 PM
Why is there a completely untested assumption that everything should be linkable?
by zethus on 5/24/23, 4:05 PM
by usrbinbash on 5/24/23, 2:20 PM
You don't need most of the cruft that clutters "modern" webpages. While not solely responsible, ever more "clever design" has certainly contributed to the status quo, where we load upwards 30MB of garbage to display <10 lines of information.
by vaylian on 5/24/23, 12:01 PM
by hk1337 on 5/24/23, 2:27 PM
Modals have their use and function. Don't overdo it and maybe even provide non-modal options in addition to the modal.
by mbostleman on 5/24/23, 12:57 PM
by andix on 5/24/23, 1:52 PM
I really don't get it. We're doing mostly SPAs, so any back-button would be as fast as closing the modal.
by derekzhouzhen on 5/24/23, 1:47 PM
by asynchronous on 5/24/23, 1:44 PM
by nicbou on 5/24/23, 12:24 PM
by davedx on 5/24/23, 1:37 PM
Sprinting along delightfully, getting everything right, every piston firing... then falls on face at the last hurdle.
No, don't put forms in modals, gah!
by extasia on 5/24/23, 11:25 AM
by gloryless on 5/24/23, 3:37 PM
by throwawaaarrgh on 5/24/23, 1:45 PM
by j3th9n on 5/24/23, 12:55 PM
by amelius on 5/24/23, 11:35 AM
by 1337shadow on 5/24/23, 1:41 PM
by jcmontx on 5/24/23, 11:51 AM
by revskill on 5/24/23, 12:50 PM
by ulrischa on 5/24/23, 5:29 PM
by b1nj0y on 5/25/23, 6:32 AM