Skip to content

Extension to enable Accessibility testing in PyPOM with the aXe API

License

Notifications You must be signed in to change notification settings

kimberlythegeek/PyPOM-aXe

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pypom-axe

pypom-axe integrates the aXe accessibility testing API with PyPOM.

License PyPI wheel Issues

Requirements

You will need the following prerequisites in order to use pypom-axe:

  • Python 2.7 or 3.6
  • PyPOM >= 1.2.0

Installation

To install pypom-axe:

$ pip install pypom-axe

Usage

pypom-axe will run the aXe accessibility checks by default whenever its wait_for_page_to_load() method is called.

If you overload wait_for_page_to_load(), you will need to call super([YOUR CLASS NAME], self).wait_for_page_to_load() within your overloaded method.

You can disable accessibility tests by setting the environment variable ACCESSIBILITY_DISABLED to true.

You can enable output of the JSON results by setting the environment variable ACCESSIBILITY_REPORTING to true. This will output files to ./results/, which must be created if it does not already exist.

base.py

from pypom_axe.axe import AxePage as Page

class Base(Page):

def wait_for_page_to_load(self, context=None, options=None, impact=None):
  super(Base, self).wait_for_page_to_load()
  self.wait.until(lambda s: self.seed_url in s.current_url)
  return self

You also have the option to customize the accessibility analysis using the parameters context, options, and impact.

context and options directly reflect the parameters used in axe-core. For more information on context and options, view the aXe documentation here.

The third parameter, impact, allows you to filter violations by their impact level.

The options are 'critical', 'serious' and 'minor', with the default value set to None.

This will filter violations for the impact level specified, and all violations with a higher impact level.

from pypom_axe.axe import AxePage as Page

class Base(Page):

def wait_for_page_to_load(self, context=None, options=None, impact=None):
  super(Base, self).wait_for_page_to_load(None, None, 'serious')
  self.wait.until(lambda s: self.seed_url in s.current_url)
  return self

Resources

About

Extension to enable Accessibility testing in PyPOM with the aXe API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%