When fast-clicking To/Cc/Bcc recipient type selector dropdown arrow, easy to accidentally remove recipient because delete button unexpectedly appears
Categories
(Thunderbird :: Message Compose Window, defect)
Tracking
(Not tracked)
People
(Reporter: xracoonx, Assigned: thomas8)
References
Details
(Keywords: ux-discovery, ux-error-prevention, ux-minimalism)
Attachments
(4 files, 4 obsolete files)
53.33 KB,
image/png
|
Details | |
53.27 KB,
image/png
|
Details | |
53.59 KB,
image/png
|
Details | |
18.04 KB,
patch
|
jorgk-bmo
:
review+
Paenglab
:
ui-review+
|
Details | Diff | Splinter Review |
Comment 3•7 years ago
|
||
Comment 4•7 years ago
|
||
![]() |
||
Comment 7•7 years ago
|
||
Comment 8•7 years ago
|
||
Comment 10•7 years ago
•
|
||
![]() |
||
Comment 11•7 years ago
|
||
Comment 12•7 years ago
|
||
Reporter | ||
Comment 13•7 years ago
|
||
Assignee | ||
Comment 14•7 years ago
|
||
Comment 15•7 years ago
|
||
Comment 16•7 years ago
|
||
Comment 18•7 years ago
|
||
Reporter | ||
Comment 19•7 years ago
|
||
Comment 20•7 years ago
|
||
(In reply to Thomas D. (currently busy elsewhere) from comment #14)
...
I suggest reopening this bug to find something better here.
I defer to UX
Comment 22•7 years ago
|
||
Yes, showing the button always doesn't take much space.
Jörg, this patch shows the delete button allways. What do you think?
One question, is there a better solution than "this.parentNode.nextSibling.nextSibling"?
![]() |
||
Comment 23•7 years ago
|
||
Reporter | ||
Comment 24•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #23)
Comment on attachment 9040960 [details] [diff] [review]
1493158-fixed-deleteAddress.patchHmm, this was discussed far and wide in bug 1100103. We opted for the "not
permanently on" option. So I don't really like this.Maybe this can be driven by some option? Or we can detect touch users?
I tried to follow the discussion there. Was the upshot of the discussion there to have a delete button appear on hover where the to/cc/bcc button is? If so that seems like a strange UI. This is not only a touch interface problem. The sudden appearance of a delete button in place of another button on hover is the problem as well.
Comment 25•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #23)
Maybe this can be driven by some option? Or we can detect touch users?
This isn't simply doable. Only show the delete button would narrow the menulist which can hide the content in it. FX has a detection for touch devices but we not.
My screenshot shows the delete button is moved to the right when hovering the menulist. The pro of this solution is, the button is not on the dropmarker position and is nearer to the address which makes it clearer for what it is.
What do you think about this?
Reporter | ||
Comment 26•7 years ago
|
||
(In reply to Richard Marti (:Paenglab) from comment #25)
My screenshot shows the delete button is moved to the right when hovering the menulist. The pro of this solution is, the button is not on the dropmarker position and is nearer to the address which makes it clearer for what it is.
What do you think about this?
If I understood it correctly, then this solution still suffers from the original problem: Moving/resizing button when hovered. I have never seen this in a UI.
Comment 27•7 years ago
|
||
xracoonx, you missed this part "this patch shows the delete button allways."
Richard, FWIW I like this last solution. (as much as dislike making the UI more busy)
![]() |
||
Comment 28•7 years ago
|
||
(In reply to Richard Marti (:Paenglab) from comment #25)
What do you think about this?
Maybe ;-) - I'd have to play with it.
Comment 29•7 years ago
|
||
Okay, here you can play with it. :-)
![]() |
||
Updated•7 years ago
|
![]() |
||
Comment 30•7 years ago
|
||
Reporter | ||
Comment 31•7 years ago
|
||
(In reply to Wayne Mery (:wsmwk) from comment #27)
xracoonx, you missed this part "this patch shows the delete button allways."
I think I did not. That was in an earlier comment. The later one suggestion showing on hover just with another position.
"MRC Compose" seems like a nice extension. I guess personally I can live with using that instead of the (faulty) Thunderbird default.
Assignee | ||
Updated•7 years ago
|
Assignee | ||
Comment 32•7 years ago
•
|
||
I'll present a new proposal in my next comment.
I think we can't just ignore the UX problem pointed out by reporter of this bug and duplicates. They click on recipient type selector dropdown arrow (surely a legitimate click target!) and suddenly find their recipient deleted. Jörg's comment 30 actually confirms that problem: he doesn't want to end up deleting when clicking on the right side of recipient selector, which is same scenario as reporter's.
-
ux-error-prevention: users should not end up deleting recipients when they only want to change the recipient type
-
ux-discovery: our delete button isn't very easy nor intuitive to discover, as it only appears when hovering recipient type selector (which has no obvious logical relation to deleting recipient). Certain users might never change or touch the recipient type selector but they might still want to delete recipients efficiently.
I've adjusted the summary to describe the problem without favoring one specific solution.
Assignee | ||
Comment 33•7 years ago
•
|
||
Here's my new proposal (Screenshot 1 out of 3).
Jörg and reporter are right, recpient delete button shouldn't appear out of nowhere from underneath when clicking recipient type selector, which is undiscoverable, unexpected, and error-prone.
As discussed in bug 1100103, we also don't want to clutter the entire recipient area with dozens of permanent delete buttons. In fact, even the permanent recipient type selectors are pretty noisy (over-salient) considering that users will typically use them maximally once per each recipient, and after changing the type, the dropdown then becomes irrelevant. There's absolutely no point of permanently having multiple dropdown markers for each recipient on screen.
This is 2019 and ux-minimalism has long been part of best practice on any type of application or online presentation. Users know (not least from their Android phones) that they have to touch (tap/hover/focus) any element on the screen first in order to get at contextual actions, and that non-contextual/inapplicable actions are typically hidden to avoid clutter.
PROPOSAL
So I suggest to radically simplify/de-clutter both the recipient type selectors and the delete buttons by making them contextual, i.e. showing them only and exactly when they are needed. Ironically, this actually makes both of them MORE discoverable.
- show recipient type selector and delete button only when applicable
- when editing a recipient (this is a great way of assisting ux-discovery)
- when hovering / focusing any part of a recipient row (name/type/delete)
- hide all recipient type selector stylings (dropdown arrow, border box) and delete button when they are not applicable (i.e. when recipient is neither being edited nor hovered nor focused).
Assignee | ||
Updated•7 years ago
|
Assignee | ||
Comment 34•7 years ago
|
||
Proposal - Screenshot 2 of 3
Obviously recipient type selector will re-materialize when hovered, and also when the delete button or recipient name is hovered. In fact, hovering any part of a recipient row will show those contextual actions.
Assignee | ||
Comment 35•7 years ago
|
||
Proposal - Screenshot 3 of 3:
This is the nicest part: When you are done with recipient editing, e.g. when typing body text, all the operational clutter of recipient type selectors or delete buttons just elegantly disappears, leaving a clean and informative recipient area.
Assignee | ||
Comment 36•7 years ago
•
|
||
(In reply to Thomas D. (currently busy elsewhere) from comment #33)
Created attachment 9041093 [details]
PROPOSAL
So I suggest to radically simplify/de-clutter both the recipient type selectors and the delete buttons by making them contextual, i.e. showing them only and exactly when they are needed. Ironically, this actually makes both of them MORE discoverable.
- show recipient type selector and delete button only when applicable
- when editing a recipient (this is a great way of assisting ux-discovery)
Note that both delete button and recipient type selector are visually de-emphasized when recipient input has focus:
- X and dropdown arrow more slim and lighter color
- dropdown box background color same as recipient area background color, i.e. only the border makes it stand out.
When hovering the delete button, the X buttonizes as it does now, and the recipient type selector should be shown but de-emphasized as in Screenshot 1, attachment 9041093 [details].
Assignee | ||
Comment 37•7 years ago
|
||
Feedback on my proposal as described in comment 33, comment 34, and comment 35 will be welcome.
Screenshot 1: attachment 9041093 [details]
Screenshot 2: attachment 9041094 [details]
Screenshot 3: attachment 9041095 [details]
Comment 38•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Assignee | ||
Comment 39•7 years ago
•
|
||
(In reply to Richard Marti (:Paenglab) from comment #38)
Comment on attachment 9040960 [details] [diff] [review]
1493158-fixed-deleteAddress.patchThomas, when you want to play with your proposal, take this patch as it
moves the delete button in front of the menulist. Now you can do the the
hiding when not active logic.
Thanks. Unfortunately, I don't have time for playing with patches atm and it's unlikely to change soon. I was hoping it could be realized mostly using CSS on which you're the expert...
The screenshots were mockups produced with MS Paint.
Comment 40•7 years ago
|
||
Unfortunately CSS can't style things which depends on subsequent siblings. I'd need a selector if the row is active, then it would work.
![]() |
||
Comment 41•7 years ago
|
||
I like Thomas' idea.
"Focused" isn't enough for "active"? So which element needs to be marked active? The richlistitem, which contains the delete button, the To/Cc/Bcc and the address?
Comment 42•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #41)
I like Thomas' idea.
"Focused" isn't enough for "active"? So which element needs to be marked active? The richlistitem, which contains the delete button, the To/Cc/Bcc and the address?
I need the "active" attribute, or every attribute name you want, on the richlistitem (.addressingWidgetItem) when the aw-menulist or the textbox-addressingWidget has the "focused" attribute. When hovering the whole richlistitem to show the delete button and the menulist it's enough when I use the .addressingWidgetItem:hover selector.
![]() |
||
Updated•7 years ago
|
Assignee | ||
Comment 43•7 years ago
•
|
||
Here's a proof of concept / WIP patch which realizes my proposal of comment 33 ff, much like in the screenshots 1-3 of attachment 9041093 [details] ff.
Please ignore bug 1525828 of duplicate type selector (menulist), which is not caused by my patch.
Otherwise this works very well for me.
:focus-within works perfectly to mimic not-yet existing parent or previous sibling selector, pure CSS without any javascript workarounds.
(One would wish for :hover-within which would allow us to style the entire recipient row somehow when the delete button is hovered...)
- delete button and type selector dropdown styling only shown when recipient or any part of the recipient row is hovered or has focus.
- Otherwise both hidden which does a great job to declutter the entire recipient area from dozens of useless type selector dropdowns.
- aw-menulist has finally returned to a "normal" dropdown styling with white background: feels much lighter, less awkward, consistent with the "From" dropdown, and more like an actual editable windows-style dropdown. Editable? Yes, you can actually type "BCC" when the dropdown has focus and it'll work if your typing speed is fast enough.
WIP:
- No guarantees for selectors to be in the right file or in the right sections - essentially I tried to make it work for Windows 10 but there seem to be dozens of scattered files, sections and rules which define this. Richard will be able to look into the details...
- Linux / OSX styles not yet included.
- Richard, could you make the recipient type selector to have same height as recipient input, so that the border boxes will match, which looks neater.
If Paenglab agrees, I'd like to take this bug if my proposal is accepted, assuming that we'll be done here with few iterations. Btw, does HG accept two patch authors for one patch?
![]() |
||
Comment 44•7 years ago
|
||
Assignee | ||
Comment 45•7 years ago
|
||
Btw, do we still need this? Do we still have a tree here? Or maybe this does nothing...
<treecols hidden="true">
<treecol id="firstcol-addressingWidget" style="width: 18px;"/>
<treecol id="typecol-addressingWidget" style="&headersSpace.style;"/>
<treecol id="textcol-addressingWidget" flex="1"/>
</treecols>
Assignee | ||
Comment 46•7 years ago
|
||
Nits:
- Recipient type selector dropdown arrow is a bit squeezed on the left, needs some px more padding.
- Delete button is too close to recipient type selector, again needs just a few px of distance.
Assignee | ||
Comment 47•7 years ago
•
|
||
Comment editing and Markdown styling are AWESOME :-))
Comment 49•7 years ago
|
||
Didn't knew the focus-within. Like this it's easy to do. Thanks, Thomas.
I changed the code a bit and added the needed code to Linux and Mac.
I'll let Jörg review, as it's not good when I review it when I also provide some code.
![]() |
||
Comment 50•7 years ago
|
||
Updated•7 years ago
|
Comment 51•7 years ago
|
||
Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/4831d30eb0f8
Declutter addressing widget: Hide recipient delete button & type selector when they are not relevant. r=Paenglab,jorgk
![]() |
||
Updated•7 years ago
|
Assignee | ||
Updated•7 years ago
|
Assignee | ||
Comment 52•7 years ago
|
||
Thanks xracoonx (reporter) and the reporters of duplicates for raising this usability issue, which has been fixed now (see comment 43), which also includes making the delete button available on touch devices which don't have hover event (bug 1504511).
Thanks everyone, nice teamwork from wontfix to smart fix.
FTR: My original patch attachment 9042686 [details] [diff] [review] also made the aw-menu box styling much lighter and blend in even more with the flat styling of the header brackground, but unfortunately that change got lost. Imho that should be tried again in a followup bug which should also normalize the design of paragraph format and font selector.
Assignee | ||
Comment 56•6 years ago
|
||
(In reply to Thomas D. from comment #43)
Created attachment 9042686 [details] [diff] [review] ...
:focus-within works perfectly to mimic not-yet existing parent or previous sibling selector, pure CSS without any javascript workarounds.
(One would wish for :hover-within which would allow us to style the entire recipient row somehow when the delete button is hovered...)
For applying styles (e.g. red border/shading) on entire recipient row when delete button is hovered, maybe something like this:
https://css-tricks.com/hover-on-everything-but/
Assignee | ||
Comment 57•6 years ago
|
||
Adding search words to summary.
Description
•