Funny language announcements when reading messages in Thunderbird

Have you ever noticed announcements like “x-western” or “x-cyrillic” when reading messages in Thunderbird? JAWS and possibly other screen readers that support the detection of language attributes in HTML content may announce this. The reason is that Thunderbird puts the encoding of a message into the “lang” attribute for each paragraph of content.

The problem is: Screen readers such as JAWS usually do not know what to do with these language names. They’re familiar with regular language names such as “en-us” or “de”, but not “x-western” or the like. As a result, the “language” is indicated with its attribute value. JAWS would also do this if you used Eloquence as your speech synthesizer, but encounter a web site that is tagged with lang=da” for the “Danish” language. JAWS would indicate to you that the web site is meant to be in Danish, but that the current speech synthesizer does not support this language. If you used RealSpeak and had the Danish voice installed, that voice would be then switched to, and the Danish text read out in the native tongue.

So what do we do to get rid of these announcements? There are two possibilities:

Turn off language detection for Thunderbird

One possibility is to turn offf the Language Detection feature for Thunderbird alltogether. The steps are rather simple, but you’d lose language switching if you read a blog feed or properly language-tagged HTML message. To turn off Language Detection, in JAWS you would do the following:

  1. Start Thunderbird.
  2. Press INSERT+F2 to bring up the List of Managers.
  3. Chooose the Configuration Manager entry.
  4. Inside Configuration Manager, go to the Set Options menu, then select Text Processing.
  5. Within the Text Processing dialog, tab to the checkbox that says “Detect Languages”, and uncheck it.
  6. Press ENTER to accept the changes, CTRL+S to save the configuration, and ALT+F4 to close Configuration Manager and return to Thunderbird.

See the relevant steps if you’re using a different screen reader and also want to turn off Language Detection.

Make those encoding languages simply use your default synthesizer language

A less drastic, yet a bit more involved method is to introduce those encodings to JAWS by making them simply use the default Eloquence language you’re using.

JAWS stores language mappings in a [ShortName Language Aliases] section in the DEFAULT.JCF configuration file. There, language attributes such as “en-us” are mapped to Eloquence languages such as “American English”. This section can be enhanced or changed in application specific JCF files. To enhance the Thunderbird JCF file with the encodings that you no longer want announced:

  1. In your User Settings directory, locate the Thunderbird.jcf file. If it is not already there, create one using NotePad or your favorite plain text editor. Note: You can go to your JAWS User Settings directory by going to Start Menu, All Programs, JAWS 8.0 (or 7.10 or 9.0), Explore JAWS, Explore My Settings.
  2. In that newly created or existing Thunderbird.jcf file, add the following lines:
    [Eloq Language Aliases]
    x-western=American English
    x-unicode=American English
    x-central-european=American English
    x-cyrillic=American English
  3. Save the file.

Let’s break this down a bit so you know what you just pasted:

  • The [Eloq Language Aliases] section heading tells JAWS that this is a Language Aliases section for Eloq, the short name for the Eloquence synthesizer.
  • To the left of each equals sign is the value that’s being put in the “lang” attribute, and which is not recognized by JAWS by default.
  • To the right of the equals sign is the Eloquence language that is to be used whenever this “lang” attribute value is encountered.

Happy reading!

Show Comments