pypom-axe integrates the aXe accessibility testing API with PyPOM.
You will need the following prerequisites in order to use pypom-axe:
- Python 2.7 or 3.6
- PyPOM >= 1.2.0
To install pypom-axe:
$ pip install pypom-axe
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