Accessibility test digest
Synopsis
Page: Mozilla
URL: https://www.mozilla.org/en-US/
Score: 336
Tested by: Testaro, procedure tp12
Scored by: Testilo, procedure sp12a
Digested by: Testilo, procedure dp12a
Introduction
The Testaro application used its tp12
testing procedure to test the accessibility (barrier-free design and coding) of the Mozilla web page at https://www.mozilla.org/en-US/ 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 sp12a
scoring procedure to compute partial and total scores for the page. The total score is 336 (where 0 is the best possible score). The scored report is appended below.
Finally, Testilo used procedure dp12a
to produce this digest, briefly explaining how sp12a
computed the scores.
Score summary
total | 336 |
---|---|
preventions | 100 |
linkIndication | 50 |
contrastRisk | 28 |
tabFocusability | 13 |
focusIndication | 12 |
contrastAA | 11 |
linkVague | 11 |
inconsistentStyles | 10 |
contrastAAA | 10 |
controlLabel | 10 |
selectNoText | 9 |
targetSize | 8 |
decorativeImageRisk | 7 |
headingStructure | 6 |
headingOfNothing | 6 |
ariaBadAttribute | 6 |
linkTextsSame | 6 |
zIndexNotZero | 5 |
contentBeyondLandmarks | 5 |
landmarkConfusion | 4 |
legendMissing | 4 |
roleBad | 3 |
skipRepeatedContent | 3 |
hiddenContentRisk | 3 |
pseudoNavListRisk | 3 |
selectFlatRisk | 3 |
Issue summary
Special issues
preventions: Score 100. This is based on tests that the page did not allow to be run. That impedes accessibility progress and risks interfering with tools that users with disabilities need.
Classified issues
linkIndication: Score 50. Issues reported by tests in this category:
- Package
testaro
, testlinkUl
, score 46 (Non-underlined adjacent links) - Package
alfa
, testr62
, score 6 (Inline link is not distinct from the surrounding text except by color)
contrastRisk: Score 28. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_4_3.G145.Abs
, score 1 (Contrast between the absolutely positioned large text and its background may be less than 3:1) - Package
htmlcs
, testw:AA.1_4_3.G145.BgImage
, score 1 (Contrast between the text and its background image may be less than 3:1) - Package
htmlcs
, testw:AA.1_4_3.G18.Abs
, score 1 (Contrast between the absolutely positioned text and its background may be inadequate) - Package
htmlcs
, testw:AA.1_4_3.G18.BgImage
, score 23 (Contrast between the text and its background image may be less than 4.5:1)
tabFocusability: Score 13. Issues reported by tests in this category:
- Package
testaro
, testfocAll
, score 11 (Discrepancy between elements that should be and that are Tab-focusable)
focusIndication: Score 12. Issues reported by tests in this category:
- Package
testaro
, testfocInd
, score 10 (Focused element displaying no or nostandard focus indicator)
contrastAA: Score 11. Issues reported by tests in this category:
- Package
alfa
, testr69
, score 8 (Text outside widget has subminimum contrast) - Package
axe
, testcolor-contrast
, score 3 (Element has insufficient color contrast)
linkVague: Score 11. Issues reported by tests in this category:
- Package
tenon
, test73
, score 9 (Link text is too generic to communicate the purpose or destination)
inconsistentStyles: Score 10. Issues reported by tests in this category:
- Package
testaro
, teststyleDiff
, score 8 (Heading, link, and button style inconsistencies)
contrastAAA: Score 10. Issues reported by tests in this category:
- Package
alfa
, testr66
, score 3 (Text contrast less than AAA requires) - Package
axe
, testcolor-contrast-enhanced
, score 7 (Element has insufficient color contrast (Level AAA))
controlLabel: Score 10. Issues reported by tests in this category:
- Package
htmlcs
, teste:AA.1_3_1.F68
, score 8 (Form control has no label)
selectNoText: Score 9. Issues reported by tests in this category:
- Package
htmlcs
, teste:AA.4_1_2.H91.Select.Name
, score 6 (Select element has no accessible name) - Package
wave
, testa:select_missing_label
, score 2 (Select missing label)
targetSize: Score 8. Issues reported by tests in this category:
- Package
tenon
, test152
, score 6 (Actionable element is smaller than the minimum required size)
decorativeImageRisk: Score 7. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_1_1.H67.2
, score 5 (Image marked as decorative may be informative)
headingStructure: Score 6. Issues reported by tests in this category:
- Package
alfa
, testr53
, score 2 (Heading skips one or more levels) - Package
axe
, testheading-order
, score 1 (Heading levels do not increase by only one) - Package
htmlcs
, testw:AA.1_3_1_A.G141
, score 2 (Heading level is incorrect) - Package
wave
, testa:heading_skipped
, score 1 (Skipped heading level) - Package
tenon
, test155
, score 1 (Headings are not structured in a hierarchical manner)
headingOfNothing: Score 6. Issues reported by tests in this category:
- Package
alfa
, testr78
, score 4 (No content between two headings of the same level)
ariaBadAttribute: Score 6. Issues reported by tests in this category:
- Package
axe
, testaria-allowed-attr
, score 4 (ARIA attribute is invalid for the role of its element)
linkTextsSame: Score 6. Issues reported by tests in this category:
- Package
tenon
, test98
, score 4 (Links have the same text but different destinations)
zIndexNotZero: Score 5. Issues reported by tests in this category:
- Package
testaro
, testzIndex
, score 3 (Layering with nondefault z-index values)
contentBeyondLandmarks: Score 5. Issues reported by tests in this category:
- Package
alfa
, testr57
, score 2 (Perceivable text content is not included in any landmark) - Package
axe
, testregion
, score 2 (Some page content is not contained by landmarks)
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)
legendMissing: Score 4. Issues reported by tests in this category:
- Package
htmlcs
, teste:AA.1_3_1.H71.NoLegend
, score 2 (Fieldset has no legend element)
roleBad: Score 3. Issues reported by tests in this category:
- Package
testaro
, testrole
, score 1 (Nonexistent or implicit-overriding role)
skipRepeatedContent: Score 3. Issues reported by tests in this category:
- Package
alfa
, testr87
, score 1 (First focusable element is not a link to the main content)
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)
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)
selectFlatRisk: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_3_1.H85.2
, score 1 (Selection list may contain groups of related options that are not grouped with optgroup)
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 sp12a
. 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 sp12a
are found in the code itself.
Report
{ "id": "3zjtz-mozilla", "host": { "id": "mozilla", "which": "https://www.mozilla.org/en-US/", "what": "Mozilla" }, "log": [ { "event": "startTime", "value": "2022-07-06T00:55:59" }, { "event": "endTime", "value": "2022-07-06T00:58:10" } ], "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.mozilla.org/en-US/", "what": "Mozilla" }, { "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.mozilla.org/en-US/", "what": "Mozilla" }, { "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.mozilla.org/en-US/", "what": "Mozilla", "result": "https://www.mozilla.org/en-US/" }, { "type": "tenonRequest", "id": "a", "withNewContent": true, "what": "Tenon API version 2 test request", "url": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "motion", "what": "motion", "delay": 2500, "interval": 2500, "count": 5, "url": "https://www.mozilla.org/en-US/", "result": { "bytes": [ 379109, 379109, 379109, 379109, 379109 ], "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.mozilla.org/en-US/", "what": "Mozilla", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "bulk", "what": "count of visible elements", "url": "https://www.mozilla.org/en-US/", "result": { "visibleElements": 222 } }, { "type": "test", "which": "embAc", "withItems": true, "what": "active elements embedded in links or buttons", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "links": 0, "buttons": 0, "inputs": 0, "selects": 0 }, "items": [] } }, { "type": "test", "which": "focAll", "what": "focusable and Tab-focused elements", "url": "https://www.mozilla.org/en-US/", "result": { "tabFocusables": 53, "tabFocused": 60, "discrepancy": 7 } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "focInd", "revealAll": false, "allowedDelay": 250, "withItems": true, "what": "focus indicators", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "total": 53, "types": { "indicatorMissing": { "total": 0, "tagNames": {} }, "nonOutlinePresent": { "total": 10, "tagNames": { "A": 7, "INPUT": 1, "BUTTON": 1, "SELECT": 1 } }, "outlinePresent": { "total": 43, "meanDelay": 0, "tagNames": { "A": 43 } } } }, "items": { "indicatorMissing": [], "nonOutlinePresent": [ { "tagName": "A", "text": "Download Firefox" }, { "tagName": "A", "text": "Sign up for Pocket" }, { "tagName": "A", "text": "Get Mozilla VPN" }, { "tagName": "A", "text": "Explore Firefox" }, { "tagName": "A", "text": "Try Pocket" }, { "tagName": "A", "text": "Try Relay" }, { "tagName": "INPUT", "text": "" }, { "tagName": "BUTTON", "text": "Sign Up Now" }, { "tagName": "A", "text": "Download Firefox" }, { "tagName": "SELECT", "text": "aragonés عربي Asturianu Azərbaycanca Беларуская Български বাংলা Bosanski Català Maya Kaqchikel Češti" } ], "outlinePresent": [ { "tagName": "A", "text": "", "delay": 0 }, { "tagName": "A", "text": "Firefox Browsers", "delay": 0 }, { "tagName": "A", "text": "Products", "delay": 0 }, { "tagName": "A", "text": "Who We Are", "delay": 0 }, { "tagName": "A", "text": "Innovation", "delay": 0 }, { "tagName": "A", "text": "Learn more about us", "delay": 0 }, { "tagName": "A", "text": "Visit the Mozilla Foundation", "delay": 0 }, { "tagName": "A", "text": "Firefox Privacy Notice", "delay": 0 }, { "tagName": "A", "text": "Mozilla", "delay": 0 }, { "tagName": "A", "text": "Mozilla Manifesto", "delay": 0 }, { "tagName": "A", "text": "Press Center", "delay": 0 }, { "tagName": "A", "text": "Corporate Blog", "delay": 0 }, { "tagName": "A", "text": "Careers", "delay": 0 }, { "tagName": "A", "text": "Contact", "delay": 0 }, { "tagName": "A", "text": "Donate", "delay": 0 }, { "tagName": "A", "text": "Privacy Hub", "delay": 0 }, { "tagName": "A", "text": "Browser Comparison", "delay": 0 }, { "tagName": "A", "text": "Brand Standards", "delay": 0 }, { "tagName": "A", "text": "Product Help", "delay": 0 }, { "tagName": "A", "text": "File a Bug", "delay": 0 }, { "tagName": "A", "text": "Developer Edition", "delay": 0 }, { "tagName": "A", "text": "Beta", "delay": 0 }, { "tagName": "A", "text": "Beta for Android", "delay": 0 }, { "tagName": "A", "text": "Nightly", "delay": 0 }, { "tagName": "A", "text": "Nightly for Android", "delay": 0 }, { "tagName": "A", "text": "Enterprise", "delay": 0 }, { "tagName": "A", "text": "Tools", "delay": 0 }, { "tagName": "A", "text": "Twitter (@mozilla)", "delay": 0 }, { "tagName": "A", "text": "Instagram (@mozilla)", "delay": 0 }, { "tagName": "A", "text": "LinkedIn (@mozilla)", "delay": 0 }, { "tagName": "A", "text": "TikTok (@mozilla)", "delay": 0 }, { "tagName": "A", "text": "Spotify (@mozilla)", "delay": 0 }, { "tagName": "A", "text": "Twitter (@firefox)", "delay": 0 }, { "tagName": "A", "text": "Instagram (@firefox)", "delay": 0 }, { "tagName": "A", "text": "YouTube (@firefoxchannel)", "delay": 0 }, { "tagName": "A", "text": "Language", "delay": 0 }, { "tagName": "A", "text": "Website Privacy Notice", "delay": 0 }, { "tagName": "A", "text": "Cookies", "delay": 0 }, { "tagName": "A", "text": "Legal", "delay": 0 }, { "tagName": "A", "text": "Community Participation Guidelines", "delay": 0 }, { "tagName": "A", "text": "Mozilla Corporation’s", "delay": 0 }, { "tagName": "A", "text": "Mozilla Foundation", "delay": 0 }, { "tagName": "A", "text": "Creative Commons license", "delay": 0 } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "focOp", "withItems": true, "what": "focusability and operability", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "total": 103, "types": { "onlyFocusable": { "total": 0, "tagNames": {} }, "onlyOperable": { "total": 0, "tagNames": {} }, "focusableAndOperable": { "total": 103, "tagNames": { "BUTTON": 8, "A": 85, "INPUT": 7, "SELECT": 3 } } } }, "items": { "onlyFocusable": [], "onlyOperable": [], "focusableAndOperable": [ { "tagName": "BUTTON", "id": "", "text": "Menu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "<a href=\"/en-US/\" data-link-name=\"mozilla home icon\" data-link-type=\"nav\" style=", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Download Firefox", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Privacy Notice", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get Mozilla VPN", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Browsers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "Close Firefox Browsers menu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox for Desktop Get the not-for-profit-backed browser on Windows, Mac or Lin", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox for Android Get the customizable mobile browser for Android smartphones.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox for iOS Get the mobile browser for your iPhone or iPad.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Focus Simply private mobile browsing.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Privacy Promise Learn how Firefox treats your data with respect.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Blog Read about new Firefox features and ways to stay safe online.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Release Notes Get the details on the latest Firefox updates.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "View all Firefox Browsers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Products", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "Close Products menu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Monitor See if your email has appeared in a company’s data breach.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Facebook Container Help prevent Facebook from collecting your data outside their", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Pocket Save and discover the best stories from across the web.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla VPN Get protection beyond your browser, on all your devices.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Product Promise Learn how each Firefox product protects and respects your data.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Relay Sign up for new accounts without handing over your email address.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Private Network (beta) Protect your browser’s connection to the internet", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "MDN Plus New features and tools for a customized MDN experience", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "View all Products", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Who We Are", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "Close Who We Are menu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Manifesto Learn about the values and principles that guide our mission.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Foundation Meet the not-for-profit behind Firefox that stands for a bett", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get involved Join the fight for a healthy internet.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Leadership Meet the team that’s building technology for a better internet.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Careers Work for a mission-driven organization that makes people-first products.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Blog Learn about Mozilla and the issues that matter to us.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "More About Mozilla", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Innovation", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "Close Innovation menu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Hubs Gather in this interactive, online, multi-dimensional social space.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Developer Edition Get the Firefox browser built just for developers.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "MDN Web Docs Check out the home for web developer resources.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Common Voice Donate your voice so the future of the web can hear everyone.", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "More Mozilla Innovation", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Sign up for Pocket", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Learn more about us", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get Mozilla VPN", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Explore Firefox", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Try Pocket", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Try Relay", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Visit the Mozilla Foundation", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "INPUT", "id": "", "text": "<input type=\"hidden\" name=\"source_url\" value=\"https://www.mozilla.org/en-US/\">", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "id_email", "text": "<input type=\"email\" name=\"email\" required=\"\" placeholder=\"yourname@example.com\" ", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "SELECT", "id": "id_country", "text": "Afghanistan Akrotiri Albania Algeria American Samoa Andorra Angola Anguilla Anta", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "SELECT", "id": "id_lang", "text": "Bahasa Indonesia Deutsch English Español Français Polski Português Русский 正體中文", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "id_newsletters_0", "text": "<input type=\"checkbox\" name=\"newsletters\" value=\"mozilla-foundation\" id=\"id_news", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "id_newsletters_1", "text": "<input type=\"checkbox\" name=\"newsletters\" value=\"mozilla-and-you\" id=\"id_newslet", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "format-html", "text": "<input type=\"radio\" id=\"format-html\" name=\"fmt\" value=\"H\" checked=\"\">", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "format-text", "text": "<input type=\"radio\" id=\"format-text\" name=\"fmt\" value=\"T\">", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "INPUT", "id": "privacy", "text": "<input type=\"checkbox\" id=\"privacy\" name=\"privacy\" required=\"\" aria-required=\"tr", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "A", "id": "", "text": "this Privacy Notice", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "newsletter-submit", "text": "Sign Up Now", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Download Firefox", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Firefox Privacy Notice", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "fxa-learn-secondary", "text": "Learn more", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Manifesto", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Press Center", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Corporate Blog", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Careers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Contact", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Donate", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Privacy Hub", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Browser Comparison", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Brand Standards", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Product Help", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "File a Bug", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Developer Edition", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Beta", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Beta for Android", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Nightly", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Nightly for Android", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Enterprise", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Tools", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Twitter (@mozilla)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Instagram (@mozilla)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "LinkedIn (@mozilla)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "TikTok (@mozilla)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Spotify (@mozilla)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Twitter (@firefox)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Instagram (@firefox)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "YouTube (@firefoxchannel)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Language", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "SELECT", "id": "page-language-select", "text": "aragonés عربي Asturianu Azərbaycanca Беларуская Български বাংলা Bosanski Català ", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "BUTTON", "id": "", "text": "Go", "byTag": true, "byOnClick": false, "byPointer": false }, { "tagName": "A", "id": "", "text": "Website Privacy Notice", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Cookies", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Legal", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Community Participation Guidelines", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Corporation’s", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mozilla Foundation", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Creative Commons license", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "Close", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "View", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "View", "byTag": true, "byOnClick": false, "byPointer": true } ] } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "hover", "headSize": 20, "headSampleSize": 20, "tailSampleSize": 15, "withItems": true, "what": "hover-caused content changes", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "triggers": 85, "headTriggers": 20, "tailTriggers": 65, "impactTriggers": 0, "additions": 0, "removals": 0, "opacityChanges": 0, "opacityImpact": 0, "unhoverables": 0 }, "items": { "head": { "impactTriggers": [], "unhoverables": [] }, "tail": { "impactTriggers": [], "unhoverables": [] } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "labClash", "withItems": true, "what": "labeling inconsistencies", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "mislabeled": 0, "unlabeled": 2, "wellLabeled": 15 }, "items": { "mislabeled": [], "unlabeled": [ { "index": 6, "tagName": "SELECT", "type": "select-one" }, { "index": 7, "tagName": "SELECT", "type": "select-one" } ], "wellLabeled": [ { "index": 0, "tagName": "BUTTON", "type": "button", "texts": { "content": "Menu" } }, { "index": 1, "tagName": "BUTTON", "type": "button", "texts": { "content": "Close Firefox Browsers menu" } }, { "index": 2, "tagName": "BUTTON", "type": "button", "texts": { "content": "Close Products menu" } }, { "index": 3, "tagName": "BUTTON", "type": "button", "texts": { "content": "Close Who We Are menu" } }, { "index": 4, "tagName": "BUTTON", "type": "button", "texts": { "content": "Close Innovation menu" } }, { "index": 5, "tagName": "INPUT", "type": "email", "labelType": "label", "texts": { "label": [ "Your email address" ] } }, { "index": 8, "tagName": "INPUT", "type": "checkbox", "labelType": "label", "texts": { "label": [ "Mozilla Foundation" ] } }, { "index": 9, "tagName": "INPUT", "type": "checkbox", "labelType": "label", "texts": { "label": [ "Firefox" ] } }, { "index": 10, "tagName": "INPUT", "type": "radio", "labelType": "label", "texts": { "label": [ "HTML" ] } }, { "index": 11, "tagName": "INPUT", "type": "radio", "labelType": "label", "texts": { "label": [ "Text" ] } }, { "index": 12, "tagName": "INPUT", "type": "checkbox", "labelType": "label", "texts": { "label": [ "I’m okay with Mozilla handling my info as explained in this Privacy Notice" ] } }, { "index": 13, "tagName": "BUTTON", "type": "submit", "texts": { "content": "Sign Up Now" } }, { "index": 14, "tagName": "SELECT", "type": "select-one", "labelType": "label", "texts": { "label": [ "Language" ] } }, { "index": 15, "tagName": "BUTTON", "type": "submit", "texts": { "content": "Go" } }, { "index": 16, "tagName": "BUTTON", "type": "button", "texts": { "content": "Close" } } ] } } }, { "type": "test", "which": "linkUl", "withItems": true, "what": "adjacent-link underlining", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "links": 85, "adjacent": { "total": 55, "underlined": 9, "underlinedPercent": 16 } }, "items": { "underlined": [ "", "Learn more about us", "Visit the Mozilla Foundation", "this Privacy Notice", "Mozilla", "Language", "Mozilla Corporation’s", "Mozilla Foundation", "Creative Commons license" ], "notUnderlined": [ "Download Firefox", "Firefox Privacy Notice", "Get Mozilla VPN", "Firefox Browsers", "Firefox for Desktop Get the not-for-profit-backed browser on Windows, Mac or Linux.", "Firefox for Android Get the customizable mobile browser for Android smartphones.", "Firefox for iOS Get the mobile browser for your iPhone or iPad.", "Firefox Focus Simply private mobile browsing.", "Privacy Promise Learn how Firefox treats your data with respect.", "Firefox Blog Read about new Firefox features and ways to stay safe online.", "Release Notes Get the details on the latest Firefox updates.", "View all Firefox Browsers", "Products", "Firefox Monitor See if your email has appeared in a company’s data breach.", "Facebook Container Help prevent Facebook from collecting your data outside their site.", "Pocket Save and discover the best stories from across the web.", "Mozilla VPN Get protection beyond your browser, on all your devices.", "Product Promise Learn how each Firefox product protects and respects your data.", "Firefox Relay Sign up for new accounts without handing over your email address.", "Firefox Private Network (beta) Protect your browser’s connection to the internet.", "MDN Plus New features and tools for a customized MDN experience", "View all Products", "Who We Are", "Mozilla Manifesto Learn about the values and principles that guide our mission.", "Mozilla Foundation Meet the not-for-profit behind Firefox that stands for a better web.", "Get involved Join the fight for a healthy internet.", "Leadership Meet the team that’s building technology for a better internet.", "Careers Work for a mission-driven organization that makes people-first products.", "Mozilla Blog Learn about Mozilla and the issues that matter to us.", "More About Mozilla", "Innovation", "Mozilla Hubs Gather in this interactive, online, multi-dimensional social space.", "Firefox Developer Edition Get the Firefox browser built just for developers.", "MDN Web Docs Check out the home for web developer resources.", "Common Voice Donate your voice so the future of the web can hear everyone.", "More Mozilla Innovation", "Sign up for Pocket", "Get Mozilla VPN", "Explore Firefox", "Try Pocket", "Try Relay", "Download Firefox", "Firefox Privacy Notice", "Learn more", "View", "View" ] } } }, { "type": "test", "which": "menuNav", "withItems": true, "what": "keyboard navigation between focusable menu items", "url": "https://www.mozilla.org/en-US/", "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.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "radioSet", "withItems": true, "what": "fieldset grouping of radio buttons", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "total": 2, "inSet": 2, "percent": 100 }, "items": { "inSet": [ "HTML", "Text" ], "notInSet": [] } } }, { "type": "test", "which": "role", "what": "roles", "url": "https://www.mozilla.org/en-US/", "result": { "roleElements": 1, "badRoleElements": 1, "tagNames": { "MAIN": { "main": 1 } } } }, { "type": "test", "which": "styleDiff", "withItems": true, "what": "style inconsistencies", "url": "https://www.mozilla.org/en-US/", "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": 8, "subtotals": [ 4, 1, 1, 1, 1 ] }, "adjacentLink": { "total": 55, "subtotals": [ 29, 17, 8, 1 ] }, "listLink": { "total": 30, "subtotals": [ 26, 4 ] }, "h1": { "total": 1 }, "h2": { "total": 11, "subtotals": [ 4, 3, 1, 1, 1, 1 ] }, "h3": { "total": 2, "subtotals": [ 1, 1 ] }, "h4": { "total": 25 }, "h5": { "total": 6, "subtotals": [ 4, 2 ] } }, "items": { "button": { "fontWeight": { "400": [ "Menu", "Close Firefox Browsers menu", "Close Products menu", "Close Who We Are menu", "Close Innovation menu", "Go", "Close" ], "700": [ "Sign Up Now" ] }, "borderStyle": { "none": [ "Menu", "Close Firefox Browsers menu", "Close Products menu", "Close Who We Are menu", "Close Innovation menu", "Close" ], "solid": [ "Sign Up Now" ], "outset": [ "Go" ] }, "borderWidth": { "0px": [ "Menu", "Close Firefox Browsers menu", "Close Products menu", "Close Who We Are menu", "Close Innovation menu", "Close" ], "2px": [ "Sign Up Now", "Go" ] }, "height": { "32px": [ "Menu" ], "24px": [ "Close Firefox Browsers menu", "Close Products menu", "Close Who We Are menu", "Close Innovation menu" ], "40px": [ "Sign Up Now" ], "auto": [ "Go" ], "21px": [ "Close" ] }, "lineHeight": { "20px": [ "Menu", "Close Firefox Browsers menu", "Close Products menu", "Close Who We Are menu", "Close Innovation menu", "Close" ], "24px": [ "Sign Up Now" ], "21px": [ "Go" ] } }, "adjacentLink": { "fontWeight": { "400": [ "", "Firefox Privacy Notice", "Firefox for Desktop Get the not-for-profit-backed browser on Windows, Mac or Linux.", "Firefox for Android Get the customizable mobile browser for Android smartphones.", "Firefox for iOS Get the mobile browser for your iPhone or iPad.", "Firefox Focus Simply private mobile browsing.", "Privacy Promise Learn how Firefox treats your data with respect.", "Firefox Blog Read about new Firefox features and ways to stay safe online.", "Release Notes Get the details on the latest Firefox updates.", "Firefox Monitor See if your email has appeared in a company’s data breach.", "Facebook Container Help prevent Facebook from collecting your data outside their site.", "Pocket Save and discover the best stories from across the web.", "Mozilla VPN Get protection beyond your browser, on all your devices.", "Product Promise Learn how each Firefox product protects and respects your data.", "Firefox Relay Sign up for new accounts without handing over your email address.", "Firefox Private Network (beta) Protect your browser’s connection to the internet.", "MDN Plus New features and tools for a customized MDN experience", "Mozilla Manifesto Learn about the values and principles that guide our mission.", "Mozilla Foundation Meet the not-for-profit behind Firefox that stands for a better web.", "Get involved Join the fight for a healthy internet.", "Leadership Meet the team that’s building technology for a better internet.", "Careers Work for a mission-driven organization that makes people-first products.", "Mozilla Blog Learn about Mozilla and the issues that matter to us.", "Mozilla Hubs Gather in this interactive, online, multi-dimensional social space.", "Firefox Developer Edition Get the Firefox browser built just for developers.", "MDN Web Docs Check out the home for web developer resources.", "Common Voice Donate your voice so the future of the web can hear everyone.", "Learn more about us", "Visit the Mozilla Foundation", "Firefox Privacy Notice", "Mozilla", "Language", "Mozilla Corporation’s", "Mozilla Foundation", "Creative Commons license", "View", "View" ], "700": [ "Download Firefox", "Get Mozilla VPN", "Firefox Browsers", "View all Firefox Browsers", "Products", "View all Products", "Who We Are", "More About Mozilla", "Innovation", "More Mozilla Innovation", "Sign up for Pocket", "Get Mozilla VPN", "Explore Firefox", "Try Pocket", "Try Relay", "this Privacy Notice", "Download Firefox", "Learn more" ] }, "textDecorationLine": { "underline": [ "", "Learn more about us", "Visit the Mozilla Foundation", "this Privacy Notice", "Mozilla", "Language", "Mozilla Corporation’s", "Mozilla Foundation", "Creative Commons license" ], "none": [ "Download Firefox", "Firefox Privacy Notice", "Get Mozilla VPN", "Firefox Browsers", "Firefox for Desktop Get the not-for-profit-backed browser on Windows, Mac or Linux.", "Firefox for Android Get the customizable mobile browser for Android smartphones.", "Firefox for iOS Get the mobile browser for your iPhone or iPad.", "Firefox Focus Simply private mobile browsing.", "Privacy Promise Learn how Firefox treats your data with respect.", "Firefox Blog Read about new Firefox features and ways to stay safe online.", "Release Notes Get the details on the latest Firefox updates.", "View all Firefox Browsers", "Products", "Firefox Monitor See if your email has appeared in a company’s data breach.", "Facebook Container Help prevent Facebook from collecting your data outside their site.", "Pocket Save and discover the best stories from across the web.", "Mozilla VPN Get protection beyond your browser, on all your devices.", "Product Promise Learn how each Firefox product protects and respects your data.", "Firefox Relay Sign up for new accounts without handing over your email address.", "Firefox Private Network (beta) Protect your browser’s connection to the internet.", "MDN Plus New features and tools for a customized MDN experience", "View all Products", "Who We Are", "Mozilla Manifesto Learn about the values and principles that guide our mission.", "Mozilla Foundation Meet the not-for-profit behind Firefox that stands for a better web.", "Get involved Join the fight for a healthy internet.", "Leadership Meet the team that’s building technology for a better internet.", "Careers Work for a mission-driven organization that makes people-first products.", "Mozilla Blog Learn about Mozilla and the issues that matter to us.", "More About Mozilla", "Innovation", "Mozilla Hubs Gather in this interactive, online, multi-dimensional social space.", "Firefox Developer Edition Get the Firefox browser built just for developers.", "MDN Web Docs Check out the home for web developer resources.", "Common Voice Donate your voice so the future of the web can hear everyone.", "More Mozilla Innovation", "Sign up for Pocket", "Get Mozilla VPN", "Explore Firefox", "Try Pocket", "Try Relay", "Download Firefox", "Firefox Privacy Notice", "Learn more", "View", "View" ] } }, "listLink": { "textDecorationLine": { "none": [ "Mozilla Manifesto", "Press Center", "Corporate Blog", "Careers", "Contact", "Donate", "Privacy Hub", "Browser Comparison", "Brand Standards", "Product Help", "File a Bug", "Developer Edition", "Beta", "Beta for Android", "Nightly", "Nightly for Android", "Enterprise", "Tools", "Twitter (@mozilla)", "Instagram (@mozilla)", "LinkedIn (@mozilla)", "TikTok (@mozilla)", "Spotify (@mozilla)", "Twitter (@firefox)", "Instagram (@firefox)", "YouTube (@firefoxchannel)" ], "underline": [ "Website Privacy Notice", "Cookies", "Legal", "Community Participation Guidelines" ] }, "fontSize": { "16px": [ "Mozilla Manifesto", "Press Center", "Corporate Blog", "Careers", "Contact", "Donate", "Privacy Hub", "Browser Comparison", "Brand Standards", "Product Help", "File a Bug", "Developer Edition", "Beta", "Beta for Android", "Nightly", "Nightly for Android", "Enterprise", "Tools", "Twitter (@mozilla)", "Instagram (@mozilla)", "LinkedIn (@mozilla)", "TikTok (@mozilla)", "Spotify (@mozilla)", "Twitter (@firefox)", "Instagram (@firefox)", "YouTube (@firefoxchannel)" ], "12px": [ "Website Privacy Notice", "Cookies", "Legal", "Community Participation Guidelines" ] }, "lineHeight": { "24px": [ "Mozilla Manifesto", "Press Center", "Corporate Blog", "Careers", "Contact", "Donate", "Privacy Hub", "Browser Comparison", "Brand Standards", "Product Help", "File a Bug", "Developer Edition", "Beta", "Beta for Android", "Nightly", "Nightly for Android", "Enterprise", "Tools", "Twitter (@mozilla)", "Instagram (@mozilla)", "LinkedIn (@mozilla)", "TikTok (@mozilla)", "Spotify (@mozilla)", "Twitter (@firefox)", "Instagram (@firefox)", "YouTube (@firefoxchannel)" ], "18px": [ "Website Privacy Notice", "Cookies", "Legal", "Community Participation Guidelines" ] } }, "h2": { "fontWeight": { "500": [ "Firefox: Private, Safe Browser" ], "700": [ "Celebrating 10 years of Pocket", "More power to you.", "Featured Mozilla Products", "Protection for your whole device, on every device", "Firefox is for (internet) lovers", "Welcome to the web, sunny side up", "Un-spam your life with Firefox Relay", "Support a healthy internet.", "Privacy over profit", "A Firefox Account protects you rather than profits off you." ] }, "color": { "rgb(0, 0, 0)": [ "Celebrating 10 years of Pocket", "More power to you.", "Featured Mozilla Products", "Protection for your whole device, on every device", "Firefox is for (internet) lovers", "Welcome to the web, sunny side up", "Un-spam your life with Firefox Relay", "Support a healthy internet.", "Firefox: Private, Safe Browser" ], "rgb(255, 255, 255)": [ "Privacy over profit", "A Firefox Account protects you rather than profits off you." ] }, "fontSize": { "66px": [ "Celebrating 10 years of Pocket" ], "48px": [ "More power to you.", "Featured Mozilla Products", "Support a healthy internet." ], "56px": [ "Protection for your whole device, on every device", "Firefox is for (internet) lovers", "Welcome to the web, sunny side up", "Un-spam your life with Firefox Relay" ], "38px": [ "Privacy over profit" ], "28px": [ "A Firefox Account protects you rather than profits off you." ], "16px": [ "Firefox: Private, Safe Browser" ] } }, "h3": { "fontSize": { "48px": [ "Love the Web" ], "38px": [ "Thanks!" ] } }, "h5": { "fontWeight": { "400": [ "Follow @Mozilla", "Follow @Firefox" ], "700": [ "Company", "Resources", "Support", "Developers" ] }, "fontSize": { "16px": [ "Company", "Resources", "Support", "Developers" ], "14px": [ "Follow @Mozilla", "Follow @Firefox" ] } } } } }, { "type": "test", "which": "tabNav", "withItems": true, "what": "keyboard navigation between tab elements", "url": "https://www.mozilla.org/en-US/", "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.mozilla.org/en-US/", "result": { "totals": { "total": 13, "tagNames": { "DIV": 10, "NAV": 1, "svg": 1, "ASIDE": 1 } }, "items": [ { "tagName": "DIV", "id": "", "text": "Menu Download Firefox Firefox Privacy Notice Get Mozilla VPN Firefox Browsers Close Firefox Browsers" }, { "tagName": "NAV", "id": "", "text": "Firefox Browsers Close Firefox Browsers menu Firefox for Desktop Get the not-for-profit-backed brows" }, { "tagName": "DIV", "id": "c-menu-panel-firefox", "text": "Close Firefox Browsers menu Firefox for Desktop Get the not-for-profit-backed browser on Windows, Ma" }, { "tagName": "DIV", "id": "c-menu-panel-products", "text": "Close Products menu Firefox Monitor See if your email has appeared in a company’s data breach. Faceb" }, { "tagName": "DIV", "id": "c-menu-panel-about", "text": "Close Who We Are menu Mozilla Manifesto Learn about the values and principles that guide our mission" }, { "tagName": "DIV", "id": "c-menu-panel-innovation", "text": "Close Innovation menu Mozilla Hubs Gather in this interactive, online, multi-dimensional social spac" }, { "tagName": "svg", "id": "", "text": "" }, { "tagName": "DIV", "id": "", "text": "" }, { "tagName": "DIV", "id": "", "text": "" }, { "tagName": "DIV", "id": "", "text": "" }, { "tagName": "DIV", "id": "", "text": "" }, { "tagName": "DIV", "id": "download-firefox-secondary-cta", "text": "Privacy over profit No shareholders. No data for sale. Download Firefox Firefox Privacy Notice" }, { "tagName": "ASIDE", "id": "firefox-app-store-banner", "text": "Close Firefox: Private, Safe Browser Mozilla Free – In Google Play Free – In the App Store View View" } ] } }, { "type": "test", "which": "alfa", "what": "alfa", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "failures": 7, "warnings": 21 }, "items": [ { "index": 530, "verdict": "failed", "rule": { "ruleID": "r53", "ruleSummary": "Headings are structured", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r53", "requirements": [] }, "target": { "type": "element", "tagName": "h5", "path": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[1]/div[2]/section[1]/h5[1]", "codeLines": [ "<h5 class=\"mzp-c-footer-heading\">", " Company", "</h5>" ] } }, { "index": 539, "verdict": "failed", "rule": { "ruleID": "r57", "ruleSummary": "Perceivable text content is included in a landmark", "scope": "page", "uri": "https://alfa.siteimprove.com/rules/sia-r57", "requirements": [] }, "target": { "type": "text", "tagName": "", "path": "/html[1]/body[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[1]/a[1]/text()[1]", "codeLines": [ "Download Firefox" ] } }, { "index": 712, "verdict": "failed", "rule": { "ruleID": "r62", "ruleSummary": "Links in blocks of text are distinguishable", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r62", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#use-of-color", "chapter": "1.4.1", "title": "Use of Color" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[2]/div[2]/p[1]/a[1]", "codeLines": [ "<a href=\"/en-US/\" data-link-type=\"footer\" data-link-name=\"Mozilla Corporation\">", " Mozilla Corporation’s", "</a>" ] } }, { "index": 713, "verdict": "failed", "rule": { "ruleID": "r62", "ruleSummary": "Links in blocks of text are distinguishable", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r62", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#use-of-color", "chapter": "1.4.1", "title": "Use of Color" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[2]/div[2]/p[1]/a[2]", "codeLines": [ "<a href=\"https://foundation.mozilla.org/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaig...", " Mozilla Foundation", "</a>" ] } }, { "index": 714, "verdict": "failed", "rule": { "ruleID": "r62", "ruleSummary": "Links in blocks of text are distinguishable", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r62", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#use-of-color", "chapter": "1.4.1", "title": "Use of Color" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[2]/div[2]/p[1]/a[3]", "codeLines": [ "<a rel=\"license\" href=\"/en-US/foundation/licensing/website-content/\">", " Creative Commons license", "</a>" ] } }, { "index": 791, "verdict": "cantTell", "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]/div[3]/main[1]/section[3]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Protection for your whole device, on every device" ] } }, { "index": 792, "verdict": "cantTell", "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]/div[3]/main[1]/section[3]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Surf, stream, game, and get work done while maintaining your privacy online." ] } }, { "index": 793, "verdict": "cantTell", "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]/div[3]/main[1]/section[4]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Firefox is for (internet) lovers" ] } }, { "index": 794, "verdict": "cantTell", "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]/div[3]/main[1]/section[4]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Super fast and fiercely independent. Get the only browser that works to make the internet better fo..." ] } }, { "index": 795, "verdict": "cantTell", "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]/div[3]/main[1]/section[5]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Welcome to the web, sunny side up" ] } }, { "index": 796, "verdict": "cantTell", "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]/div[3]/main[1]/section[5]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Millions of people rely on Pocket to save and discover the best articles, stories and videos on the..." ] } }, { "index": 797, "verdict": "cantTell", "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]/div[3]/main[1]/section[6]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Un-spam your life with Firefox Relay" ] } }, { "index": 798, "verdict": "cantTell", "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]/div[3]/main[1]/section[6]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Generate real, working email aliases so you don't have to compromise your real address and clutter ..." ] } }, { "index": 804, "verdict": "cantTell", "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]/div[3]/main[1]/div[2]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Privacy over profit" ] } }, { "index": 805, "verdict": "cantTell", "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]/div[3]/main[1]/div[2]/div[1]/div[1]/p[1]/text()[1]", "codeLines": [ "No shareholders. No data for sale." ] } }, { "index": 852, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[3]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Protection for your whole device, on every device" ] } }, { "index": 853, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[3]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Surf, stream, game, and get work done while maintaining your privacy online." ] } }, { "index": 854, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[4]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Firefox is for (internet) lovers" ] } }, { "index": 855, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[4]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Super fast and fiercely independent. Get the only browser that works to make the internet better fo..." ] } }, { "index": 856, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[5]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Welcome to the web, sunny side up" ] } }, { "index": 857, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[5]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Millions of people rely on Pocket to save and discover the best articles, stories and videos on the..." ] } }, { "index": 858, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[6]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Un-spam your life with Firefox Relay" ] } }, { "index": 859, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/section[6]/div[1]/div[1]/div[2]/p[2]/text()[1]", "codeLines": [ "Generate real, working email aliases so you don't have to compromise your real address and clutter ..." ] } }, { "index": 865, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/div[2]/div[1]/div[1]/h2[1]/text()[1]", "codeLines": [ "Privacy over profit" ] } }, { "index": 866, "verdict": "cantTell", "rule": { "ruleID": "r69", "ruleSummary": "Text outside widget has minimum contrast", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r69", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#contrast-minimum", "chapter": "1.4.3", "title": "Contrast (Minimum)" }, { "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]/div[3]/main[1]/div[2]/div[1]/div[1]/p[1]/text()[1]", "codeLines": [ "No shareholders. No data for sale." ] } }, { "index": 1048, "verdict": "failed", "rule": { "ruleID": "r78", "ruleSummary": "Headings of same level have text content between them", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r78", "requirements": [] }, "target": { "type": "element", "tagName": "h2", "path": "/html[1]/body[1]/div[3]/main[1]/h2[1]", "codeLines": [ "<h2 class=\"mzp-c-section-heading\">", " Featured Mozilla Products", "</h2>" ] } }, { "index": 1060, "verdict": "failed", "rule": { "ruleID": "r78", "ruleSummary": "Headings of same level have text content between them", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r78", "requirements": [] }, "target": { "type": "element", "tagName": "h5", "path": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[1]/div[2]/section[5]/h5[1]", "codeLines": [ "<h5 class=\"mzp-c-footer-heading-social\">", " Follow @Mozilla", "</h5>" ] } }, { "index": 1118, "verdict": "cantTell", "rule": { "ruleID": "r87", "ruleSummary": "First focusable element is link to main content", "scope": "page", "uri": "https://alfa.siteimprove.com/rules/sia-r87", "requirements": [ { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G1", "name": "G1", "title": "Adding a link at the top of each page that goes directly to the main content area" } ] }, "target": { "type": "document", "tagName": "", "path": "/", "codeLines": [ "#document", " <!doctype html>", "...", " </html>" ] } } ] } }, { "type": "test", "which": "axe", "detailLevel": 2, "rules": [], "what": "Axe", "url": "https://www.mozilla.org/en-US/", "result": { "totals": { "rulesNA": 49, "rulesPassed": 47, "rulesWarned": 3, "rulesViolated": 5, "warnings": { "minor": 14, "moderate": 0, "serious": 8, "critical": 0 }, "violations": { "minor": 0, "moderate": 4, "serious": 8, "critical": 1 } }, "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-06T00:57:36.492Z", "url": "https://www.mozilla.org/en-US/", "toolOptions": { "resultTypes": [ "violations", "incomplete" ], "runOnly": { "type": "tag", "values": [ "experimental", "best-practice", "wcag2a", "wcag2aa", "wcag2aaa", "wcag21a", "wcag21aa", "wcag21aaa" ] }, "reporter": "v1" }, "incomplete": [ { "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": "#ffffff", "contrastRatio": 0, "fontSize": "28.5pt (38px)", "fontWeight": "bold", "messageKey": "bgImage", "expectedContrastRatio": "4.5:1" }, "relatedNodes": [ { "html": "<h2 class=\"c-secondary-cta-title\">Privacy over profit</h2>", "target": [ ".c-secondary-cta-title" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<h2 class=\"c-secondary-cta-title\">Privacy over profit</h2>", "target": [ ".c-secondary-cta-title" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "contrastRatio": 0, "fontSize": "12.0pt (16px)", "fontWeight": "normal", "messageKey": "bgImage", "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<div id=\"download-firefox-secondary-cta\" class=\"c-secondary-cta download-firefox-secondary-cta mzp-t-firefox mzp-t-dark\">", "target": [ "#download-firefox-secondary-cta" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<p class=\"c-secondary-cta-tagline\">No shareholders. No data for sale.</p>", "target": [ ".c-secondary-cta-tagline" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "contrastRatio": 0, "fontSize": "9.0pt (12px)", "fontWeight": "normal", "messageKey": "bgImage", "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<div id=\"download-firefox-secondary-cta\" class=\"c-secondary-cta download-firefox-secondary-cta mzp-t-firefox mzp-t-dark\">", "target": [ "#download-firefox-secondary-cta" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"/en-US/privacy/firefox/\">\n Firefox Privacy Notice\n </a>", "target": [ "#download-secondary > small > a[href$=\"firefox/\"]" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#000000", "contrastRatio": 0, "fontSize": "9.0pt (12px)", "fontWeight": "normal", "messageKey": "bgGradient", "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<select id=\"page-language-select\" class=\"mzp-js-language-switcher-select\" name=\"lang\" dir=\"ltr\" data-previous-language=\"en-US\">", "target": [ "#page-language-select" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background gradient" } ], "all": [], "none": [], "impact": "serious", "html": "<select id=\"page-language-select\" class=\"mzp-js-language-switcher-select\" name=\"lang\" dir=\"ltr\" data-previous-language=\"en-US\">", "target": [ "#page-language-select" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient" } ] }, { "id": "color-contrast", "impact": "serious", "tags": [ "cat.color", "wcag2aa", "wcag143" ], "description": "Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds", "help": "Elements must have sufficient color contrast", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/color-contrast?application=axeAPI", "nodes": [ { "any": [ { "id": "color-contrast", "data": { "fgColor": "#ffffff", "contrastRatio": 0, "fontSize": "28.5pt (38px)", "fontWeight": "bold", "messageKey": "bgImage", "expectedContrastRatio": "3:1" }, "relatedNodes": [ { "html": "<h2 class=\"c-secondary-cta-title\">Privacy over profit</h2>", "target": [ ".c-secondary-cta-title" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<h2 class=\"c-secondary-cta-title\">Privacy over profit</h2>", "target": [ ".c-secondary-cta-title" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast", "data": { "fgColor": "#ffffff", "contrastRatio": 0, "fontSize": "12.0pt (16px)", "fontWeight": "normal", "messageKey": "bgImage", "expectedContrastRatio": "4.5:1" }, "relatedNodes": [ { "html": "<div id=\"download-firefox-secondary-cta\" class=\"c-secondary-cta download-firefox-secondary-cta mzp-t-firefox mzp-t-dark\">", "target": [ "#download-firefox-secondary-cta" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<p class=\"c-secondary-cta-tagline\">No shareholders. No data for sale.</p>", "target": [ ".c-secondary-cta-tagline" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast", "data": { "fgColor": "#ffffff", "contrastRatio": 0, "fontSize": "9.0pt (12px)", "fontWeight": "normal", "messageKey": "bgImage", "expectedContrastRatio": "4.5:1" }, "relatedNodes": [ { "html": "<div id=\"download-firefox-secondary-cta\" class=\"c-secondary-cta download-firefox-secondary-cta mzp-t-firefox mzp-t-dark\">", "target": [ "#download-firefox-secondary-cta" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background image" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"/en-US/privacy/firefox/\">\n Firefox Privacy Notice\n </a>", "target": [ "#download-secondary > small > a[href$=\"firefox/\"]" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background image" }, { "any": [ { "id": "color-contrast", "data": { "fgColor": "#000000", "contrastRatio": 0, "fontSize": "9.0pt (12px)", "fontWeight": "normal", "messageKey": "bgGradient", "expectedContrastRatio": "4.5:1" }, "relatedNodes": [ { "html": "<select id=\"page-language-select\" class=\"mzp-js-language-switcher-select\" name=\"lang\" dir=\"ltr\" data-previous-language=\"en-US\">", "target": [ "#page-language-select" ] } ], "impact": "serious", "message": "Element's background color could not be determined due to a background gradient" } ], "all": [], "none": [], "impact": "serious", "html": "<select id=\"page-language-select\" class=\"mzp-js-language-switcher-select\" name=\"lang\" dir=\"ltr\" data-previous-language=\"en-US\">", "target": [ "#page-language-select" ], "failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient" } ] }, { "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=\"c-navigation-menu-button\" type=\"button\" aria-controls=\"c-navigation-items\">Menu</button>", "target": [ ".c-navigation-menu-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." }, { "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": "<small class=\"mzp-c-button-download-privacy-link\">\n <a href=\"/en-US/privacy/firefox/\">\n Firefox Privacy Notice\n </a>\n </small>", "target": [ "#protocol-nav-download-firefox > small" ], "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." }, { "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": "<div class=\"c-navigation-vpn-cta-container\">", "target": [ ".c-navigation-vpn-cta-container" ], "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." }, { "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": "<div class=\"c-menu-panel\" id=\"c-menu-panel-firefox\">", "target": [ "#c-menu-panel-firefox" ], "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." }, { "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": "<div class=\"c-menu-panel\" id=\"c-menu-panel-products\">", "target": [ "#c-menu-panel-products" ], "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." }, { "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": "<div class=\"c-menu-panel\" id=\"c-menu-panel-about\">", "target": [ "#c-menu-panel-about" ], "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." }, { "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": "<div class=\"c-menu-panel\" id=\"c-menu-panel-innovation\">", "target": [ "#c-menu-panel-innovation" ], "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." }, { "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": "<div id=\"newsletter-details\" class=\"mzp-c-newsletter-details\">", "target": [ "#newsletter-details" ], "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." }, { "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": "<div id=\"newsletter-thanks\" class=\"mzp-c-newsletter-thanks\">\n \n \n <h3>Thanks!</h3>\n <p>If you haven’t previously confirmed a subscription to a Mozilla-related newsletter, you may have to do so. Please check your inbox or your spam filter for an email from us.</p>\n\n \n </div>", "target": [ "#newsletter-thanks" ], "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." }, { "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": "<section class=\"mzp-c-call-out-compact fxaccount-secondary-cta mzp-t-product-firefox mzp-t-firefox mzp-t-dark hide-from-legacy-ie\">", "target": [ ".mzp-c-call-out-compact" ], "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." }, { "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 type=\"submit\">Go</button>", "target": [ "#lang_form > button[type=\"submit\"]" ], "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." }, { "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": "<aside class=\"c-banner hide-from-legacy-ie mzp-t-firefox t-native\" id=\"firefox-app-store-banner\">", "target": [ "#firefox-app-store-banner" ], "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." }, { "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": "<p class=\"show-ios\">Free – In the App Store</p>", "target": [ ".c-banner-copy > .show-ios" ], "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." }, { "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": "<a class=\"c-banner-link show-ios\" href=\"https://app.adjust.com/2uo1qc?redirect=https%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Ffirefox-private-safe-browser%2Fid989804926&campaign=www.mozilla.org&adgroup=app-store-banner\" data-link-type=\"download\" data-download-os=\"iOS\" data-download-location=\"Banner\">", "target": [ ".c-banner-link" ], "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": "aria-allowed-attr", "impact": "critical", "tags": [ "cat.aria", "wcag2a", "wcag412" ], "description": "Ensures ARIA attributes are allowed for an element's role", "help": "Elements must only use allowed ARIA attributes", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-allowed-attr?application=axeAPI", "nodes": [ { "any": [ { "id": "aria-allowed-attr", "data": [ "aria-expanded=\"false\"" ], "relatedNodes": [], "impact": "critical", "message": "ARIA attribute is not allowed: aria-expanded=\"false\"" } ], "all": [], "none": [], "impact": "critical", "html": "<div class=\"c-navigation-items\" id=\"c-navigation-items\" aria-expanded=\"false\">", "target": [ "#c-navigation-items" ], "failureSummary": "Fix any of the following:\n ARIA attribute is not allowed: aria-expanded=\"false\"" } ] }, { "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": "#0060df", "bgColor": "#ffffff", "contrastRatio": 5.61, "fontSize": "10.5pt (14px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<div class=\"c-navigation top-header-navigation mzp-is-sticky nav-button-is-ready\">", "target": [ ".c-navigation" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.61 (foreground color: #0060df, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"/firefox/download/thanks/\" class=\"download-link mzp-c-button mzp-t-product mzp-t-secondary mzp-t-md js-glean-delay-click\" data-direct-link=\"https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US\" data-link-type=\"download\" data-download-location=\"nav\" data-download-os=\"Desktop\" data-display-name=\"macOS\" data-download-version=\"osx\">", "target": [ ".js-glean-delay-click" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.61 (foreground color: #0060df, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#e7132f", "contrastRatio": 4.63, "fontSize": "12.0pt (16px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a href=\"https://getpocket.com/signup/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=home-pocket-10-years-promo\" class=\"mzp-c-button mzp-t-xl\" alt=\"Articles from a wide range of publications\" data-cta-type=\"button\" data-cta-text=\"Sign up for Pocket\">", "target": [ "a[data-cta-text=\"Sign up for Pocket\"]" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.63 (foreground color: #ffffff, background color: #e7132f, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"https://getpocket.com/signup/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=home-pocket-10-years-promo\" class=\"mzp-c-button mzp-t-xl\" alt=\"Articles from a wide range of publications\" data-cta-type=\"button\" data-cta-text=\"Sign up for Pocket\">", "target": [ "a[data-cta-text=\"Sign up for Pocket\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.63 (foreground color: #ffffff, background color: #e7132f, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#0060df", "bgColor": "#f9f9fb", "contrastRatio": 5.34, "fontSize": "12.0pt (16px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<div class=\"mzp-c-split-bg mzp-t-background-secondary\">", "target": [ ".mzp-l-split-reversed > .mzp-c-split-bg.mzp-t-background-secondary" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.34 (foreground color: #0060df, background color: #f9f9fb, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"https://www.mozilla.org/en-US/about/\">Learn more about us</a>", "target": [ ".mzp-l-split-reversed > .mzp-c-split-bg.mzp-t-background-secondary > .mzp-c-split-container > .mzp-c-split-body.mzp-l-split-v-center.mzp-l-split-h-center > p:nth-child(3) > a" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.34 (foreground color: #0060df, background color: #f9f9fb, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#0060df", "contrastRatio": 5.61, "fontSize": "12.0pt (16px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a href=\"/firefox/browsers/\" class=\"mzp-c-button mzp-t-product mzp-t-lg\" data-cta-text=\"Explore Firefox\" data-cta-type=\"link\">Explore Firefox</a>", "target": [ "a[data-cta-text=\"Explore Firefox\"]" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"/firefox/browsers/\" class=\"mzp-c-button mzp-t-product mzp-t-lg\" data-cta-text=\"Explore Firefox\" data-cta-type=\"link\">Explore Firefox</a>", "target": [ "a[data-cta-text=\"Explore Firefox\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#0060df", "contrastRatio": 5.61, "fontSize": "12.0pt (16px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a href=\"https://getpocket.com/?utm_source=www.mozilla.org-home&utm_medium=referral&utm_campaign=home\" class=\"mzp-c-button mzp-t-product\" rel=\"external noopener\" data-cta-type=\"link\" data-cta-text=\"Try Pocket\">Try Pocket</a>", "target": [ "a[data-cta-text=\"Try Pocket\"]" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"https://getpocket.com/?utm_source=www.mozilla.org-home&utm_medium=referral&utm_campaign=home\" class=\"mzp-c-button mzp-t-product\" rel=\"external noopener\" data-cta-type=\"link\" data-cta-text=\"Try Pocket\">Try Pocket</a>", "target": [ "a[data-cta-text=\"Try Pocket\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#0060df", "contrastRatio": 5.61, "fontSize": "12.0pt (16px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a href=\"https://relay.firefox.com/?utm_source=www.mozilla.org-home&utm_medium=referral&utm_campaign=home\" class=\"mzp-c-button mzp-t-product mzp-t-lg\" rel=\"external noopener\" data-cta-text=\"Try Relay\" data-cta-type=\"link\">Try Relay</a>", "target": [ "a[data-cta-text=\"Try Relay\"]" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"https://relay.firefox.com/?utm_source=www.mozilla.org-home&utm_medium=referral&utm_campaign=home\" class=\"mzp-c-button mzp-t-product mzp-t-lg\" rel=\"external noopener\" data-cta-text=\"Try Relay\" data-cta-type=\"link\">Try Relay</a>", "target": [ "a[data-cta-text=\"Try Relay\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#0060df", "bgColor": "#f9f9fb", "contrastRatio": 5.34, "fontSize": "12.0pt (16px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<div class=\"mzp-c-split-bg mzp-t-background-secondary\">", "target": [ ".mzp-l-split-pop.mzp-c-split:nth-child(9) > .mzp-c-split-bg.mzp-t-background-secondary" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.34 (foreground color: #0060df, background color: #f9f9fb, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"https://foundation.mozilla.org/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=home\" data-cta-type=\"link\" data-cta-text=\"Visit the Mozilla Foundation\" rel=\"external noopener\">Visit the Mozilla Foundation</a>", "target": [ "a[data-cta-text=\"Visit the Mozilla Foundation\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.34 (foreground color: #0060df, background color: #f9f9fb, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#ffffff", "bgColor": "#0060df", "contrastRatio": 5.61, "fontSize": "12.0pt (16px)", "fontWeight": "bold", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a href=\"/firefox/download/thanks/\" class=\"download-link mzp-c-button mzp-t-product mzp-t-xl\" data-direct-link=\"https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US\" data-link-type=\"download\" data-download-location=\"secondary cta\" data-download-os=\"Desktop\" data-display-name=\"macOS\" data-download-version=\"osx\">", "target": [ "a[data-download-location=\"secondary cta\"]" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"/firefox/download/thanks/\" class=\"download-link mzp-c-button mzp-t-product mzp-t-xl\" data-direct-link=\"https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US\" data-link-type=\"download\" data-download-location=\"secondary cta\" data-download-os=\"Desktop\" data-display-name=\"macOS\" data-download-version=\"osx\">", "target": [ "a[data-download-location=\"secondary cta\"]" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 5.61 (foreground color: #ffffff, background color: #0060df, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 7:1" } ] }, { "id": "heading-order", "impact": "moderate", "tags": [ "cat.semantics", "best-practice" ], "description": "Ensures the order of headings is semantically correct", "help": "Heading levels should only increase by one", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/heading-order?application=axeAPI", "nodes": [ { "any": [ { "id": "heading-order", "data": null, "relatedNodes": [], "impact": "moderate", "message": "Heading order invalid" } ], "all": [], "none": [], "impact": "moderate", "html": "<h5 class=\"mzp-c-footer-heading\">\n Company\n </h5>", "target": [ ".mzp-c-footer-section:nth-child(1) > .mzp-c-footer-heading" ], "failureSummary": "Fix any of the following:\n Heading order invalid" } ] }, { "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": "navigation", "accessibleText": null }, "relatedNodes": [ { "html": "<nav class=\"mzp-c-footer-primary\">", "target": [ ".mzp-c-footer-primary" ] }, { "html": "<nav class=\"mzp-c-footer-secondary\">", "target": [ ".mzp-c-footer-secondary" ] } ], "impact": "moderate", "message": "The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable" } ], "all": [], "none": [], "impact": "moderate", "html": "<nav class=\"c-menu mzp-is-enhanced\">", "target": [ ".c-menu" ], "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=\"c-navigation-logo\">", "target": [ ".c-navigation-logo" ], "failureSummary": "Fix any of the following:\n Some page content is not contained by landmarks" }, { "any": [ { "id": "region", "data": { "isIframe": false }, "relatedNodes": [], "impact": "moderate", "message": "Some page content is not contained by landmarks" } ], "all": [], "none": [], "impact": "moderate", "html": "<a href=\"/firefox/download/thanks/\" class=\"download-link mzp-c-button mzp-t-product mzp-t-secondary mzp-t-md js-glean-delay-click\" data-direct-link=\"https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US\" data-link-type=\"download\" data-download-location=\"nav\" data-download-os=\"Desktop\" data-display-name=\"macOS\" data-download-version=\"osx\">", "target": [ ".js-glean-delay-click" ], "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.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "htmlcs", "what": "HTML CodeSniffer WCAG 2.1 AA ruleset", "url": "https://www.mozilla.org/en-US/", "result": { "Error": { "AA.1_3_1.F68": { "This form field should be labelled in some way. Use the label element (either with a \"for\" attribute or wrapped around the form field), or \"title\", \"aria-label\" or \"aria-labelledby\" attributes as appropriate.": [ { "tagName": "select", "id": "#id_country", "code": "<select name=\"country\" required=\"required\" aria-required=\"true\" id=\"id_country\">...</select>" }, { "tagName": "select", "id": "#id_lang", "code": "<select name=\"lang\" required=\"required\" aria-required=\"true\" id=\"id_lang\">...</select>" } ] }, "AA.1_3_1.H71.NoLegend": { "Fieldset does not contain a legend element. All fieldsets should contain a legend element that describes a description of the field group.": [ { "tagName": "fieldset", "id": "", "code": "<fieldset class=\"mzp-c-newsletter-content\">...</fieldset>" } ] }, "AA.4_1_2.H91.Select.Name": { "This select element does not have a name available to an accessibility API. Valid names are: label element, title attribute, aria-label attribute, aria-labelledby attribute.": [ { "tagName": "select", "id": "#id_country", "code": "<select name=\"country\" required=\"required\" aria-required=\"true\" id=\"id_country\">...</select>" }, { "tagName": "select", "id": "#id_lang", "code": "<select name=\"lang\" required=\"required\" aria-required=\"true\" id=\"id_lang\">...</select>" } ] } }, "Warning": { "AA.1_1_1.H67.2": { "Img element is marked so that it is ignored by Assistive Technology.": [ { "tagName": "img", "id": "", "code": "<img class=\"\" src=\"https://www.mozilla.org/media/img/home/2018/newsletter-graphic.3debb24fbacc.png\" srcset=\"https://www.mozilla.org/media/img/home/2018/newsletter-graphic-high-res.dfdd8a0a8b68.png 1.5x\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img class=\"c-banner-icon\" src=\"https://www.mozilla.org/media/img/banners/mobile/app-icon-512.782bf4aa77fd.jpg\" width=\"57\" height=\"57\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img class=\"c-menu-item-icon\" src=\"https://www.mozilla.org/media/img/nav/icons/icon-common-voice.127fa3f5dcb0.svg\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img class=\"mzp-c-split-media-asset\" src=\"https://www.mozilla.org/media/img/home/2021/pocket-10-years.fbb772d9af0e.jpg\" srcset=\"https://www.mozilla.org/media/img/home/2021/pocket-10-years-high-res.3d45f36418e8.jpg 1.5x\" alt=\"\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/2ySD0uwR3K2TtYItTDFFm8/655364580fc7a7f0789d7299710d58d3/pocket-rainbow.jpg?w=800\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/3vukypoPTTpRYctNjWoUkc/03dfba34b9aab288f7c25d257a621cf0/billboard-more-power-high-res.5e9e07e1024c.png?w=800\" alt=\"\" class=\"mzp-c-split-media-asset\" loading=\"eager\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/4fs0FfxfFZTQipzluL9VDV/ee71e84f7fa80398872f0efe7ccdf232/vpn-laptop.png?w=800\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/5vINWpTcQT97f8u2bBUYF6/0ce014e0b59d7dc331983d56e9b9def1/Relay_-_Asset_1_.png?w=800\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/62J3owKrB5Ilf72tPnKgam/54bb1f62f4b5228ae79adf937c7bfbbb/Firefox_Asset_2.png?w=800\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://images.ctfassets.net/w5er3c7zdgmd/YqJgrQqirvpWCIGynfD5Z/3fc659c76acf652b8467fc1845bdbebd/billboard-healthy-internet-high-res.56fc2c64c968.png?w=800\" alt=\"\" class=\"mzp-c-split-media-asset\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/img/nav/icons/icon-fpn-beta.9e7bc3a29f6e.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/img/nav/icons/icon-mdn-plus.f1d87dae70d0.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/img/nav/icons/icon-privacy-promise.eee1662acb03.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/firefox/browser/developer/logo.41d42822c8fb.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/firefox/browser/focus/logo.aac3e33175cb.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/firefox/browser/logo.eb1324e44442.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/firefox/monitor/logo.d97e5516f9e6.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/firefox/relay/logo.683083c53b93.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" }, { "tagName": "img", "id": "", "code": "<img src=\"https://www.mozilla.org/media/protocol/img/logos/pocket/logo.17446bc33a5d.svg\" class=\"c-menu-item-icon\" width=\"32\" height=\"32\" alt=\"\" loading=\"lazy\">" } ] }, "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": "", "code": "<div class=\"c-banner-main\">...</div>" }, { "tagName": "p", "id": "", "code": "<p class=\"mzp-c-footer-license\" rel=\"license\">...</p>" } ] }, "AA.1_3_1.H85.2": { "If this selection list contains groups of related options, they should be grouped with optgroup.": [ { "tagName": "select", "id": "#id_country", "code": "<select name=\"country\" required=\"required\" aria-required=\"true\" id=\"id_country\">...</select>" }, { "tagName": "select", "id": "#id_lang", "code": "<select name=\"lang\" required=\"required\" aria-required=\"true\" id=\"id_lang\">...</select>" }, { "tagName": "select", "id": "#page-language-select", "code": "<select id=\"page-language-select\" class=\"mzp-js-language-switcher-select\" name=\"lang\" dir=\"ltr\" data-previous-language=\"en-US\">...</select>" } ] }, "AA.1_3_1_A.G141": { "The heading structure is not logically nested. This h4 element appears to be the primary document heading, so should be an h1 element.": [ { "tagName": "h4", "id": "", "code": "<h4 class=\"c-menu-item-title\">...</h4>" } ], "The heading structure is not logically nested. This h4 element should be an h1 to be properly nested.": [ { "tagName": "h4", "id": "", "code": "<h4 class=\"c-menu-item-title\">...</h4>" } ], "The heading structure is not logically nested. This h5 element should be an h3 to be properly nested.": [ { "tagName": "h5", "id": "", "code": "<h5 class=\"mzp-c-footer-heading\">...</h5>" } ] }, "AA.1_4_3.G145.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 3:1.": [ { "tagName": "h1", "id": "", "code": "<h1>...</h1>" } ] }, "AA.1_4_3.G145.BgImage": { "This element's text is placed on a background image. Ensure the contrast ratio between the text and all covered parts of the image are at least 3:1.": [ { "tagName": "h2", "id": "", "code": "<h2 class=\"c-secondary-cta-title\">...</h2>" } ] }, "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": "label", "id": "", "code": "<label for=\"page-language-select\">...</label>" } ] }, "AA.1_4_3.G18.BgImage": { "This element's text is placed on a background image. Ensure the contrast ratio between the text and all covered parts of the image are at least 4.5:1.": [ { "tagName": "a", "id": "", "code": "<a class=\"instagram\" href=\"https://www.instagram.com/firefox/\" data-link-type=\"footer\" data-link-name=\"Instagram (@firefox)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"instagram\" href=\"https://www.instagram.com/mozilla/\" data-link-type=\"footer\" data-link-name=\"Instagram (@mozilla)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"linkedin\" href=\"https://www.linkedin.com/company/mozilla-corporation/\" data-link-type=\"footer\" data-link-name=\"LinkedIn (@mozilla)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"spotify\" href=\"https://open.spotify.com/show/0vT7LJMeVDxyQ2ZamHKu08?si=_uDRD6bRR_6M5YZyISGXgA\" data-link-type=\"footer\" data-link-name=\"Spotify (@mozilla)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"tiktok\" href=\"https://www.tiktok.com/@mozilla\" data-link-type=\"footer\" data-link-name=\"TikTok (@mozilla)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"twitter\" href=\"https://twitter.com/firefox\" data-link-type=\"footer\" data-link-name=\"Twitter (@firefox)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"twitter\" href=\"https://twitter.com/mozilla\" data-link-type=\"footer\" data-link-name=\"Twitter (@mozilla)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"youtube\" href=\"https://www.youtube.com/user/firefoxchannel\" data-link-type=\"footer\" data-link-name=\"YouTube (@firefoxchannel)\">...</a>" }, { "tagName": "a", "id": "", "code": "<a href=\"/en-US/\" data-link-type=\"footer\" data-link-name=\"Mozilla\">...</a>" }, { "tagName": "a", "id": "", "code": "<a href=\"/en-US/privacy/firefox/\">...</a>" }, { "tagName": "option", "id": "", "code": "<option lang=\"an\" value=\"an\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ar\" value=\"ar\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ast\" value=\"ast\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"az\" value=\"az\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"be\" value=\"be\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"bg\" value=\"bg\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"bn\" value=\"bn\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"bs\" value=\"bs\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ca\" value=\"ca\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"cak\" value=\"cak\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"cs\" value=\"cs\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"cy\" value=\"cy\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"da\" value=\"da\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"de\" value=\"de\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"dsb\" value=\"dsb\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"el\" value=\"el\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"en-CA\" value=\"en-CA\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"en-GB\" value=\"en-GB\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"en-US\" value=\"en-US\" selected=\"\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"eo\" value=\"eo\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"es-AR\" value=\"es-AR\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"es-CL\" value=\"es-CL\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"es-ES\" value=\"es-ES\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"es-MX\" value=\"es-MX\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"et\" value=\"et\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"eu\" value=\"eu\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"fa\" value=\"fa\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"fi\" value=\"fi\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"fr\" value=\"fr\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"fy-NL\" value=\"fy-NL\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"gd\" value=\"gd\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"gl\" value=\"gl\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"gn\" value=\"gn\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"gu-IN\" value=\"gu-IN\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"hi-IN\" value=\"hi-IN\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"hr\" value=\"hr\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"hsb\" value=\"hsb\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"hu\" value=\"hu\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"hy-AM\" value=\"hy-AM\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ia\" value=\"ia\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"id\" value=\"id\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"is\" value=\"is\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"it\" value=\"it\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ja\" value=\"ja\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ka\" value=\"ka\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"kab\" value=\"kab\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ko\" value=\"ko\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"lij\" value=\"lij\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"lt\" value=\"lt\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ml\" value=\"ml\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"mr\" value=\"mr\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ms\" value=\"ms\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"my\" value=\"my\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"nb-NO\" value=\"nb-NO\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"nl\" value=\"nl\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"nn-NO\" value=\"nn-NO\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"pa-IN\" value=\"pa-IN\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"pl\" value=\"pl\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"pt-BR\" value=\"pt-BR\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"pt-PT\" value=\"pt-PT\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"rm\" value=\"rm\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ro\" value=\"ro\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ru\" value=\"ru\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sco\" value=\"sco\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sk\" value=\"sk\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sl\" value=\"sl\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sq\" value=\"sq\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sr\" value=\"sr\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"sv-SE\" value=\"sv-SE\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ta\" value=\"ta\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"th\" value=\"th\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"tr\" value=\"tr\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"trs\" value=\"trs\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"uk\" value=\"uk\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"ur\" value=\"ur\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"vi\" value=\"vi\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"zh-CN\" value=\"zh-CN\">...</option>" }, { "tagName": "option", "id": "", "code": "<option lang=\"zh-TW\" value=\"zh-TW\">...</option>" }, { "tagName": "p", "id": "", "code": "<p class=\"c-secondary-cta-tagline\">...</p>" }, { "tagName": "span", "id": "", "code": "<span>...</span>" } ] } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "ibm", "withItems": true, "what": "IBM Accessibility Checker", "url": "https://www.mozilla.org/en-US/", "result": { "content": { "totals": { "violation": 10, "recommendation": 1, "ignored": 0 }, "items": [ { "ruleId": "WCAG20_Fieldset_HasLegend", "path": { "dom": "/html[1]/body[1]/div[3]/main[1]/div[1]/aside[1]/div[2]/form[1]/fieldset[1]", "aria": "/document[1]/main[1]/complementary[1]/group[1]" }, "message": "<fieldset> element does not have a <legend>", "bounds": { "left": 400, "top": 4735, "height": 161, "width": 288 }, "snippet": "<fieldset class=\"mzp-c-newsletter-content\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[1]/a[1]", "aria": "/document[1]/link[2]" }, "message": "Content is not within a landmark element", "bounds": { "left": 565, "top": 16, "height": 33, "width": 172 }, "snippet": "<a data-download-version=\"osx\" data-display-name=\"macOS\" data-download-os=\"Desktop\" data-download-location=\"nav\" data-link-type=\"download\" data-direct-link=\"https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US\" class=\"download-link mzp-c-button mzp-t-product mzp-t-secondary mzp-t-md js-glean-delay-click\" href=\"/firefox/download/thanks/\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/div[1]/a[1]", "aria": "/document[1]/link[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 64, "top": 33, "height": 20, "width": 112 }, "snippet": "<a data-link-type=\"nav\" data-link-name=\"mozilla home icon\" href=\"/en-US/\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleNavigationLandmarks_Implicit", "path": { "dom": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[2]", "aria": "/document[1]/contentinfo[1]/navigation[2]" }, "message": "Multiple elements with \"navigation\" role do not have unique labels", "bounds": { "left": 64, "top": 6477, "height": 137, "width": 672 }, "snippet": "<nav class=\"mzp-c-footer-secondary\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleNavigationLandmarks_Implicit", "path": { "dom": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[1]", "aria": "/document[1]/contentinfo[1]/navigation[1]" }, "message": "Multiple elements with \"navigation\" role do not have unique labels", "bounds": { "left": 64, "top": 5460, "height": 970, "width": 672 }, "snippet": "<nav class=\"mzp-c-footer-primary\">", "level": "violation" }, { "ruleId": "Rpt_Aria_MultipleNavigationLandmarks_Implicit", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/div[2]/div[2]/nav[1]", "aria": "/document[1]/navigation[1]" }, "message": "Multiple elements with \"navigation\" role do not have unique labels", "bounds": { "left": 56, "top": 64, "height": 48, "width": 447 }, "snippet": "<nav class=\"c-menu mzp-is-enhanced\">", "level": "violation" }, { "ruleId": "Rpt_Aria_ComplementaryRequiredLabel_Implicit", "path": { "dom": "/html[1]/body[1]/div[3]/main[1]/div[1]/aside[1]", "aria": "/document[1]/main[1]/complementary[1]" }, "message": "The element with \"complementary\" role does not have a label", "bounds": { "left": 64, "top": 4511, "height": 409, "width": 672 }, "snippet": "<aside class=\"mzp-c-newsletter\">", "level": "violation" }, { "ruleId": "landmark_name_unique", "path": { "dom": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[2]", "aria": "/document[1]/contentinfo[1]/navigation[2]" }, "message": "Multiple \"navigation\" landmarks with the same parent region are not distinguished from one another because they have the same \"\" label", "bounds": { "left": 64, "top": 6477, "height": 137, "width": 672 }, "snippet": "<nav class=\"mzp-c-footer-secondary\">", "level": "violation" }, { "ruleId": "landmark_name_unique", "path": { "dom": "/html[1]/body[1]/div[3]/footer[1]/div[1]/nav[1]", "aria": "/document[1]/contentinfo[1]/navigation[1]" }, "message": "Multiple \"navigation\" landmarks with the same parent region are not distinguished from one another because they have the same \"\" label", "bounds": { "left": 64, "top": 5460, "height": 970, "width": 672 }, "snippet": "<nav class=\"mzp-c-footer-primary\">", "level": "violation" }, { "ruleId": "aria_semantics_attribute", "path": { "dom": "/html[1]/body[1]/div[2]/div[1]/div[1]/div[2]", "aria": "/document[1]" }, "message": "The ARIA attribute 'aria-expanded' is not valid for the element <div> with ARIA role 'none'", "bounds": { "left": 64, "top": 0, "height": 112, "width": 672 }, "snippet": "<div aria-expanded=\"false\" id=\"c-navigation-items\" class=\"c-navigation-items\">", "level": "violation" }, { "ruleId": "aria_role_redundant", "path": { "dom": "/html[1]/body[1]/div[3]/main[1]", "aria": "/document[1]/main[1]" }, "message": "The explicitly-assigned ARIA role \"main\" is redundant with the implicit role of the element <main>", "bounds": { "left": 0, "top": 112, "height": 5276, "width": 800 }, "snippet": "<main role=\"main\">", "level": "recommendation" } ] }, "url": { "prevented": true, "error": "ERROR: getting ibm test report took too long" }, "prevented": true } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "wave", "reportType": 4, "what": "WAVE", "url": "https://www.mozilla.org/en-US/", "result": { "status": { "success": true, "httpstatuscode": 200 }, "statistics": { "pagetitle": "Internet for people, not profit — Mozilla", "pageurl": "https://www.mozilla.org/en-US/", "time": 2.22, "creditsremaining": 447, "allitemcount": 194, "totalelements": 981, "waveurl": "http://wave.webaim.org/report?url=https://www.mozilla.org/en-US/" }, "categories": { "error": { "description": "Errors", "count": 0, "items": [] }, "contrast": { "description": "Contrast Errors", "count": 0, "items": [] }, "alert": { "description": "Alerts", "count": 3, "items": { "select_missing_label": { "id": "select_missing_label", "description": "Select missing label", "count": 2, "selectors": [ "HTML > BODY#home > DIV#outer-wrapper > MAIN:first-child > HEADER:first-child + SECTION + SECTION + H2 + SECTION + SECTION + SECTION + SECTION + SECTION + DIV > ASIDE:first-child > DIV:first-child + DIV > FORM#newsletter-form > DIV:first-child + INPUT + HEADER + FIELDSET > DIV#newsletter-details > P:first-child > SELECT#id_country", "HTML > BODY#home > DIV#outer-wrapper > MAIN:first-child > HEADER:first-child + SECTION + SECTION + H2 + SECTION + SECTION + SECTION + SECTION + SECTION + DIV > ASIDE:first-child > DIV:first-child + DIV > FORM#newsletter-form > DIV:first-child + INPUT + HEADER + FIELDSET > DIV#newsletter-details > P:first-child + P > SELECT#id_lang" ], "wcag": [ { "name": "1.3.1 Info and Relationships (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc1.3.1" }, { "name": "2.4.6 Headings and Labels (Level AA)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.6" }, { "name": "3.3.2 Labels or Instructions (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc3.3.2" } ] }, "heading_skipped": { "id": "heading_skipped", "description": "Skipped heading level", "count": 1, "selectors": [ "HTML > BODY#home > DIV#outer-wrapper > FOOTER#colophon > DIV:first-child > NAV:first-child > DIV:first-child + DIV > SECTION:first-child > H5:first-child" ], "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" } ] } } } } } }, { "type": "launch", "which": "chromium", "what": "chromium browser" }, { "type": "url", "which": "https://www.mozilla.org/en-US/", "what": "URL", "result": "https://www.mozilla.org/en-US/" }, { "type": "test", "which": "tenon", "id": "a", "what": "Tenon", "url": "https://www.mozilla.org/en-US/", "result": { "status": 200, "message": "OK", "code": "success", "info": "Success", "moreInfo": "https://tenon.io/documentation/apiv2/response-codes#success", "responseExecTime": "0.083", "responseTime": "2022-07-06T00:58:10.291Z", "data": { "apiErrors": [], "documentSize": 1057829, "metadata": null, "resultSummary": { "tests": { "total": 180, "passing": 176, "failing": 4 }, "issues": { "totalErrors": 8, "totalWarnings": 1, "totalIssues": 9 }, "issuesByLevel": { "A": { "count": 9, "pct": 100 }, "AA": { "count": 3, "pct": 33.33 }, "AAA": { "count": 9, "pct": 100 } }, "density": { "errorDensity": 1, "warningDensity": 0, "allDensity": 1 } }, "projectID": "E4B12DC9-2F67-8DB7-26C9-E50C8490", "responseID": "f28f56fc-4201-46f5-a9f7-2e385a28ded5", "docID": "3ff156dc-f335-4b3d-8532-687ca4214ce5", "sourceHash": "391d1812f2dd7175f82f152842117085", "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=f28f56fc-4201-46f5-a9f7-2e385a28ded5", "resultSet": [ { "tID": 73, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link text is uninformative.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.4.4 Link Purpose (In Context)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.9 Link Purpose (Link Only)" ], "resultTitle": "Make sure that link text (and the alternate text for any images that are used as links) describes the destination or purpose of the link.", "errorDescription": "The text in this link is too generic to be helpful for users. Users will be unable to discern the purpose or destination of the link without reading the text that surrounds it. Change the text in this link to something that is unique and informative so that the user can understand what content or actions can be found at the link's destination.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": -52, "y": -16 }, "height": -16, "width": -52 }, "position": { "line": 4816, "column": 40 }, "errorSnippet": "<a href=\"/en-US/firefox/accounts/\" class=\"mzp-c-button mzp-t-product mzp-t-dark\" id=\"fxa-learn-secondary\">Learn more</a>", "xpath": "/html/body/div[3]/main[1]/section[8]/div[1]/div[2]/div[1]/a[1]", "issueID": "f6050bf4c989b34b530b79c4d36d54c2", "signature": "f74f839d929a6612acb9ff9ee37ca553", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=73&issueID=f6050bf4c989b34b530b79c4d36d54c2" }, { "tID": 73, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link text is uninformative.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.4.4 Link Purpose (In Context)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.9 Link Purpose (Link Only)" ], "resultTitle": "Make sure that link text (and the alternate text for any images that are used as links) describes the destination or purpose of the link.", "errorDescription": "The text in this link is too generic to be helpful for users. Users will be unable to discern the purpose or destination of the link without reading the text that surrounds it. Change the text in this link to something that is unique and informative so that the user can understand what content or actions can be found at the link's destination.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 0, "y": 0 }, "height": 0, "width": 0 }, "position": { "line": 7401, "column": 0 }, "errorSnippet": "<a class=\"c-banner-button show-android\" href=\"https://app.adjust.com/2uo1qc?redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.firefox&amp;campaign=www.mozilla.org&amp;adgroup=app-store-banner\" data-link-type=\"d", "xpath": "/html/body/div[3]/aside[1]/div[1]/div[1]/div[1]/a[1]", "issueID": "3cecbd8bd118c98a0797443ff3ba0606", "signature": "aa20c3e22a77d12a3cc5a0e6f47c2d99", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=73&issueID=3cecbd8bd118c98a0797443ff3ba0606" }, { "tID": 73, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link text is uninformative.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.4.4 Link Purpose (In Context)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.9 Link Purpose (Link Only)" ], "resultTitle": "Make sure that link text (and the alternate text for any images that are used as links) describes the destination or purpose of the link.", "errorDescription": "The text in this link is too generic to be helpful for users. Users will be unable to discern the purpose or destination of the link without reading the text that surrounds it. Change the text in this link to something that is unique and informative so that the user can understand what content or actions can be found at the link's destination.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 0, "y": 0 }, "height": 0, "width": 0 }, "position": { "line": 7909, "column": 9 }, "errorSnippet": "<a class=\"c-banner-link show-ios\" href=\"https://app.adjust.com/2uo1qc?redirect=https%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Ffirefox-private-safe-browser%2Fid989804926&amp;campaign=www.mozilla.org&amp;adgroup=app-store-banner\" data-link-type=\"do", "xpath": "/html/body/div[3]/aside[1]/div[1]/div[1]/div[1]/a[2]", "issueID": "9fdd6afd9d23c0041b78153e60cdc041", "signature": "de1420fefa901d169b6fd2e6f9feff8e", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=73&issueID=9fdd6afd9d23c0041b78153e60cdc041" }, { "tID": 98, "bpID": 105, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "These links have the same text but different destinations.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.4.4 Link Purpose (In Context)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.9 Link Purpose (Link Only)" ], "resultTitle": "Don't reuse the same link text for links that have different destinations", "errorDescription": "This link has the same text as another link that goes to a different place. Using the same text for multiple links which point to different pages is ambiguous and may be confusing for assistive technology users, or for users who have a cognitive disability. Link text should tell the user where they will go if they follow the link. If two links on a page go to two different destinations, use different link text that accurately and concisely describes their destination.", "viewPortLocation": { "top-left": { "x": 560, "y": 486 }, "bottom-right": { "x": 686, "y": 510 }, "height": 24, "width": 126 }, "position": { "line": 4420, "column": 0 }, "errorSnippet": "<a href=\"/products/vpn/\" class=\"mzp-c-button \" data-cta-text=\"Get Mozilla VPN\" data-cta-type=\"link\">Get Mozilla VPN</a>", "xpath": "/html/body/div[3]/main[1]/section[3]/div[1]/div[1]/a[1]", "issueID": "f49518ae773cf573b6d0b44dfe708af7", "signature": "0d7bcd5e4dd2916f8d158e5b8aad1158", "ref": "https://tenon.io/bestpractice.php?bpID=105&tID=98&issueID=f49518ae773cf573b6d0b44dfe708af7" }, { "tID": 98, "bpID": 105, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "These links have the same text but different destinations.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.4.4 Link Purpose (In Context)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.4.9 Link Purpose (Link Only)" ], "resultTitle": "Don't reuse the same link text for links that have different destinations", "errorDescription": "This link has the same text as another link that goes to a different place. Using the same text for multiple links which point to different pages is ambiguous and may be confusing for assistive technology users, or for users who have a cognitive disability. Link text should tell the user where they will go if they follow the link. If two links on a page go to two different destinations, use different link text that accurately and concisely describes their destination.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 0, "y": 0 }, "height": 0, "width": 0 }, "position": { "line": 7909, "column": 9 }, "errorSnippet": "<a class=\"c-banner-link show-ios\" href=\"https://app.adjust.com/2uo1qc?redirect=https%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Ffirefox-private-safe-browser%2Fid989804926&amp;campaign=www.mozilla.org&amp;adgroup=app-store-banner\" data-link-type=\"do", "xpath": "/html/body/div[3]/aside[1]/div[1]/div[1]/div[1]/a[2]", "issueID": "82560a48f511c66a07c7b1e10c52bf11", "signature": "5b14795ee29bb5fb311a0417934096cf", "ref": "https://tenon.io/bestpractice.php?bpID=105&tID=98&issueID=82560a48f511c66a07c7b1e10c52bf11" }, { "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": -52, "y": -20 }, "height": -20, "width": -52 }, "position": { "line": 186, "column": 0 }, "errorSnippet": "<select name=\"country\" required=\"required\" aria-required=\"true\" id=\"id_country\"> <option value=\"af\">Afghanistan</option> <option value=\"qz\">Akrotiri</option> <option value=\"al\">Albania</option> <option value=\"", "xpath": "/html/body/div[3]/main[1]/div[1]/aside[1]/div[2]/form[1]/fieldset[1]/div[1]/p[1]/select[1]", "issueID": "50cbfbf6bac2fcc614c1023925e1eef3", "signature": "7a97258d33e15dae0f74f0269d3596e3", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=50cbfbf6bac2fcc614c1023925e1eef3" }, { "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": -52, "y": -20 }, "height": -20, "width": -52 }, "position": { "line": 186, "column": 0 }, "errorSnippet": "<select name=\"lang\" required=\"required\" aria-required=\"true\" id=\"id_lang\"> <option value=\"id\">Bahasa Indonesia</option> <option value=\"de\">Deutsch</option> <option value=\"en\" selected=\"\">English</option> <opti", "xpath": "/html/body/div[3]/main[1]/div[1]/aside[1]/div[2]/form[1]/fieldset[1]/div[1]/p[2]/select[1]", "issueID": "4c9c459e6f2b4f75cbf8896026fca6c3", "signature": "73dcfaa16c1b29816c1a0d1882d6b072", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=4c9c459e6f2b4f75cbf8896026fca6c3" }, { "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": -8 }, "bottom-right": { "x": 20, "y": 13 }, "height": 21, "width": 20 }, "position": { "line": 9674, "column": 5 }, "errorSnippet": "<button type=\"submit\" style=\"\">Go</button>", "xpath": "/html/body/div[3]/footer[1]/div[1]/nav[2]/div[1]/form[1]/button[1]", "issueID": "3f47886b1078684a252bfc697508b775", "signature": "0a8f9aa6552f5241f6e7674532f91088", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=3f47886b1078684a252bfc697508b775" }, { "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 }, "bottom-right": { "x": 1024, "y": 5725.23 }, "height": 5725.23, "width": 1024 }, "position": { "line": 2222, "column": 60 }, "errorSnippet": "<body id=\"home\" class=\"html-ltr lang-en-US\"> <div id=\"strings\" data-global-close=\"Close\" data-global-next=\"Next\" data-global-previous=\"Previous\"></div> <div class=\"c-navigation top-header-navigation mzp-is-sticky nav-button-is-ready\"", "xpath": "/html/body", "issueID": "83ffad7c3b83719cb05ae3b617d3504c", "signature": "cacfa32cc301887b7fc2f2f7094d62c6", "ref": "https://tenon.io/bestpractice.php?bpID=143&tID=155&issueID=83ffad7c3b83719cb05ae3b617d3504c" } ], "log": [] } } } ], "timeStamp": "3zjtz", "startTime": "2022-07-06T00:55:59", "presses": 0, "amountRead": 0, "testTimes": [ [ "hover", 61 ], [ "ibm", 23 ], [ "motion", 13 ], [ "alfa", 4 ], [ "focInd", 3 ], [ "wave", 2 ], [ "focAll", 1 ], [ "axe", 1 ], [ "tenon", 1 ], [ "bulk", 0 ], [ "embAc", 0 ], [ "focOp", 0 ], [ "labClash", 0 ], [ "linkUl", 0 ], [ "menuNav", 0 ], [ "radioSet", 0 ], [ "role", 0 ], [ "styleDiff", 0 ], [ "tabNav", 0 ], [ "zIndex", 0 ], [ "htmlcs", 0 ] ], "logCount": 0, "logSize": 0, "errorLogCount": 0, "errorLogSize": 0, "prohibitedCount": 0, "visitTimeoutCount": 0, "visitRejectionCount": 0, "endTime": "2022-07-06T00:58:10", "elapsedSeconds": 130, "score": { "scoreProcID": "sp12a", "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": { "focAll": 14, "focInd": 10, "linkUl": 92, "role": 1, "styleDiff": 30, "zIndex": 13 }, "alfa": { "r53": 4, "r57": 4, "r62": 12, "r66": 10, "r69": 10, "r78": 8, "r87": 1 }, "axe": { "color-contrast-enhanced": 28, "color-contrast": 4, "hidden-content": 0, "aria-allowed-attr": 4, "heading-order": 2, "landmark-unique": 2, "region": 4 }, "htmlcs": { "e:AA.1_3_1.F68": 8, "e:AA.1_3_1.H71.NoLegend": 4, "e:AA.4_1_2.H91.Select.Name": 8, "w:AA.1_1_1.H67.2": 19, "w:AA.1_3_1.H48": 2, "w:AA.1_3_1.H85.2": 3, "w:AA.1_3_1_A.G141": 3, "w:AA.1_4_3.G145.Abs": 1, "w:AA.1_4_3.G145.BgImage": 1, "w:AA.1_4_3.G18.Abs": 1, "w:AA.1_4_3.G18.BgImage": 90 }, "wave": { "a:select_missing_label": 2, "a:heading_skipped": 1 }, "tenon": { "73": 12, "98": 8, "152": 12, "155": 2 } }, "groupDetails": { "groups": { "tabFocusability": { "testaro": { "focAll": { "score": 11, "what": "Discrepancy between elements that should be and that are Tab-focusable" } } }, "focusIndication": { "testaro": { "focInd": { "score": 10, "what": "Focused element displaying no or nostandard focus indicator" } } }, "linkIndication": { "testaro": { "linkUl": { "score": 46, "what": "Non-underlined adjacent links" } }, "alfa": { "r62": { "score": 6, "what": "Inline link is not distinct from the surrounding text except by color" } } }, "roleBad": { "testaro": { "role": { "score": 1, "what": "Nonexistent or implicit-overriding role" } } }, "inconsistentStyles": { "testaro": { "styleDiff": { "score": 8, "what": "Heading, link, and button style inconsistencies" } } }, "zIndexNotZero": { "testaro": { "zIndex": { "score": 3, "what": "Layering with nondefault z-index values" } } }, "headingStructure": { "alfa": { "r53": { "score": 2, "what": "Heading skips one or more levels" } }, "axe": { "heading-order": { "score": 1, "what": "Heading levels do not increase by only one" } }, "htmlcs": { "w:AA.1_3_1_A.G141": { "score": 2, "what": "Heading level is incorrect" } }, "wave": { "a:heading_skipped": { "score": 1, "what": "Skipped heading level" } }, "tenon": { "155": { "score": 1, "what": "Headings are not structured in a hierarchical manner" } } }, "contentBeyondLandmarks": { "alfa": { "r57": { "score": 2, "what": "Perceivable text content is not included in any landmark" } }, "axe": { "region": { "score": 2, "what": "Some page content is not contained by landmarks" } } }, "contrastAAA": { "alfa": { "r66": { "score": 3, "what": "Text contrast less than AAA requires" } }, "axe": { "color-contrast-enhanced": { "score": 7, "what": "Element has insufficient color contrast (Level AAA)" } } }, "contrastAA": { "alfa": { "r69": { "score": 8, "what": "Text outside widget has subminimum contrast" } }, "axe": { "color-contrast": { "score": 3, "what": "Element has insufficient color contrast" } } }, "headingOfNothing": { "alfa": { "r78": { "score": 4, "what": "No content between two headings of the same level" } } }, "skipRepeatedContent": { "alfa": { "r87": { "score": 1, "what": "First focusable element is not a link to the main content" } } }, "hiddenContentRisk": { "axe": { "hidden-content": { "score": 1, "what": "Some content is hidden and therefore may not be testable for accessibility" } } }, "ariaBadAttribute": { "axe": { "aria-allowed-attr": { "score": 4, "what": "ARIA attribute is invalid for the role of its element" } } }, "landmarkConfusion": { "axe": { "landmark-unique": { "score": 2, "what": "Landmark has a role and an accessible name that are identical to another" } } }, "controlLabel": { "htmlcs": { "e:AA.1_3_1.F68": { "score": 8, "what": "Form control has no label" } } }, "legendMissing": { "htmlcs": { "e:AA.1_3_1.H71.NoLegend": { "score": 2, "what": "Fieldset has no legend element" } } }, "selectNoText": { "htmlcs": { "e:AA.4_1_2.H91.Select.Name": { "score": 6, "what": "Select element has no accessible name" } }, "wave": { "a:select_missing_label": { "score": 2, "what": "Select missing label" } } }, "decorativeImageRisk": { "htmlcs": { "w:AA.1_1_1.H67.2": { "score": 5, "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" } } }, "selectFlatRisk": { "htmlcs": { "w:AA.1_3_1.H85.2": { "score": 1, "what": "Selection list may contain groups of related options that are not grouped with optgroup" } } }, "contrastRisk": { "htmlcs": { "w:AA.1_4_3.G145.Abs": { "score": 1, "what": "Contrast between the absolutely positioned large text and its background may be less than 3:1" }, "w:AA.1_4_3.G145.BgImage": { "score": 1, "what": "Contrast between the text and its background image may be less than 3:1" }, "w:AA.1_4_3.G18.Abs": { "score": 1, "what": "Contrast between the absolutely positioned text and its background may be inadequate" }, "w:AA.1_4_3.G18.BgImage": { "score": 23, "what": "Contrast between the text and its background image may be less than 4.5:1" } } }, "linkVague": { "tenon": { "73": { "score": 9, "what": "Link text is too generic to communicate the purpose or destination" } } }, "linkTextsSame": { "tenon": { "98": { "score": 4, "what": "Links have the same text but different destinations" } } }, "targetSize": { "tenon": { "152": { "score": 6, "what": "Actionable element is smaller than the minimum required size" } } } }, "solos": {} }, "preventionScores": { "ibm": 100 }, "summary": { "total": 336, "log": 0, "preventions": 100, "solos": 0, "groups": [ { "groupName": "linkIndication", "score": 50 }, { "groupName": "contrastRisk", "score": 28 }, { "groupName": "tabFocusability", "score": 13 }, { "groupName": "focusIndication", "score": 12 }, { "groupName": "contrastAA", "score": 11 }, { "groupName": "linkVague", "score": 11 }, { "groupName": "inconsistentStyles", "score": 10 }, { "groupName": "contrastAAA", "score": 10 }, { "groupName": "controlLabel", "score": 10 }, { "groupName": "selectNoText", "score": 9 }, { "groupName": "targetSize", "score": 8 }, { "groupName": "decorativeImageRisk", "score": 7 }, { "groupName": "headingStructure", "score": 6 }, { "groupName": "headingOfNothing", "score": 6 }, { "groupName": "ariaBadAttribute", "score": 6 }, { "groupName": "linkTextsSame", "score": 6 }, { "groupName": "zIndexNotZero", "score": 5 }, { "groupName": "contentBeyondLandmarks", "score": 5 }, { "groupName": "landmarkConfusion", "score": 4 }, { "groupName": "legendMissing", "score": 4 }, { "groupName": "roleBad", "score": 3 }, { "groupName": "skipRepeatedContent", "score": 3 }, { "groupName": "hiddenContentRisk", "score": 3 }, { "groupName": "pseudoNavListRisk", "score": 3 }, { "groupName": "selectFlatRisk", "score": 3 } ] } } }