Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 20 additions & 17 deletions axe_selenium_python/axe.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,6 @@
_DEFAULT_SCRIPT = os.path.join(os.path.dirname(__file__), 'src', 'axe.min.js')


def impact_included(rule, impact):
if impact == 'minor' or impact is None:
return True
elif impact == 'moderate':
if rule['impact'] != 'minor':
return True
elif impact == 'severe':
if rule['impact'] == 'severe' or rule['impact'] == 'critical':
return True
elif impact == 'critical':
if rule['impact'] == 'critical':
return True
else:
return False


class Axe(object):

def __init__(self, selenium, script_url=_DEFAULT_SCRIPT):
Expand Down Expand Up @@ -75,10 +59,29 @@ def run(self, context=None, options=None, impact=None):
"""
self.inject()
data = self.execute(context, options)
violations = dict((rule['id'], rule) for rule in data['violations'] if impact_included(rule, impact))
violations = dict((rule['id'], rule) for rule in data['violations'] if self.impact_included(rule, impact))

return violations

def impact_included(rule, impact):
"""
Function to filter for violations iwht specified impact level, and all
violations with a higher impact level.
"""
if impact == 'minor' or impact is None:
return True
elif impact == 'moderate':
if rule['impact'] != 'minor':
return True
elif impact == 'severe':
if rule['impact'] == 'severe' or rule['impact'] == 'critical':
return True
elif impact == 'critical':
if rule['impact'] == 'critical':
return True
else:
return False

def report(self, violations):
"""
Return readable report of accessibility violations found.
Expand Down