dequelabs / axe-core-maven-html

Tools for using axe for web accessibility testing with JUnit, Selenium, and Playwright

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

4.3.3 audit

straker opened this issue · comments

  • Implements recursive runPartial
    • injects and configures axe on each frame (exception: top-level iframe since axe might already be injected there from testing legacy code path)
    • calls axe.utils.getFrameContexts on each frame
    • runs axe.runPartial on each frame
    • finds each iframe using axe.utils.shadowSelect
    • calls function again with new iframe and context
    • returns null if iframe errors for any reason and does not process children iframes
  • implements finishRun
    • opens new tab and navigates to blank page (using .goto or .navigate, etc.)
    • injects and configures axe
    • calls axe.finishRun and passes results from all iframes
    • closes blank page and returns driver context to original page
  • calls axe.run in legacy axe versions (where axe.runPartial is not defined)
  • implements all fixture tests
    • analyze - throws if axe errors out on the top window
    • analyze - throws when injecting a problematic source
    • analyze - throws when a setup fails
    • analyze - properly isolates the call to axe.finishRun
    • analyze - returns correct results metadata
    • frame tests - injects into nested iframes
    • frame tests - injects into nested frameset
    • frame tests - should work on shadow DOM iframes
    • frame tests - reports erroring frames in frame-tested
    • frame tests - returns the same results from runPartial as from legacy mode
    • for versions without axe.runPartial - can run
    • for versions without axe.runPartial - throws if the top level errors
    • for versions without axe.runPartial -reports frame-tested
    • with a custom ruleset - should find violations with customized helpUrl
    • with a custom ruleset - configures in nested frames
    • with a custom ruleset - works without runPartial

This integration does not use custom rulesets, thus those checkboxes are marked incomplete.

Validated