Closed Bug 956146 Opened 11 years ago Closed 13 days ago

"Always prefer display name over message header" default should be configurable

Categories

(Thunderbird :: Address Book, defect)

x86_64
Linux
defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1894048

People

(Reporter: jik, Unassigned)

References

Details

I _never_ use "Always prefer display name over message header". I uncheck it every time I create a new address book entry. There should be a way to set the default value for this preference.
Isn't the global setting "Show only display name for people in my address book" in Advanced preferences (Reading & Display)? Or is the per-card setting overriding that?
If I understand correctly, if that global setting is checked, then TB always acts as if the per-card setting is checked even when it isn't, but there's no way to achieve the opposite (i.e., always act as if the per-card setting is not checked even when it is).

And in any case, having a global setting which overrides the per-card setting one way or the other isn't what I'm asking for and isn't what I think should exist. While I think the user should be able to control the behavior on a per-card basis with the per-card setting, I think many users (including me) are going to prefer the default to be unchecked rather than checked, so rather than making us uncheck the box every single time we add a contact, the default value of that box should be configurable.
This sort of thing would be easy to do in an add-on. For people who don't want to use an add-on, there are several options:

1) Uncheck "Show only display name for people in my address book"
   This always shows the raw header value for contacts (i.e. "Display Name <address@domain.com>").
2) Don't enter a display name
   This shows the raw header value for this contact (i.e. "Display Name <address@domain.com>").
3) Let the contact get added by sending a message to them
   This should leave "Always prefer display name over message header" unchecked.

I think the code was originally supposed to uncheck "Always prefer display name over message header" if you just clicked the star in the header and didn't change the name, but that appears to be broken. Maybe we should fix that.

I don't think this needs another pref to set the default behavior though.
>This sort of thing would be easy to do in an add-on.

Maybe easy for you. I took a look and it's a maze of twisty little passages to me.

>1) Uncheck "Show only display name for people in my address book"
>   This always shows the raw header value for contacts (i.e. "Display Name <address@domain.com>").

Indeed, unchecking this in the advanced option turns out to do what I want, i.e., it causes the setting on individual address cards to be ignored and for the raw header to always be displayed.

Surely you can see how I might have failed to understand that, given the text above.

What I *thought* this setting did was to *override* the setting on individual address cards and force the display name to always be shown. That seems like a pretty obvious conclusion from the language "Show only display name for people in my address book."

Perhaps this whole issue can be resolved by making the option description clearer or adding hover-over help that explains more clearly what it does.
Sure, we could morph this bug to be about fixing up the text for the various options. I propose the following:

1) "Show only display name for people in my address book" should become:

  For contacts in my address book, show:
    ○ The display name from the address book
    ○ The original message header

2) "Always prefer display name over message header" should become:

  □ Prefer this name over the message header

Also, disable this when "The original message header" is selected in (1), and add a tooltip:

  Checking this box will always use this display name for this contact. Uncheck this box to
  show the original display name from the message header.
I'm also going to propose we move Preferences -> Advanced -> Reading & Display to Preferences -> Display -> Messages. None of the things in there are particularly advanced, and we're just making it harder for people to find this stuff.
Would the suggestions in comment 5 make this easier to understand?
Flags: needinfo?(jik)
I don't think these changes are sufficient. The problem remains that the preference doesn't really cause contact names to be displayed instead of email header names. Rather, it causes contact names to be displayed instead of email header names _for contacts which have that option enabled_.

Therefore, I think the preference should say something like, "Allow address book entries to override names in message headers with contact names." But that's stilted, awkward language, and I can't think of better language.

Everything would be much better from a UX point of view if the checkbox on individual contacts were to do the opposite of what it does now, i.e., rather than enabling the display of the contact name, it _disabled_ the display of the contact name if it was otherwise enabled by the preference.

If that were the case, then exactly the language you proposed for the preference would be great, and then the checkbox on individual contacts could say something like, "Always display the name in the email header rather than the contact name."
Flags: needinfo?(jik)
Ok, let's change (2) to:

  □ Always use the original message header name

With the following tooltip:

  Checking this box will always use the original display name from the message header. Uncheck this box to
  show the chosen display name above instead.
