ARIA demo for MathML intent

Dear all,

I'm transferring a technical piece of an internal discussion we are
trying to have (about aligning the motivation for the "intent"
attribute within the group), to the public list.

Moritz has re-made his call to reexamine existing specifications
before inventing our own new markup. I like the sentiment of "not
reinventing the wheel unless we can make it rounder". But I also hope
we can try to make these points in a competitive way -- by showing why
certain methods are better than others when calling for examining
them.

You may remember my "tiny showcase" has a parallel capability (thanks
to latexml) for generating both an "intent" annotation, as well as a
parallel presentation+content cross-referenced MathML 3 tree, and
indeed can synthesize narration with each variant. That demo is at
[1], and you can try those via the "math format" toggle, say via
converting "\binom{a}{b}". I had tried to make the Content MathML
variant as attractive as possible, but I still am not that fond of it
myself. Just making sure we're making informed choices.

The second side of the task to "investigate existing specs" is ARIA,
which I think we haven't examined fully as a group yet.
At least I hadn't - I am still learning about the existing AT
universe. Neil had claimed ARIA isn't sophisticated enough to do the
structural expressions we want, such as "binomial-coefficient($1,$2)",
however that seems to be a bit of an understatement, thanks to
"aria-labelledby", as I discovered this weekend.

What's more - to my own delight - the "aria-describedby" attribute
allows for an inclusion for secondary properties as annotations, and
indeed some existing speech engines make use of these as well. I only
succeeded in using Chrome+Screen Reader this time, so all my
observations are tied to this AT setup. It's funny, since Chrome can't
display the math in my link, but for my demo it can read it
regardless.

So, with this long introduction, here is a working variant of our
"intent" concept using entirely the existing ARIA and MathML 3, and a
very ordinary HackMD document:

https://hackmd.io/@dginev/SkBHsZTiO

There is a lot of friction to be unhappy about
- for a perfect alignment with the intent "speech hints" we would need
AT tools to be able to do smart narrations over the values of
"aria-labelledby", the way they would over the intent expression
values. A common example of that is adding prepositions ("from", "to",
"at", ...) at the right points.
- ARIA requires global ids to make the composition work, and the group
tends to frown on those
- I have too much freedom to annotate in a non-content way and still
get good narration. Empty mrow/mo/mstyle with aria-label? Sure,
anything goes, and in any point in the document - courtesy of global
ids.
- the AT tools are currently a bit fragile. E.g. for some reason the
tab-based navigation doesn't pick up the ARIA attributes at all.
Instead it reads the raw presentation tree. I only got Chrome to read
the ARIA markup when clicking on the nodes using the mouse.
- generally navigating with the keyboard for the AT tool is super
unclear to me as a new user. I really like using tab, but apparently
that is only viable if pretty much everything has a "tabindex"
attribute? Strange.

But with all the complaints, as a first-time ARIA user, I got the demo
working. So that's nice. And when it works, it can work really well -
hearing subexpressions with the right narration, and then with the
auxiliary property clarified, is very rewarding.

Greetings,
Deyan

[1] https://dginev.github.io/tiny-mathml-a11y-demo/

Received on Monday, 21 June 2021 02:16:53 UTC