|
8 | 8 | _DEFAULT_SCRIPT = os.path.join(os.path.dirname(__file__), 'src', 'axe.min.js') |
9 | 9 |
|
10 | 10 |
|
11 | | -def impact_included(rule, impact): |
12 | | - if impact == 'minor' or impact is None: |
13 | | - return True |
14 | | - elif impact == 'moderate': |
15 | | - if rule['impact'] != 'minor': |
16 | | - return True |
17 | | - elif impact == 'severe': |
18 | | - if rule['impact'] == 'severe' or rule['impact'] == 'critical': |
19 | | - return True |
20 | | - elif impact == 'critical': |
21 | | - if rule['impact'] == 'critical': |
22 | | - return True |
23 | | - else: |
24 | | - return False |
25 | | - |
26 | | - |
27 | 11 | class Axe(object): |
28 | 12 |
|
29 | 13 | def __init__(self, selenium, script_url=_DEFAULT_SCRIPT): |
@@ -75,10 +59,29 @@ def run(self, context=None, options=None, impact=None): |
75 | 59 | """ |
76 | 60 | self.inject() |
77 | 61 | data = self.execute(context, options) |
78 | | - violations = dict((rule['id'], rule) for rule in data['violations'] if impact_included(rule, impact)) |
| 62 | + violations = dict((rule['id'], rule) for rule in data['violations'] if self.impact_included(rule, impact)) |
79 | 63 |
|
80 | 64 | return violations |
81 | 65 |
|
| 66 | + def impact_included(rule, impact): |
| 67 | + """ |
| 68 | + Function to filter for violations iwht specified impact level, and all |
| 69 | + violations with a higher impact level. |
| 70 | + """ |
| 71 | + if impact == 'minor' or impact is None: |
| 72 | + return True |
| 73 | + elif impact == 'moderate': |
| 74 | + if rule['impact'] != 'minor': |
| 75 | + return True |
| 76 | + elif impact == 'severe': |
| 77 | + if rule['impact'] == 'severe' or rule['impact'] == 'critical': |
| 78 | + return True |
| 79 | + elif impact == 'critical': |
| 80 | + if rule['impact'] == 'critical': |
| 81 | + return True |
| 82 | + else: |
| 83 | + return False |
| 84 | + |
82 | 85 | def report(self, violations): |
83 | 86 | """ |
84 | 87 | Return readable report of accessibility violations found. |
|
0 commit comments