Accessibility test digest
Synopsis
Page: Ab11y
URL: https://www.ab11y.com/
Score: 85
Tested by: Testaro, procedure tp12
Scored by: Testilo, procedure sp12b
Digested by: Testilo, procedure dp12b
Introduction
The Testaro application used its tp12
testing procedure to test the accessibility (barrier-free design and coding) of the Ab11y web page at https://www.ab11y.com/ on 2022/07/06. The procedure performed 808 tests. Of these, 16 are custom tests defined by Testaro, and the others belong to these six other packages (programs that perform collections of tests):
- Alfa by Siteimprove
- Axe-core by Deque
- HTML CodeSniffer by Squiz Labs
- Equal Access by IBM
- Tenon by Level Access
- WAVE by WebAIM
Testaro produced a report enumerating the test results.
Testilo processed the report and used the sp12b
scoring procedure to compute partial and total scores for the page. The total score is 85 (where 0 is the best possible score). The scored report is appended below.
Finally, Testilo used procedure dp12b
to produce this digest, briefly explaining how sp12a
computed the scores.
Score summary
total | 85 |
---|---|
log | 2 |
contrastAAA | 12 |
linkIndication | 8 |
leadingClipsText | 6 |
noLeading | 5 |
inconsistentStyles | 4 |
h1Missing | 4 |
landmarkConfusion | 4 |
targetSize | 4 |
focusIndication | 3 |
hoverSurprise | 3 |
hiddenContentRisk | 3 |
mainTopLandmark | 3 |
mainLandmark | 3 |
contentBeyondLandmarks | 3 |
decorativeImageRisk | 3 |
pseudoNavListRisk | 3 |
headingStructure | 3 |
contrastRisk | 3 |
pseudoHeadingRisk | 3 |
linkPair | 3 |
Issue summary
Special issues
log: Score 2. This is based on the amount of browser error logging and miscellaneous logging during the tests.
Classified issues
contrastAAA: Score 12. Issues reported by tests in this category:
- Package
alfa
, testr66
, score 5 (Text contrast less than AAA requires) - Package
axe
, testcolor-contrast-enhanced
, score 7 (Element has insufficient color contrast (Level AAA)) - Package
tenon
, test95
, score 2 (Element has insufficient color contrast (Level AAA))
linkIndication: Score 8. Issues reported by tests in this category:
- Package
testaro
, testlinkUl
, score 6 (Non-underlined adjacent links)
leadingClipsText: Score 6. Issues reported by tests in this category:
- Package
tenon
, test144
, score 4 (Line height is insufficent to properly display the computed font size)
noLeading: Score 5. Issues reported by tests in this category:
- Package
alfa
, testr73
, score 3 (Paragraph of text has insufficient line height)
inconsistentStyles: Score 4. Issues reported by tests in this category:
- Package
testaro
, teststyleDiff
, score 2 (Heading, link, and button style inconsistencies)
h1Missing: Score 4. Issues reported by tests in this category:
- Package
alfa
, testr61
, score 2 (First heading is not h1)
landmarkConfusion: Score 4. Issues reported by tests in this category:
- Package
axe
, testlandmark-unique
, score 2 (Landmark has a role and an accessible name that are identical to another)
targetSize: Score 4. Issues reported by tests in this category:
- Package
tenon
, test152
, score 2 (Actionable element is smaller than the minimum required size)
focusIndication: Score 3. Issues reported by tests in this category:
- Package
testaro
, testfocInd
, score 1 (Focused element displaying no or nostandard focus indicator)
hoverSurprise: Score 3. Issues reported by tests in this category:
- Package
testaro
, testhover
, score 1 (Content changes caused by hovering)
hiddenContentRisk: Score 3. Issues reported by tests in this category:
- Package
axe
, testhidden-content
, score 1 (Some content is hidden and therefore may not be testable for accessibility)
mainTopLandmark: Score 3. Issues reported by tests in this category:
- Package
axe
, testlandmark-main-is-top-level
, score 1 (main landmark is contained in another landmark)
mainLandmark: Score 3. Issues reported by tests in this category:
- Package
axe
, testlandmark-no-duplicate-main
, score 1 (page has more than 1 main landmark)
contentBeyondLandmarks: Score 3. Issues reported by tests in this category:
- Package
axe
, testregion
, score 1 (Some page content is not contained by landmarks)
decorativeImageRisk: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_1_1.H67.2
, score 1 (Image marked as decorative may be informative)
pseudoNavListRisk: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_3_1.H48
, score 1 (Navigation links are not coded as a list)
headingStructure: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_3_1_A.G141
, score 1 (Heading level is incorrect) - Package
tenon
, test155
, score 1 (Headings are not structured in a hierarchical manner)
contrastRisk: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_4_3.G18.Abs
, score 1 (Contrast between the absolutely positioned text and its background may be inadequate)
pseudoHeadingRisk: Score 3. Issues reported by tests in this category:
- Package
wave
, testa:heading_possible
, score 1 (Possible heading)
linkPair: Score 3. Issues reported by tests in this category:
- Package
wave
, testa:link_redundant
, score 1 (Adjacent links go to the same URL)
Discussion
Although there are widely accepted accessibility standards, there is no unanimity about how to define, test, and quantify accessibility. The failures reported in this digest merit investigation as potential opportunities for improved accessibility. Investigation may lead you to conclude that some of the reported failures do not actually harm accessibility. Conversely, some substantial accessibility faults can escape detection by any of these tests. You may question the attempt to assign an accessibility score to a web page, or you may prefer weightings and formulas different from those used by sp12b
. You can modify and extend Testaro and Testilo to fit other theories and priorities.
Here, in brief, is how sp12a
computes a score for a page.
- It finds all the defects and warnings (let’s call them
issues
) recorded in the report. - It classifies them according to type. For example, a link that looks like the text around it is one issue category, while a video that has no captions is another issue category.
- It also classifies the issues according to severity. For example, an issue that prevents a transaction is more severe than an issue that only complicates the transaction, and a warning about a possible issue is less severe than a definite finding of an issue. (Some packages rate the severity of each issue; for the other packages,
sp12a
assigns a severity weight to the issue type and uses that weight.) - It assigns quality ratings to particular tests that are judged abnormally reliable or unreliable.
- It assigns a score to each issue reported by each test of each package.
- It aggregates the issue scores, weighting them by severity, test quality, and redundancy. Redundancy occurs, and causes downweighting, when two or more packages contain tests that are designed to discover the same or mostly the same issues. So the score for a category is not simply the sum of the scores of the tests in that category.
- It assigns a score for issues in the page logged by the browser.
- It assigns an estimated score each time the page prevents one of the packages or one of the Testaro tests from being run on the page.
- It adds the scores together to obtain a total score.
The precise rules of sp12b
are found in the code itself.
Report
{ "id": "3zjtz-ab11y", "host": { "id": "ab11y", "which": "https://www.ab11y.com/", "what": "Ab11y" }, "log": [ { "event": "startTime", "value": "2022-07-06T02:43:53" }, { "event": "endTime", "value": "2022-07-06T02:44:56" } ], "script": { "id": "tp12", "what": "Alfa, Axe, HTML CodeSniffer, IBM, Tenon, WAVE, and 16 custom tests", "strict": true, "commands": [ { "type": "launch", "which": "webkit", "what": "Webkit browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "Ab11y" }, { "type": "tenonRequest", "id": "a", "withNewContent": true, "what": "Tenon API version 2 test request" }, { "type": "test", "which": "motion", "what": "spontaneous change of content; requires webkit", "delay": 2500, "interval": 2500, "count": 5 }, { "type": "launch", "which": "chromium", "what": "Chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "Ab11y" }, { "type": "test", "which": "bulk", "what": "count of visible elements" }, { "type": "test", "which": "embAc", "withItems": true, "what": "active elements incorrectly embedded in each other" }, { "type": "test", "which": "focAll", "what": "Tab-focusability" }, { "type": "test", "which": "focInd", "revealAll": false, "allowedDelay": 250, "withItems": true, "what": "focus indicators" }, { "type": "test", "which": "focOp", "withItems": true, "what": "focusability and operability of elements" }, { "type": "test", "which": "hover", "headSize": 20, "headSampleSize": 20, "tailSampleSize": 15, "withItems": true, "what": "hover impacts" }, { "type": "test", "which": "labClash", "withItems": true, "what": "unlabeled and mislabeled form controls" }, { "type": "test", "which": "linkUl", "withItems": true, "what": "underlining of inline links" }, { "type": "test", "which": "menuNav", "withItems": true, "what": "keyboard navigation within true-focus menus" }, { "type": "test", "which": "radioSet", "withItems": true, "what": "grouping of radio buttons in fieldsets" }, { "type": "test", "which": "role", "what": "validity and necessity of role assignments" }, { "type": "test", "which": "styleDiff", "withItems": true, "what": "style consistency of headings, buttons, and links" }, { "type": "test", "which": "tabNav", "withItems": true, "what": "keyboard navigation within tab lists" }, { "type": "test", "which": "zIndex", "withItems": true, "what": "elements with non-auto z indexes" }, { "type": "test", "which": "alfa", "what": "Siteimprove alfa" }, { "type": "test", "which": "axe", "detailLevel": 2, "rules": [], "what": "Axe core, all rules" }, { "type": "test", "which": "htmlcs", "what": "HTML CodeSniffer" }, { "type": "test", "which": "ibm", "withItems": true, "what": "IBM Accessibility Checker, with page content and again with URL" }, { "type": "test", "which": "wave", "reportType": 4, "what": "WAVE, report-type 4" }, { "type": "test", "which": "tenon", "id": "a", "what": "Tenon API version 2 result retrieval" } ] }, "acts": [ { "type": "launch", "which": "webkit", "what": "Webkit browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "Ab11y", "result": "https://www.ab11y.com/" }, { "type": "tenonRequest", "id": "a", "withNewContent": true, "what": "Tenon API version 2 test request", "url": "https://www.ab11y.com/" }, { "type": "test", "which": "motion", "what": "motion", "delay": 2500, "interval": 2500, "count": 5, "url": "https://www.ab11y.com/", "result": { "bytes": [ 109771, 109771, 109771, 109771, 109771 ], "localRatios": [ 1, 1, 1, 1 ], "meanLocalRatio": 1, "maxLocalRatio": 1, "globalRatio": 1, "pixelChanges": [ 0, 0, 0, 0 ], "meanPixelChange": 0, "maxPixelChange": 0, "changeFrequency": 0 } }, { "type": "launch", "which": "chromium", "what": "Chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "Ab11y", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "bulk", "what": "count of visible elements", "url": "https://www.ab11y.com/", "result": { "visibleElements": 80 } }, { "type": "test", "which": "embAc", "withItems": true, "what": "active elements embedded in links or buttons", "url": "https://www.ab11y.com/", "result": { "totals": { "links": 0, "buttons": 0, "inputs": 0, "selects": 0 }, "items": [] } }, { "type": "test", "which": "focAll", "what": "focusable and Tab-focused elements", "url": "https://www.ab11y.com/", "result": { "tabFocusables": 9, "tabFocused": 9, "discrepancy": 0 } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "focInd", "revealAll": false, "allowedDelay": 250, "withItems": true, "what": "focus indicators", "url": "https://www.ab11y.com/", "result": { "totals": { "total": 9, "types": { "indicatorMissing": { "total": 0, "tagNames": {} }, "nonOutlinePresent": { "total": 1, "tagNames": { "A": 1 } }, "outlinePresent": { "total": 8, "meanDelay": 0, "tagNames": { "A": 8 } } } }, "items": { "indicatorMissing": [], "nonOutlinePresent": [ { "tagName": "A", "text": "Get In Touch" } ], "outlinePresent": [ { "tagName": "A", "text": "Skip to main content", "delay": 0 }, { "tagName": "A", "text": "", "delay": 0 }, { "tagName": "A", "text": "Our Story", "delay": 0 }, { "tagName": "A", "text": "How We See Things", "delay": 0 }, { "tagName": "A", "text": "What We Do", "delay": 0 }, { "tagName": "A", "text": "Articles", "delay": 0 }, { "tagName": "A", "text": "Contact", "delay": 0 }, { "tagName": "A", "text": "mail@ab11y.com", "delay": 0 } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "focOp", "withItems": true, "what": "focusability and operability", "url": "https://www.ab11y.com/", "result": { "totals": { "total": 10, "types": { "onlyFocusable": { "total": 0, "tagNames": {} }, "onlyOperable": { "total": 0, "tagNames": {} }, "focusableAndOperable": { "total": 10, "tagNames": { "A": 9, "BUTTON": 1 } } } }, "items": { "onlyFocusable": [], "onlyOperable": [], "focusableAndOperable": [ { "tagName": "A", "id": "", "text": "Skip to main content", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "<a href=\"/\" style=\"cursor: default;\"><img src=\"/static/img/site/logo-name.png\" c", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "<button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-t", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Our Story", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "How We See Things", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "What We Do", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Articles", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Contact", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get In Touch", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "mail@ab11y.com", "byTag": true, "byOnClick": false, "byPointer": true } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "hover", "headSize": 20, "headSampleSize": 20, "tailSampleSize": 15, "withItems": true, "what": "hover-caused content changes", "url": "https://www.ab11y.com/", "result": { "totals": { "triggers": 21, "headTriggers": 20, "tailTriggers": 1, "impactTriggers": 0, "additions": 0, "removals": 0, "opacityChanges": 0, "opacityImpact": 0, "unhoverables": 1 }, "items": { "head": { "impactTriggers": [], "unhoverables": [ { "tagName": "A", "id": "", "text": "Skiptomaincontent" } ] }, "tail": { "impactTriggers": [], "unhoverables": [] } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "labClash", "withItems": true, "what": "labeling inconsistencies", "url": "https://www.ab11y.com/", "result": { "totals": { "mislabeled": 0, "unlabeled": 0, "wellLabeled": 1 }, "items": { "mislabeled": [], "unlabeled": [], "wellLabeled": [ { "index": 0, "tagName": "BUTTON", "type": "button", "labelType": "aria-label", "texts": { "attribute": "Toggle navigation" } } ] } } }, { "type": "test", "which": "linkUl", "withItems": true, "what": "adjacent-link underlining", "url": "https://www.ab11y.com/", "result": { "totals": { "links": 9, "adjacent": { "total": 9, "underlined": 3, "underlinedPercent": 33 } }, "items": { "underlined": [ "Skip to main content", "", "mail@ab11y.com" ], "notUnderlined": [ "Our Story", "How We See Things", "What We Do", "Articles", "Contact", "Get In Touch" ] } } }, { "type": "test", "which": "menuNav", "withItems": true, "what": "keyboard navigation between focusable menu items", "url": "https://www.ab11y.com/", "result": { "totals": { "navigations": { "all": { "total": 0, "correct": 0, "incorrect": 0 }, "specific": { "tab": { "total": 0, "correct": 0, "incorrect": 0 }, "left": { "total": 0, "correct": 0, "incorrect": 0 }, "right": { "total": 0, "correct": 0, "incorrect": 0 }, "up": { "total": 0, "correct": 0, "incorrect": 0 }, "down": { "total": 0, "correct": 0, "incorrect": 0 }, "home": { "total": 0, "correct": 0, "incorrect": 0 }, "end": { "total": 0, "correct": 0, "incorrect": 0 } } }, "menuItems": { "total": 0, "correct": 0, "incorrect": 0 }, "menus": { "total": 0, "correct": 0, "incorrect": 0 } }, "menuItems": { "incorrect": [], "correct": [] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "radioSet", "withItems": true, "what": "fieldset grouping of radio buttons", "url": "https://www.ab11y.com/", "result": { "totals": { "total": 0, "inSet": 0, "percent": "N.A." }, "items": { "inSet": [], "notInSet": [] } } }, { "type": "test", "which": "role", "what": "roles", "url": "https://www.ab11y.com/", "result": { "roleElements": 0, "badRoleElements": 0, "redundantRoleElements": 0, "tagNames": {} } }, { "type": "test", "which": "styleDiff", "withItems": true, "what": "style inconsistencies", "url": "https://www.ab11y.com/", "result": { "mainStyles": [ "fontStyle", "fontWeight", "opacity", "textDecorationLine", "textDecorationStyle", "textDecorationThickness" ], "buttonStyles": [ "borderStyle", "borderWidth", "height", "lineHeight", "maxHeight", "maxWidth", "minHeight", "minWidth", "outlineOffset", "outlineStyle", "outlineWidth" ], "headingStyles": [ "color", "fontSize" ], "listLinkStyles": [ "color", "fontSize", "lineHeight" ], "totals": { "button": { "total": 1 }, "adjacentLink": { "total": 9, "subtotals": [ 6, 2, 1 ] }, "h1": { "total": 1 }, "h2": { "total": 4, "subtotals": [ 3, 1 ] }, "h3": { "total": 1 } }, "items": { "adjacentLink": { "fontWeight": { "400": [ "Skip to main content", "Our Story", "How We See Things", "What We Do", "Articles", "Contact", "Get In Touch", "mail@ab11y.com" ], "900": [ "" ] }, "textDecorationLine": { "underline": [ "Skip to main content", "", "mail@ab11y.com" ], "none": [ "Our Story", "How We See Things", "What We Do", "Articles", "Contact", "Get In Touch" ] } }, "h2": { "color": { "rgb(51, 51, 51)": [ "Ab11y’s Story", "How We See Things", "What We Do" ], "rgb(100, 102, 109)": [ "Privacy" ] } } } } }, { "type": "test", "which": "tabNav", "withItems": true, "what": "keyboard navigation between tab elements", "url": "https://www.ab11y.com/", "result": { "totals": { "navigations": { "all": { "total": 0, "correct": 0, "incorrect": 0 }, "specific": { "tab": { "total": 0, "correct": 0, "incorrect": 0 }, "left": { "total": 0, "correct": 0, "incorrect": 0 }, "right": { "total": 0, "correct": 0, "incorrect": 0 }, "up": { "total": 0, "correct": 0, "incorrect": 0 }, "down": { "total": 0, "correct": 0, "incorrect": 0 }, "home": { "total": 0, "correct": 0, "incorrect": 0 }, "end": { "total": 0, "correct": 0, "incorrect": 0 } } }, "tabElements": { "total": 0, "correct": 0, "incorrect": 0 }, "tabLists": { "total": 0, "correct": 0, "incorrect": 0 } }, "tabElements": { "incorrect": [], "correct": [] } } }, { "type": "test", "which": "zIndex", "withItems": true, "what": "z indexes", "url": "https://www.ab11y.com/", "result": { "totals": { "total": 0, "tagNames": {} }, "items": [] } }, { "type": "test", "which": "alfa", "what": "alfa", "url": "https://www.ab11y.com/", "result": { "totals": { "failures": 7, "warnings": 0 }, "items": [ { "index": 169, "verdict": "failed", "rule": { "ruleID": "r61", "ruleSummary": "Documents start with a level 1 heading", "scope": "page", "uri": "https://alfa.siteimprove.com/rules/sia-r61", "requirements": [] }, "target": { "type": "document", "tagName": "", "path": "/", "codeLines": [ "#document", " <!doctype html>", "...", " </html>" ] } }, { "index": 213, "verdict": "failed", "rule": { "ruleID": "r66", "ruleSummary": "Text outside widget has enhanced contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r66", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-enhanced", "chapter": "1.4.6", "title": "Contrast (Enhanced)" } ] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/footer[1]/div[1]/div[1]/small[1]/text()[1]", "codeLines": [ "©2021 Ab11y Software Ltd." ] } }, { "index": 214, "verdict": "failed", "rule": { "ruleID": "r66", "ruleSummary": "Text outside widget has enhanced contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r66", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-enhanced", "chapter": "1.4.6", "title": "Contrast (Enhanced)" } ] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/footer[1]/div[1]/div[1]/small[1]/text()[2]", "codeLines": [ "Registered UK Company #12102775" ] } }, { "index": 215, "verdict": "failed", "rule": { "ruleID": "r66", "ruleSummary": "Text outside widget has enhanced contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r66", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-enhanced", "chapter": "1.4.6", "title": "Contrast (Enhanced)" } ] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/footer[1]/div[1]/div[1]/small[1]/text()[3]", "codeLines": [ "Contact us at" ] } }, { "index": 216, "verdict": "failed", "rule": { "ruleID": "r66", "ruleSummary": "Text outside widget has enhanced contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r66", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-enhanced", "chapter": "1.4.6", "title": "Contrast (Enhanced)" } ] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/footer[1]/div[1]/div[1]/small[1]/text()[4]", "codeLines": [ "." ] } }, { "index": 218, "verdict": "failed", "rule": { "ruleID": "r66", "ruleSummary": "Text outside widget has enhanced contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r66", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-enhanced", "chapter": "1.4.6", "title": "Contrast (Enhanced)" } ] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/footer[1]/div[1]/div[2]/p[1]/text()[1]", "codeLines": [ "We love a freshly baked cookie but we don't love being tracked by the Internet. We support and comp..." ] } }, { "index": 284, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/main[1]/main[1]/div[4]/div[1]/p[1]", "codeLines": [ "<p class=\"mega\">", " How do you measure success in accessibility? It’s more than just rules and checklists.", "</p>" ] } } ] } }, { "type": "test", "which": "axe", "detailLevel": 2, "rules": [], "what": "Axe", "url": "https://www.ab11y.com/", "result": { "totals": { "rulesNA": 60, "rulesPassed": 35, "rulesWarned": 1, "rulesViolated": 5, "warnings": { "minor": 1, "moderate": 0, "serious": 0, "critical": 0 }, "violations": { "minor": 0, "moderate": 4, "serious": 9, "critical": 0 } }, "details": { "testEngine": { "name": "axe-core", "version": "4.4.2" }, "testRunner": { "name": "axe" }, "testEnvironment": { "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.40 Safari/537.36", "windowWidth": 1280, "windowHeight": 720, "orientationAngle": 90, "orientationType": "landscape-primary" }, "timestamp": "2022-07-06T02:44:47.119Z", "url": "https://www.ab11y.com/", "toolOptions": { "resultTypes": [ "violations", "incomplete" ], "runOnly": { "type": "tag", "values": [ "experimental", "best-practice", "wcag2a", "wcag2aa", "wcag2aaa", "wcag21a", "wcag21aa", "wcag21aaa" ] }, "reporter": "v1" }, "incomplete": [ { "id": "hidden-content", "impact": "minor", "tags": [ "cat.structure", "experimental", "review-item", "best-practice" ], "description": "Informs users about hidden content.", "help": "Hidden content on the page should be analyzed", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/hidden-content?application=axeAPI", "nodes": [ { "any": [ { "id": "hidden-content", "data": null, "relatedNodes": [], "impact": "minor", "message": "There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it." } ], "all": [], "none": [], "impact": "minor", "html": "<button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarCollapse\" aria-controls=\"navbarCollapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"> </span>\n </button>", "target": [ "button" ], "failureSummary": "Fix any of the following:\n There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it." } ] } ], "violations": [ { "id": "color-contrast-enhanced", "impact": "serious", "tags": [ "cat.color", "wcag2aaa", "wcag146" ], "description": "Ensures the contrast between foreground and background colors meets WCAG 2 AAA contrast ratio thresholds", "help": "Elements must have sufficient color contrast", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/color-contrast-enhanced?application=axeAPI", "nodes": [ { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "14.5pt (19.36px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"nav-link active\" aria-current=\"page\" href=\"/#our-story\">Our Story</a>", "target": [ ".active" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "14.5pt (19.36px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"nav-link\" href=\"/#how-we-see\">How We See Things</a>", "target": [ "a[href$=\"/#how-we-see\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "14.5pt (19.36px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"nav-link\" href=\"/#what-we-do\">What We Do</a>", "target": [ "a[href$=\"/#what-we-do\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "14.5pt (19.36px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"nav-link\" href=\"/articles\">Articles</a>", "target": [ "a[href$=\"articles\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "14.5pt (19.36px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"nav-link\" href=\"mailto:mail@ab11y.com\">Contact</a>", "target": [ ".nav-link[href$=\"mailto:mail@ab11y.com\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 14.5pt (19.36px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#0d6efd", "contrastRatio": 4.5, "fontSize": "12.0pt (16px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a class=\"btn btn-primary\" href=\"mailto:mail@ab11y.com\">Get In Touch</a>", "target": [ ".btn" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.5 (foreground color: #ffffff, background color: #0d6efd, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"btn btn-primary\" href=\"mailto:mail@ab11y.com\">Get In Touch</a>", "target": [ ".btn" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.5 (foreground color: #ffffff, background color: #0d6efd, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#6c757d", "bgColor": "#ffffff", "contrastRatio": 4.68, "fontSize": "10.4pt (13.86px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.68 (foreground color: #6c757d, background color: #ffffff, font size: 10.4pt (13.86px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<small class=\"d-block mb-3 text-muted\">©2021 Ab11y Software Ltd.<br>Registered UK Company #12102775<br>Contact us at <a href=\"mailto:mail@ab11y.com\">mail@ab11y.com</a>.</small>", "target": [ "small" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.68 (foreground color: #6c757d, background color: #ffffff, font size: 10.4pt (13.86px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#0d6efd", "bgColor": "#ffffff", "contrastRatio": 4.5, "fontSize": "10.4pt (13.86px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.5 (foreground color: #0d6efd, background color: #ffffff, font size: 10.4pt (13.86px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"mailto:mail@ab11y.com\">mail@ab11y.com</a>", "target": [ "small > a[href$=\"mailto:mail@ab11y.com\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.5 (foreground color: #0d6efd, background color: #ffffff, font size: 10.4pt (13.86px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#64666d", "bgColor": "#ffffff", "contrastRatio": 5.73, "fontSize": "11.9pt (15.84px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<body>", "target": [ "body" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 11.9pt (15.84px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<p>We love a freshly baked cookie but we don't love being tracked by the Internet. We support and comply with all privacy and data protection regulations by never tracking you with cookies.</p>", "target": [ ".col-md-8 > p" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.73 (foreground color: #64666d, background color: #ffffff, font size: 11.9pt (15.84px), font weight: normal). Expected contrast ratio of 7:1" } ] }, { "id": "landmark-main-is-top-level", "impact": "moderate", "tags": [ "cat.semantics", "best-practice" ], "description": "Ensures the main landmark is at top level", "help": "Main landmark should not be contained in another landmark", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/landmark-main-is-top-level?application=axeAPI", "nodes": [ { "any": [ { "id": "landmark-is-top-level", "data": { "role": "main" }, "relatedNodes": [], "impact": "moderate", "message": "The main landmark is contained in another landmark." } ], "all": [], "none": [], "impact": "moderate", "html": "<main class=\"main copy container\">", "target": [ "#main-content > main" ], "failureSummary": "Fix any of the following:\n The main landmark is contained in another landmark." } ] }, { "id": "landmark-no-duplicate-main", "impact": "moderate", "tags": [ "cat.semantics", "best-practice" ], "description": "Ensures 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.4/landmark-no-duplicate-main?application=axeAPI", "nodes": [ { "any": [ { "id": "page-no-duplicate-main", "data": null, "relatedNodes": [ { "html": "<main class=\"main copy container\">", "target": [ "#main-content > main" ] } ], "impact": "moderate", "message": "Document has more than one main landmark" } ], "all": [], "none": [], "impact": "moderate", "html": "<main id=\"main-content\" class=\"main copy container\">", "target": [ "#main-content" ], "failureSummary": "Fix any of the following:\n Document has more than one main landmark" } ] }, { "id": "landmark-unique", "impact": "moderate", "tags": [ "cat.semantics", "best-practice" ], "help": "Ensures landmarks are unique", "description": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/landmark-unique?application=axeAPI", "nodes": [ { "any": [ { "id": "landmark-is-unique", "data": { "role": "main", "accessibleText": null }, "relatedNodes": [ { "html": "<main class=\"main copy container\">", "target": [ "#main-content > main" ] } ], "impact": "moderate", "message": "The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable" } ], "all": [], "none": [], "impact": "moderate", "html": "<main id=\"main-content\" class=\"main copy container\">", "target": [ "#main-content" ], "failureSummary": "Fix any of the following:\n The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable" } ] }, { "id": "region", "impact": "moderate", "tags": [ "cat.keyboard", "best-practice" ], "description": "Ensures all page content is contained by landmarks", "help": "All page content should be contained by landmarks", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/region?application=axeAPI", "nodes": [ { "any": [ { "id": "region", "data": { "isIframe": false }, "relatedNodes": [], "impact": "moderate", "message": "Some page content is not contained by landmarks" } ], "all": [], "none": [], "impact": "moderate", "html": "<div class=\"col-2 my-1\">\n <h3 class=\"mt-3 ps-3\">\n <a href=\"/\"><img src=\"/static/img/site/logo-name.png\" class=\"img-fluid\" alt=\"Ab11y\" style=\"max-width: 6.6rem;\"></a>\n </h3>\n </div>", "target": [ ".col-2" ], "failureSummary": "Fix any of the following:\n Some page content is not contained by landmarks" } ] } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "htmlcs", "what": "HTML CodeSniffer WCAG 2.1 AA ruleset", "url": "https://www.ab11y.com/", "result": { "Error": {}, "Warning": { "AA.1_1_1.H67.2": { "Img element is marked so that it is ignored by Assistive Technology.": [ { "tagName": "img", "id": "", "code": "<img src=\"/static/img/home/decor-1.jpg\" class=\"img-presentation img-fluid\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/static/img/home/decor-2.jpg\" class=\"img-presentation img-fluid\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/static/img/home/decor-3.jpg\" class=\"img-presentation img-fluid\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/static/img/home/hero-1.png\" class=\"img-presentation img-fluid\" alt=\"\">" } ] }, "AA.1_3_1.H48": { "If this element contains a navigation section, it is recommended that it be marked up as a list.": [ { "tagName": "div", "id": "#navbarCollapse", "code": "<div class=\"collapse navbar-collapse\" id=\"navbarCollapse\">...</div>" } ] }, "AA.1_3_1_A.G141": { "The heading structure is not logically nested. This h3 element appears to be the primary document heading, so should be an h1 element.": [ { "tagName": "h3", "id": "", "code": "<h3 class=\"mt-3 ps-3\">...</h3>" } ], "The heading structure is not logically nested. This h3 element should be an h1 to be properly nested.": [ { "tagName": "h3", "id": "", "code": "<h3 class=\"mt-3 ps-3\">...</h3>" } ] }, "AA.1_4_3.G18.Abs": { "This element is absolutely positioned and the background color can not be determined. Ensure the contrast ratio between the text and all covered parts of the background are at least 4.5:1.": [ { "tagName": "a", "id": "", "code": "<a class=\"visually-hidden-focusable\" href=\"#main-content\">...</a>" } ] } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "ibm", "withItems": true, "what": "IBM Accessibility Checker", "url": "https://www.ab11y.com/", "result": { "content": { "totals": { "violation": 4, "recommendation": 1, "ignored": 0 }, "items": [ { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 12, "top": 20, "height": 34, "width": 110 }, "snippet": "<h3 class=\"mt-3 ps-3\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[1]/div[1]/div[1]/a[1]", "aria": "/document[1]/link[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 399, "top": -1, "height": 1, "width": 1 }, "snippet": "<a href=\"#main-content\" class=\"visually-hidden-focusable\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsRequireLabel_Implicit_2", "path": { "dom": "/html[1]/body[1]/main[1]/main[1]", "aria": "/document[1]/main[1]/main[1]" }, "message": "Multiple elements with \"main\" role do not have unique labels", "bounds": { "left": 52, "top": 285, "height": 1471, "width": 696 }, "snippet": "<main class=\"main copy container\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsRequireLabel_Implicit_2", "path": { "dom": "/html[1]/body[1]/main[1]", "aria": "/document[1]/main[1]" }, "message": "Multiple elements with \"main\" role do not have unique labels", "bounds": { "left": 40, "top": 74, "height": 1681, "width": 720 }, "snippet": "<main class=\"main copy container\" id=\"main-content\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsVisibleLabel_Implicit", "path": { "dom": "/html[1]/body[1]", "aria": "/document[1]" }, "message": "Multiple elements with \"main\" role do not have unique visible labels", "bounds": { "left": 0, "top": 0, "height": 1982, "width": 800 }, "snippet": "<body>", "level": "recommendation" } ] }, "url": { "totals": { "violation": 4, "recommendation": 1, "ignored": 0 }, "items": [ { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 12, "top": 33, "height": 36, "width": 110 }, "snippet": "<h3 class=\"mt-3 ps-3\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[1]/div[1]/div[1]/a[1]", "aria": "/document[1]/link[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 399, "top": 12, "height": 1, "width": 1 }, "snippet": "<a href=\"#main-content\" class=\"visually-hidden-focusable\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsRequireLabel_Implicit_2", "path": { "dom": "/html[1]/body[1]/main[1]/main[1]", "aria": "/document[1]/main[1]/main[1]" }, "message": "Multiple elements with \"main\" role do not have unique labels", "bounds": { "left": 52, "top": 400, "height": 4157, "width": 696 }, "snippet": "<main class=\"main copy container\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsRequireLabel_Implicit_2", "path": { "dom": "/html[1]/body[1]/main[1]", "aria": "/document[1]/main[1]" }, "message": "Multiple elements with \"main\" role do not have unique labels", "bounds": { "left": 40, "top": 96, "height": 4461, "width": 720 }, "snippet": "<main class=\"main copy container\" id=\"main-content\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleMainsVisibleLabel_Implicit", "path": { "dom": "/html[1]/body[1]", "aria": "/document[1]" }, "message": "Multiple elements with \"main\" role do not have unique visible labels", "bounds": { "left": 0, "top": 13, "height": 4802, "width": 800 }, "snippet": "<body>", "level": "recommendation" } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "wave", "reportType": 4, "what": "WAVE", "url": "https://www.ab11y.com/", "result": { "status": { "success": true, "httpstatuscode": 200 }, "statistics": { "pagetitle": "Ab11y", "pageurl": "https://www.ab11y.com/", "time": 2.12, "creditsremaining": 318, "allitemcount": 26, "totalelements": 105, "waveurl": "http://wave.webaim.org/report?url=https://www.ab11y.com/" }, "categories": { "error": { "description": "Errors", "count": 0, "items": [] }, "contrast": { "description": "Contrast Errors", "count": 0, "items": [] }, "alert": { "description": "Alerts", "count": 3, "items": { "heading_possible": { "id": "heading_possible", "description": "Possible heading", "count": 1, "selectors": [ "HTML > HEAD:first-child + BODY > MAIN#main-content > DIV:first-child > DIV:first-child > DIV:first-child > H1:first-child + P" ], "wcag": [ { "name": "1.3.1 Info and Relationships (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc1.3.1" }, { "name": "2.4.1 Bypass Blocks (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.1" }, { "name": "2.4.6 Headings and Labels (Level AA)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.6" } ] }, "link_redundant": { "id": "link_redundant", "description": "Redundant link", "count": 2, "selectors": [ "HTML > HEAD:first-child + BODY > MAIN#main-content > DIV:first-child > DIV:first-child > DIV:first-child > H1:first-child + P + P > A:first-child", "HTML > HEAD:first-child + BODY > DIV:first-child + DIV + MAIN + FOOTER > DIV:first-child > DIV:first-child > SMALL:first-child > BR:first-child + BR + A" ], "wcag": [ { "name": "2.4.4 Link Purpose (In Context) (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.4" } ] } } } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.ab11y.com/", "what": "URL", "result": "https://www.ab11y.com/" }, { "type": "test", "which": "tenon", "id": "a", "what": "Tenon", "url": "https://www.ab11y.com/", "result": { "status": 200, "message": "OK", "code": "success", "info": "Success", "moreInfo": "https://tenon.io/documentation/apiv2/response-codes#success", "responseExecTime": "0.065", "responseTime": "2022-07-06T02:44:56.438Z", "data": { "apiErrors": [], "documentSize": 980019, "metadata": null, "resultSummary": { "tests": { "total": 180, "passing": 176, "failing": 4 }, "issues": { "totalErrors": 4, "totalWarnings": 1, "totalIssues": 5 }, "issuesByLevel": { "A": { "count": 2, "pct": 40 }, "AA": { "count": 1, "pct": 20 }, "AAA": { "count": 5, "pct": 100 } }, "density": { "errorDensity": 0, "warningDensity": 0, "allDensity": 1 } }, "projectID": "E4B12DC9-2F67-8DB7-26C9-E50C8490", "responseID": "a1c57a2c-8ffa-42a3-82f1-6a7b8ab0f9ef", "docID": "3bd1bea9-e9cb-48be-9204-2bb076df3d27", "sourceHash": "a5b23f3258510456a5f23ff5ac8339ad", "urlHttpCode": 200, "clientScriptErrors": [], "remainingApiCalls": { "planCalls": 0, "boosts": 19 }, "globalStats": { "errorDensity": "N/A", "warningDensity": "N/A", "allDensity": "N/A", "stdDev": "N/A" }, "resultUrl": "http://ngnix/history.php?responseID=a1c57a2c-8ffa-42a3-82f1-6a7b8ab0f9ef", "resultSet": [ { "tID": 95, "bpID": 181, "priority": 95, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This element has insufficient color contrast (Level AAA).", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.6 Contrast (Enhanced)" ], "resultTitle": "Avoid using color as the only visual means of conveying information", "errorDescription": "This element has insufficient contrast between the foreground color (the text) and the background color when measured against the WCAG 2.0 Level AAA requirements. Sufficient color contrast is important for users who have low-vision or are color-blind, because text with a low contrast ratio may be difficult or impossible for such users to see. Increase the contrast of this content. This can be done by adjusting the color(s) used by either the foreground content or background content – or both.", "viewPortLocation": { "top-left": { "x": 512, "y": 12.796875 }, "bottom-right": { "x": 513, "y": 13.796875 }, "height": 1, "width": 1 }, "position": { "line": 18, "column": 0 }, "errorSnippet": "<a class=\"visually-hidden-focusable\" href=\"#main-content\">Skip to main content</a>", "xpath": "/html/body/div[1]/div[1]/div[1]/a[1]", "issueID": "04a160878640d7caf4683cb114dd835d", "signature": "59c1c9005f919b17848d5e4b399c72b9", "ref": "https://tenon.io/bestpractice.php?bpID=181&tID=95&issueID=04a160878640d7caf4683cb114dd835d" }, { "tID": 95, "bpID": 181, "priority": 95, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This element has insufficient color contrast (Level AAA).", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.6 Contrast (Enhanced)" ], "resultTitle": "Avoid using color as the only visual means of conveying information", "errorDescription": "This element has insufficient contrast between the foreground color (the text) and the background color when measured against the WCAG 2.0 Level AAA requirements. Sufficient color contrast is important for users who have low-vision or are color-blind, because text with a low contrast ratio may be difficult or impossible for such users to see. Increase the contrast of this content. This can be done by adjusting the color(s) used by either the foreground content or background content – or both.", "viewPortLocation": { "top-left": { "x": 294, "y": 450.328125 }, "bottom-right": { "x": 384, "y": 474.328125 }, "height": 24, "width": 90 }, "position": { "line": 19, "column": 0 }, "errorSnippet": "<a class=\"btn btn-primary\" href=\"mailto:mail@ab11y.com\">Get In Touch</a>", "xpath": "/html/body/main[1]/div[1]/div[1]/div[1]/p[2]/a[1]", "issueID": "b01841c671cf00c6fe58cdc958ae9508", "signature": "ffbd7b3f64640850f7c619b59339ba8c", "ref": "https://tenon.io/bestpractice.php?bpID=181&tID=95&issueID=b01841c671cf00c6fe58cdc958ae9508" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 0, "y": -0.0031250000000007105 }, "bottom-right": { "x": 1024, "y": 3270.6968749999996 }, "height": 3270.7, "width": 1024 }, "position": { "line": 2054, "column": 60 }, "errorSnippet": "<body> <div class=\"container-fluid skiplink text-center\"> <div class=\"row\"> <div class=\"col-md-12\"> <a class=\"visually-hidden-focusable\" href=\"#main-content\">Skip to main content</a> </div> </div> </div&", "xpath": "/html/body", "issueID": "dd73e012fe6010f9d64afe9b67b98db1", "signature": "687b754d939f47694f43f3285751b687", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=dd73e012fe6010f9d64afe9b67b98db1" }, { "tID": 152, "bpID": 211, "priority": 88, "level": [ "A", "AA", "AAA" ], "certainty": 100, "errorTitle": "This actionable element is smaller than the minimum required size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 1.3.1 Info and Relationships", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AA: 1.4.5 Images of Text", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AA: 3.2.4 Consistent Identification", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AA: 1.4.4 Resize text", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.5.5 Target Size" ], "resultTitle": "Ensure content is legible.", "errorDescription": "This actionable element is smaller than the stated minimum defined by all mobile platform developer guides. Minimum sizes for actionable elements ensure that those elements can be operated by people with vision, motor and cognitive disabilities. Even if this system is not explicitly intended for mobile use, it should be enlarged with CSS to meet minimu requirements and improve usability for users with vision, motor and cognitive disabilities.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 30, "y": 30 }, "height": 30, "width": 30 }, "position": { "line": 7742, "column": 21 }, "errorSnippet": "<button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarCollapse\" aria-controls=\"navbarCollapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\" style=\"\"> <span class=\"navbar-toggler-icon\"> </span", "xpath": "/html/body/div[2]/div[1]/nav[1]/div[1]/button[1]", "issueID": "3297752162ddc14205572f00e60861ed", "signature": "9b54cf8887997b080365a3c22ee9961e", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=3297752162ddc14205572f00e60861ed" }, { "tID": 155, "bpID": 143, "priority": 100, "level": [ "A", "AAA" ], "certainty": 60, "errorTitle": "These headings are not structured in a hierarchical manner.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 1.3.1 Info and Relationships", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.10 Section Headings" ], "resultTitle": "Make sure that headings are in the right order for the content.", "errorDescription": "The heading structure of this page does not effectively communicate the structure of the content on it. Heading elements provide important benefits: they act as wayfinding cues for in-page navigation, they contribute to page content summaries, and they provide context to the content below them. To do so effectively, headings should follow the `<h1>` to `<h6>` hierarchy and they should not skip levels. Restructure the document's heading order so it uses a clear, ordered, and intuitive hierarchy. Ensure there are no gaps between each numbered heading level and the next.", "viewPortLocation": { "top-left": { "x": 0, "y": -0.0031250000000007105 }, "bottom-right": { "x": 1024, "y": 3270.6968749999996 }, "height": 3270.7, "width": 1024 }, "position": { "line": 2054, "column": 60 }, "errorSnippet": "<body> <div class=\"container-fluid skiplink text-center\"> <div class=\"row\"> <div class=\"col-md-12\"> <a class=\"visually-hidden-focusable\" href=\"#main-content\">Skip to main content</a> </div> </div> </div&", "xpath": "/html/body", "issueID": "ecb041dc42cc8a12cff6c73fc6c46efc", "signature": "8f8cf0f1a7f0f90bd4253d0790b7bb7e", "ref": "https://tenon.io/bestpractice.php?bpID=143&tID=155&issueID=ecb041dc42cc8a12cff6c73fc6c46efc" } ], "log": [] } } } ], "timeStamp": "3zjtz", "startTime": "2022-07-06T02:43:53", "presses": 0, "amountRead": 0, "testTimes": [ [ "hover", 28 ], [ "motion", 13 ], [ "alfa", 2 ], [ "ibm", 2 ], [ "wave", 2 ], [ "bulk", 0 ], [ "embAc", 0 ], [ "focAll", 0 ], [ "focInd", 0 ], [ "focOp", 0 ], [ "labClash", 0 ], [ "linkUl", 0 ], [ "menuNav", 0 ], [ "radioSet", 0 ], [ "role", 0 ], [ "styleDiff", 0 ], [ "tabNav", 0 ], [ "zIndex", 0 ], [ "axe", 0 ], [ "htmlcs", 0 ], [ "tenon", 0 ] ], "logCount": 2, "logSize": 113, "errorLogCount": 0, "errorLogSize": 0, "prohibitedCount": 0, "visitTimeoutCount": 0, "visitRejectionCount": 0, "endTime": "2022-07-06T02:44:56", "elapsedSeconds": 62, "score": { "scoreProcID": "sp12b", "logWeights": { "logCount": 0.5, "logSize": 0.01, "errorLogCount": 1, "errorLogSize": 0.02, "prohibitedCount": 15, "visitTimeoutCount": 10, "visitRejectionCount": 10 }, "soloWeight": 2, "groupWeights": { "absolute": 2, "largest": 1, "smaller": 0.4 }, "preventionWeights": { "testaro": 50, "other": 100 }, "packageDetails": { "testaro": { "focInd": 1, "hover": 1, "linkUl": 12, "styleDiff": 6 }, "alfa": { "r61": 4, "r66": 20, "r73": 4 }, "axe": { "hidden-content": 0, "color-contrast-enhanced": 27, "landmark-main-is-top-level": 2, "landmark-no-duplicate-main": 2, "landmark-unique": 2, "region": 2 }, "htmlcs": { "w:AA.1_1_1.H67.2": 4, "w:AA.1_3_1.H48": 1, "w:AA.1_3_1_A.G141": 2, "w:AA.1_4_3.G18.Abs": 1 }, "wave": { "a:heading_possible": 1, "a:link_redundant": 2 }, "tenon": { "95": 8, "144": 4, "152": 4, "155": 2 } }, "groupDetails": { "groups": { "focusIndication": { "testaro": { "focInd": { "score": 1, "what": "Focused element displaying no or nostandard focus indicator" } } }, "hoverSurprise": { "testaro": { "hover": { "score": 1, "what": "Content changes caused by hovering" } } }, "linkIndication": { "testaro": { "linkUl": { "score": 6, "what": "Non-underlined adjacent links" } } }, "inconsistentStyles": { "testaro": { "styleDiff": { "score": 2, "what": "Heading, link, and button style inconsistencies" } } }, "h1Missing": { "alfa": { "r61": { "score": 2, "what": "First heading is not h1" } } }, "contrastAAA": { "alfa": { "r66": { "score": 5, "what": "Text contrast less than AAA requires" } }, "axe": { "color-contrast-enhanced": { "score": 7, "what": "Element has insufficient color contrast (Level AAA)" } }, "tenon": { "95": { "score": 2, "what": "Element has insufficient color contrast (Level AAA)" } } }, "noLeading": { "alfa": { "r73": { "score": 3, "what": "Paragraph of text has insufficient line height" } } }, "hiddenContentRisk": { "axe": { "hidden-content": { "score": 1, "what": "Some content is hidden and therefore may not be testable for accessibility" } } }, "mainTopLandmark": { "axe": { "landmark-main-is-top-level": { "score": 1, "what": "main landmark is contained in another landmark" } } }, "mainLandmark": { "axe": { "landmark-no-duplicate-main": { "score": 1, "what": "page has more than 1 main landmark" } } }, "landmarkConfusion": { "axe": { "landmark-unique": { "score": 2, "what": "Landmark has a role and an accessible name that are identical to another" } } }, "contentBeyondLandmarks": { "axe": { "region": { "score": 1, "what": "Some page content is not contained by landmarks" } } }, "decorativeImageRisk": { "htmlcs": { "w:AA.1_1_1.H67.2": { "score": 1, "what": "Image marked as decorative may be informative" } } }, "pseudoNavListRisk": { "htmlcs": { "w:AA.1_3_1.H48": { "score": 1, "what": "Navigation links are not coded as a list" } } }, "headingStructure": { "htmlcs": { "w:AA.1_3_1_A.G141": { "score": 1, "what": "Heading level is incorrect" } }, "tenon": { "155": { "score": 1, "what": "Headings are not structured in a hierarchical manner" } } }, "contrastRisk": { "htmlcs": { "w:AA.1_4_3.G18.Abs": { "score": 1, "what": "Contrast between the absolutely positioned text and its background may be inadequate" } } }, "pseudoHeadingRisk": { "wave": { "a:heading_possible": { "score": 1, "what": "Possible heading" } } }, "linkPair": { "wave": { "a:link_redundant": { "score": 1, "what": "Adjacent links go to the same URL" } } }, "leadingClipsText": { "tenon": { "144": { "score": 4, "what": "Line height is insufficent to properly display the computed font size" } } }, "targetSize": { "tenon": { "152": { "score": 2, "what": "Actionable element is smaller than the minimum required size" } } } }, "solos": {} }, "preventionScores": {}, "summary": { "total": 85, "log": 2, "preventions": 0, "solos": 0, "groups": [ { "groupName": "contrastAAA", "score": 12 }, { "groupName": "linkIndication", "score": 8 }, { "groupName": "leadingClipsText", "score": 6 }, { "groupName": "noLeading", "score": 5 }, { "groupName": "inconsistentStyles", "score": 4 }, { "groupName": "h1Missing", "score": 4 }, { "groupName": "landmarkConfusion", "score": 4 }, { "groupName": "targetSize", "score": 4 }, { "groupName": "focusIndication", "score": 3 }, { "groupName": "hoverSurprise", "score": 3 }, { "groupName": "hiddenContentRisk", "score": 3 }, { "groupName": "mainTopLandmark", "score": 3 }, { "groupName": "mainLandmark", "score": 3 }, { "groupName": "contentBeyondLandmarks", "score": 3 }, { "groupName": "decorativeImageRisk", "score": 3 }, { "groupName": "pseudoNavListRisk", "score": 3 }, { "groupName": "headingStructure", "score": 3 }, { "groupName": "contrastRisk", "score": 3 }, { "groupName": "pseudoHeadingRisk", "score": 3 }, { "groupName": "linkPair", "score": 3 } ] } } }