The design for role=math isn't understandable from WAI ARIA 1.0 spec text

This comment applies to
http://www.w3.org/TR/2011/CR-wai-aria-20110118/complete#math

Desciption of concern:
The CR-wai-aria text about how role=math works seems to be very confused. It says "Content with the role math is intended to be marked up in an accessible format such as MathML [MATHML], or with another type of textual representation such as TeX or LaTeX, which can be readily converted to an accessible format by assistive technologies." This may imply to the reader that the content that gets exposed to AT is computing from the MathML or LaTeX content.

However, reading the examples in CR-wai-aria together with http://www.w3.org/WAI/PF/aria-implementation/#exclude_elements from the latest ED of the Implementation Guide, it turns out that the reading the above to imply that the MathML or LaTeX content gets "converted to an accessible format by assistive techologies" is totally wrong. The Implementation Guide says: 'The following elements are not exposed via the accessibility API and user agents SHOULD NOT include them in the accessible tree:'--'children of the following objects, which have the characteristic "Children Presentational: True":' followed by a list that includes the role "math".

Now with this information about implementation, let's take a look at a MathML example from CR-wai-aria:
<div role="math" aria-label="6 divided by 4 equals 1.5">
  <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mfrac>
      <mn>6</mn>
      <mn>4</mn>
    </mfrac>
    <mo>=</mo>
    <mn>1.5</mn>
  </math>
</div>

The div has role=math, so per the Implementation Guide, its children SHOULD NOT be included in the accessible tree. Thus, what's left to expose is
<div role="math" aria-label="6 divided by 4 equals 1.5"></div>

Thus, the MathML subtree doesn't get exposed to AT. Instead, the string "6 divided by 4 equals 1.5" gets exposed.

This isn't *at all* clear from CR-wai-aria. Furthermore, it shifts the burden of generating text from MathML to the content author instead of having the client software compute a text-to-speech or Braille-friendly textual representation from MathML.

Proposed fix:
Remove the role "math" from the language. Expect client software to generate text-to-speech/Braille-friendly text from MathML, since MathML is an "accessible format". This is the better fix, because it requires MathML to text functionality to reside in relatively few client implementations instead of residing in relatively many content creation tools.

Alternative proposed fix:
If the WAI doesn't believe that MathML to text support on the client is forthcoming, please don't call MathML an "accessible format" and make it clear in WAI ARIA 1.0 that role=math means the value of the aria-label attribute gets exposed to AT and the children get ignored for AT exposure purposes.

P.S. In any case, please strike the sentence "This role provides a hook whereby a plug-in mechanism can provide multi-modal access to compliant MathML, as well as enabling support for MathML in "mainstream" user agents." It's wrong to imply that Firefox, which supports MathML, isn't mainstream. The sentence doesn't explain why a plug-in mechanism couldn't provide multi-modal access to MathML simply by identifying MathML without the help of a role attribute.

-- 
Henri Sivonen
hsivonen@iki.fi
http://hsivonen.iki.fi/

Received on Thursday, 3 February 2011 13:08:04 UTC