axe-core-maven-html icon indicating copy to clipboard operation
axe-core-maven-html copied to clipboard

(Selenium) `legacyRun` and `runPartial`/`finishRun` do not produce the same results

Open Zidious opened this issue 1 year ago • 2 comments

runLegacy() and runPartial/finishRun do not produce the same results causing our test to fail as we assert that the axe-results generated are equal. Test in question: https://github.com/dequelabs/axe-core-maven-html/blob/3d13cc7662e7428c7217ba687e696a0622c9ac62/selenium/src/test/java/com/deque/html/axecore/selenium/Axe43xIntegrationTest.java#L257-L276

There are few things happening here:

When legacy mode is enabled, selenium handles collecting all of the iframes for axe to inject: https://github.com/dequelabs/axe-core-maven-html/blob/3d13cc7662e7428c7217ba687e696a0622c9ac62/selenium/src/main/java/com/deque/html/axecore/extensions/WebDriverInjectorExtensions.java#L135-L171

Selenium now adds an attribute to each iframe called cd_frame_id which is some unique UUID. This is the first difference, as for runPartial we do not rely on Selenium to collect all of the frames thus no cd_frame_id attribute being added onto each iframe. This causes the equality check between results to fail. An HTML snippet captured by axe:

"html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>\n  \n</body></html>"

Moreover, aria-hidden-body rule appears to only capture the body element during a legacy run but everything including the body during a normal run:

