-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Describe the bug
The self voicing enactor throws error when using UIO+ with wikipedia pages.
To reproduce
Steps to reproduce the behavior:
- In the UIO+ source code, modify "uioPlus.enactor.selfVoicing" in enactors.js to remove the
distributeOptionsblock that disables the page level reading in the self voicing component; - In a terminal, run "npm run build". Install the built UIO+ in Chrome.
- In Chrome, open https://en.wikipedia.org/wiki/Main_Page, turn on text-to-speech, click "play" button;
- In the browser console,
lang is undefinederror is thrown.
Expected behavior
The error should not occur.
Technical details
After a debugging, this error is originated from [this line in Orator.js|https://github.com/fluid-project/infusion/blob/main/src/components/orator/js/Orator.js#L681] because parsedBlock is an empty array so parsedBlock[0].lang is undefined. The reason that an empty array of parsedBlock is pushed into that.parseQueue is from [this block|https://github.com/fluid-project/infusion/blob/main/src/components/orator/js/Orator.js#L572-L574]. On the wikipedia page, many text blocks fit into this condition (lastQueue.length && lastQueue[0].lang !== lang). Those blocks have text but in a different language from what's defined at the page level.
Additional context or notes
This issue is also filed against the infusion at https://issues.fluidproject.org/browse/FLUID-6760