On 2015-08-30 4:17 PM, Jörg Knobloch wrote:
Obviously the "single language users" who always wanted to write in
their mother tongue were left standing in the rain, since they now had
to change dictionary many times.
That is only true if the majority of the websites on the Internet use 
the lang attribute incorrectly, and also only for those users who use a 
localized build in a language different than their language (for 
example, a German speaker who doesn't ever enter text in English) but 
uses an en-US Firefox.
Just wanting to reiterate that the problem is not as big as you claim it 
is.  We did not break Firefox for "single language users".
Additionally, both implementations caused even more confusion. After bug
338427, the user preference in "spellchecker.dictionary" was still used
as a fall-back, if the site didn't provide language information.
To be clear, we only did that to keep this pref working as a fallback. 
This pref should really not be used, because of some of the problems you 
are talking about here.
This three-tier approach, with the user preference being set more or
less randomly
I have no idea why you think that we are doing anything randomly.  For 
the purpose of this discussion, the spellchecker.dictionary pref is only 
set by our code, so the behavior that the user sees is as follows:
* If they go on a website which uses the lang attribute, we respect that.
* If they change their preferred dictionary on a website, they will get that language for that website in the future, and for all other cases where we are unsure of what language the website needs.
This is not ideal because of two reasons:
1. The user can't globally override the choice of the website author.
2. They don't have a good UI for adjusting the default spell checking language.
Users who set the spelllchecker.dictionary pref manually are doing 
something unsupported, and just like changing any other preference 
without understanding the implications, they will probably be surprised.
I'm not really worried about what behavior we have for those people who 
change this pref, or rely on it.  We may remove the pref or change what 
it does in the future.
> but later not obeyed because it was overruled by content
preference or site language, has lead to a host of problems:

https://bugzilla.mozilla.org/show_bug.cgi?id=1073827 - Meta bug to track
all the problems
Bug 455235 - spellchecker doesn't choose the correct locale dictionary
in Firefox
Bug 717433 - Chosen dictionary intermittently resets from en-GB to en-US
after session restart
Bug 728069 - Firefox should remember manual setting of spell checker
language
Bug 836230 - Preference spellchecker.dictionary doesn't retain user set
value
Bug 853970 - Spell checker in browser forgets language setting
Bug 858666 - spelling checker language setting changes spontaneously
Bug 909040 - Spell checking language gets reset
Bug 923356 - Wrong language used on start up to spell check
Bug 926166 - changing the dictionary (language) is sometimes ignored
Bug 932925 - Spellcheck keeps changing to other languages
Bug 959785 - Chosen language is forgotten after re-focusing textbox
Bug 1073840 - Pref: Always honour setting of spellchecker
language/dictionary in user prefs,
               regardless of lang attribute or Content-Language header
Bug 1139550 - Firefox keeps resetting spellcheck language to Cuban Spanish
This is a mish-mash of probably unrelated bugs that have any number of 
causes and solutions.  Not sure why this is relevant to anything 
discussed here.
Mark Straver and I have been looking into bug 1073840. Our proposal is
the following:

Reinstate "spellchecker.dictionary" as a global override, if it has a
value set. So we establish the following list of priorities:
1) Content preference
2) "spellchecker.dictionary", if set
3) language determined by site according to
http://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.2.
4) Fall-back options including the locale and others.
No, I don't think we should do this for the following reasons:

* We have changed the meaning of this pref enough times. Doing this once again will just make the people who like the current behavior complain. * This proposal seems to focus on the behavior that the users who have adjusted this pref manually will experience. I don't think we should really go out of our way to support that.
I will explain more below.

We also suggest not to ever set "spellchecker.dictionary"
programatically. If the user changes the dictionary via the context
(right click) menu, this will be stored as a content preference.
"spellchecker.dictionary" can be set via "about:config" or an option
which would have to be provided somewhere in the user interface.
This will definitely change our behavior, but I don't know if it changes 
it for the better.
This approach cuts through all the confusion:
"Single language users" set "spellchecker.dictionary" to their preferred
language and forget about the issue.
No, they won't.  Users do not generally go and change random prefs.  If 
we want to improve anything here (and I think we should) we need to add 
UI that most users can use.
"Single language users" who went to a language course and want to try
writing in a different language also set the user preference and only
change the dictionary on a particular site, which is stored a content
preference.
"Polyglot users" unset "spellchecker.dictionary" and enter the text in
the language the site requires. However, they lose
"spellchecker.dictionary" as a fall-back, so their fall-back would be
their locale (see point 4).
Again since you are suggesting that people should change this pref to 
get their desired behavior, they won't.  Changing the meaning of the 
preference will by and large only affect the people who have previously 
set it.
Looking further afield:
Thunderbird from version 38 has changed the way it uses
"spellchecker.dictionary" (bug 967494). There the user preference
remains unchanged and determines the language for every new e-mail. If
the users wants to write in a different language, they can change the
dictionary, but that doesn't change the default. The Thunderbird team is
working on a smarter solution to set the language from the recipient or
other context information.
Chrome offers the users the Firefox pre-version-8 state: They can set
the dictionary, and the choice sticks for all sites until they change it
to something else.
As I have said in the past, what Thunderbird wants to do has no bearing 
on what behavior we want in Firefox.  We already treat Thunderbird 
differently here and we can change the behavior again in Thunderbird 
specific ways in the future.
(I will also note that the more Thunderbird specific behaviors we 
introduce here the worse off Thunderbird would be in the future since 
these behaviors often don't have automated tests and they regress when 
we change stuff in Gecko.)
So please voice your objections to the proposed solution, if any ;-)
Please consider this as my objection.  :-)

Here is what I would like to see in the future for improving this situation:

* Don't change our behavior any more without complete plans on how to improve the global picture. Past experience has shown that this is extremely complicated and every time we change something here we break some users' workflows; so I don't think this is an area where we can make small improvements, and we probably need an overhaul. As such, I don't think I'll accept any more patches to change the behavior here without a complete plan.
* Get out of the guessing game as much as we can, and give users control 
over the spell checking behavior.  This roughly means:
** Accepting what the web page tells us about the language out of the box.
** Make it easy/possible for the user to override the default choice either globally, or per site, or per the field that they are editing. This needs to happen through a good UI, especially one that lets users change their past decisions.
* Also think about other improvements that we can make on the fly.  The 
current way for obtaining new dictionaries sucks for example.  And there 
is essentially no way to manage a list of dictionaries for 
multi-language users.  And in some locales there is a default dictionary 
shipping which adds inconsistency.
* Also think about how this will work on Firefox, Fennec and Firefox OS.

I don't really have any concrete suggestions unfortunately. If this is an area that interests you I suggest to start working on the UX with the help of our UX team. The implementation strategy needs to come after agreeing on what UI/UX we want to support here.
Cheers,
Ehsan
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to