I recall reporting this issue a few years back already… not sure where. The UI around selecting tags and categories in places like this can be a bit confusing if you don’t already know how to do it.
It’s hard to know how to get out of the UI once you’re in there selecting items. You have to select Esc or click away from it. There is no visual X button to exit, and the save button is hidden/covered by the pulldown.
I agree that it would be helpful to be warned not to leave the page if you have unsaved changes.
In some situations (such as the user profile) having a confirm per field would be a right pain for those users who are filling in multiple fields.
But having said that, the vast majority of user preferences interactions will only involve the changing of one or two fields, and it makes complete sense! Plus we already have the mechanism all through the settings UI.
I think we should consider this on a much higher level because this UI pattern is not just restricted to Sidebar but the entire user preferences interface. I agree with @keegan here though, the UI pattern we use for the admin interface will probably be a good first step.
I am very much in favor of updating the UI pattern in user prefs.
Hope we don’t lose sight of the below, which is a separate but related UI problem to my mind. @awesomerobot do you have any thoughts on how we could address it? It also can cause confusion when starting a topic and changing categories and tags of topics.
It’s not the same thing but I’d like to add that the standard user experience on mobile when using any dropdown/select/modal is the Back button to close something that’s open:
At least for me it’s pretty common to be on mobile editing a tag or category for a topic and intuitively hit Back to close the dropdown and end up in the previous page. I’d love to see all modals and dropdowns on Discourse behaving the same as native on mobile, but I agree that a more explicit way of closing dropdowns will be a step forward to avoid this confusion.
Dropdowns and toggles should probably auto-save on change, that seems to be fairly normal now if you look around at other apps. For tags and categories, this would mean that clicking to add/remove an item would trigger a save…
Really the only preference pages with text inputs are profile and account… and account only has 1 text input for the name field. We could possibly move that to the profile page instead? Then maybe the inputs get an inline like the site settings do, and we can warn someone that’s trying to leave the page without taking action…