From MathML to AT

MathML WG/Neil Soiffer


Gap Analysis: w3c.github.io/mathml-docs/gap-analysis

Current State of MathML Accessibility

Support

Speech, Braille, Navigation

Example:   $2 \frac{1}{3} \cdot 9 \frac{5}{8} > 22$

Ambiguity of Notation

Many ways to speak an expression

Authors know what they mean

Accessibility Tree

Current State (MathML Accessibility API Mappings 1.0)

What should be in the accessibility tree???

Adding Author Intent

ARIA

  <math aria-label="the point 0 comma 5">
    <mrow >
      <mo>(</mo>
      <mn class="arg1">0</mn>
      <mo>,</mo>
      <mn class="arg2">5</mn>
      <mo>)</mo>
    </mrow>
  </math>    

Navigation: nested tagging

ARIA: if only...

CSS

<mrow data-intent="point">
  <mo>(</mo>
  <mn class="arg1">0</mn>
  <mo>,</mo>
  <mn class="arg2">5</mn>
  <mo>)</mo>
</mrow>

[data-intent="point"] {
 --speech: "the point " text(.arg1) "comma" text(.arg2);
};  

User-stylesheets for user-specific text

Structured data via schema.org RDFa annotations

Parallel Markup

<semantics>
  <mrow id="x">
    <mo id="x.1">(</mo>
    <mn id="x.2">0</mn>   <mo id="x.3">,</mo>
    <mn id="x.4">5</mn>
    <mo id="x.5">)</mo>
  </mrow>
  <annotation-xml encoding="MathML-Content">
    <apply xref="x">   <csymbol>point</csymbol>
      <cn xref="x.2">0</cn>
      <cn xref="x.4">5</cn>
    </apply>

Parallel Markup (2)

Cons

    </annotation-xml>
    </semantics>

Pros

New: @intent

    <mrow intent="point($1,$2)">
      <mo>(</mo>
      <mn arg="1">0</mn>
      <mo>,</mo>
      <mn arg="2">5</mn>
      <mo>)</mo>
    </mrow> 

New: @subject

  <math subject="geometry">
    ...
  <math> 

Summary

Looked At:

What did we miss???

What did we get wrong???