It's too easy to delete CC/BCC/Reply-To fields
Categories
(Thunderbird :: Message Compose Window, defect)
Tracking
(thunderbird_esr78 wontfix)
| Tracking | Status | |
|---|---|---|
| thunderbird_esr78 | --- | wontfix |
People
(Reporter: ddl-github, Assigned: thomas8)
Details
(Keywords: ux-efficiency, ux-error-prevention)
Attachments
(3 files, 4 obsolete files)
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Steps to reproduce:
- Added a CC field to the message compose window.
- Added several addresses to the CC field.
- Deleted addresses by backspacing over them.
- Pressed backspace again in the empty field.
Actual results:
The CC field is removed.
Expected results:
Two suggestions for alternate/better behaviour:
- Pressing backspace does nothing when the field is empty. Rationale: if field removal is truly desired by the user, there is already a removal "X" button to the left of the field.
- Pressing backspace in an empty field moves the focus to the "X" button; one more backspace removes the field.
| Assignee | ||
Comment 1•4 years ago
•
|
||
(In reply to ddl-github from comment #0)
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Steps to reproduce:
- Added a CC field to the message compose window.
- Added several addresses to the CC field.
- Deleted addresses by backspacing over them.
More precisely, you backspaced over them one by one (at least for the last one), probably a bit fast and without much attention, hence your surplus key press:
- Pressed backspace again in the empty field.
Well, de facto that's a user error - there's no reason to press backspace again on an empty field after all recipient pills and all input text is already deleted. Personally, I've never had a problem with this; I find this shortcut extremely convenient and I'm using it every day.
That said, I can sympathize with reporter's scenario, as I guess we've all done staccato deletions sometimes without paying attention; then finding the entire row gone may involve an element of surprise. So we may look at this in terms of ux-error-prevention.
Here's a smart solution: On an already empty address row, require a dedicated(!) long keypress of Delete or Backspace to remove the row.
- Effective ux-error-prevention for reporter's scenario of surplus staccato deletions
- As before, deleting row contents with a long keypress will not remove the row ("safety brakes").
- Preserve the ux-efficiency and convenience of this long-standing feature: easy, hassle-free row removal via keyboard.
I've tried this and it works very well. I have a patch.
Expected results:
Two suggestions for alternate/better behaviour:
- Pressing backspace does nothing when the field is empty. Rationale: if field removal is truly desired by the user, there is already a removal "X" button to the left of the field.
Too clumsy via keyboard for this everyday action. Shift+Tab, Enter is pretty inconvenient and needs a lot of user reflection and attention to get that right.
- Pressing backspace in an empty field moves the focus to the "X" button; one more backspace removes the field.
Imho, that would be pretty unusual/unintuitive and would probably make the problem worse.
| Assignee | ||
Comment 2•4 years ago
•
|
||
Patch: On an already empty address row, require another dedicated long keypress of Delete or Backspace to remove the row.
- Effective ux-error-prevention for reporter's scenario of surplus staccato deletions
- As before, deleting row contents with a long keypress will not remove the row ("safety brakes").
- Preserve the ux-efficiency and convenience of this long-standing feature: easy, hassle-free row removal via keyboard.
| Assignee | ||
Comment 3•4 years ago
|
||
Comment on attachment 9224005 [details] [diff] [review]
1712425_longKeypressAddressRowRemoval.diff
Some flaws slipped in.
| Assignee | ||
Comment 4•4 years ago
•
|
||
Rebased patch.
On an already empty address row, require another dedicated long keypress of Delete or Backspace to remove the row.
- Effective ux-error-prevention for reporter's scenario of surplus staccato deletions
- As before, deleting row contents with a long keypress will not remove the row ("safety brakes").
- Preserve the ux-efficiency and convenience of this long-standing feature: easy, hassle-free row removal via keyboard.
| Assignee | ||
Updated•4 years ago
|
Comment 5•4 years ago
|
||
I'm not sure about this.
I stumbled upon the same issue the reporter wrote and it's kind of annoying.
I have this habit of hitting backspace multiple times, or keeping it pressed, to be sure the entire field is properly cleared, so the field closing happens fairly often for me.
I'm slightly questioning the "utility" of this feature.
What's the real advantage of being able to close an extra field with delete or backspace other than clearing the UI?
There are some scenarios that this feature might be useful, but the accidental closures might be more common than we expect and this might easily get annoying.
I need a bit more time to think about this and see if it makes sense keeping this or the benefits don't justify the potential user errors and checks we're putting in place.
| Assignee | ||
Comment 6•4 years ago
•
|
||
(In reply to Alessandro Castellani [:aleca] from comment #5)
I'm not sure about this.
I stumbled upon the same issue the reporter wrote and it's kind of annoying.
I have this habit of hitting backspace multiple times, or keeping it pressed, to be sure the entire field is properly cleared, so the field closing happens fairly often for me.
Good news for you: That's exactly what we are fixing here!
Please note: "keeping backspace pressed to be sure the entire field is properly cleared" will not remove the row (neither before nor after this patch).
I'm slightly questioning the "utility" of this feature.
The utility is in the unbeatable keyboard efficiency and convenience. You'll start to know when you need to do this like 100 times per day.
The only keyboard alternative, Shift+Tab, Enter, is pretty inconvenient and needs a lot of user reflection and attention to get that right.
What's the real advantage of being able to close an extra field with delete or backspace other than clearing the UI?
Clearing the UI is a real advantage:
- Recover vertical space (the header area already uses a lot of that, minimum 25% with just 1 row each of To and Bcc).
- Declutter the UI from unneeded, distractive inputs (empty fields are inherently asking to be filled...)
There are some scenarios that this feature might be useful, but the accidental closures might be more common than we expect and this might easily get annoying.
Exactly! We are here to fix that annoyance...
Have you tried the patch in action? Accidental closures are no longer possible with this patch:
- surplus staccato deletions (multiple short keypresses) will no longer remove the row (which fixes the current accidents)
- long keypress from erasing text or pills will not remove the row ("safety brakes", just like before)
- only when you explicitly start(!) another long(!) keypress on an already empty(!) row, that will remove the row (this is new).
Put simple - you can safely delete your contents in whichever style you prefer (multiple, random short keypresses or a long keypress until field is cleared), then you need to let go(!), and explicitly do another long keypress on the empty field to remove it.
Imho that cannot happen by accident except with compulsive disorders or trying to send a Morse code... ;-)
| Assignee | ||
Comment 7•4 years ago
|
||
Please note: Regarding ux-efficiency, this is the reverse case of:
- Bug 1667692 - Implement keyboard shortcuts to show and focus important address rows (To, CC, BCC): Ctrl+Shift+T, Ctrl+Shift+C, Ctrl+Shift+B (like gmail)
- Bug 1616514 - Provide a way of showing Cc and Bcc addressing rows automatically when starting to write a message (esp. for enterprise)
In those bugs, we've learned from high-volume professional email users that even the smallest extra click in frequent scenarios can be extremely annoying and time-consuming as it interrupts high efficiency keyboard workflows. Users were explicitly requesting an easier keyboard-accessible way to open their Cc or Bcc fields either case-to-case (bug 1667692) or permanently (bug 1616514).
In this bug, it's about ux-efficiency for the reverse case: easy, hassle-free keyboard access to close the Cc or Bcc fields case to case. I guess we allow closing the fields for a reason... This is a daily scenario for me, and the shortcut is a perfect no-brainer time-saver.
| Assignee | ||
Comment 8•4 years ago
|
||
(In reply to Thomas D. (:thomas8) from comment #6)
The utility is in the unbeatable keyboard efficiency and convenience. You'll start to know when you need to do this like 100 times per day.
The only keyboard alternative,Shift+Tab, Enter, is pretty inconvenient and needs a lot of user reflection and attention to get that right.
Fwiw: Bug 1713426 - [x] Close button to remove Cc/Bcc address rows is not keyboard-accessible (90.0a1 (2021-05-28) (64-bit))
Comment 9•4 years ago
|
||
| Assignee | ||
Comment 10•4 years ago
|
||
Thanks for the review! All code comments improved along comment 9.
Two more nits fixed around subject field to prevent unwarranted ongoing deletion when cursor was at position 0 of subject field before and a previous row gets deleted via the shortcut.
| Assignee | ||
Updated•4 years ago
|
| Assignee | ||
Comment 11•4 years ago
|
||
For consistency, this patch applies the improved behavior also to address rows generated via mail.compose.other.header pref.
In the process, unify and relocate handling of the input event for all types of address rows to avoid code duplication and keep similar and related event handlers conveniently in one place.
Comment 12•4 years ago
|
||
Updated•4 years ago
|
| Assignee | ||
Comment 13•4 years ago
|
||
OK. All comment nits of comment 12 addressed. So we're done :-)
(In reply to Alessandro Castellani [:aleca] from comment #12)
Review of attachment 9225450 [details] [diff] [review] ⧉[details] [diff] [review]:
I'll set this toleave-openas I want to implement a couple of tests to
cover this feature.
That's great!
| Assignee | ||
Updated•4 years ago
|
Comment 14•4 years ago
|
||
Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/5d088e70a358
Improve ux-error-prevention of removing empty address row with Delete or Backspace. r=aleca
Updated•4 years ago
|
Comment 15•4 years ago
|
||
Grabbing this so I can implement a few tests to cover the feature.
| Assignee | ||
Comment 16•4 years ago
|
||
(In reply to Alessandro Castellani [:aleca] from comment #15)
Grabbing this so I can implement a few tests to cover the feature.
Yeah, but if you want your name permanently on the bug, then maybe it's better to add tests in a new bug.
Otherwise I'll just grab this back after you're done with the test, because I've done all the feature work and I do want credit for that... ;-)
Comment 17•4 years ago
|
||
I don't care about my name on the bug :P
I just assigned it to me so I have it on my list for ease.
I'll reassign it to you once the tests land, probably later today.
Comment 18•4 years ago
|
||
Comment 19•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 20•4 years ago
|
||
Comment 21•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 22•4 years ago
|
||
Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/53d788748ed6
Implement tests to cover Delete and Backspace key event in the compose addressing fields. r=darktrojan
Updated•4 years ago
|
Description
•