Violations Found
2 violations found.
| # | Description | Axe Rule ID | WCAG | Impact | Count |
|---|---|---|---|---|---|
| 1 | Ensure elements that have scrollable content are accessible by keyboard | scrollable-region-focusable | WCAG 2.0 (A) | serious | 1 |
| 2 | Ensure touch targets have sufficient size and space | target-size | WCAG 2.2 (AA) | serious | 20 |
Ensure elements that have scrollable content are accessible by keyboardAxe Rule ID: scrollable-region-focusable
|
Ensure touch targets have sufficient size and spaceAxe Rule ID: target-size
|
Passed Checks
| # | Description | Axe Rule ID | WCAG | Nodes Passed Count |
|---|---|---|---|---|
| 1 | Ensure an element's role supports its ARIA attributes | aria-allowed-attr | WCAG 2.0 (A) | 94 |
| 2 | Ensure role attribute has an appropriate value for the element | aria-allowed-role | Best Practice | 38 |
| 3 | Ensure every ARIA button, link and menuitem has an accessible name | aria-command-name | WCAG 2.0 (A) | 8 |
| 4 | Ensure ARIA attributes are used as described in the specification of the element's role | aria-conditional-attr | WCAG 2.0 (A) | 94 |
| 5 | Ensure elements do not use deprecated roles | aria-deprecated-role | WCAG 2.0 (A) | 12 |
| 6 | Ensure aria-hidden="true" is not present on the document body. | aria-hidden-body | WCAG 2.0 (A) | 1 |
| 7 | Ensure aria-hidden elements are not focusable nor contain focusable elements | aria-hidden-focus | WCAG 2.0 (A) | 171 |
| 8 | Ensure ARIA attributes are not prohibited for an element's role | aria-prohibited-attr | WCAG 2.0 (A) | 94 |
| 9 | Ensure elements with ARIA roles have all required ARIA attributes | aria-required-attr | WCAG 2.0 (A) | 12 |
| 10 | Ensure elements with an ARIA role that require child roles contain them | aria-required-children | WCAG 2.0 (A) | 1 |
| 11 | Ensure all elements with a role attribute use a valid value | aria-roles | WCAG 2.0 (A) | 12 |
| 12 | Ensure all ARIA attributes have valid values | aria-valid-attr-value | WCAG 2.0 (A) | 85 |
| 13 | Ensure attributes that begin with aria- are valid ARIA attributes | aria-valid-attr | WCAG 2.0 (A) | 94 |
| 14 | Ensure that text spacing set through style attributes can be adjusted with custom stylesheets | avoid-inline-spacing | WCAG 2.1 (AA) | 14 |
| 15 | Ensure buttons have discernible text | button-name | WCAG 2.0 (A) | 14 |
| 16 | Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content | bypass | WCAG 2.0 (A) | 1 |
| 17 | Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds | color-contrast | WCAG 2.0 (AA) | 412 |
| 18 | Ensure each HTML document contains a non-empty <title> element | document-title | WCAG 2.0 (A) | 1 |
| 19 | Ensure every id attribute value used in ARIA and in labels is unique | duplicate-id-aria | WCAG 2.0 (A) | 38 |
| 20 | Ensure headings have discernible text | empty-heading | Best Practice | 41 |
| 21 | Ensure table headers have discernible text | empty-table-header | Best Practice | 30 |
| 22 | Ensure form field does not have multiple label elements | form-field-multiple-labels | WCAG 2.0 (A) | 1 |
| 23 | Ensure the order of headings is semantically correct | heading-order | Best Practice | 41 |
| 24 | Ensure every HTML document has a lang attribute | html-has-lang | WCAG 2.0 (A) | 1 |
| 25 | Ensure the lang attribute of the <html> element has a valid value | html-lang-valid | WCAG 2.0 (A) | 1 |
| 26 | Ensure <img> elements have alternative text or a role of none or presentation | image-alt | WCAG 2.0 (A) | 3 |
| 27 | Ensure image alternative is not repeated as text | image-redundant-alt | Best Practice | 3 |
| 28 | Ensure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes | label-title-only | Best Practice | 1 |
| 29 | Ensure every form element has a label | label | WCAG 2.0 (A) | 1 |
| 30 | Ensure the banner landmark is at top level | landmark-banner-is-top-level | Best Practice | 1 |
| 31 | Ensure the contentinfo landmark is at top level | landmark-contentinfo-is-top-level | Best Practice | 1 |
| 32 | Ensure the main landmark is at top level | landmark-main-is-top-level | Best Practice | 1 |
| 33 | Ensure the document has at most one banner landmark | landmark-no-duplicate-banner | Best Practice | 1 |
| 34 | Ensure the document has at most one contentinfo landmark | landmark-no-duplicate-contentinfo | Best Practice | 1 |
| 35 | Ensure the document has at most one main landmark | landmark-no-duplicate-main | Best Practice | 1 |
| 36 | Ensure the document has a main landmark | landmark-one-main | Best Practice | 1 |
| 37 | Ensure landmarks are unique | landmark-unique | Best Practice | 7 |
| 38 | Ensure links are distinguished from surrounding text in a way that does not rely on color | link-in-text-block | WCAG 2.0 (A) | 6 |
| 39 | Ensure links have discernible text | link-name | WCAG 2.0 (A) | 158 |
| 40 | Ensure that lists are structured correctly | list | WCAG 2.0 (A) | 13 |
| 41 | Ensure <li> elements are used semantically | listitem | WCAG 2.0 (A) | 59 |
| 42 | Ensure <meta name="viewport"> can scale a significant amount | meta-viewport-large | Best Practice | 1 |
| 43 | Ensure <meta name="viewport"> does not disable text scaling and zooming | meta-viewport | WCAG 2.0 (AA) | 1 |
| 44 | Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies | nested-interactive | WCAG 2.0 (A) | 25 |
| 45 | Ensure that the page, or at least one of its frames contains a level-one heading | page-has-heading-one | Best Practice | 1 |
| 46 | Ensure all page content is contained by landmarks | region | Best Practice | 1047 |
| 47 | Ensure tabindex attribute values are not greater than 0 | tabindex | Best Practice | 34 |
| 48 | Ensure the <caption> element does not contain the same text as the summary attribute | table-duplicate-name | Best Practice | 8 |
| 49 | Ensure touch targets have sufficient size and space | target-size | WCAG 2.2 (AA) | 147 |
| 50 | Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table | td-headers-attr | WCAG 2.0 (A) | 8 |
| 51 | Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe | th-has-data-cells | WCAG 2.0 (A) | 7 |
Incomplete Checks
| # | Description | Axe Rule ID | WCAG | Nodes Incomplete Count |
|---|---|---|---|---|
| 1 | Ensure all ARIA attributes have valid values | aria-valid-attr-value | WCAG 2.0 (A) | 9 |
| 2 | Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds | color-contrast | WCAG 2.0 (AA) | 1 |
| 3 | Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe | th-has-data-cells | WCAG 2.0 (A) | 1 |
Inapplicable Checks
| # | Description | Axe Rule ID | WCAG |
|---|---|---|---|
| 1 | Ensure every accesskey attribute value is unique | accesskeys | Best Practice |
| 2 | Ensure <area> elements of image maps have alternative text | area-alt | WCAG 2.0 (A) |
| 3 | Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent | aria-braille-equivalent | WCAG 2.0 (A) |
| 4 | Ensure every ARIA dialog and alertdialog node has an accessible name | aria-dialog-name | Best Practice |
| 5 | Ensure every ARIA input field has an accessible name | aria-input-field-name | WCAG 2.0 (A) |
| 6 | Ensure every ARIA meter node has an accessible name | aria-meter-name | WCAG 2.0 (A) |
| 7 | Ensure every ARIA progressbar node has an accessible name | aria-progressbar-name | WCAG 2.0 (A) |
| 8 | Ensure elements with an ARIA role that require parent roles are contained by them | aria-required-parent | WCAG 2.0 (A) |
| 9 | Ensure role="text" is used on elements with no focusable descendants | aria-text | Best Practice |
| 10 | Ensure every ARIA toggle field has an accessible name | aria-toggle-field-name | WCAG 2.0 (A) |
| 11 | Ensure every ARIA tooltip node has an accessible name | aria-tooltip-name | WCAG 2.0 (A) |
| 12 | Ensure every ARIA treeitem node has an accessible name | aria-treeitem-name | Best Practice |
| 13 | Ensure the autocomplete attribute is correct and suitable for the form field | autocomplete-valid | WCAG 2.1 (AA) |
| 14 | Ensure <blink> elements are not used | blink | WCAG 2.0 (A) |
| 15 | Ensure <dl> elements are structured correctly | definition-list | WCAG 2.0 (A) |
| 16 | Ensure <dt> and <dd> elements are contained by a <dl> | dlitem | WCAG 2.0 (A) |
| 17 | Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1 | frame-focusable-content | WCAG 2.0 (A) |
| 18 | Ensure <iframe> and <frame> elements contain the axe-core script | frame-tested | Best Practice |
| 19 | Ensure <iframe> and <frame> elements contain a unique title attribute | frame-title-unique | WCAG 2.0 (A) |
| 20 | Ensure <iframe> and <frame> elements have an accessible name | frame-title | WCAG 2.0 (A) |
| 21 | Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page | html-xml-lang-mismatch | WCAG 2.0 (A) |
| 22 | Ensure input buttons have discernible text | input-button-name | WCAG 2.0 (A) |
| 23 | Ensure <input type="image"> elements have alternative text | input-image-alt | WCAG 2.0 (A) |
| 24 | Ensure the complementary landmark or aside is at top level | landmark-complementary-is-top-level | Best Practice |
| 25 | Ensure <marquee> elements are not used | marquee | WCAG 2.0 (A) |
| 26 | Ensure <meta http-equiv="refresh"> is not used for delayed refresh | meta-refresh | WCAG 2.0 (A) |
| 27 | Ensure <object> elements have alternative text | object-alt | WCAG 2.0 (A) |
| 28 | Elements marked as presentational should not have global ARIA or tabindex to ensure all screen readers ignore them | presentation-role-conflict | Best Practice |
| 29 | Ensure [role="img"] elements have alternative text | role-img-alt | WCAG 2.0 (A) |
| 30 | Ensure the scope attribute is used correctly on tables | scope-attr-valid | Best Practice |
| 31 | Ensure select element has an accessible name | select-name | WCAG 2.0 (A) |
| 32 | Ensure that server-side image maps are not used | server-side-image-map | WCAG 2.0 (A) |
| 33 | Ensure all skip links have a focusable target | skip-link | Best Practice |
| 34 | Ensure summary elements have discernible text | summary-name | WCAG 2.0 (A) |
| 35 | Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text | svg-img-alt | WCAG 2.0 (A) |
| 36 | Ensure lang attributes have valid values | valid-lang | WCAG 2.0 (AA) |
| 37 | Ensure <video> elements have captions | video-caption | WCAG 2.0 (A) |
| 38 | Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio | no-autoplay-audio | WCAG 2.0 (A) |
Execution Details
| Data | Details |
|---|---|
| Test Engine | name: axe-core version: 4.10.3 |
| Test Runner | name: axe |
| Test Environment | userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/134.0.6998.35 Safari/537.36 windowWidth: 1280 windowHeight: 720 orientationAngle: 0 orientationType: landscape-primary |
| Tool Options | runOnly: {'type': 'tag', 'values': ['wcag2a', 'wcag21a', 'wcag2aa', 'wcag21aa', 'wcag22a', 'wcag22aa', 'best-practice']} reporter: v1 |
| Timestamp | 2025-09-08T20:44:31.252Z |
| URL | https://github.com/davethepunkyone/pytest-playwright-axe |