Legacy
 {
      "id": "aria-hidden-body",
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<body>",
          "target": [
            "body"
          ],
          "impact": null,
          "any": [
            {
              "id": "aria-hidden-body",
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    }
Normal
{
      "id": "aria-hidden-body",
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<body>\n    <h1>This page has nested frames!</h1>\n    <iframe src=\"iframes/foo.html\" id=\"ifr-foo\"></iframe>\n    <iframe src=\"iframes/bar.html\" id=\"ifr-bar\"></iframe>\n    <iframe src=\"iframes/baz.html\" id=\"ifr-baz\"></iframe>\n  \n</body>",
          "target": [
            "body"
          ],
          "impact": null,
          "any": [
            {
              "id": "aria-hidden-body",
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    }

This does not happen with our @axe-core/webdriverjs test. The difference between the Java and TypeScript test is the Java test navigates to the page again before running a normal run: https://github.com/dequelabs/axe-core-maven-html/blob/3d13cc7662e7428c7217ba687e696a0622c9ac62/selenium/src/test/java/com/deque/html/axecore/selenium/Axe43xIntegrationTest.java#L267

Doing only one navigation in the WebDriverJS test causes some of the remanence of the legacy run notably the cd_frame_id attribute and causes the aria-hidden-rule to only capture the body. Removing the additional navigation in the Java test causes the test to pass. On the other hand, adding the additional navigation in the Typescript test causes the test to fail.

Follow up that needs to happen:

  1. Identify if having the separate navigations between runs is the correct way for this test to be constructed. If we conclude that it is, we need to follow up on why axe-core is only capturing the body element for legacy and everything inside body for normal run. Second, how we can do true equality checks when selenium adds cd_frame_id onto each iframe this fundamentally breaks our test
  2. Amend the test accordingly from the outcomes of 1

(see below comments for full axe-results generated from each run)

Zidious avatar Sep 25 '24 18:09 Zidious

Full legacy results
{
  "toolOptions": {
    "reporter": "v1",
    "rules": null
  },
  "testEngine": {
    "name": "axe-legacy",
    "version": "4.10.0"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/129.0.6668.70 Safari/537.36",
    "windowWidth": 1920,
    "windowHeight": 1200,
    "orientationAngle": 0.0,
    "orientationType": "landscape-primary"
  },
  "testRunner": {
    "name": "axe"
  },
  "url": "http://localhost:8001/nested-iframes",
  "timestamp": "2024-09-25T18:45:08.372Z",
  "passes": [
    {
      "id": "aria-hidden-body",
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<body>",
          "target": [
            "body"
          ],
          "impact": null,
          "any": [
            {
              "id": "aria-hidden-body",
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "bypass",
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Foo</h1>",
                  "target": [
                    "#ifr-foo",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-bar",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "color-contrast",
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "document-title",
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "doc-has-title",
              "impact": "serious",
              "message": "Document has a non-empty <title> element",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "empty-heading",
      "description": "Ensure headings have discernible text",
      "help": "Headings should not be empty",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/empty-heading?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "form-field-multiple-labels",
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-tested",
      "description": "Ensure <iframe> and <frame> elements contain the axe-core script",
      "help": "Frames should be tested with axe-core",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-tested?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "best-practice",
        "review-item"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\" cd_frame_id_=\"8d0a624e866ec0bce080b0de86c16411\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\" cd_frame_id_=\"0050a23593b6247a27f14be37e6c3709\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\" cd_frame_id_=\"a0710c56b8714f1663b978c3472af276\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "heading-order",
      "description": "Ensure the order of headings is semantically correct",
      "help": "Heading levels should only increase by one",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/heading-order?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(3)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(4)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(3)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-has-lang",
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-lang",
              "impact": "serious",
              "message": "The <html> element has a lang attribute",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-lang-valid",
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "label-title-only",
      "description": "Ensure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes",
      "help": "Form elements should have a visible label",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label-title-only?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "page-has-heading-one",
      "description": "Ensure that the page, or at least one of its frames contains a level-one heading",
      "help": "Page should contain a level-one heading",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/page-has-heading-one?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>This page has nested frames!</h1>",
                  "target": [
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Foo</h1>",
                  "target": [
                    "#ifr-foo",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-bar",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "region",
      "description": "Ensure all page content is contained by landmarks",
      "help": "All page content should be contained by landmarks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/region?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\" cd_frame_id_=\"8d0a624e866ec0bce080b0de86c16411\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\" cd_frame_id_=\"0050a23593b6247a27f14be37e6c3709\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\" cd_frame_id_=\"a0710c56b8714f1663b978c3472af276\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    }
  ],
  "violations": [
    {
      "id": "frame-title",
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "impact": "serious",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\" cd_frame_id_=\"8d0a624e866ec0bce080b0de86c16411\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\" cd_frame_id_=\"0050a23593b6247a27f14be37e6c3709\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\" cd_frame_id_=\"a0710c56b8714f1663b978c3472af276\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "label",
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-one-main",
      "description": "Ensure the document has a main landmark",
      "help": "Document should have one main landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-one-main?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\" cd_frame_id_=\"5830db61d325a1a554e5e72eb2ba2959\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\" cd_frame_id_=\"af6e22095931226bb0861676921f74ae\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"59debf23e7a5b6ad200693d31b2c9a49\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\" cd_frame_id_=\"342f960ce54b8dc4c449eaaeb93dc693\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "region",
      "description": "Ensure all page content is contained by landmarks",
      "help": "All page content should be contained by landmarks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/region?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        }
      ],
      "url": null,
      "createdDate": null
    }
  ],
  "incomplete": [],
  "inapplicable": [
    {
      "id": "accesskeys",
      "description": "Ensure every accesskey attribute value is unique",
      "help": "accesskey attribute value should be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/accesskeys?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "area-alt",
      "description": "Ensure <area> elements of image maps have alternate text",
      "help": "Active <area> elements must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-allowed-attr",
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-allowed-role",
      "description": "Ensure role attribute has an appropriate value for the element",
      "help": "ARIA role should be appropriate for the element",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-role?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-braille-equivalent",
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-command-name",
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-conditional-attr",
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-deprecated-role",
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-dialog-name",
      "description": "Ensure every ARIA dialog and alertdialog node has an accessible name",
      "help": "ARIA dialog and alertdialog nodes should have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-dialog-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-hidden-focus",
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-input-field-name",
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-meter-name",
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-progressbar-name",
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-prohibited-attr",
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-attr",
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-children",
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-parent",
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-roles",
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-text",
      "description": "Ensure role=\"text\" is used on elements with no focusable descendants",
      "help": "\"role=text\" should have no focusable descendants",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-text?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-toggle-field-name",
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-tooltip-name",
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-treeitem-name",
      "description": "Ensure every ARIA treeitem node has an accessible name",
      "help": "ARIA treeitem nodes should have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-treeitem-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-valid-attr-value",
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-valid-attr",
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "autocomplete-valid",
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "avoid-inline-spacing",
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "blink",
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "button-name",
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "definition-list",
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "dlitem",
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "duplicate-id-aria",
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "empty-table-header",
      "description": "Ensure table headers have discernible text",
      "help": "Table header text should not be empty",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/empty-table-header?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-focusable-content",
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-title-unique",
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-xml-lang-mismatch",
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "image-alt",
      "description": "Ensure <img> elements have alternate text or a role of none or presentation",
      "help": "Images must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "image-redundant-alt",
      "description": "Ensure image alternative is not repeated as text",
      "help": "Alternative text of images should not be repeated as text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-redundant-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "input-button-name",
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "input-image-alt",
      "description": "Ensure <input type=\"image\"> elements have alternate text",
      "help": "Image buttons must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-banner-is-top-level",
      "description": "Ensure the banner landmark is at top level",
      "help": "Banner landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-banner-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-complementary-is-top-level",
      "description": "Ensure the complementary landmark or aside is at top level",
      "help": "Aside should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-complementary-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-contentinfo-is-top-level",
      "description": "Ensure the contentinfo landmark is at top level",
      "help": "Contentinfo landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-contentinfo-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-main-is-top-level",
      "description": "Ensure the main landmark is at top level",
      "help": "Main landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-main-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-banner",
      "description": "Ensure the document has at most one banner landmark",
      "help": "Document should not have more than one banner landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-banner?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-contentinfo",
      "description": "Ensure the document has at most one contentinfo landmark",
      "help": "Document should not have more than one contentinfo landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-contentinfo?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-main",
      "description": "Ensure the document has at most one main landmark",
      "help": "Document should not have more than one main landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-main?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-unique",
      "description": "Ensure landmarks are unique",
      "help": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-unique?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "link-in-text-block",
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "link-name",
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "list",
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "listitem",
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "marquee",
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-refresh",
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-viewport-large",
      "description": "Ensure <meta name=\"viewport\"> can scale a significant amount",
      "help": "Users should be able to zoom and scale the text up to 500%",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport-large?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.sensory-and-visual-cues",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-viewport",
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "nested-interactive",
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "object-alt",
      "description": "Ensure <object> elements have alternate text",
      "help": "<object> elements must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "presentation-role-conflict",
      "description": "Elements marked as presentational should not have global ARIA or tabindex to ensure all screen readers ignore them",
      "help": "Ensure elements marked as presentational are consistently ignored",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/presentation-role-conflict?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "role-img-alt",
      "description": "Ensure [role=\"img\"] elements have alternate text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "scope-attr-valid",
      "description": "Ensure the scope attribute is used correctly on tables",
      "help": "scope attribute should be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scope-attr-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "scrollable-region-focusable",
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "select-name",
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "server-side-image-map",
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "skip-link",
      "description": "Ensure all skip links have a focusable target",
      "help": "The skip-link target should exist and be focusable",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/skip-link?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "summary-name",
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "svg-img-alt",
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "tabindex",
      "description": "Ensure tabindex attribute values are not greater than 0",
      "help": "Elements should not have tabindex greater than zero",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/tabindex?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "table-duplicate-name",
      "description": "Ensure the <caption> element does not contain the same text as the summary attribute",
      "help": "Tables should not have the same summary and caption",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/table-duplicate-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "td-headers-attr",
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "th-has-data-cells",
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "valid-lang",
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "video-caption",
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "no-autoplay-audio",
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    }
  ],
  "errored": false,
  "errorMessage": null
}

Zidious avatar Sep 25 '24 18:09 Zidious

Full normal results
{
  "toolOptions": {
    "reporter": "v1",
    "rules": null
  },
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.0"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/129.0.6668.70 Safari/537.36",
    "windowWidth": 1920,
    "windowHeight": 1200,
    "orientationAngle": 0.0,
    "orientationType": "landscape-primary"
  },
  "testRunner": {
    "name": "axe"
  },
  "url": "http://localhost:8001/nested-iframes",
  "timestamp": "2024-09-25T18:45:08.709Z",
  "passes": [
    {
      "id": "aria-hidden-body",
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<body>\n    <h1>This page has nested frames!</h1>\n    <iframe src=\"iframes/foo.html\" id=\"ifr-foo\"></iframe>\n    <iframe src=\"iframes/bar.html\" id=\"ifr-bar\"></iframe>\n    <iframe src=\"iframes/baz.html\" id=\"ifr-baz\"></iframe>\n  \n</body>",
          "target": [
            "body"
          ],
          "impact": null,
          "any": [
            {
              "id": "aria-hidden-body",
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "bypass",
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Foo</h1>",
                  "target": [
                    "#ifr-foo",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-bar",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            },
            {
              "id": "header-present",
              "impact": "serious",
              "message": "Page has a heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "color-contrast",
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "3:1",
                "fgColor": "#000000",
                "fontSize": "24.0pt (32px)",
                "fontWeight": "bold"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [
            {
              "id": "color-contrast",
              "impact": "serious",
              "message": "Element has sufficient color contrast of 21",
              "data": {
                "bgColor": "#ffffff",
                "contrastRatio": 21,
                "expectedContrastRatio": "4.5:1",
                "fgColor": "#000000",
                "fontSize": "10.0pt (13.3333px)",
                "fontWeight": "normal"
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "document-title",
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "doc-has-title",
              "impact": "serious",
              "message": "Document has a non-empty <title> element",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "empty-heading",
      "description": "Ensure headings have discernible text",
      "help": "Headings should not be empty",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/empty-heading?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-visible-text",
              "impact": "minor",
              "message": "Element has text that is visible to screen readers",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "form-field-multiple-labels",
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "impact": "moderate",
              "message": "Form field does not have multiple label elements",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-tested",
      "description": "Ensure <iframe> and <frame> elements contain the axe-core script",
      "help": "Frames should be tested with axe-core",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-tested?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "best-practice",
        "review-item"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "frame-tested",
              "impact": "critical",
              "message": "The iframe was tested with axe-core",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "heading-order",
      "description": "Ensure the order of headings is semantically correct",
      "help": "Heading levels should only increase by one",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/heading-order?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(3)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(4)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(3)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  },
                  {
                    "ancestry": [
                      "html > body > iframe:nth-child(2)"
                    ],
                    "level": -1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": null,
          "any": [
            {
              "id": "heading-order",
              "impact": "moderate",
              "message": "Heading order valid",
              "data": {
                "headingOrder": [
                  {
                    "ancestry": [
                      "html > body > h1:nth-child(1)"
                    ],
                    "level": 1
                  }
                ]
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-has-lang",
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [
            {
              "id": "has-lang",
              "impact": "serious",
              "message": "The <html> element has a lang attribute",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-lang-valid",
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "label-title-only",
      "description": "Ensure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes",
      "help": "Form elements should have a visible label",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label-title-only?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": null,
          "any": [],
          "all": [],
          "none": [
            {
              "id": "title-only",
              "impact": "serious",
              "message": "Form element does not solely use title attribute for its label",
              "data": null,
              "relatedNodes": []
            }
          ],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "page-has-heading-one",
      "description": "Ensure that the page, or at least one of its frames contains a level-one heading",
      "help": "Page should contain a level-one heading",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/page-has-heading-one?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>This page has nested frames!</h1>",
                  "target": [
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Foo</h1>",
                  "target": [
                    "#ifr-foo",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-foo",
                    "#foo-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Bar</h1>",
                  "target": [
                    "#ifr-bar",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-bar",
                    "#bar-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": null,
          "any": [],
          "all": [
            {
              "id": "page-has-heading-one",
              "impact": "moderate",
              "message": "Page has at least one level-one heading",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Baz</h1>",
                  "target": [
                    "#ifr-baz",
                    "h1"
                  ]
                }
              ]
            }
          ],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "region",
      "description": "Ensure all page content is contained by landmarks",
      "help": "All page content should be contained by landmarks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/region?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": null,
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "All page content is contained by landmarks",
              "data": {
                "isIframe": true
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": null
        }
      ],
      "url": null,
      "createdDate": null
    }
  ],
  "violations": [
    {
      "id": "frame-title",
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "impact": "serious",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [
        {
          "html": "<iframe src=\"iframes/foo.html\" id=\"ifr-foo\"></iframe>",
          "target": [
            "#ifr-foo"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"bar.html\" id=\"foo-bar\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"foo-baz\"></iframe>",
          "target": [
            "#ifr-foo",
            "#foo-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"iframes/bar.html\" id=\"ifr-bar\"></iframe>",
          "target": [
            "#ifr-bar"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"baz.html\" id=\"bar-baz\"></iframe>",
          "target": [
            "#ifr-bar",
            "#bar-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<iframe src=\"iframes/baz.html\" id=\"ifr-baz\"></iframe>",
          "target": [
            "#ifr-baz"
          ],
          "impact": "serious",
          "any": [
            {
              "id": "non-empty-title",
              "impact": "serious",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "serious",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "serious",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "serious",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Element has no title attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "label",
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": "critical",
          "any": [
            {
              "id": "implicit-label",
              "impact": "critical",
              "message": "Form element does not have an implicit (wrapped) <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "explicit-label",
              "impact": "critical",
              "message": "Form element does not have an explicit <label>",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-label",
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "aria-labelledby",
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
              "data": null,
              "relatedNodes": []
            },
            {
              "id": "non-empty-title",
              "impact": "critical",
              "message": "Element has no title attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "non-empty-placeholder",
              "impact": "critical",
              "message": "Element has no placeholder attribute",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": []
            },
            {
              "id": "presentational-role",
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
              "data": null,
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Form element does not have an implicit (wrapped) <label>\n  Form element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-one-main",
      "description": "Ensure the document has a main landmark",
      "help": "Document should have one main landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-one-main?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Foo</title>\n  </head>\n  <body>\n    <h1>Foo</h1>\n    <iframe src=\"bar.html\" id=\"foo-bar\"></iframe>\n    <iframe src=\"baz.html\" id=\"foo-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Bar</title>\n  </head>\n  <body>\n    <h1>Bar</h1>\n    <iframe src=\"baz.html\" id=\"bar-baz\"></iframe>\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        },
        {
          "html": "<html lang=\"en\"><head>\n    <title>Baz</title>\n  </head>\n  <body>\n    <h1>Baz</h1>\n    <input type=\"text\">\n  \n</body></html>",
          "target": [
            "#ifr-baz",
            "html"
          ],
          "impact": "moderate",
          "any": [],
          "all": [
            {
              "id": "page-has-main",
              "impact": "moderate",
              "message": "Document does not have a main landmark",
              "data": null,
              "relatedNodes": []
            }
          ],
          "none": [],
          "failureSummary": "Fix all of the following:\n  Document does not have a main landmark"
        }
      ],
      "url": null,
      "createdDate": null
    },
    {
      "id": "region",
      "description": "Ensure all page content is contained by landmarks",
      "help": "All page content should be contained by landmarks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/region?application=axeAPI",
      "impact": "moderate",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [
        {
          "html": "<h1>This page has nested frames!</h1>",
          "target": [
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Foo</h1>",
          "target": [
            "#ifr-foo",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-foo",
            "#foo-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Bar</h1>",
          "target": [
            "#ifr-bar",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-bar",
            "#bar-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<h1>Baz</h1>",
          "target": [
            "#ifr-baz",
            "h1"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        },
        {
          "html": "<input type=\"text\">",
          "target": [
            "#ifr-baz",
            "input"
          ],
          "impact": "moderate",
          "any": [
            {
              "id": "region",
              "impact": "moderate",
              "message": "Some page content is not contained by landmarks",
              "data": {
                "isIframe": false
              },
              "relatedNodes": []
            }
          ],
          "all": [],
          "none": [],
          "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
        }
      ],
      "url": null,
      "createdDate": null
    }
  ],
  "incomplete": [],
  "inapplicable": [
    {
      "id": "accesskeys",
      "description": "Ensure every accesskey attribute value is unique",
      "help": "accesskey attribute value should be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/accesskeys?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "area-alt",
      "description": "Ensure <area> elements of image maps have alternate text",
      "help": "Active <area> elements must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-allowed-attr",
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-allowed-role",
      "description": "Ensure role attribute has an appropriate value for the element",
      "help": "ARIA role should be appropriate for the element",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-role?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-braille-equivalent",
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-command-name",
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-conditional-attr",
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-deprecated-role",
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-dialog-name",
      "description": "Ensure every ARIA dialog and alertdialog node has an accessible name",
      "help": "ARIA dialog and alertdialog nodes should have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-dialog-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-hidden-focus",
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-input-field-name",
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-meter-name",
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-progressbar-name",
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-prohibited-attr",
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-attr",
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-children",
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-required-parent",
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-roles",
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-text",
      "description": "Ensure role=\"text\" is used on elements with no focusable descendants",
      "help": "\"role=text\" should have no focusable descendants",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-text?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-toggle-field-name",
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-tooltip-name",
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-treeitem-name",
      "description": "Ensure every ARIA treeitem node has an accessible name",
      "help": "ARIA treeitem nodes should have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-treeitem-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-valid-attr-value",
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "aria-valid-attr",
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "autocomplete-valid",
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "avoid-inline-spacing",
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "blink",
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "button-name",
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "definition-list",
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "dlitem",
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "duplicate-id-aria",
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "empty-table-header",
      "description": "Ensure table headers have discernible text",
      "help": "Table header text should not be empty",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/empty-table-header?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-focusable-content",
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "frame-title-unique",
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "html-xml-lang-mismatch",
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "image-alt",
      "description": "Ensure <img> elements have alternate text or a role of none or presentation",
      "help": "Images must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "image-redundant-alt",
      "description": "Ensure image alternative is not repeated as text",
      "help": "Alternative text of images should not be repeated as text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-redundant-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "input-button-name",
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "input-image-alt",
      "description": "Ensure <input type=\"image\"> elements have alternate text",
      "help": "Image buttons must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-banner-is-top-level",
      "description": "Ensure the banner landmark is at top level",
      "help": "Banner landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-banner-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-complementary-is-top-level",
      "description": "Ensure the complementary landmark or aside is at top level",
      "help": "Aside should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-complementary-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-contentinfo-is-top-level",
      "description": "Ensure the contentinfo landmark is at top level",
      "help": "Contentinfo landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-contentinfo-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-main-is-top-level",
      "description": "Ensure the main landmark is at top level",
      "help": "Main landmark should not be contained in another landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-main-is-top-level?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-banner",
      "description": "Ensure the document has at most one banner landmark",
      "help": "Document should not have more than one banner landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-banner?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-contentinfo",
      "description": "Ensure the document has at most one contentinfo landmark",
      "help": "Document should not have more than one contentinfo landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-contentinfo?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-no-duplicate-main",
      "description": "Ensure the document has at most one main landmark",
      "help": "Document should not have more than one main landmark",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-no-duplicate-main?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "landmark-unique",
      "description": "Ensure landmarks are unique",
      "help": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/landmark-unique?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.semantics",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "link-in-text-block",
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "link-name",
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "list",
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "listitem",
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "marquee",
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-refresh",
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-viewport-large",
      "description": "Ensure <meta name=\"viewport\"> can scale a significant amount",
      "help": "Users should be able to zoom and scale the text up to 500%",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport-large?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.sensory-and-visual-cues",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "meta-viewport",
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "nested-interactive",
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "object-alt",
      "description": "Ensure <object> elements have alternate text",
      "help": "<object> elements must have alternate text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "presentation-role-conflict",
      "description": "Elements marked as presentational should not have global ARIA or tabindex to ensure all screen readers ignore them",
      "help": "Ensure elements marked as presentational are consistently ignored",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/presentation-role-conflict?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.aria",
        "best-practice",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "role-img-alt",
      "description": "Ensure [role=\"img\"] elements have alternate text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "scope-attr-valid",
      "description": "Ensure the scope attribute is used correctly on tables",
      "help": "scope attribute should be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scope-attr-valid?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "scrollable-region-focusable",
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "select-name",
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "server-side-image-map",
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "skip-link",
      "description": "Ensure all skip links have a focusable target",
      "help": "The skip-link target should exist and be focusable",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/skip-link?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "summary-name",
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "svg-img-alt",
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "tabindex",
      "description": "Ensure tabindex attribute values are not greater than 0",
      "help": "Elements should not have tabindex greater than zero",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/tabindex?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.keyboard",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "table-duplicate-name",
      "description": "Ensure the <caption> element does not contain the same text as the summary attribute",
      "help": "Tables should not have the same summary and caption",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/table-duplicate-name?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "best-practice"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "td-headers-attr",
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "th-has-data-cells",
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "valid-lang",
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "video-caption",
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    },
    {
      "id": "no-autoplay-audio",
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "impact": "",
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "nodes": [],
      "url": null,
      "createdDate": null
    }
  ],
  "errored": false,
  "errorMessage": null
}

Zidious avatar Sep 25 '24 18:09 Zidious