"... when the corresponding preference activating this feature is enabled." Or something like that. The point is that if you don't make it clear in the contact card that the feature is linked to another preference, then how is the user going to know that?
If the corresponding preference is *disabled*, then I'll either disable (or hide altogether) the checkbox in (2), since it doesn't actually do anything in that case.
Hide altogether, I suppose would be ok.

Disable without hiding has us talking in circles... If you grey it out without telling the user why it's greyed out and how to change that, it's going to confuse some people.

Also keep in mind why I opened this ticket... I had no idea that the setting on the contact card could be completely overridden by a preference. If another user, like me, really wants to never pay attention to the per-contact setting, then shouldn't that setting itself give them a pointer to the preference so they know that's an option?
It's not like there's a ton of useful TB documentation users can consult about things like this. :-(
Well, that's why I suggested moving the global prefs out of "Advanced", so that people had a better chance of finding them. We can also update the documentation, which I found easily[1], but which appears to be wrong. :(

[1] https://support.mozillamessaging.com/en-US/kb/display-name-message-list-and-message-pane
Once I have read all comments on this bug, as it seems to me that all fixes to it should be implemented by changes on the Preferences window, I suggest moving it to the Preferences component.
(In reply to Javi Rueda from comment #15)
> Once I have read all comments on this bug, as it seems to me that all fixes
> to it should be implemented by changes on the Preferences window, I suggest
> moving it to the Preferences component.

The component really doesn't matter all that much. As long as a somewhat-appropriate component is chosen, it's fine.

The interaction between the global setting and the per-card setting is not easy to understand.
The design is inherently confusing, and the labels are not descriptive enough.

Sometimes the global pref wins (when it's OFF).
Sometimes the per-card pref wins (only when Global ON, per-card OFF).
So neither the global pref nor the card pref are reliable indicators of what is really going to happen.

I think the only feasible design for global dual pref competing with per-card dual pref is having a triple-pref dropdown on the card:

  • use global pref
  • per-card-ON (overrides global)
  • per-card-OFF (overrides global)

So in our case, that would be something like:

Address display in message reader:
[- Use global preference | v ]

  • Use global preference
  • Show only display name from my address book
  • Show full address as defined by sender

Actual behaviour (tested on Win10, Daily 81.0a1 (2020-08-02) (64-bit))

S1: Default:

  • global: [x] Show only display name for people in my address book
  • per-card [x] Always prefer display name over message header

^^ That works. Global and per-card both want display name from AB only. Now let's change it:

S2:

  • global: [x ] Show only display name for people in my address book
  • per-card [ ] Always prefer display name over message header

^^ As expected, per-card setting "do not prefer my AB display name" wins, full address from header is shown.
So that's the only per-card setting which works, which somewhat irritatingly applies when it is off:
Do *not* always prefer display name.
Notwithstanding the general design shortcomings, maybe this would be better expressed positively as:
[x] Always show full address from message header.

S3:

  • global: [ ] Show only display name for people in my address book
  • per-card [x] Always prefer display name over message header

^^ fails: Now that's a confusing state - turns out the per-card pref is IGNORED when global pref is off, full address of header is shown for all cards (contrary to the per-card pref). But it would make perfect sense - generally work with full addresses from message header, but for dad and grandma and girlfriend susy who only have one email address, the display name suffices.
The way it currently works, the per-card settings would have to be disabled and (temporarily) OFF because they won't override the global setting OFF.

S4:

  • global: [ ] Show only display name for people in my address book
  • per-card [ ] Always prefer display name over message header

^^ works. global and per-card-preff OFF, use full address from message header.

See Also: → 1527041

Then, we'd probably want at least a global pref for bug 1265589 - if the display name from user's AB should also be used in replies.

See Also: → 1265589

Also, I find this choice too limited:

  • Display name from msg source (with email address)
  • OR Display name from user's AB (without email address)

What if i want

  • Display name from user's AB (with email address)?

Iow, why is user's preference for display name force-linked with showing/not showing email address? Email address is same in message and my AB. I might want to have my display names but still always see the email address (e.g. if my conversation partners have several email addresses).
Maybe Show email addresses could be another global pref. Not sure how that would play out per card - we don't want too many settings also, but I'd think that such details might matter for an email client that adjusts to user's needs.

Severity: normal → S3
See Also: → 1898896
See Also: → 1894048
See Also: → 1655884
Status: NEW → RESOLVED
Closed: 13 days ago
Duplicate of bug: 1894048
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.