- From: Peter Krautzberger <pkrautzb@umich.edu>
- Date: Sat, 19 May 2012 11:39:16 -0400
- To: Dirk Schulze <dschulze@adobe.com>
- Cc: Cameron McCormack <cam@mcc.id.au>, Vincent Hardy <vhardy@adobe.com>, "public-fx@w3.org" <public-fx@w3.org>
- Message-ID: <CACUTewPA2UvC1pLRfju52kPcyRcWxAptQKwOPZeFMFE9NrSs4A@mail.gmail.com>
Dirk: in an earlier email you asked (about MathJax):
> At the moment the [MathML] code is not visible in the DOM, right?
A copy of the MathML code remains in the DOM enclosed in a script tag.
For example, in this simple test
http://cdn.mathjax.org/mathjax/latest/test/sample-mml.html after the
rendering of a≠0 you will find
<script type="math/mml" id="MathJax-Element-1">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>a</mi><mo>≠</mo><mn>0</mn>
</math></script>
Peter.
On Sat, May 19, 2012 at 1:54 AM, Dirk Schulze <dschulze@adobe.com> wrote:
>
> On May 19, 2012, at 4:35 AM, Cameron McCormack wrote:
>
> > I think some of the existing <pre>-formatted formulae in the spec aren't
> > really accessible yet anyway, especially those that render say matrices
> > with repeated "[" and "]" characters.
> Yes, that is right.
>
> > The example that I replaced,
> >
> > <pre>miterLimit / stroke-width = 1 / sin ( theta / 2 )</pre>
> >
> > is (at a guess) probably OK.
> >
> > I think we can use ARIA attributes to mark up the math with equivalent
> > descriptions[1]. Here's a first go at representing the above formula:
> >
> > <div role="math" aria-describedby="a">
> > <math display="block">
> > <semantics>
> > <mrow>
> > <mfrac>
> > <mi>miterLength</mi>
> > <mi>stroke-width</mi>
> > </mfrac>
> > <mo>=</mo>
> > <mfrac>
> > <mn>1</mn>
> > <mrow>
> > <mi>sin</mi>
> > <mo>⁡</mo>
> > <mfrac>
> > <mi>θ</mi>
> > <mn>2</mn>
> > </mfrac>
> > </mrow>
> > </mfrac>
> > </mrow>
> > <annotation-xml encoding="application/xhtml+xml">
> > <pre id="a">miterLimit / stroke-width = 1 / sin(theta /
> 2)</pre>
> > </annotation-xml>
> > </semantics>
> > </math>
> > </div>
> >
> >
> > This is not going to work with MathJax -- either with the SVG or
> > HTML+CSS renderings -- since as people have pointed out the <math>
> > element gets replaced with content like this (in the SVG case):
> >
> > <div style="text-align: center;" aria-readonly="true" role="textbox"
> > class="MathJax_SVG_Display">
> > <span class="MathJax_SVG" style="display: inline-block;">
> > <svg>
> > ...
> > </svg>
> > </span>
> > </div>
> > <script type="math/mml">
> > (CDATA representing the serialised <math> tree we started with)
> > </script>
> >
> > so the element with id="a" is gone.
> >
> > (I'm not sure why a read only text box is the best way to present the
> > <svg> representation of the math to ATs.)
> >
> >
> > Regardless, I'm after a practical solution here -- so perhaps we can
> > just fall back on the old "position some text for the screen reader off
> > the page where the sighted reader can't see it".
> >
> > <style>
> > div[role="math"] > :first-child + * {
> > position: absolute;
> > left: -400px;
> > width: 400px;
> > overflow: hidden;
> > }
> > </style>
> > <div role="math" aria-describedby="a">
> > <math display="block">
> > <mrow>
> > <mfrac>
> > <mi>miterLength</mi>
> > <mi>stroke-width</mi>
> > </mfrac>
> > <mo>=</mo>
> > <mfrac>
> > <mn>1</mn>
> > <mrow>
> > <mi>sin</mi>
> > <mo>⁡</mo>
> > <mfrac>
> > <mi>θ</mi>
> > <mn>2</mn>
> > </mfrac>
> > </mrow>
> > </mfrac>
> > </mrow>
> > </math>
> > <pre id="a">miterLimit / stroke-width = 1 / sin(theta / 2)</pre>
> > </div>
> >
> > This worked in Safari with VoiceOver -- although surprisingly to me, it
> > didn't read the parentheses; I'm not sure if there is a way to
> > investigate the exact characters that are in there with VO or other ATs..
> >
> > Can anyone suggest any better way to represent the math content in HTML
> > besides a <pre> with content that looks like code? Especially for more
> > complex formulae like the ones in
> > http://www.w3.org/TR/SVG11/implnote.html#ArcConversionEndpointToCenter.
> > Are screen reader users who read math on the web comfortable with TeX?
> > (I notice that Wikipedia uses <img>s of rendered math with TeX in the
> > alt="".)
> >
> >
> > Aside: it'd be neat if I could use CSS to provide aria-describedby
> > relationships for all the math in the page at once, for example
> > something like:
> >
> > div[role="math"] {
> > aria-describedby: selector(:scope > :first-child + *);
> > };
> >
> That is a really great idea. I wonder if we can leave the MathML code in
> the DOM but it gets somehow "visually overridden" by the generated image.
> Means you can't see the MathML, but see the replacement. I know that some
> accessible sites do it by using "top: -1000". It is of course hacky. But we
> would just use it if the Browser does not support MathML natively.
>
> If we use <pre> (and I am fine with it for now). The problem is which
> serialization can we use. Especially for Braille the used descriptions
> differ a lot. They can even differ within a country. In CSS Transforms I
> use TeX as alternative to the images. But it is not necessarily the
> majority which can read it. I like the example on the link you posted with
> the native description on 'aria-label' as alternative. But even for the
> spoken languages it is hard to describe matrix multiplication. And it would
> require english knowledge.
>
> I will try to get some feedback from more accessibility experts.
>
> Greetings,
> Dirk
>
> >
> > [1] http://www.w3.org/TR/wai-aria/roles#math
>
>
Received on Saturday, 19 May 2012 17:23:08 UTC