Comments (1)
Re: static math (read-only mode)
I don't think it's going to be sufficient to read out the LaTeX value. Anything other than flat arithmetic text and ^2 is quite incomprehensible when read out, like reading out a sentence letter-by-letter.
There's good news: there appears to be surprisingly good support for reading out MathML by screen readers including both that you specified, according to MathJax, and the math is read out reasonably comprehensibly.
MathQuill's read-only mode could use essentially the same strategy as MathJax's AssistiveMML extension, KaTeX, and Wikipedia, which is to have hidden MathML (<math>
) alongside the HTML that visually renders the math:
(MathJax doesn't do this by default to avoid a "performance hit", which I think is preposterous seeing as KaTeX does this by default and is orders of magnitude faster than MathJax, and also significantly faster than MathQuill for that matter.)
There is another, more unorthodox possibility which is to skip the MathML step and just generate and hide the text we'd like to be read ("begin fraction 1 over 2 square root of x end fraction"). Implementing Nemeth "mathspeak" (from mathquill/mathquill#9) would be straightforward; also, ChromeVox's math speech rule engine is open source.
Re: math fields (editable mode)
I think using LaTeX syntax here would be even worse than in read-only mode. One of the main usability problems with computer languages is strict syntax/the existence of syntax errors, which is exactly why WYSIWYG editors are important: MathQuill makes it impossible to write syntactically invalid LaTeX. (It's still however possible to write nonsense; how were you planning on complaining if they write 3x^=
? You could use the same system to complain about bad LaTeX, I guess.)
But, there's good news here, too: there's an attribute called aria-live
that can be used to get screen readers to announce things, with decent user agent support, which could be used to announce the edit you just made to the math ("inserted fraction" or something, I dunno). With enough thought and experimentation I think this could be a viable way forward.
from msquill.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from msquill.