daisy / ace

Ace by DAISY, an Accessibility Checker for EPUB
MIT License
76 stars 22 forks source link

dpub doc-endnote code generating critical failure #274

Closed nekennedy closed 3 years ago

nekennedy commented 5 years ago

ACE 1.1.1 NODE 8.6.0

The second example in the dpub-aria spec for doc-endnote generates a critical failure, "Required ARIA child role not present: listitem".

Note sure if this is an ACE issue, AXE issue or a dpub one. Happy to generate a sample file if you need one. (Also think it may be related to this issue)

EXAMPLE 18 code:

<section role="doc-endnotes">
   <h2>Notes</h2>
   <section id="ch1-notes">
      <h3>Chapter 1</h3>
      <div role="list">
         <p id="6baa07af" role="doc-endnote">1. Additional results of this study can be found at … </p>
         <div id="7b2c0555" role="doc-endnote">
            <p>2. The primary source of infomation …</p>
            <p class="note-cont">In the case of secondary studies …</p>
         </div>
         …
      </div>
   </section>
</section>

Our current test code:

<section role="doc-endnotes">
  <h2 class="x13-BM-Endnotes-Head-A-First">CHAPTER 1: TITLE</h2>
  <div role="list">
    <div id="EndnoteNumber0" role="doc-endnote">
      <p class="x13-BM-Endnotes-1"><a href="chapter1.xhtml#SuperscriptNumber0" role="doc-backlink">1</a>. note text</p>
      <p class="x13-BM-Endnotes-Para">more note text</p>
    </div>
    <div id="EndnoteNumber1" role="doc-endnote">
      <p class="x13-BM-Endnotes-1"><a href="chapter1.xhtml#SuperscriptNumber1" role="doc-backlink">2</a>. note text</p>
      <p class="x13-BM-Endnotes-Para">more note text</p>
    </div>
    <div id="EndnoteNumber2" role="doc-endnote">
      <p class="x13-BM-Endnotes-1"><a href="chapter1.xhtml#SuperscriptNumber2" role="doc-backlink">3</a>. note text</p>
    </div>
    …
rdeltour commented 5 years ago

Thanks for the report! This seems to be related to #239 indeed, but the other way around.

Note that the specs are not clear about these role relationships (see w3c/dpub-aria#15), but in any case Ace should accept these as they are intended in DPUB ARIA.

I'll fix this in the next release.

danielweck commented 4 years ago

Hello Romain, is this fixable as a new Axe patch, or by altering an existing one?

rdeltour commented 4 years ago

I don't think this is "fixable" with the current state of the specifications. doc-endnote cannot currently be children of a list, per ARIA rules. There are discussions about actually deprecating doc-endnote in a future version of DPUB ARIA.

That said, if we want to allow the construct while we wait for spec clarifications, I would look into the axe-path-only-list-item.js patch script. But it's been a while I haven't dived in this code…

danielweck commented 4 years ago

Thank you Romain about the specification status.

danielweck commented 3 years ago

https://github.com/dequelabs/axe-core/issues/1677#issuecomment-718022025

Looking at this again. At this point both directory and doc-biblioentry are proposed to be deprecated, exactly for the reason that its inheritance creates confusion. Neither of these use cases is valid according to ARIA 1.1, so we're going to leave these as failures for axe-core.

danielweck commented 3 years ago

"deprecate doc-biblioentry and doc-endnote": https://github.com/w3c/dpub-aria/pull/22 => https://w3c.github.io/dpub-aria/#doc-endnote

danielweck commented 3 years ago

Fixed via: https://github.com/daisy/ace/pull/315 ...or more precisely, via: https://github.com/daisy/axe-core/pull/4