Signal-Desktop icon indicating copy to clipboard operation
Signal-Desktop copied to clipboard

[Accessibility] Signal's UI language no longer properly communicated to screen readers

Open MarcoZehe opened this issue 3 months ago • 6 comments

Using a supported version?

  • [X] I have searched searched open and closed issues for duplicates.
  • [X] I am using Signal-Desktop as provided by the Signal team, not a 3rd-party package.

Overall summary

Since Signal Desktop version 7.5.0, on my German language MacOS, VoiceOver switches to an English voice whenever I start Signal and read messages. The UI is in German, most of my contacts are German, and until previous versions, this was never an issue. However, now it appears that the whole UI is being communicated to MacOS and VoiceOver to be in English. This is definitely true for the HTML content of the Signal UI, but also for the menu bar.

Therefore, there seems to be something being mis-communicated in the packaged app itself, and maybe also the HTML. It should reflect the actual UI language, and not be hard-wired to English, or en-us, as seems to be the case now.

Steps to reproduce

  1. On a Non-English MacOS, start VoiceOver.
  2. Make sure Finder etc., talks in your language.
  3. Start Signal for desktop, current release version is 7.6.0.
  4. Listen to what VoiceOver says in what Voice when tabbing through the UI.

Expected result

The correct behavior should be that VoiceOver stays in the language of your operating system when talking, and not switch to an English voice.

Actual result

There are no error messages. But VoiceOver switches to an English voice, probably Alex or another system voice, and speaks English, even if a message thread you tab to is in German, French, Spanish or whatever. Also, the menu bar like File/Edit etc., will be spoken with an English voice even when the labels are clearly not in English.

Screenshots

No particular screenshots, the app is just not in English.

Signal version

7.6.0

Operating system

MacOS 14.4.1

Version of Signal on your phone

7.8

Link to debug log

https://debuglogs.org/desktop/7.6.0/f9536169c1ccf4f047d2053c53771db7a99f0e90091d3f69910c764911262830.gz

MarcoZehe avatar Apr 27 '24 10:04 MarcoZehe

Really sorry that you're experiencing this. I've been trying different things to try and reproduce it but so far I've been unable to. Are you still able to reproduce this issue in 7.7.0?

Screenshot of VoiceOver captions: "Du bist jetzt auf: Textfeld. Durch Tippen auf einer Tastatur gibst du Text in dieses Feld ein."

From your logs I can see that we are resolving to the correct locale:

# you have not changed the app locale in settings
INFO  2024-04-27T10:25:31.579Z got fast localeOverride setting null

# loaded correct preferred system languages
INFO  2024-04-25T13:10:56.489Z app.ready: preferred system locales: de-DE, en-DE

# matches correct locale
INFO  2024-04-25T13:10:56.490Z locale: Matched locale: de

# we log this after loading the locale so we can tell it loaded properly
INFO  2024-04-25T13:10:56.505Z locale: Text info direction for de: ltr

jamiebuilds-signal avatar May 06 '24 23:05 jamiebuilds-signal

Yes, this problem still exists in version 7.7.0. I have a suspiciion that this might be an Electron problem. I am experiencing a similar bug in Microsoft's Skype for Desktop. Its UI is also in German, so it gets my unchanged system locale correctly as well, but VoiceOver speaks everything in English there, too. So my suspicion is that Electron, Chromium or a combination of both always communicates the app language to VoiceOver to be English. Meaning the basic engine, before any of the app stuff is even loaded, and for some reason prevents the overriding of the language via the web content. I don't know enough about chromium or Electron to debug this, but as I am seeing this in two separate Electron apps, the evidence is substantial.

MarcoZehe avatar May 07 '24 06:05 MarcoZehe

With Electron Fiddle we could potentially create a smaller reproducible example for the Electron team to fix the issue. I created a basic gist to update the document locale based on the system locale loaded by electron.

  1. Download Electron Fiddle: https://www.electronjs.org/fiddle
  2. Load this gist: https://gist.github.com/89dba0f6f94c185b5625f22c3bb95461
  3. Click "Run" and it'll launch a small app and you can test it out if it has the same problem

Bildschirmfoto 2024-05-09 um 3 25 57 PM

jamiebuilds-signal avatar May 09 '24 22:05 jamiebuilds-signal

This fiddle works as expected in both 27.1.3 and the default version of Electron 30 that is downloaded initially with Electron Fiddle. I also made sure to add a simple plain paragraph of German text below the button to make sure. Both are read in German as expected.

MarcoZehe avatar May 10 '24 06:05 MarcoZehe