daisy/ace

MathML not accepted as valid content for heading (h4) element

Opened this issue · 2 comments

Ace 1.3.2, Ace by DAISY app

The error was Minor, Best Practice, empty-heading with the text

  • Element does not have text that is visible to screen readers
  • aria-label attribute does not exist or is empty
  • aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
  • Element has no title attribute
  • Ensures headings have discernible text
  • Headings should not be empty

The content of the heading (with additional context) was

        <section class="level3" data-cfititle="Rate = k[A] superscript 2" epub:type="level3" id="rev_9781319369859_ch13sectlev3sect01">
          <header id="pijaf13cbae91e8ea35ad1b541f0f663">
            <h4 class="c-head title" epub:type="title" id="qago2378c123cf4da25e836845e9b1d8">
              <span class="math" id="xper68cbdedf377ee0e4de6d4337af88" tabindex="0">
                <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="text Rate  end text equals text italic k  end text not stretchy left square bracket text A  end text not stretchy right square bracket squared" display="inline" id="jphgcf738586b6209c9f961417b2fd63">
                  <semantics id="gjurdc99812fc14bab64e63242193f46">
                    <mrow id="yfkf0ee251bfa4da2c7bd866769f053c">
                      <mstyle id="mxoq80182f3e42bdc05302be6c5d3a19">
                        <mtext id="dxppf250498f426f7efcfbb84befea60">Rate </mtext>
                        <mo id="yjbcf7c22feff82037288ad2cc32c6bc">= </mo>
                        <mtext id="wspba9069b6bea20a7c63ee88c7adcec" mathvariant="italic">k </mtext>
                        <msup id="cxjaade89fe54f36513b87b6eb8be41f">
                          <mrow id="ehdc2d73ee5e303e7cb35fa9411024f5">
                            <mo id="qnhlc9a9497412179387946e0d9b6385" stretchy="false">[ </mo>
                            <mtext id="mlbr6468b7d5201461b8284b5987c4f0">A </mtext>
                            <mo id="kxrc0777fcdfeaa46e954ecf05704ae5" stretchy="false">] </mo>
                          </mrow>
                          <mn id="isfha59ad564151653d0ee82404b19b2">2 </mn>
                        </msup>
                      </mstyle>
                    </mrow>
                    <annotation-xml encoding="application/xhtml+xml" id="naxy4d6f367df4508f767c057d1bfd55" name="alternative-representation">
                      <img xmlns="http://www.w3.org/1999/xhtml" alt="text Rate  end text equals text italic k  end text not stretchy left square bracket text A  end text not stretchy right square bracket squared" id="cyioff1e022e8f06035f24dd16aa6397" src="../images/jphgcf738586b6209c9f961417b2fd63.png"></img>
                    </annotation-xml>
                  </semantics>
                </math>
              </span>
            </h4>
          </header>

It appears that the MathML is being read as no text or as inaccessible text. This may be related to issue 398.

Thank you for any assistance that can be provided.

This is a known issue with Deque Axe, I have tried to implement missing parts in Axe's code but I am lacking some understanding of Axe's internals (plus, I started exploring this issue from a slightly older revision of the Axe codebase which was used by DAISY Ace at the time). Here is the relevant issue at the Axe GitHub repository: dequelabs/axe-core#3285

Related: #434 and #398