-
-
Notifications
You must be signed in to change notification settings - Fork 715
[Draft] Integrate the MathCAT add-on into NVDA #18323
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
base: master
Are you sure you want to change the base?
Conversation
Hi, I think we discussed this, but if it does replace MathPlayer, can that be documented in the user guide or the math presentation section be rewritten to use MathCAT content? Thanks.
|
See test results for failed build of commit 28d9c66976 |
…to mathcat-integration Merging
…to mathcat-integration Merging
See test results for failed build of commit 4298ae7b2f |
See test results for failed build of commit 7445b8eba5 |
See test results for failed build of commit 9427fd7aa8 |
See test results for failed build of commit 4ba7a139a0 |
See test results for failed build of commit 4e97fcc661 |
…to mathcat-integration Merging
…to mathcat-integration Merging
source/synthDrivers/espeak.py
Outdated
elif isinstance(item, RateCommand): | ||
if item.multiplier == 1: | ||
textList.append("<prosody/>") | ||
else: | ||
textList.append(f"<prosody rate={int(item.multiplier * 100)}%>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you see if this hack is still needed?
@NSoiffer - do you have any insights on this?
RateCommand shoukd be supported below in a similar manner in type(item) in self.PROSODY_ATTRS
.
The only difference is adding textList.append("<prosody/>")
whenever item.multiplier == 1
.
I think we should fix up / integrate the fix into the below code if it's necessary, rather than just for the ratecommand separately
This PR adds MathCAT assets under include/nvda-mathcat as a submodule. We are opening this as a separate PR to create this submodule before the main PR (#18323) is merged for the MathCAT integration project so that we will have access to this submodule for testing the GitHub Actions workflow in [the nvda-mathcat repo](https://github.com/nvaccess/nvda-mathcat) that automatically fetches assets from the latest MathCAT release.
Link to issue number:
Closes #17667.
Summary of the issue:
The MathCAT add-on is not currently included in the core of NVDA. Integrating MathCAT into NVDA will give users access to mathematical content out of the box.
Description of user facing changes:
The core functionality of the add-on will remain the same, but MathCAT will be included without needing to install it as an add-on (replacing mathPlayer). An additional panel will be added in the NVDA preferences dialog containing the configuration that is currently handled in MathCAT's add-on configuration dialog. Additionally, the user docs will be updated to reflect the replacement of mathPlayer with MathCAT.
Description of developer facing changes:
The code from the MathCAT add-on has been refactored and cleaned up to conform to NVDA's coding standards, and that code is included in the
mathPres/MathCAT
directory with this PR. Dependencies have been added as a Git submodule ininclude/nvda-mathcat
. Before this PR is ready for review, changes will also be made to the way MathCAT is initialized (currently, it is only set up to be loaded as an add-on), and YAML configuration will be replaced with configobj.Description of development approach:
Developments will proceed in the following steps:
Testing strategy:
The add-on code after refactoring has been tested only by loading it into NVDA and testing it functionally. Discussion of more unit and system tests is ongoing.
Known issues with pull request:
libmathcat_py.pyd
was included in that MathCAT directory. Now, it is located ininclude/assets
, so it is not being imported correctly. This can be fixed by updatingpyproject.toml
with the new path.Code Review Checklist:
@coderabbitai summary