Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edge on Android returns an empty voice list #20

Open
HadrienGardeur opened this issue May 3, 2024 · 4 comments
Open

Edge on Android returns an empty voice list #20

HadrienGardeur opened this issue May 3, 2024 · 4 comments
Assignees
Labels
external-issue Known issues that need to be followed in a third-party issue tracker

Comments

@HadrienGardeur
Copy link
Owner

HadrienGardeur commented May 3, 2024

On Android, the mobile version of Edge returns an empty list of voices when calling getVoices.

This is our first critical bug reported through this project, as it makes it impossible to implement read aloud on this browser.

Link:

  • TBD

Also related:

@HadrienGardeur HadrienGardeur added external-issue Known issues that need to be followed in a third-party issue tracker voice-list Anything related to the JSON list of recommende voices labels May 3, 2024
@HadrienGardeur HadrienGardeur self-assigned this May 3, 2024
@HadrienGardeur HadrienGardeur removed the voice-list Anything related to the JSON list of recommende voices label May 18, 2024
@Falcosc
Copy link

Falcosc commented Jun 12, 2024

I can't even get to work to build in Read out loud to work on many Edge version and Android Version combinations, and immersive Reader can't read anything as well.

That sad thing about it, it was working fine with feature parity to Edge Desktop https://www.youtube.com/watch?v=H5uMaU5inxQ
And according to posts on the internet it is already broken since 1-2 years.

Edit: Read out loud execution and voice selection only breaks on sites with TTS. That's why it feels so random.

@Falcosc
Copy link

Falcosc commented Jun 12, 2024

I fixed Edge for me. I did manage to figure out how you can avoid the bug: never call "getVoices()" before Edge Android did initialize the Speech stuff.

I used the ReadOutLoud feature:
If you call getVoices before ReadOutLoud, everything is broken until page reload.
If you call getVoices after ReadOutLoud, everything works.

So I set a script stop breakpoint and clicked on ReadOutLoud. The debugger did show me some internal JS code loaded directly from the Android Edge browser. It does some initialization things, but I can't reach all these browser internals.
Which means there is currently only one open: skip the load voice call and tell the Edge Android user to click ReadOutLoud.
onvoicechange is also broken, so I needed a button which needs to be clicked after user did start ReadOutLoud.

Falcosc/PSVR2-Twitch@9d3dbc8

At the end of the week, I will add a version which only presents the workaround if edge is still broken. But it likely needs a page reload since I don't find any clue outside of calling getVoice(). And after calling getVoice() in the broken state, you need a page reload.

@HadrienGardeur
Copy link
Owner Author

Based on what you're saying, this is enough to lower the severity from critical (can't be fixed) to major.

Falcosc/PSVR2-Twitch@9d3dbc8

Fun fact: I'm also a PSVR2 owner, I have quite an extensive library of VR titles on it!

@Falcosc
Copy link

Falcosc commented Jun 13, 2024

I don't know why I didn't get the onvoiceschange event. Today everything is fine. Which means you don't need a button.
I did change my solution to actually try out the getVoices, and if it return exactly 0 and was o Android Edge, then I store the current useragent string as broken versio and reload. Bugfix is then active as long as user don't update the browser.

Falcosc/PSVR2-Twitch@04a210d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external-issue Known issues that need to be followed in a third-party issue tracker
Projects
Status: Todo
Development

No branches or pull requests

2 participants