Early support for mathematical content in Kindle for PC. #7536
Link to issue number:
Summary of the issue:
A future version of Kindle will expose MathML for books which contain it. We can thus provide access to math in those books using our existing math support.
Description of how this pull request fixes the issue:
In this PR:
Tested with builds and test cases provided by Amazon. Unfortunately, neither builds nor content are publicly available yet.
Known issues with pull request:
No known issues with the implementation. One concern is that content probably won't be publicly available before NVDA 2017.4 is released, so this won't get any public testing before release. However, we don't want to wait until 2018.1 for this to be available, so we're announcing it as "early support".
Change log entry:
Kindle implementation: 1. A future version of Kindle will expose MathML on embedded objects with ROLE_SYSTEM_EQUATION via a "mathml" IAccessible2 object attribute. 2. Alternatively, if there is no MathML, alt text might be exposed instead via accName. 3. Both MathML and alt text can be exposed, in which case we should always use the MathML. In this commit: 1. Update the Kindle app module to fetch MathML accordingly. It also ensures that alt text (which is placed in the "content" ControlField attribute) doesn't get reported if there is MathML. 2. MozillaCompoundTextInfo NVDAObjectAtStart property: Return the embedded object for graphics, math, etc. instead of the parent document. This is necessary to allow for interaction with math. 3. BrowseModeTreeInterceptor: When activating an NVDAObject, if doAction isn't implemented, just ignore it rather than throwing an exception. Otherwise, pressing enter on a graphic (which can't be activated in Kindle) throws an exception. 4. Update the User Guide with details about this, as well as adding a link to the MathPlayer documentation about navigation commands.