Accessibility test digest
Synopsis
Page: Signal Technology Foundation
URL: https://signal.org/
Score: 578
Tested by: Testaro, procedure tp16
Scored by: Testilo, procedure sp16a
Digested by: Testilo, procedure dp16a
Introduction
The Testaro application used its tp16
testing procedure to test the accessibility (barrier-free design and coding) of the Signal Technology Foundation web page at https://signal.org/ on 2022/10/02. The procedure performed 1229 tests. Of these, 23 are custom tests or quasi-tests
by Testaro, and the others belong to these eight other packages (programs that perform collections of tests):
- Alfa by Siteimprove
- Axe-core by Deque
- Continuum by Level Access
- HTML CodeSniffer by Squiz Labs
- Equal Access by IBM
- Nu Html Checker
- Tenon by Level Access
- WAVE by WebAIM
Testaro produced a report enumerating the test results.
Testilo processed the report and used the sp16a
scoring procedure to compute partial and total scores for the page. The total score is 578 (where 0 is the best possible score). The scored report is appended below.
Finally, Testilo used procedure dp16a
to produce this digest, briefly explaining how sp16a
computed the scores.
Score summary
total | 578 |
---|---|
log | -1 |
imageNoText | 183 |
linkIndication | 78 |
leadingClipsText | 46 |
linkNoText | 42 |
contentBeyondLandmarks | 35 |
leadingInsufficient | 20 |
fontSizeAbsolute | 20 |
leadingAbsolute | 20 |
ariaBadAttribute | 20 |
targetSize | 20 |
linkForcesNewWindow | 17 |
visibleLabelNotName | 7 |
roleBad | 6 |
svgImageNoText | 6 |
tabIndexMissing | 6 |
pseudoParagraphRisk | 5 |
focusIndication | 4 |
contrastAAA | 4 |
linkTextsSame | 4 |
inconsistentStyles | 3 |
zIndexNotZero | 3 |
skipRepeatedContent | 3 |
hiddenContentRisk | 3 |
mainNot1 | 3 |
pseudoNavListRisk | 3 |
scrollRisk | 3 |
obsolete | 3 |
roleRedundant | 3 |
sectionHeadingless | 3 |
typeRedundant | 3 |
pseudoHeadingRisk | 3 |
Issue summary
Special issues
log: Score -1. This is based on the amount of browser error logging and miscellaneous logging during the tests.
Classified issues
imageNoText: Score 183. Issues reported by tests in this category:
- Package
alfa
, testr2
, score 52 (Image has no accessible name) - Package
axe
, testimage-alt
, score 52 (Image has no text alternative) - Package
continuum
, test89
, score 52 (img element has no mechanism that allows an accessible name to be calculated) - Package
htmlcs
, teste:AA.1_1_1.H37
, score 48 (img element has no alt attribute) - Package
ibm
, testWCAG20_Img_HasAlt
, score 56 (Image has no alt attribute conveying its meaning, or alt="" if decorative) - Package
nuVal
, testAn img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
, score 56 (img element has no alt attribute) - Package
wave
, teste:alt_missing
, score 52 (Text alternative is missing)
linkIndication: Score 78. Issues reported by tests in this category:
- Package
testaro
, testlinkUl
, score 76 (Non-underlined adjacent links)
leadingClipsText: Score 46. Issues reported by tests in this category:
- Package
tenon
, test144
, score 44 (Line height is insufficent to properly display the computed font size)
linkNoText: Score 42. Issues reported by tests in this category:
- Package
alfa
, testr11
, score 12 (Link has no accessible name) - Package
axe
, testlink-name
, score 9 (Link has no discernible text) - Package
continuum
, test237
, score 12 (a element has no mechanism that allows an accessible name value to be calculated) - Package
htmlcs
, teste:AA.1_1_1.H30.2
, score 4 (img element is the only link content but has no text alternative) - Package
htmlcs
, teste:AA.4_1_2.H91.A.NoContent
, score 8 (Link has an href attribute but no text) - Package
ibm
, testWCAG20_A_HasText
, score 12 (Hyperlink has no text description) - Package
wave
, teste:alt_link_missing
, score 4 (Linked image has no text alternative) - Package
wave
, teste:link_empty
, score 8 (Link contains no text) - Package
tenon
, test57
, score 12 (Link has no text inside it)
contentBeyondLandmarks: Score 35. Issues reported by tests in this category:
- Package
axe
, testregion
, score 8 (Some page content is not contained by landmarks) - Package
ibm
, testRpt_Aria_OrphanedContent_Native_Host_Sematics
, score 30 (Content does not reside within an element with a landmark role)
leadingInsufficient: Score 20. Issues reported by tests in this category:
- Package
alfa
, testr73
, score 18 (Paragraph of text has insufficient line height)
fontSizeAbsolute: Score 20. Issues reported by tests in this category:
- Package
alfa
, testr74
, score 18 (Paragraph text has an absolute font size)
leadingAbsolute: Score 20. Issues reported by tests in this category:
- Package
alfa
, testr80
, score 18 (Paragraph text has an absolute line height)
ariaBadAttribute: Score 20. Issues reported by tests in this category:
- Package
axe
, testaria-allowed-attr
, score 18 (ARIA attribute is invalid for the role of its element)
targetSize: Score 20. Issues reported by tests in this category:
- Package
tenon
, test152
, score 18 (Actionable element is smaller than the minimum required size)
linkForcesNewWindow: Score 17. Issues reported by tests in this category:
- Package
tenon
, test218
, score 15 (Link opens in a new window without user control)
visibleLabelNotName: Score 7. Issues reported by tests in this category:
- Package
alfa
, testr14
, score 3 (Visible label is not in the accessible name) - Package
axe
, testlabel-content-name-mismatch
, score 2 (Element visible text is not part of its accessible name) - Package
htmlcs
, testw:AA.2_5_3.F96
, score 1 (Visible label is not in the accessible name) - Package
ibm
, testWCAG21_Label_Accessible
, score 3 (Accessible name does not match or contain the visible label text)
roleBad: Score 6. Issues reported by tests in this category:
- Package
testaro
, testrole
, score 4 (Nonexistent or implicit-overriding role) - Package
ibm
, testRpt_Aria_ContentinfoWithNoMain_Implicit
, score 1 (Element has a contentinfo role when no element has a main role)
svgImageNoText: Score 6. Issues reported by tests in this category:
- Package
continuum
, test123
, score 4 (svg element has no mechanism that allows an accessible name to be calculated)
tabIndexMissing: Score 6. Issues reported by tests in this category:
- Package
tenon
, test190
, score 4 (Interactive item is not natively actionable, but has no tabindex=0 attribute)
pseudoParagraphRisk: Score 5. Issues reported by tests in this category:
- Package
tenon
, test242
, score 3 (Multiple consecutive br elements may simulate paragraphs)
focusIndication: Score 4. Issues reported by tests in this category:
- Package
testaro
, testfocInd
, score 2 (Focused element displaying no or nostandard focus indicator)
contrastAAA: Score 4. Issues reported by tests in this category:
- Package
axe
, testcolor-contrast-enhanced
, score 2 (Element has insufficient color contrast (Level AAA))
linkTextsSame: Score 4. Issues reported by tests in this category:
- Package
tenon
, test98
, score 2 (Links have the same text but different destinations)
inconsistentStyles: Score 3. Issues reported by tests in this category:
- Package
testaro
, teststyleDiff
, score 1 (Heading, link, and button style inconsistencies)
zIndexNotZero: Score 3. Issues reported by tests in this category:
- Package
testaro
, testzIndex
, score 1 (Layering with nondefault z-index values)
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)
mainNot1: Score 3. Issues reported by tests in this category:
- Package
axe
, testlandmark-one-main
, score 1 (page has no main landmark)
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)
scrollRisk: Score 3. Issues reported by tests in this category:
- Package
htmlcs
, testw:AA.1_4_10.C32,C31,C33,C38,SCR34,G206
, score 1 (Fixed-position element may force bidirectional scrolling)
obsolete: Score 3. Issues reported by tests in this category:
- Package
ibm
, testelement_attribute_deprecated
, score 1 (Element or attribute is obsolete)
roleRedundant: Score 3. Issues reported by tests in this category:
- Package
ibm
, testaria_role_redundant
, score 1 (Explicitly assigned ARIA role is redundant with the implicit role of the element) - Package
nuVal
, test^The .+ role is unnecessary for element .+$
, score 1 (explicit role is redundant for its element)
sectionHeadingless: Score 3. Issues reported by tests in this category:
- Package
nuVal
, testSection lacks heading. Consider using h2-h6 elements to add identifying headings to all sections, or else use a div element instead for any cases where no heading is needed.
, score 1 (section has no heading)
typeRedundant: Score 3. Issues reported by tests in this category:
- Package
nuVal
, testThe type attribute is unnecessary for JavaScript resources.
, score 1 (type attribute is unnecessary for a JavaScript resource)
pseudoHeadingRisk: Score 3. Issues reported by tests in this category:
- Package
wave
, testa:heading_possible
, score 1 (Possible heading)
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 sp16a
. You can modify and extend Testaro and Testilo to fit other theories and priorities.
Here, in brief, is how sp16a
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,
sp16a
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 sp16a
are found in the code itself.
Report
{ "id": "69jmj-signal", "host": { "id": "signal", "which": "https://signal.org/", "what": "Signal Technology Foundation" }, "log": [ { "event": "startTime", "value": "2022-10-02T15:02:56" }, { "event": "endTime", "value": "2022-10-02T15:04:08" } ], "script": { "id": "tp16", "what": "Alfa, Axe, Continuum, HTML CodeSniffer, IBM, Nu Html Checker, Tenon, WAVE, and 19 custom tests", "strict": true, "timeLimit": 500, "commands": [ { "type": "launch", "which": "webkit", "what": "Webkit browser" }, { "type": "url", "which": "https://signal.org/", "what": "Signal Technology Foundation" }, { "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://signal.org/", "what": "Signal Technology Foundation" }, { "type": "test", "which": "allHidden", "what": "document entirely or mainly hidden" }, { "type": "test", "which": "bulk", "what": "count of visible elements" }, { "type": "test", "which": "docType", "what": "missing or invalid doctype declaration" }, { "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": "focVis", "withItems": true, "what": "links outside display when focused" }, { "type": "test", "which": "hover", "sampleSize": 20, "withItems": true, "what": "hover impacts" }, { "type": "test", "which": "labClash", "withItems": true, "what": "unlabeled and mislabeled form controls" }, { "type": "test", "which": "linkTo", "withItems": true, "what": "links without destinations" }, { "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": "miniText", "withItems": true, "what": "small text" }, { "type": "test", "which": "nonTable", "withItems": true, "what": "tables used for layout" }, { "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": "titledEl", "withItems": true, "what": "title attributes on inappropriate elements" }, { "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": "continuum", "what": "Continuum" }, { "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": "nuVal", "what": "Nu Html Checker" }, { "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", "startTime": 1664722976131, "endTime": 1664722976857 }, { "type": "url", "which": "https://signal.org/", "what": "Signal Technology Foundation", "startTime": 1664722976858, "result": "https://signal.org/", "endTime": 1664722977996 }, { "type": "tenonRequest", "id": "a", "withNewContent": true, "what": "Tenon API version 2 test request", "startTime": 1664722977996, "url": "https://signal.org/", "endTime": 1664722979376 }, { "type": "test", "which": "motion", "what": "motion", "delay": 2500, "interval": 2500, "count": 5, "startTime": 1664722979376, "url": "https://signal.org/", "result": { "bytes": [ 372309, 372309, 372309, 372309, 372309 ], "localRatios": [ 1, 1, 1, 1 ], "meanLocalRatio": 1, "maxLocalRatio": 1, "globalRatio": 1, "pixelChanges": [ 0, 0, 0, 0 ], "meanPixelChange": 0, "maxPixelChange": 0, "changeFrequency": 0, "success": true }, "endTime": 1664722992594 }, { "type": "launch", "which": "chromium", "what": "Chromium browser", "startTime": 1664722992595, "endTime": 1664722993176 }, { "type": "url", "which": "https://signal.org/", "what": "Signal Technology Foundation", "startTime": 1664722993176, "result": "https://signal.org/", "endTime": 1664722994098 }, { "type": "test", "which": "allHidden", "what": "page that is entirely or mostly hidden", "startTime": 1664722994098, "url": "https://signal.org/", "result": { "hidden": { "document": false, "body": false, "main": false }, "reallyHidden": { "document": false, "body": false, "main": false }, "display": { "document": "block", "body": "block", "main": null }, "visHidden": { "document": false, "body": false, "main": false }, "ariaHidden": { "document": false, "body": false, "main": false }, "success": true }, "endTime": 1664722994104 }, { "type": "test", "which": "bulk", "what": "count of visible elements", "startTime": 1664722994104, "url": "https://signal.org/", "result": { "visibleElements": 200, "success": true }, "endTime": 1664722994238 }, { "type": "test", "which": "docType", "what": "document without a doctype property", "startTime": 1664722994238, "url": "https://signal.org/", "result": { "docHasType": true, "success": true }, "endTime": 1664722994243 }, { "type": "test", "which": "embAc", "withItems": true, "what": "active elements embedded in links or buttons", "startTime": 1664722994244, "url": "https://signal.org/", "result": { "totals": { "links": 0, "buttons": 0, "inputs": 0, "selects": 0 }, "items": [], "success": true }, "endTime": 1664722994253 }, { "type": "test", "which": "focAll", "what": "focusable and Tab-focused elements", "startTime": 1664722994253, "url": "https://signal.org/", "result": { "tabFocusables": 27, "tabFocused": 27, "discrepancy": 0, "success": true }, "endTime": 1664722994616 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664722994616, "endTime": 1664722995142 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664722995142, "result": "https://signal.org/", "endTime": 1664722995981 }, { "type": "test", "which": "focInd", "revealAll": false, "allowedDelay": 250, "withItems": true, "what": "focus indicators", "startTime": 1664722995981, "url": "https://signal.org/", "result": { "totals": { "total": 27, "types": { "indicatorMissing": { "total": 0, "tagNames": {} }, "nonOutlinePresent": { "total": 2, "tagNames": { "A": 2 } }, "outlinePresent": { "total": 25, "meanDelay": 0, "tagNames": { "A": 25 } } } }, "items": { "indicatorMissing": [], "nonOutlinePresent": [ { "tagName": "A", "text": "Get Signal" }, { "tagName": "A", "text": "Donate to Signal" } ], "outlinePresent": [ { "tagName": "A", "text": "", "delay": 0 }, { "tagName": "A", "text": "Get Signal", "delay": 0 }, { "tagName": "A", "text": "Support", "delay": 0 }, { "tagName": "A", "text": "Blog", "delay": 0 }, { "tagName": "A", "text": "Developers", "delay": 0 }, { "tagName": "A", "text": "Careers", "delay": 0 }, { "tagName": "A", "text": "Donate", "delay": 0 }, { "tagName": "A", "text": "", "delay": 0 }, { "tagName": "A", "text": "", "delay": 0 }, { "tagName": "A", "text": "EN", "delay": 0 }, { "tagName": "A", "text": "press@signal.org", "delay": 0 }, { "tagName": "A", "text": "Donate", "delay": 0 }, { "tagName": "A", "text": "Careers", "delay": 0 }, { "tagName": "A", "text": "Blog", "delay": 0 }, { "tagName": "A", "text": "Terms & Privacy Policy", "delay": 0 }, { "tagName": "A", "text": "Android", "delay": 0 }, { "tagName": "A", "text": "iPhone & iPad", "delay": 0 }, { "tagName": "A", "text": "Windows", "delay": 0 }, { "tagName": "A", "text": "Mac", "delay": 0 }, { "tagName": "A", "text": "Linux", "delay": 0 }, { "tagName": "A", "text": "GitHub", "delay": 0 }, { "tagName": "A", "text": "Twitter", "delay": 0 }, { "tagName": "A", "text": "Instagram", "delay": 0 }, { "tagName": "A", "text": "Support", "delay": 0 }, { "tagName": "A", "text": "Community", "delay": 0 } ] }, "success": true }, "endTime": 1664722996636 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664722996637, "endTime": 1664722997187 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664722997187, "result": "https://signal.org/", "endTime": 1664722998034 }, { "type": "test", "which": "focOp", "withItems": true, "what": "focusability and operability", "startTime": 1664722998035, "url": "https://signal.org/", "result": { "totals": { "total": 91, "types": { "onlyFocusable": { "total": 0, "tagNames": {} }, "onlyOperable": { "total": 0, "tagNames": {} }, "focusableAndOperable": { "total": 91, "tagNames": { "A": 90, "BUTTON": 1 } } } }, "items": { "onlyFocusable": [], "onlyOperable": [], "focusableAndOperable": [ { "tagName": "A", "id": "", "text": "<a href=\"/#signal\" style=\"cursor: default;\"> <img class=\"signal-logo\" src=\"/asse", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "<a role=\"button\" class=\"navbar-burger burger\" aria-label=\"menu\" aria-expanded=\"f", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get Signal", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Support", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Blog", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Developers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Careers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Donate", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\" styl", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\" ", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "language-selector", "text": "EN", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "BUTTON", "id": "", "text": "<button class=\"delete\" aria-label=\"close\" style=\"cursor: default;\"></button>", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Afrikaans", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "العربية", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Azərbaycanca", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Български", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "বাংলা", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Català", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Česky", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Dansk", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Deutsch", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "ελληνικά", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "English", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Español", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Eesti", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "فارسی", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "suomi", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Pilipino", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Français", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Gaeilge", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "ગુજરાતી", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Hausa", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "עִבְרִית", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "हिन्दी, हिंदी", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Hrvatski", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Magyar", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Bahasa Indonesia", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Italiano", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "日本語", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Basa Jawa", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Қазақ", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "ಕನ್ನಡ", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "한국어", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Lietuviškai", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Latviešu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Македонски", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "മലയാളം", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "मराठी", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Bahasa Melayu", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Norsk", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Nederlands", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "ਪੰਜਾਬੀ", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "پنجابی", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Polski", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Português (br)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Português (pt)", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Română", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Pусский", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Slovenčina", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Slovenščina", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Shqip", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "српски", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Svenska", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Kiswahili", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "தமிழ்", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "తెలుగు", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "ภาษาไทย", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Türkçe", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Українська", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "اردو", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Tiếng Việt", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "简体中文", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "繁體中文", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Get Signal", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Donate to Signal", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "press@signal.org", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Donate", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Careers", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Blog", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Terms & Privacy Policy", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Android", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "iPhone & iPad", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Windows", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Mac", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Linux", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "GitHub", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Twitter", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Instagram", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Support", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "Community", "byTag": true, "byOnClick": false, "byPointer": true }, { "tagName": "A", "id": "", "text": "press@signal.org", "byTag": true, "byOnClick": false, "byPointer": true } ] }, "success": true }, "endTime": 1664722998076 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664722998076, "endTime": 1664722998630 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664722998630, "result": "https://signal.org/", "endTime": 1664722999468 }, { "type": "test", "which": "focVis", "withItems": true, "what": "links that are invisible when focused", "startTime": 1664722999468, "url": "https://signal.org/", "result": { "total": 0, "items": [], "success": true }, "endTime": 1664722999508 }, { "type": "test", "which": "hover", "sampleSize": 20, "withItems": true, "what": "hover-caused content changes", "startTime": 1664722999508, "url": "https://signal.org/", "result": { "totals": { "triggers": 41, "triggerSample": 19, "impactTriggers": 0, "additions": 0, "removals": 0, "opacityChanges": 0, "opacityImpact": 0, "unhoverables": 0 }, "items": { "impactTriggers": [], "unhoverables": [] }, "success": true }, "endTime": 1664723026375 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723026375, "endTime": 1664723026954 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723026954, "result": "https://signal.org/", "endTime": 1664723027899 }, { "type": "test", "which": "labClash", "withItems": true, "what": "labeling inconsistencies", "startTime": 1664723027899, "url": "https://signal.org/", "result": { "totals": { "mislabeled": 0, "unlabeled": 0, "wellLabeled": 1 }, "items": { "mislabeled": [], "unlabeled": [], "wellLabeled": [ { "index": 0, "tagName": "BUTTON", "type": "submit", "labelType": "aria-label", "texts": { "attribute": "close" } } ] }, "success": true }, "endTime": 1664723027936 }, { "type": "test", "which": "linkTo", "withItems": true, "what": "links without destinations", "startTime": 1664723027936, "url": "https://signal.org/", "result": { "total": 0, "items": [], "success": true }, "endTime": 1664723027945 }, { "type": "test", "which": "linkUl", "withItems": true, "what": "adjacent-link underlining", "startTime": 1664723027945, "url": "https://signal.org/", "result": { "totals": { "links": 90, "adjacent": { "total": 76, "underlined": 0, "underlinedPercent": 0 } }, "items": { "underlined": [], "notUnderlined": [ "", "", "Get Signal", "Support", "Blog", "Developers", "Careers", "Donate", "", "", "EN", "Afrikaans", "العربية", "Azərbaycanca", "Български", "বাংলা", "Català", "Česky", "Dansk", "Deutsch", "ελληνικά", "English", "Español", "Eesti", "فارسی", "suomi", "Pilipino", "Français", "Gaeilge", "ગુજરાતી", "Hausa", "עִבְרִית", "हिन्दी, हिंदी", "Hrvatski", "Magyar", "Bahasa Indonesia", "Italiano", "日本語", "Basa Jawa", "Қазақ", "ಕನ್ನಡ", "한국어", "Lietuviškai", "Latviešu", "Македонски", "മലയാളം", "मराठी", "Bahasa Melayu", "Norsk", "Nederlands", "ਪੰਜਾਬੀ", "پنجابی", "Polski", "Português (br)", "Português (pt)", "Română", "Pусский", "Slovenčina", "Slovenščina", "Shqip", "српски", "Svenska", "Kiswahili", "தமிழ்", "తెలుగు", "ภาษาไทย", "Türkçe", "Українська", "اردو", "Tiếng Việt", "简体中文", "繁體中文", "Get Signal", "Donate to Signal", "press@signal.org", "press@signal.org" ] }, "success": true }, "endTime": 1664723027956 }, { "type": "test", "which": "menuNav", "withItems": true, "what": "keyboard navigation between focusable menu items", "startTime": 1664723027956, "url": "https://signal.org/", "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": [] }, "success": true }, "endTime": 1664723027962 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723027962, "endTime": 1664723028512 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723028512, "result": "https://signal.org/", "endTime": 1664723029343 }, { "type": "test", "which": "miniText", "withItems": true, "what": "text smaller than 11 pixels", "startTime": 1664723029343, "url": "https://signal.org/", "result": { "total": 0, "items": [], "success": true }, "endTime": 1664723029381 }, { "type": "test", "which": "nonTable", "withItems": true, "what": "table elements used for layout", "startTime": 1664723029381, "url": "https://signal.org/", "result": { "total": 0, "items": [], "success": true }, "endTime": 1664723029385 }, { "type": "test", "which": "radioSet", "withItems": true, "what": "fieldset grouping of radio buttons", "startTime": 1664723029385, "url": "https://signal.org/", "result": { "totals": { "total": 0, "inSet": 0, "percent": "N.A." }, "items": { "inSet": [], "notInSet": [] }, "success": true }, "endTime": 1664723029391 }, { "type": "test", "which": "role", "what": "roles", "startTime": 1664723029392, "url": "https://signal.org/", "result": { "roleElements": 3, "badRoleElements": 2, "redundantRoleElements": 1, "tagNames": { "NAV": { "navigation": { "bad": 0, "redundant": 1 } }, "A": { "button": { "bad": 2, "redundant": 0 } } }, "success": true }, "endTime": 1664723029409 }, { "type": "test", "which": "styleDiff", "withItems": true, "what": "style inconsistencies", "startTime": 1664723029409, "url": "https://signal.org/", "result": { "mainStyles": [ "fontStyle", "fontWeight", "opacity", "textDecorationLine", "textDecorationStyle", "textDecorationThickness" ], "buttonStyles": [ "borderStyle", "borderWidth", "height", "lineHeight", "maxHeight", "maxWidth", "minHeight", "minWidth", "outlineOffset", "outlineStyle", "outlineWidth" ], "headingStyles": [ "color", "fontSize" ], "listLinkStyles": [ "color", "fontSize", "lineHeight" ], "totals": { "button": { "total": 1 }, "adjacentLink": { "total": 76, "subtotals": [ 74, 2 ] }, "listLink": { "total": 14 }, "h1": { "total": 1 }, "h2": { "total": 4 }, "h3": { "total": 4 } }, "items": { "adjacentLink": { "fontWeight": { "400": [ "", "", "Get Signal", "Support", "Blog", "Developers", "Careers", "Donate", "", "", "EN", "Afrikaans", "العربية", "Azərbaycanca", "Български", "বাংলা", "Català", "Česky", "Dansk", "Deutsch", "ελληνικά", "English", "Español", "Eesti", "فارسی", "suomi", "Pilipino", "Français", "Gaeilge", "ગુજરાતી", "Hausa", "עִבְרִית", "हिन्दी, हिंदी", "Hrvatski", "Magyar", "Bahasa Indonesia", "Italiano", "日本語", "Basa Jawa", "Қазақ", "ಕನ್ನಡ", "한국어", "Lietuviškai", "Latviešu", "Македонски", "മലയാളം", "मराठी", "Bahasa Melayu", "Norsk", "Nederlands", "ਪੰਜਾਬੀ", "پنجابی", "Polski", "Português (br)", "Português (pt)", "Română", "Pусский", "Slovenčina", "Slovenščina", "Shqip", "српски", "Svenska", "Kiswahili", "தமிழ்", "తెలుగు", "ภาษาไทย", "Türkçe", "Українська", "اردو", "Tiếng Việt", "简体中文", "繁體中文", "press@signal.org", "press@signal.org" ], "600": [ "Get Signal", "Donate to Signal" ] } } }, "success": true }, "endTime": 1664723029421 }, { "type": "test", "which": "tabNav", "withItems": true, "what": "keyboard navigation between tab elements", "startTime": 1664723029421, "url": "https://signal.org/", "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": [] }, "success": true }, "endTime": 1664723029425 }, { "type": "test", "which": "titledEl", "withItems": true, "what": "title attributes on inappropriate elements", "startTime": 1664723029425, "url": "https://signal.org/", "result": { "total": 0, "items": [], "success": true }, "endTime": 1664723029429 }, { "type": "test", "which": "zIndex", "withItems": true, "what": "z indexes", "startTime": 1664723029429, "url": "https://signal.org/", "result": { "totals": { "total": 2, "tagNames": { "NAV": 1, "DIV": 1 } }, "items": [ { "tagName": "NAV", "id": "", "text": "Get Signal Support Blog Developers Careers Donate EN Select your language Afrikaans العربية Azərbayc" }, { "tagName": "DIV", "id": "language-selector-modal", "text": "Select your language Afrikaans العربية Azərbaycanca Български বাংলা Català Česky Dansk Deutsch ελλην" } ], "success": true }, "endTime": 1664723029438 }, { "type": "test", "which": "alfa", "what": "alfa", "startTime": 1664723029438, "url": "https://signal.org/", "result": { "totals": { "failures": 44, "warnings": 1 }, "items": [ { "index": 2, "verdict": "failed", "rule": { "ruleID": "r11", "ruleSummary": "Links have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r11", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-in-context", "chapter": "2.4.4", "title": "Link Purpose (In Context)" }, { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-link-only", "chapter": "2.4.9", "title": "Link Purpose (Link Only)" }, { "uri": "https://www.w3.org/TR/WCAG/#name-role-value", "chapter": "4.1.2", "title": "Name, Role, Value" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G91", "name": "G91", "title": "Providing link text that describes the purpose of a link" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]", "codeLines": [ "<a href=\"/#signal\">", " <img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904d...", "</a>" ] } }, { "index": 9, "verdict": "failed", "rule": { "ruleID": "r11", "ruleSummary": "Links have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r11", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-in-context", "chapter": "2.4.4", "title": "Link Purpose (In Context)" }, { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-link-only", "chapter": "2.4.9", "title": "Link Purpose (Link Only)" }, { "uri": "https://www.w3.org/TR/WCAG/#name-role-value", "chapter": "4.1.2", "title": "Name, Role, Value" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G91", "name": "G91", "title": "Providing link text that describes the purpose of a link" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[7]", "codeLines": [ "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\">", " <i class=\"icon icon-twitter\"></i>", "</a>" ] } }, { "index": 10, "verdict": "failed", "rule": { "ruleID": "r11", "ruleSummary": "Links have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r11", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-in-context", "chapter": "2.4.4", "title": "Link Purpose (In Context)" }, { "uri": "https://www.w3.org/TR/WCAG/#link-purpose-link-only", "chapter": "2.4.9", "title": "Link Purpose (Link Only)" }, { "uri": "https://www.w3.org/TR/WCAG/#name-role-value", "chapter": "4.1.2", "title": "Name, Role, Value" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G91", "name": "G91", "title": "Providing link text that describes the purpose of a link" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[8]", "codeLines": [ "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\">", " <i class=\"icon icon-instagram\"></i>", "</a>" ] } }, { "index": 30, "verdict": "failed", "rule": { "ruleID": "r14", "ruleSummary": "Visible labels are included in accessible names", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r14", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#label-in-name", "chapter": "2.5.3", "title": "Label in Name" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G208", "name": "G208", "title": "Including the text of the visible label as part of the accessible name" } ] }, "target": { "type": "element", "tagName": "a", "path": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[9]", "codeLines": [ "<a href=\"#\" class=\"js-modal-trigger navbar-item language-selector no-underline\" role=\"button\" aria-...", " <i class=\"icon icon-globe\"></i>", " EN", " <span class=\"caret\"></span>", "</a>" ] } }, { "index": 140, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]/img[1]", "codeLines": [ "<img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4..." ] } }, { "index": 141, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[1]", "codeLines": [ "<img class=\"screenshot1\" src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f307..." ] } }, { "index": 142, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[2]", "codeLines": [ "<img class=\"screenshot2\" src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce..." ] } }, { "index": 143, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062..." ] } }, { "index": 144, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[2]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd..." ] } }, { "index": 145, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[1]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c..." ] } }, { "index": 146, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[2]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778..." ] } }, { "index": 147, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.p..." ] } }, { "index": 148, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.p..." ] } }, { "index": 149, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f780..." ] } }, { "index": 150, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc...." ] } }, { "index": 151, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[1]/img[1]", "codeLines": [ "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0...." ] } }, { "index": 152, "verdict": "failed", "rule": { "ruleID": "r2", "ruleSummary": "Images have an accessible name", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r2", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#non-text-content", "chapter": "1.1.1", "title": "Non-text Content" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G94", "name": "G94", "title": "Providing short text alternative for non-text content that serves the same purpose" }, { "uri": "https://www.w3.org/WAI/WCAG21/Techniques/general/G95", "name": "G95", "title": "Providing short text alternatives that provide a brief description of the non-text" } ] }, "target": { "type": "element", "tagName": "img", "path": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[3]/img[1]", "codeLines": [ "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde49..." ] } }, { "index": 441, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Say \"hello\" to a different messaging experience. An unexpected focus on privacy, combined with al...", "</p>" ] } }, { "index": 447, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[3]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Explore below to see why Signal is a simple, powerful, and secure messenger", "</p>" ] } }, { "index": 448, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[4]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " State-of-the-art end-to-end encryption (powered by the open source Signal Protocol) keeps your co...", "</p>" ] } }, { "index": 449, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Share text, voice messages, photos, videos, GIFs and files for free. Signal uses your phone's dat...", "</p>" ] } }, { "index": 450, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Make crystal-clear voice and video calls to people who live across town, or across the ocean, wit...", "</p>" ] } }, { "index": 451, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Add a new layer of expression to your conversations with encrypted stickers. You can also create ...", "</p>" ] } }, { "index": 452, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Group chats make it easy to stay connected to your family, friends, and coworkers.", "</p>" ] } }, { "index": 453, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " There are no ads, no affiliate marketers, and no creepy tracking in Signal. So focus on sharing t...", "</p>" ] } }, { "index": 454, "verdict": "failed", "rule": { "ruleID": "r73", "ruleSummary": "Paragraphs of text have sufficient line height", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r73", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " Signal is an independent nonprofit. We're not tied to any major tech companies, and we can never ...", " <br>", " <br>", " <a class=\"button button2\" href=\"/donate/\">", " Donate to Signal", " </a>", "</p>" ] } }, { "index": 455, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Say \"hello\" to a different messaging experience. An unexpected focus on privacy, combined with al...", "</p>" ] } }, { "index": 456, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[3]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Explore below to see why Signal is a simple, powerful, and secure messenger", "</p>" ] } }, { "index": 457, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[4]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " State-of-the-art end-to-end encryption (powered by the open source Signal Protocol) keeps your co...", "</p>" ] } }, { "index": 458, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Share text, voice messages, photos, videos, GIFs and files for free. Signal uses your phone's dat...", "</p>" ] } }, { "index": 459, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Make crystal-clear voice and video calls to people who live across town, or across the ocean, wit...", "</p>" ] } }, { "index": 460, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Add a new layer of expression to your conversations with encrypted stickers. You can also create ...", "</p>" ] } }, { "index": 461, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Group chats make it easy to stay connected to your family, friends, and coworkers.", "</p>" ] } }, { "index": 462, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " There are no ads, no affiliate marketers, and no creepy tracking in Signal. So focus on sharing t...", "</p>" ] } }, { "index": 463, "verdict": "failed", "rule": { "ruleID": "r74", "ruleSummary": "Paragraphs of text do not have font sizes defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r74", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " Signal is an independent nonprofit. We're not tied to any major tech companies, and we can never ...", " <br>", " <br>", " <a class=\"button button2\" href=\"/donate/\">", " Donate to Signal", " </a>", "</p>" ] } }, { "index": 511, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Say \"hello\" to a different messaging experience. An unexpected focus on privacy, combined with al...", "</p>" ] } }, { "index": 512, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[3]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body1\">", " Explore below to see why Signal is a simple, powerful, and secure messenger", "</p>" ] } }, { "index": 513, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[4]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " State-of-the-art end-to-end encryption (powered by the open source Signal Protocol) keeps your co...", "</p>" ] } }, { "index": 514, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Share text, voice messages, photos, videos, GIFs and files for free. Signal uses your phone's dat...", "</p>" ] } }, { "index": 515, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Make crystal-clear voice and video calls to people who live across town, or across the ocean, wit...", "</p>" ] } }, { "index": 516, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Add a new layer of expression to your conversations with encrypted stickers. You can also create ...", "</p>" ] } }, { "index": 517, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/p[1]", "codeLines": [ "<p class=\"body2\">", " Group chats make it easy to stay connected to your family, friends, and coworkers.", "</p>" ] } }, { "index": 518, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " There are no ads, no affiliate marketers, and no creepy tracking in Signal. So focus on sharing t...", "</p>" ] } }, { "index": 519, "verdict": "failed", "rule": { "ruleID": "r80", "ruleSummary": "Paragraphs of text do not have line heights defined in absolute units", "scope": "component", "uri": "https://alfa.siteimprove.com/rules/sia-r80", "requirements": [ { "uri": "https://www.w3.org/TR/WCAG/#visual-presentation", "chapter": "1.4.8", "title": "Visual Presentation" } ] }, "target": { "type": "element", "tagName": "p", "path": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/p[1]", "codeLines": [ "<p class=\"body1\">", " Signal is an independent nonprofit. We're not tied to any major tech companies, and we can never ...", " <br>", " <br>", " <a class=\"button button2\" href=\"/donate/\">", " Donate to Signal", " </a>", "</p>" ] } }, { "index": 538, "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>" ] } } ], "success": true }, "endTime": 1664723033230 }, { "type": "test", "which": "axe", "detailLevel": 2, "rules": [], "what": "Axe", "startTime": 1664723033230, "url": "https://signal.org/", "result": { "totals": { "rulesNA": 57, "rulesPassed": 36, "rulesWarned": 1, "rulesViolated": 7, "warnings": { "minor": 4, "moderate": 0, "serious": 0, "critical": 0 }, "violations": { "minor": 0, "moderate": 9, "serious": 12, "critical": 13 } }, "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-10-02T15:03:53.801Z", "url": "https://signal.org/", "toolOptions": { "resultTypes": [ "violations", "incomplete" ], "runOnly": { "type": "tag", "values": [ "experimental", "best-practice", "wcag2a", "wcag2aa", "wcag2aaa", "wcag21a", "wcag21aa", "wcag21aaa" ] }, "reporter": "v1" }, "incomplete": [ { "id": "hidden-content", "impact": "minor", "tags": [ "cat.structure", "experimental", "review-item", "best-practice" ], "description": "Informs users about hidden content.", "help": "Hidden content on the page should be analyzed", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/hidden-content?application=axeAPI", "nodes": [ { "any": [ { "id": "hidden-content", "data": null, "relatedNodes": [], "impact": "minor", "message": "There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it." } ], "all": [], "none": [], "impact": "minor", "html": "<a role=\"button\" class=\"navbar-burger burger\" aria-label=\"menu\" aria-expanded=\"false\" data-target=\"signalNavbar\"> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span> </a>", "target": [ ".navbar-burger" ], "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=\"modal\" id=\"language-selector-modal\">", "target": [ "#language-selector-modal" ], "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=\"column is-hidden-desktop\"> <img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\"></div>", "target": [ ".is-hidden-desktop" ], "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=\"column is-two-fifths is-hidden-tablet\"> <span class=\"copyright\">© 2013–2022 Signal, a 501c3 nonprofit.</span><br> Signal is a registered trademark in the United States and other countries. <br> <br> For media inquiries, contact <a href=\"mailto:press@signal.org\">press@signal.org</a></div>", "target": [ ".is-hidden-tablet" ], "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": "serious", "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": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"New Zealand!\" transform=\"matrix(2,0,0,2,223.6500244140625,1061.300048828125)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"New Zealand!\"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." }, { "any": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"*Ep!z4GoqI\" transform=\"matrix(2,0,0,2,223.6500244140625,1061.300048828125)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"*Ep!z4GoqI\"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." }, { "any": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"Whoa where are you!? \" transform=\"matrix(2,0,0,2,881.7459716796875,1183.9339599609375)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"Whoa where are you!? \"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." }, { "any": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"3TF{*2Rhh2!dO:pR^\" transform=\"matrix(2,0,0,2,881.7459716796875,1183.9339599609375)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"3TF{*2Rhh2!dO:pR^\"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." }, { "any": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"7a#v9^ht035v:q*\" transform=\"matrix(2,0,0,2,284.0159912109375,1063.0159912109375)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"7a#v9^ht035v:q*\"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." }, { "any": [], "all": [], "none": [ { "id": "aria-prohibited-attr", "data": { "role": null, "nodeName": "g", "messageKey": "noRoleSingular", "prohibited": [ "aria-label" ] }, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute cannot be used on a g with no valid role attribute." } ], "impact": "serious", "html": "<g fill=\"rgb(255,255,255)\" font-size=\"24\" font-family=\"SF Pro Text\" font-style=\"normal\" font-weight=\"400\" aria-label=\"Hey check this out!\" transform=\"matrix(2,0,0,2,284.0159912109375,1062.5159912109375)\" opacity=\"0\" style=\"display: block;\">", "target": [ [ "lottie-player", "g[aria-label=\"Hey check this out!\"]" ] ], "failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a g with no valid role attribute." } ] }, { "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": "#2c6bed", "bgColor": "#ffffff", "contrastRatio": 4.73, "fontSize": "15.0pt (20px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a class=\"get-signal button button-white\" href=\"/download/\"> Get Signal </a>", "target": [ ".button-white" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.73 (foreground color: #2c6bed, background color: #ffffff, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"get-signal button button-white\" href=\"/download/\"> Get Signal </a>", "target": [ ".button-white" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.73 (foreground color: #2c6bed, background color: #ffffff, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 7:1" }, { "any": [ { "id": "color-contrast-enhanced", "data": { "fgColor": "#2c6bed", "bgColor": "#ffffff", "contrastRatio": 4.73, "fontSize": "15.0pt (20px)", "fontWeight": "normal", "messageKey": null, "expectedContrastRatio": "7:1" }, "relatedNodes": [ { "html": "<a class=\"button button2\" href=\"/donate/\"> Donate to Signal </a>", "target": [ ".button2" ] } ], "impact": "serious", "message": "Element has insufficient color contrast of 4.73 (foreground color: #2c6bed, background color: #ffffff, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 7:1" } ], "all": [], "none": [], "impact": "serious", "html": "<a class=\"button button2\" href=\"/donate/\"> Donate to Signal </a>", "target": [ ".button2" ], "failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.73 (foreground color: #2c6bed, background color: #ffffff, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 7:1" } ] }, { "id": "image-alt", "impact": "critical", "tags": [ "cat.text-alternatives", "wcag2a", "wcag111", "section508", "section508.22.a", "ACT" ], "description": "Ensures <img> elements have alternate text or a role of none or presentation", "help": "Images must have alternate text", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/image-alt?application=axeAPI", "nodes": [ { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\">", "target": [ ".signal-logo" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img class=\"screenshot1\" src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\">", "target": [ ".screenshot1" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img class=\"screenshot2\" src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\">", "target": [ ".screenshot2" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\">", "target": [ ".columns:nth-child(1) > .column:nth-child(1) > .columns > .is-2.column > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\">", "target": [ ".columns:nth-child(1) > .column:nth-child(2) > .columns > .is-2.column > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\">", "target": [ ".columns:nth-child(2) > .column:nth-child(1) > .columns > .is-2.column > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\">", "target": [ ".columns:nth-child(2) > .column:nth-child(2) > .columns > .is-2.column > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\">", "target": [ ".is-centered.columns:nth-child(1) > .is-half.has-text-centered.column:nth-child(1) > .box > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\">", "target": [ ".is-centered.columns:nth-child(1) > .is-half.has-text-centered.column:nth-child(2) > .box > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\">", "target": [ ".is-centered.columns:nth-child(2) > .is-half.has-text-centered.column:nth-child(1) > .box > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\">", "target": [ ".is-centered.columns:nth-child(2) > .is-half.has-text-centered.column:nth-child(2) > .box > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\">", "target": [ ".information.section:nth-child(7) > .container > .is-desktop.columns > .column:nth-child(1) > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" }, { "any": [ { "id": "has-alt", "data": null, "relatedNodes": [], "impact": "critical", "message": "Element does not have an alt attribute" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" }, { "id": "presentational-role", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ], "all": [], "none": [], "impact": "critical", "html": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">", "target": [ ".is-hidden-touch > img" ], "failureSummary": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"" } ] }, { "id": "label-content-name-mismatch", "impact": "serious", "tags": [ "cat.semantics", "wcag21a", "wcag253", "experimental" ], "description": "Ensures that elements labelled through their content must have their visible text as part of their accessible name", "help": "Elements must have their visible text as part of their accessible name", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/label-content-name-mismatch?application=axeAPI", "nodes": [ { "any": [ { "id": "label-content-name-mismatch", "data": null, "relatedNodes": [], "impact": "serious", "message": "Text inside the element is not included in the accessible name" } ], "all": [], "none": [], "impact": "serious", "html": "<a href=\"#\" class=\"js-modal-trigger navbar-item language-selector no-underline\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" aria-label=\"Change Language\" id=\"language-selector\"> <i class=\"icon icon-globe\"></i> EN <span class=\"caret\"></span> </a>", "target": [ "#language-selector" ], "failureSummary": "Fix any of the following:\n Text inside the element is not included in the accessible name" } ] }, { "id": "landmark-one-main", "impact": "moderate", "tags": [ "cat.semantics", "best-practice" ], "description": "Ensures the document has a main landmark", "help": "Document should have one main landmark", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/landmark-one-main?application=axeAPI", "nodes": [ { "any": [], "all": [ { "id": "page-has-main", "data": null, "relatedNodes": [], "impact": "moderate", "message": "Document does not have a main landmark" } ], "none": [], "impact": "moderate", "html": "<html lang=\"en\">", "target": [ "html" ], "failureSummary": "Fix all of the following:\n Document does not have a main landmark" } ] }, { "id": "link-name", "impact": "serious", "tags": [ "cat.name-role-value", "wcag2a", "wcag412", "wcag244", "section508", "section508.22.a", "ACT" ], "description": "Ensures links have discernible text", "help": "Links must have discernible text", "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/link-name?application=axeAPI", "nodes": [ { "any": [ { "id": "has-visible-text", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element does not have text that is visible to screen readers" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" } ], "all": [], "none": [ { "id": "focusable-no-name", "data": null, "relatedNodes": [], "impact": "serious", "message": "Element is in tab order and does not have accessible text" } ], "impact": "serious", "html": "<a href=\"/#signal\"> <img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\"> </a>", "target": [ "a[href$=\"/#signal\"]" ], "failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute" }, { "any": [ { "id": "has-visible-text", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element does not have text that is visible to screen readers" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" } ], "all": [], "none": [ { "id": "focusable-no-name", "data": null, "relatedNodes": [], "impact": "serious", "message": "Element is in tab order and does not have accessible text" } ], "impact": "serious", "html": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\"><i class=\"icon icon-twitter\"></i></a>", "target": [ ".navbar-item[href$=\"signalapp\"][target=\"_blank\"]" ], "failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute" }, { "any": [ { "id": "has-visible-text", "data": null, "relatedNodes": [], "impact": "minor", "message": "Element does not have text that is visible to screen readers" }, { "id": "aria-label", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-label attribute does not exist or is empty" }, { "id": "aria-labelledby", "data": null, "relatedNodes": [], "impact": "serious", "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty" }, { "id": "non-empty-title", "data": { "messageKey": "noAttr" }, "relatedNodes": [], "impact": "serious", "message": "Element has no title attribute" } ], "all": [], "none": [ { "id": "focusable-no-name", "data": null, "relatedNodes": [], "impact": "serious", "message": "Element is in tab order and does not have accessible text" } ], "impact": "serious", "html": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\"><i class=\"icon icon-instagram\"></i></a>", "target": [ ".navbar-item[target=\"_blank\"]:nth-child(8)" ], "failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute" } ] }, { "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": "<section class=\"hero-main hero\">", "target": [ ".hero-main" ], "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": "<section class=\"quotes section is-medium\">", "target": [ ".quotes" ], "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": "<section class=\"why-signal section\"><div class=\"container\"><div class=\"columns is-centered\"><div class=\"column has-text-centered\"><h2>Why use Signal?</h2><p class=\"body1\">Explore below to see why Signal is a simple, powerful, and secure messenger</p></div></div></div></section>", "target": [ ".why-signal" ], "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": "<div class=\"column is-one-third\">", "target": [ ".is-desktop.is-centered.columns > .is-one-third.column" ], "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": "<section class=\"section features\">", "target": [ ".features" ], "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": "<section class=\"section information\">", "target": [ ".information.section:nth-child(7)" ], "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": "<div class=\"column is-one-third\">", "target": [ ".information.section:nth-child(8) > .container > .is-desktop.columns > .is-one-third.column" ], "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": "<div class=\"column is-hidden-touch has-text-right\"> <img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\"></div>", "target": [ ".is-hidden-touch" ], "failureSummary": "Fix any of the following:\n Some page content is not contained by landmarks" } ] } ] }, "success": true }, "endTime": 1664723033823 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723033823, "endTime": 1664723034397 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723034398, "result": "https://signal.org/", "endTime": 1664723035282 }, { "type": "test", "which": "continuum", "what": "Level Access Continuum, community edition", "startTime": 1664723035282, "url": "https://signal.org/", "result": [ { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\" class=\"signal-logo\">", "testResult": 0, "path": "body>nav:nth-of-type(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[class=\"signal-logo\"][src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\"]", "attNo": 2 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\" class=\"screenshot1\">", "testResult": 0, "path": "body>section:nth-of-type(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[class=\"screenshot1\"][src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\"]", "attNo": 2 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\" class=\"screenshot2\">", "testResult": 0, "path": "body>section:nth-of-type(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(2)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[class=\"screenshot2\"][src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\"]", "attNo": 2 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\">", "testResult": 0, "path": "body>section:nth-of-type(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\">", "testResult": 0, "path": "body>section:nth-of-type(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\">", "testResult": 0, "path": "body>section:nth-of-type(2)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\">", "testResult": 0, "path": "body>section:nth-of-type(2)>*:nth-child(1)>*:nth-child(2)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\">", "testResult": 0, "path": "body>section:nth-of-type(5)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\">", "testResult": 0, "path": "body>section:nth-of-type(5)>*:nth-child(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\">", "testResult": 0, "path": "body>section:nth-of-type(5)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\">", "testResult": 0, "path": "body>section:nth-of-type(5)>*:nth-child(1)>*:nth-child(2)>*:nth-child(2)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\">", "testResult": 0, "path": "body>section:nth-of-type(6)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\"]", "attNo": 1 } }, { "engineTestId": 89, "bestPracticeId": 362, "attribute": "This img element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This img element does not have a mechanism that allows an accessible name value to be calculated", "element": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">", "testResult": 0, "path": "body>section:nth-of-type(7)>*:nth-child(1)>*:nth-child(1)>*:nth-child(3)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide alternative text that describes the content conveyed by the image.", "fix": { "alt": null, "aria-label": false, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "img[src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\"]", "attNo": 1 } }, { "engineTestId": 123, "bestPracticeId": 362, "attribute": "This svg element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This svg element does not have a mechanism that allows an accessible name value to be calculated", "element": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewbox=\"0 0 1200 1178\" width=\"1200\" height=\"1178\" preservea ... 3 2.84,-12.63 2.84,-12.63 C2.84,-12.63 0.8,-12.63 0.8,-12.63 C0.8,-12.63 4.34,0 4.34,0 C4.34,0 6.37,", "testResult": 0, "path": "body>section:nth-of-type(4)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)|:host>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide text that describes the content conveyed by the SVG.", "fix": { "alt": false, "aria-label": null, "aria-labelledby": false } }, "fingerprint": { "version": 2, "css": "svg[preserveaspectratio=\"xMidYMid meet\"][height=\"1178\"][width=\"1200\"][viewbox=\"0 0 1200 1178\"]", "attNo": 6 } }, { "engineTestId": 237, "bestPracticeId": 1301, "attribute": "This A element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This A element does not have a mechanism that allows an accessible name value to be calculated", "element": "<a href=\"/#signal\"><img src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\" class=\"signal-logo\"></a>", "testResult": 0, "path": "body>nav:nth-of-type(1)>*:nth-child(1)>*:nth-child(1)>*:nth-child(1)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide a descriptive accessible name for the anchor element.", "fix": { "aria-label": null } }, "fingerprint": { "version": 2, "css": "a[href=\"/#signal\"]", "attNo": 1 } }, { "engineTestId": 237, "bestPracticeId": 1301, "attribute": "This A element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This A element does not have a mechanism that allows an accessible name value to be calculated", "element": "<a target=\"_blank\" href=\"https://twitter.com/signalapp\" class=\"navbar-item\"><i class=\"icon icon-twitter\"></i></a>", "testResult": 0, "path": "body>nav:nth-of-type(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(7)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide a descriptive accessible name for the anchor element.", "fix": { "aria-label": null } }, "fingerprint": { "version": 2, "css": "a[class=\"navbar-item\"][href=\"https://twitter.com/signalapp\"][target=\"_blank\"]", "attNo": 3 } }, { "engineTestId": 237, "bestPracticeId": 1301, "attribute": "This A element does not have a mechanism that allows an accessible name value to be calculated", "attributeDetail": "This A element does not have a mechanism that allows an accessible name value to be calculated", "element": "<a target=\"_blank\" href=\"https://instagram.com/signal_app/\" class=\"navbar-item\"><i class=\"icon icon-instagram\"></i></a>", "testResult": 0, "path": "body>nav:nth-of-type(1)>*:nth-child(1)>*:nth-child(2)>*:nth-child(1)>*:nth-child(8)", "fixType": { "fixType": 1, "domSpec": false, "helperText": "Provide a descriptive accessible name for the anchor element.", "fix": { "aria-label": null } }, "fingerprint": { "version": 2, "css": "a[class=\"navbar-item\"][href=\"https://instagram.com/signal_app/\"][target=\"_blank\"]", "attNo": 3 } } ], "endTime": 1664723035554 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723035554, "endTime": 1664723036127 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723036127, "result": "https://signal.org/", "endTime": 1664723037004 }, { "type": "test", "which": "htmlcs", "what": "HTML CodeSniffer WCAG 2.1 AA ruleset", "startTime": 1664723037004, "url": "https://signal.org/", "result": { "Error": { "AA.1_1_1.H30.2": { "Img element is the only content of the link, but is missing alt text. The alt text should describe the purpose of the link.": [ { "tagName": "a", "id": "", "code": "<a href=\"/#signal\">...</a>" } ] }, "AA.1_1_1.H37": { "Img element missing an alt attribute. Use the alt attribute to specify a short text alternative.": [ { "tagName": "img", "id": "", "code": "<img class=\"screenshot1\" src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\">" }, { "tagName": "img", "id": "", "code": "<img class=\"screenshot2\" src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\">" }, { "tagName": "img", "id": "", "code": "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\">" } ] }, "AA.4_1_2.H91.A.NoContent": { "Anchor element found with a valid href attribute, but no link content has been supplied.": [ { "tagName": "a", "id": "", "code": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\">...</a>" }, { "tagName": "a", "id": "", "code": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\">...</a>" } ] } }, "Warning": { "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 aria-labelledby=\"language-selector\">...</div>" }, { "tagName": "div", "id": "", "code": "<div class=\"navbar-brand\">...</div>" }, { "tagName": "div", "id": "", "code": "<div class=\"navbar-end\">...</div>" } ] }, "AA.1_4_10.C32,C31,C33,C38,SCR34,G206": { "This element has \"position: fixed\". This may require scrolling in two dimensions, which is considered a failure of this Success Criterion.": [ { "tagName": "div", "id": "#language-selector-modal", "code": "<div class=\"modal\" id=\"language-selector-modal\">...</div>" }, { "tagName": "nav", "id": "", "code": "<nav class=\"navbar signal-navbar is-fixed-top\" role=\"navigation\" aria-label=\"main navigation\">...</nav>" } ] }, "AA.2_5_3.F96": { "Accessible name for this element does not contain the visible label text. Check that for user interface components with labels that include text or images of text, the name contains the text that is presented visually.": [ { "tagName": "a", "id": "#language-selector", "code": "<a href=\"#\" class=\"js-modal-trigger navbar-item language-selector no-underline\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" aria-label=\"Change Language\" id=\"language-selector\">...</a>" } ] } }, "success": true }, "endTime": 1664723037132 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723037133, "endTime": 1664723037687 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723037687, "result": "https://signal.org/", "endTime": 1664723038548 }, { "type": "test", "which": "ibm", "withItems": true, "what": "IBM Accessibility Checker", "startTime": 1664723038548, "url": "https://signal.org/", "result": { "content": { "totals": { "violation": 33, "recommendation": 3, "ignored": 0 }, "items": [ { "ruleId": "WCAG21_Label_Accessible", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[9]", "aria": "/document[1]/navigation[1]/button[2]" }, "message": "Accessible name does not match or contain the visible label text", "bounds": { "left": 350, "top": 27, "height": 18, "width": 22 }, "snippet": "<a id=\"language-selector\" aria-label=\"Change Language\" aria-expanded=\"false\" aria-haspopup=\"true\" role=\"button\" class=\"js-modal-trigger navbar-item language-selector no-underline\" href=\"#\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[3]/img[1]", "aria": "/document[1]/img[13]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 2010, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[12]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1834, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[11]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1695, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/img[1]", "aria": "/document[1]/img[10]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1583, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[9]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1453, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/img[1]", "aria": "/document[1]/img[8]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1322, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[7]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 1192, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[6]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 843, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[5]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 702, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[4]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 543, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[3]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 421, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[2]", "aria": "/document[1]/img[2]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 12, "top": 403, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\" class=\"screenshot2\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[1]", "aria": "/document[1]/img[1]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 403, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\" class=\"screenshot1\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]/img[1]", "aria": "/document[1]/navigation[1]/link[1]/img[1]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 8, "top": 23, "height": 0, "width": 0 }, "snippet": "<img src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\" class=\"signal-logo\">", "level": "violation" }, { "ruleId": "WCAG20_A_HasText", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[8]", "aria": "/document[1]/navigation[1]/link[9]" }, "message": "Hyperlink has no link text, label or image with a text alternative", "bounds": { "left": 350, "top": 27, "height": 18, "width": 0 }, "snippet": "<a target=\"_blank\" href=\"https://instagram.com/signal_app/\" class=\"navbar-item\">", "level": "violation" }, { "ruleId": "WCAG20_A_HasText", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[2]/div[1]/a[7]", "aria": "/document[1]/navigation[1]/link[8]" }, "message": "Hyperlink has no link text, label or image with a text alternative", "bounds": { "left": 350, "top": 27, "height": 18, "width": 0 }, "snippet": "<a target=\"_blank\" href=\"https://twitter.com/signalapp\" class=\"navbar-item\">", "level": "violation" }, { "ruleId": "WCAG20_A_HasText", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]", "aria": "/document[1]/navigation[1]/link[1]" }, "message": "Hyperlink has no link text, label or image with a text alternative", "bounds": { "left": 8, "top": 8, "height": 18, "width": 0 }, "snippet": "<a href=\"/#signal\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/p[1]/a[1]", "aria": "/document[1]/link[2]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1961, "height": 18, "width": 108 }, "snippet": "<a href=\"/donate/\" class=\"button button2\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[9]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1858, "height": 28, "width": 784 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[8]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1719, "height": 28, "width": 784 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/h3[1]", "aria": "/document[1]/heading[7]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1606, "height": 22, "width": 784 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[6]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1476, "height": 22, "width": 784 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/h3[1]", "aria": "/document[1]/heading[5]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1345, "height": 22, "width": 784 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[4]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1215, "height": 22, "width": 784 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[4]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[3]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 1059, "height": 28, "width": 784 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[3]/div[1]/div[1]/div[1]/h2[1]", "aria": "/document[1]/heading[2]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 973, "height": 28, "width": 784 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[2]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 916, "height": 37, "width": 784 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[1]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 775, "height": 37, "width": 784 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[2]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 635, "height": 37, "width": 784 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 476, "height": 37, "width": 784 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/p[2]/a[1]", "aria": "/document[1]/link[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 354, "height": 18, "width": 68 }, "snippet": "<a href=\"/download/\" class=\"get-signal button button-white\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/h1[1]", "aria": "/document[1]/heading[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 8, "top": 235, "height": 28, "width": 784 }, "snippet": "<h1>", "level": "violation" }, { "ruleId": "Rpt_Aria_ContentinfoWithNoMain_Implicit", "path": { "dom": "/html[1]/body[1]/footer[1]", "aria": "/document[1]/contentinfo[1]" }, "message": "The element with \"contentinfo\" role is present without an element with \"main\" role", "bounds": { "left": 8, "top": 2014, "height": 609, "width": 784 }, "snippet": "<footer class=\"footer\">", "level": "recommendation" }, { "ruleId": "element_attribute_deprecated", "path": { "dom": "/html[1]/head[1]/meta[2]", "aria": "/document[1]" }, "message": "The HTML attribute(s) \"http-equiv\" is deprecated for the <meta> element in HTML 5", "bounds": { "left": 0, "top": 0, "height": 0, "width": 0 }, "snippet": "<meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\">", "level": "recommendation" }, { "ruleId": "aria_role_redundant", "path": { "dom": "/html[1]/body[1]/nav[1]", "aria": "/document[1]/navigation[1]" }, "message": "The explicitly-assigned ARIA role \"navigation\" is redundant with the implicit role of the element <nav>", "bounds": { "left": 8, "top": 8, "height": 207, "width": 784 }, "snippet": "<nav aria-label=\"main navigation\" role=\"navigation\" class=\"navbar signal-navbar is-fixed-top\">", "level": "recommendation" } ] }, "url": { "totals": { "violation": 29, "recommendation": 3, "ignored": 0 }, "items": [ { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[12]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 24, "top": 4820, "height": 533, "width": 680 }, "snippet": "<img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[11]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 24, "top": 3773, "height": 533, "width": 680 }, "snippet": "<img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/img[1]", "aria": "/document[1]/img[10]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 442, "top": 3185, "height": 304, "width": 304 }, "snippet": "<img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[9]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 54, "top": 3185, "height": 306, "width": 304 }, "snippet": "<img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/img[1]", "aria": "/document[1]/img[8]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 442, "top": 2648, "height": 304, "width": 304 }, "snippet": "<img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[7]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 54, "top": 2648, "height": 304, "width": 304 }, "snippet": "<img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[6]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 412, "top": 1154, "height": 41, "width": 41 }, "snippet": "<img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[5]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 24, "top": 1154, "height": 41, "width": 41 }, "snippet": "<img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[2]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[4]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 412, "top": 634, "height": 41, "width": 41 }, "snippet": "<img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/div[1]/img[1]", "aria": "/document[1]/img[3]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 24, "top": 634, "height": 41, "width": 41 }, "snippet": "<img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[2]", "aria": "/document[1]/img[2]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 393, "top": 64, "height": 499, "width": 374 }, "snippet": "<img src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\" class=\"screenshot2\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[2]/img[1]", "aria": "/document[1]/img[1]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 212, "top": 130, "height": 476, "width": 364 }, "snippet": "<img src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\" class=\"screenshot1\">", "level": "violation" }, { "ruleId": "WCAG20_Img_HasAlt", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]/img[1]", "aria": "/document[1]/navigation[1]/link[1]/img[1]" }, "message": "Image does not have an 'alt' attribute short text alternative", "bounds": { "left": 18, "top": 11, "height": 30, "width": 90 }, "snippet": "<img src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\" class=\"signal-logo\">", "level": "violation" }, { "ruleId": "WCAG20_A_HasText", "path": { "dom": "/html[1]/body[1]/nav[1]/div[1]/div[1]/a[1]", "aria": "/document[1]/navigation[1]/link[1]" }, "message": "Hyperlink has no link text, label or image with a text alternative", "bounds": { "left": 18, "top": 11, "height": 30, "width": 90 }, "snippet": "<a href=\"/#signal\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/p[1]/a[1]", "aria": "/document[1]/link[2]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 5783, "height": 50, "width": 195 }, "snippet": "<a href=\"/donate/\" class=\"button button2\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[7]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[9]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 5383, "height": 88, "width": 235 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[6]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[8]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 4336, "height": 132, "width": 235 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[2]/div[1]/h3[1]", "aria": "/document[1]/heading[7]" }, "message": "Content is not within a landmark element", "bounds": { "left": 442, "top": 3513, "height": 64, "width": 304 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[2]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[6]" }, "message": "Content is not within a landmark element", "bounds": { "left": 54, "top": 3515, "height": 32, "width": 304 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[2]/div[1]/h3[1]", "aria": "/document[1]/heading[5]" }, "message": "Content is not within a landmark element", "bounds": { "left": 442, "top": 2977, "height": 32, "width": 304 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[5]/div[1]/div[1]/div[1]/div[1]/h3[1]", "aria": "/document[1]/heading[4]" }, "message": "Content is not within a landmark element", "bounds": { "left": 54, "top": 2977, "height": 32, "width": 304 }, "snippet": "<h3>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[4]/div[1]/div[1]/div[2]/h2[1]", "aria": "/document[1]/heading[3]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 1938, "height": 132, "width": 235 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[3]/div[1]/div[1]/div[1]/h2[1]", "aria": "/document[1]/heading[2]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 1674, "height": 44, "width": 752 }, "snippet": "<h2>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[2]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 477, "top": 1458, "height": 72, "width": 300 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[2]/div[1]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 89, "top": 1362, "height": 48, "width": 300 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[2]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 477, "top": 1034, "height": 48, "width": 300 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/div[2]/p[1]", "aria": "/document[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 89, "top": 714, "height": 48, "width": 300 }, "snippet": "<p>", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/p[2]/a[1]", "aria": "/document[1]/link[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 416, "height": 50, "width": 134 }, "snippet": "<a href=\"/download/\" class=\"get-signal button button-white\">", "level": "violation" }, { "ruleId": "Rpt_Aria_OrphanedContent_Native_Host_Sematics", "path": { "dom": "/html[1]/body[1]/section[1]/div[1]/div[1]/div[1]/div[1]/h1[1]", "aria": "/document[1]/heading[1]" }, "message": "Content is not within a landmark element", "bounds": { "left": 24, "top": 100, "height": 128, "width": 287 }, "snippet": "<h1>", "level": "violation" }, { "ruleId": "Rpt_Aria_ContentinfoWithNoMain_Implicit", "path": { "dom": "/html[1]/body[1]/footer[1]", "aria": "/document[1]/contentinfo[1]" }, "message": "The element with \"contentinfo\" role is present without an element with \"main\" role", "bounds": { "left": 0, "top": 5881, "height": 320, "width": 800 }, "snippet": "<footer class=\"footer\">", "level": "recommendation" }, { "ruleId": "element_attribute_deprecated", "path": { "dom": "/html[1]/head[1]/meta[2]", "aria": "/document[1]" }, "message": "The HTML attribute(s) \"http-equiv\" is deprecated for the <meta> element in HTML 5", "bounds": { "left": 0, "top": 0, "height": 0, "width": 0 }, "snippet": "<meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\">", "level": "recommendation" }, { "ruleId": "aria_role_redundant", "path": { "dom": "/html[1]/body[1]/nav[1]", "aria": "/document[1]/navigation[1]" }, "message": "The explicitly-assigned ARIA role \"navigation\" is redundant with the implicit role of the element <nav>", "bounds": { "left": 0, "top": 0, "height": 53, "width": 800 }, "snippet": "<nav aria-label=\"main navigation\" role=\"navigation\" class=\"navbar signal-navbar is-fixed-top\">", "level": "recommendation" } ] }, "success": true }, "endTime": 1664723041915 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723041915, "endTime": 1664723042492 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723042492, "result": "https://signal.org/", "endTime": 1664723043376 }, { "type": "test", "which": "nuVal", "what": "failures to pass the Nu Html Checker", "startTime": 1664723043376, "url": "https://signal.org/", "result": { "messages": [ { "type": "info", "lastLine": 1, "lastColumn": 8653, "firstColumn": 8560, "subType": "warning", "message": "The navigation role is unnecessary for element nav.", "extract": "ixed-top\"><nav class=\"navbar signal-navbar is-fixed-top\" role=\"navigation\" aria-label=\"main navigation\"><div c", "hiliteStart": 10, "hiliteLength": 94 }, { "type": "error", "lastLine": 1, "lastColumn": 8843, "firstColumn": 8724, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "#signal\"> <img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\"> </a> ", "hiliteStart": 10, "hiliteLength": 120 }, { "type": "info", "lastLine": 1, "lastColumn": 10258, "firstColumn": 10226, "subType": "warning", "message": "Section lacks heading. Consider using h2-h6 elements to add identifying headings to all sections, or else use a div element instead for any cases where no heading is needed.", "extract": "></header><section class=\"modal-card-body\"><div a", "hiliteStart": 10, "hiliteLength": 33 }, { "type": "error", "lastLine": 1, "lastColumn": 14809, "firstColumn": 14669, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "enshots\"> <img class=\"screenshot1\" src=\"/assets/features/iphone-screenshot-light-96ad4bb227af002ce31138a8f30771e6c8fea2ae99db939f7921f93ae6e8a531.png\"> <img ", "hiliteStart": 10, "hiliteLength": 141 }, { "type": "error", "lastLine": 1, "lastColumn": 14950, "firstColumn": 14811, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "531.png\"> <img class=\"screenshot2\" src=\"/assets/features/pixel-screenshot-light-3f773957fb9e743250d07d7ce63ce68f5d16f6d161913f015425b1d7df9d8bcc.png\"></div>", "hiliteStart": 10, "hiliteLength": 140 }, { "type": "error", "lastLine": 1, "lastColumn": 15246, "firstColumn": 15138, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "mn is-2\"> <img src=\"/assets/testimonials/snowden-e54d914f15e0becb358d375451978bbb5a307d12a6b91b49cdc1031fd062a0b8.jpg\"></div>", "hiliteStart": 10, "hiliteLength": 109 }, { "type": "error", "lastLine": 1, "lastColumn": 15595, "firstColumn": 15488, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "mn is-2\"> <img src=\"/assets/testimonials/dorsey-f2c53cc9287633aac7c8ccfbc2a97902ae3b78edc409073a968e7090240cd593.jpg\"></div>", "hiliteStart": 10, "hiliteLength": 108 }, { "type": "error", "lastLine": 1, "lastColumn": 16160, "firstColumn": 16052, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "mn is-2\"> <img src=\"/assets/testimonials/poitras-e8c538d3efb17cffba9fe675b291d7787c9a70cf4ae06ba836e852b26b3c1b13.jpg\"></div>", "hiliteStart": 10, "hiliteLength": 109 }, { "type": "error", "lastLine": 1, "lastColumn": 16612, "firstColumn": 16503, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "mn is-2\"> <img src=\"/assets/testimonials/schneier-c24b9a5a1aebd05202b96f20b20357dd0e121f73de06fecb10653a6f778a2680.jpg\"></div>", "hiliteStart": 10, "hiliteLength": 110 }, { "type": "info", "lastLine": 1, "lastColumn": 15026, "firstColumn": 14985, "subType": "warning", "message": "Section lacks heading. Consider using h2-h6 elements to add identifying headings to all sections, or else use a div element instead for any cases where no heading is needed.", "extract": "</section><section class=\"quotes section is-medium\"><div c", "hiliteStart": 10, "hiliteLength": 42 }, { "type": "error", "lastLine": 1, "lastColumn": 18276, "firstColumn": 18174, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "ss=\"box\"> <img src=\"/assets/features/Media-9ebea788426f7eabd9756d3f5ec12a5b97b47b6fa8918cdff0004777f27e1fa3.png\"><h3>Sa", "hiliteStart": 10, "hiliteLength": 103 }, { "type": "error", "lastLine": 1, "lastColumn": 18641, "firstColumn": 18539, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "ss=\"box\"> <img src=\"/assets/features/Calls-7d9c94d0e1937d6c9f265dcfd68b4d977d681f974a36f36bf14d1ae1beeadf12.png\"><h3>Sp", "hiliteStart": 10, "hiliteLength": 103 }, { "type": "error", "lastLine": 1, "lastColumn": 19028, "firstColumn": 18923, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "ss=\"box\"> <img src=\"/assets/features/Stickers-51967388a365dff9f56b8c11b02e461a3a598a500f825d751a93c9e16e9f7800.png\"><h3>Ma", "hiliteStart": 10, "hiliteLength": 106 }, { "type": "error", "lastLine": 1, "lastColumn": 19386, "firstColumn": 19283, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "ss=\"box\"> <img src=\"/assets/features/Groups-2009b23758fe4fb3f6bb8e6cf61e41dedbeaa0a92b7734191a8565d2d7ee3cfc.png\"><h3>Ge", "hiliteStart": 10, "hiliteLength": 104 }, { "type": "error", "lastLine": 1, "lastColumn": 19773, "firstColumn": 19670, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "\"column\"> <img src=\"/assets/features/No-Ads-3d8c77d5daeadd4c02fd3f4343745812fd4f79406a01b4924cf53549957297e0.png\"></div>", "hiliteStart": 10, "hiliteLength": 104 }, { "type": "error", "lastLine": 1, "lastColumn": 20298, "firstColumn": 20189, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "desktop\"> <img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\"></div>", "hiliteStart": 10, "hiliteLength": 110 }, { "type": "error", "lastLine": 1, "lastColumn": 20822, "firstColumn": 20713, "message": "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.", "extract": "t-right\"> <img src=\"/assets/features/Nonprofit503-876fb51a00d7d9de8a2c23f94394278191947bd56a8048df5d0138cde497332f.png\"></div>", "hiliteStart": 10, "hiliteLength": 110 }, { "type": "info", "lastLine": 1, "lastColumn": 22697, "firstColumn": 22561, "subType": "warning", "message": "The type attribute is unnecessary for JavaScript resources.", "extract": "></footer><script type=\"text/javascript\" src=\"/assets/vendor/jquery-3.5.1.min-a6ed45d15e46615f8c15931ca254e398a912e770b10122a4435529a1a523180d.js\"></scri", "hiliteStart": 10, "hiliteLength": 137 }, { "type": "info", "lastLine": 1, "lastColumn": 22851, "firstColumn": 22708, "subType": "warning", "message": "The type attribute is unnecessary for JavaScript resources.", "extract": "</script> <script type=\"text/javascript\" src=\"/assets/vendor/lottie-player-0.5.1.min-7b15c2adfdb246be3414fb8d6966f54c06cc82f090a5d23c77f079de4c16fef3.js\"></scri", "hiliteStart": 10, "hiliteLength": 144 }, { "type": "info", "lastLine": 1, "lastColumn": 22892, "firstColumn": 22862, "subType": "warning", "message": "The type attribute is unnecessary for JavaScript resources.", "extract": "</script> <script type=\"text/javascript\"> const", "hiliteStart": 10, "hiliteLength": 31 } ], "language": "en", "success": true }, "endTime": 1664723043574 }, { "type": "test", "which": "wave", "reportType": 4, "what": "WAVE", "startTime": 1664723043575, "url": "https://signal.org/", "result": { "status": { "success": true, "httpstatuscode": 200 }, "statistics": { "pagetitle": "Signal >> Home", "pageurl": "https://signal.org/", "time": 2.12, "creditsremaining": 662, "allitemcount": 46, "totalelements": 375, "waveurl": "http://wave.webaim.org/report?url=https://signal.org/" }, "categories": { "error": { "description": "Errors", "count": 16, "items": { "alt_missing": { "id": "alt_missing", "description": "Missing alternative text", "count": 13, "selectors": [ "HTML > BODY#signal > NAV:first-child + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > DIV:first-child + DIV > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > DIV:first-child + DIV > IMG:first-child + IMG", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child + DIV > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION > DIV:first-child > DIV:first-child + DIV > DIV:first-child > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION > DIV:first-child > DIV:first-child + DIV > DIV:first-child + DIV > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child + DIV > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child + DIV > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child + DIV > DIV:first-child + DIV > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child > IMG:first-child", "HTML > BODY#signal > NAV:first-child + SECTION + SECTION + SECTION + SECTION + SECTION + SECTION + SECTION > DIV:first-child > DIV:first-child > DIV:first-child + DIV + DIV > IMG:first-child" ], "wcag": [ { "name": "1.1.1 Non-text Content (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc1.1.1" } ] }, "alt_link_missing": { "id": "alt_link_missing", "description": "Linked image missing alternative text", "count": 1, "selectors": [ "HTML > BODY#signal > NAV:first-child > DIV:first-child > DIV:first-child > A:first-child > IMG:first-child" ], "wcag": [ { "name": "1.1.1 Non-text Content (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc1.1.1" }, { "name": "2.4.4 Link Purpose (In Context) (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.4" } ] }, "link_empty": { "id": "link_empty", "description": "Empty link", "count": 2, "selectors": [ "HTML > BODY#signal > NAV:first-child > DIV:first-child > DIV#signalNavbar > DIV:first-child > A:first-child + A + A + A + A + A + A", "HTML > BODY#signal > NAV:first-child > DIV:first-child > DIV#signalNavbar > DIV:first-child > A:first-child + A + A + A + A + A + A + A" ], "wcag": [ { "name": "2.4.4 Link Purpose (In Context) (Level A)", "link": "https://webaim.org/standards/wcag/checklist#sc2.4.4" } ] } } }, "contrast": { "description": "Contrast Errors", "count": 0, "items": [] }, "alert": { "description": "Alerts", "count": 1, "items": { "heading_possible": { "id": "heading_possible", "description": "Possible heading", "count": 1, "selectors": [ "HTML > BODY#signal > NAV:first-child > DIV:first-child > DIV#signalNavbar > DIV:first-child > DIV#language-selector-modal > DIV:first-child + DIV > HEADER:first-child > P: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" } ] } } } }, "success": true }, "endTime": 1664723046042 }, { "type": "launch", "which": "chromium", "what": "chromium browser", "startTime": 1664723046042, "endTime": 1664723046615 }, { "type": "url", "which": "https://signal.org/", "what": "URL", "startTime": 1664723046615, "result": "https://signal.org/", "endTime": 1664723047495 }, { "type": "test", "which": "tenon", "id": "a", "what": "Tenon", "startTime": 1664723047495, "url": "https://signal.org/", "result": { "status": 200, "message": "OK", "code": "success", "info": "Success", "moreInfo": "https://tenon.io/documentation/apiv2/response-codes#success", "responseExecTime": "0.066", "responseTime": "2022-10-02T15:04:07.996Z", "data": { "apiErrors": [], "documentSize": 997114, "metadata": null, "resultSummary": { "tests": { "total": 180, "passing": 173, "failing": 7 }, "issues": { "totalErrors": 30, "totalWarnings": 0, "totalIssues": 30 }, "issuesByLevel": { "A": { "count": 14, "pct": 46.67 }, "AA": { "count": 6, "pct": 20 }, "AAA": { "count": 30, "pct": 100 } }, "density": { "errorDensity": 3, "warningDensity": 0, "allDensity": 3 } }, "projectID": "E4B12DC9-2F67-8DB7-26C9-E50C8490", "responseID": "4860a028-f4c7-45b2-95d1-84cbd9cce081", "docID": "25a6efe4-21f6-4512-919d-6d4c07fee803", "sourceHash": "1ece0dba5d41cd065fcebd7dfa0f3897", "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=4860a028-f4c7-45b2-95d1-84cbd9cce081", "resultSet": [ { "tID": 57, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link has no text inside it.", "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 inside of a link informs the user of the purpose or destination of the link. Because this link has no text, users will not know what the link does or where it takes them when they activate the link. This poses problems for users of screenreaders and voice dictation. Add text within this link to make it usable and understandable for all users", "viewPortLocation": { "top-left": { "x": -12, "y": 1 }, "bottom-right": { "x": 138, "y": 51 }, "height": 50, "width": 150 }, "position": { "line": 110, "column": 0 }, "errorSnippet": "<a href=\"/#signal\"> <img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\"> </a>", "xpath": "/html/body/nav[1]/div[1]/div[1]/a[1]", "issueID": "fc1473635e31c1b82bcf756a016f0554", "signature": "792e7929303f66f49abebb6143680031", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=57&issueID=fc1473635e31c1b82bcf756a016f0554" }, { "tID": 57, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link has no text inside it.", "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 inside of a link informs the user of the purpose or destination of the link. Because this link has no text, users will not know what the link does or where it takes them when they activate the link. This poses problems for users of screenreaders and voice dictation. Add text within this link to make it usable and understandable for all users", "viewPortLocation": { "top-left": { "x": 834, "y": 0 }, "bottom-right": { "x": 846, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\"><i class=\"icon icon-twitter\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[7]", "issueID": "bb86f6673f540df02370126390413178", "signature": "9926bd8282f92bd43bd9e38229f08c5f", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=57&issueID=bb86f6673f540df02370126390413178" }, { "tID": 57, "bpID": 106, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "This link has no text inside it.", "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 inside of a link informs the user of the purpose or destination of the link. Because this link has no text, users will not know what the link does or where it takes them when they activate the link. This poses problems for users of screenreaders and voice dictation. Add text within this link to make it usable and understandable for all users", "viewPortLocation": { "top-left": { "x": 870, "y": 0 }, "bottom-right": { "x": 882, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\"><i class=\"icon icon-instagram\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[8]", "issueID": "29a60469b9a0ee194bd072aec38fe95a", "signature": "6be7097c8d70f37113b6cc8a3029ff19", "ref": "https://tenon.io/bestpractice.php?bpID=106&tID=57&issueID=29a60469b9a0ee194bd072aec38fe95a" }, { "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": 836.421875, "y": 47 }, "bottom-right": { "x": 895.421875, "y": 67 }, "height": 20, "width": 59 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<a href=\"https://support.signal.org/\">Support</a>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[5]/ul[1]/li[1]/a[1]", "issueID": "dfe6091ac61800e3b409545f2deffcfb", "signature": "bbb46a64c77879653d770b575c559a66", "ref": "https://tenon.io/bestpractice.php?bpID=105&tID=98&issueID=dfe6091ac61800e3b409545f2deffcfb" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 0, "y": 284 }, "bottom-right": { "x": 369.594, "y": 396 }, "height": 112, "width": 369.594 }, "position": { "line": 2941, "column": 138 }, "errorSnippet": "<p class=\"body1\">Say \"hello\" to a different messaging experience. An unexpected focus on privacy, combined with all of the features you expect.</p>", "xpath": "/html/body/section[1]/div[1]/div[1]/div[1]/div[1]/p[1]", "issueID": "e872e95a82829d3bc453e0f51d4f5dfb", "signature": "7a1a4b18fb70c49bde5056868015bd9e", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=e872e95a82829d3bc453e0f51d4f5dfb" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 574, "y": 12 }, "bottom-right": { "x": 960, "y": 300 }, "height": 288, "width": 386 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<blockquote> \"I trust Signal because it’s well built, but more importantly, because of how it’s built: open source, peer reviewed, and funded entirely by grants and donations. A refreshing model for how critical services should be built.\"</block", "xpath": "/html/body/section[2]/div[1]/div[1]/div[2]/div[1]/div[2]/blockquote[1]", "issueID": "2bd5aa758bc3fd3f6cf135f8e759162c", "signature": "0da406d8655e2bae9b7b63b1ce97d314", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=2bd5aa758bc3fd3f6cf135f8e759162c" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 82, "y": 436 }, "bottom-right": { "x": 468, "y": 596 }, "height": 160, "width": 386 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<blockquote> \"Signal is the most scalable encryption tool we have. It is free and peer reviewed. I encourage people to use it everyday.\"</blockquote>", "xpath": "/html/body/section[2]/div[1]/div[2]/div[1]/div[1]/div[2]/blockquote[1]", "issueID": "0791581f889620876b4a43090d46f699", "signature": "37e4db66b2337641db24bc0446bfcd92", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=0791581f889620876b4a43090d46f699" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 574, "y": 436 }, "bottom-right": { "x": 960, "y": 660 }, "height": 224, "width": 386 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<blockquote> \"I am regularly impressed with the thought and care put into both the security and the usability of this app. It's my first choice for an encrypted conversation.\"</blockquote>", "xpath": "/html/body/section[2]/div[1]/div[2]/div[2]/div[1]/div[2]/blockquote[1]", "issueID": "da65aa2637d8c9a1892735f6cfde6899", "signature": "005fe37df00545da56d5219973ced65e", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=da65aa2637d8c9a1892735f6cfde6899" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": -24, "y": 132 }, "bottom-right": { "x": 279.984, "y": 440 }, "height": 308, "width": 303.984 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body1\"> State-of-the-art end-to-end encryption (powered by the open source Signal Protocol) keeps your conversations secure. We can't read your messages or listen to your calls, and no one else can either. Privacy isn’t an optional mode —", "xpath": "/html/body/section[4]/div[1]/div[1]/div[2]/p[1]", "issueID": "40125e2ccdc9b0206b3b5b7117b8657d", "signature": "29914d2f8b86ae7e7ab2f13658d92872", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=40125e2ccdc9b0206b3b5b7117b8657d" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 30, "y": 472 }, "bottom-right": { "x": 438, "y": 538 }, "height": 66, "width": 408 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body2\">Share text, voice messages, photos, videos, GIFs and files for free. Signal uses your phone's data connection so you can avoid SMS and MMS fees.</p>", "xpath": "/html/body/section[5]/div[1]/div[1]/div[1]/div[1]/p[1]", "issueID": "98178ac41dac9a2988364d98fd51f0f5", "signature": "952431a4d97af91e15fd86f177adbb7a", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=98178ac41dac9a2988364d98fd51f0f5" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 522, "y": 472 }, "bottom-right": { "x": 930, "y": 538 }, "height": 66, "width": 408 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body2\">Make crystal-clear voice and video calls to people who live across town, or across the ocean, with no long-distance charges.</p>", "xpath": "/html/body/section[5]/div[1]/div[1]/div[2]/div[1]/p[1]", "issueID": "e33693885ea149cbab6479cedb82bbbe", "signature": "c7bbb748817934f3ee8d0cb571df5d69", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=e33693885ea149cbab6479cedb82bbbe" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 30, "y": 1054 }, "bottom-right": { "x": 438, "y": 1120 }, "height": 66, "width": 408 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body2\">Add a new layer of expression to your conversations with encrypted stickers. You can also create and share your own sticker packs.</p>", "xpath": "/html/body/section[5]/div[1]/div[2]/div[1]/div[1]/p[1]", "issueID": "2f0aa1bbaddf11b8d7421c66af10fd24", "signature": "0d432c368cb69e040d890508e55c0923", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=2f0aa1bbaddf11b8d7421c66af10fd24" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 0, "y": 176 }, "bottom-right": { "x": 303.984, "y": 344 }, "height": 168, "width": 303.984 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body1\"> There are no ads, no affiliate marketers, and no creepy tracking in Signal. So focus on sharing the moments that matter with the people who matter to you.</p>", "xpath": "/html/body/section[6]/div[1]/div[1]/div[2]/p[1]", "issueID": "5ca2fb87f4d73cac132d8e1cdb0f59e6", "signature": "967b3a6d2c92d1bcd5009bf0bf496cf1", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=5ca2fb87f4d73cac132d8e1cdb0f59e6" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 656.015625, "y": 132 }, "bottom-right": { "x": 959.9996249999999, "y": 406 }, "height": 274, "width": 303.984 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<p class=\"body1\"> Signal is an independent nonprofit. We're not tied to any major tech companies, and we can never be acquired by one either. Development is supported by grants and donations from people like you. <br> <br> <a class=\"", "xpath": "/html/body/section[7]/div[1]/div[1]/div[2]/p[1]", "issueID": "d6bf21fc48f02a42eb6bca57de7cfec6", "signature": "70feb11ecc8e828e853ac349c8571021", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=d6bf21fc48f02a42eb6bca57de7cfec6" }, { "tID": 144, "bpID": 14, "priority": 91, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This content's line height is insufficent to properly display the computed element font size.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 1.4.8 Visual Presentation" ], "resultTitle": "Set a `line-height` (leading) that is at least one and a half times the current font size.", "errorDescription": "This content's line height is insufficent to properly display the computed element font size. Line height that is less than 150% of the computed element font size limits content readability for people with dyslexia, low vision, cognitive impairments or learning disabilities. Set the `line-height` for this content to a value of 1.5 or higher. Using a proportional, unitless value like 1.5 or 150% will ensure that the line-height scales if the user zooms the browser window.", "viewPortLocation": { "top-left": { "x": 0, "y": 5195.140625 }, "bottom-right": { "x": 976, "y": 5339.140625 }, "height": 144, "width": 976 }, "position": { "line": 6833, "column": 344 }, "errorSnippet": "<footer class=\"footer\"><div class=\"container\"><div class=\"columns\"><div class=\"column is-two-fifths is-hidden-mobile\"> <span class=\"copyright\">© 2013–2022 Signal, a 501c3 nonprofit.</span><br> Signal is a registe", "xpath": "/html/body/footer[1]", "issueID": "7ad1012d9a873aee63bcab898e8f7bd5", "signature": "220d66d8b70d1ce8fd497ccff936cf9e", "ref": "https://tenon.io/bestpractice.php?bpID=14&tID=144&issueID=7ad1012d9a873aee63bcab898e8f7bd5" }, { "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": -12, "y": 1 }, "bottom-right": { "x": 138, "y": 51 }, "height": 50, "width": 150 }, "position": { "line": 110, "column": 0 }, "errorSnippet": "<a href=\"/#signal\"> <img class=\"signal-logo\" src=\"/assets/header/logo-f7ef605fe417d5520d38d546b3b774b4261c75220b9904da4d8b2ffc19a761ff.png\"> </a>", "xpath": "/html/body/nav[1]/div[1]/div[1]/a[1]", "issueID": "0c91be7bbf032b3912c63a074bd99e6b", "signature": "5ecbc44c0a846e9030c6e0293440e974", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=0c91be7bbf032b3912c63a074bd99e6b" }, { "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": 834, "y": 0 }, "bottom-right": { "x": 846, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\"><i class=\"icon icon-twitter\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[7]", "issueID": "36c993e7590e88b7ff49e234f752d401", "signature": "52356ea8e30d425e9af42b59f8ee3fcf", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=36c993e7590e88b7ff49e234f752d401" }, { "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": 870, "y": 0 }, "bottom-right": { "x": 882, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\"><i class=\"icon icon-instagram\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[8]", "issueID": "c9cb1183f066ecbdca8433eba62ecf71", "signature": "2a82f2d16e2f3764d08ec93eb1a8db52", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=c9cb1183f066ecbdca8433eba62ecf71" }, { "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": 156, "y": -16 }, "height": -16, "width": 156 }, "position": { "line": 4343, "column": 34 }, "errorSnippet": "<a class=\"navbar-item\" data-lang=\"ja\" href=\"/ja/\">日本語</a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/div[1]/div[2]/section[1]/div[1]/a[27]", "issueID": "99d5ce3390df2d5f39cb29b9ae08b459", "signature": "4c2f642ebaea2a845288bb24748b54b6", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=99d5ce3390df2d5f39cb29b9ae08b459" }, { "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": 156, "y": -16 }, "height": -16, "width": 156 }, "position": { "line": 4415, "column": 33 }, "errorSnippet": "<a class=\"navbar-item\" data-lang=\"ko\" href=\"/ko/\">한국어</a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/div[1]/div[2]/section[1]/div[1]/a[31]", "issueID": "f6b9cd810ab9470fb1be01528f6f3a1d", "signature": "f595e07416e073d64e1703df7ff362a9", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=f6b9cd810ab9470fb1be01528f6f3a1d" }, { "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": 541.203125, "y": 113 }, "bottom-right": { "x": 574.203125, "y": 133 }, "height": 20, "width": 33 }, "position": { "line": 7325, "column": 0 }, "errorSnippet": "<a href=\"/download/macos\">Mac</a>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[3]/ul[1]/li[4]/a[1]", "issueID": "1cf458b9b41cb4814629dd18e0c9d5e3", "signature": "37aee4f9ddbf98b6e2b86b57834fd6e6", "ref": "https://tenon.io/bestpractice.php?bpID=211&tID=152&issueID=1cf458b9b41cb4814629dd18e0c9d5e3" }, { "tID": 190, "bpID": 73, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "Item(s) with interactive `role` must have `tabindex=\"0\"` unless it is natively actionable.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level A: 2.1.1 Keyboard", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 2.1.3 Keyboard (No Exception)" ], "resultTitle": "Make sure that all interactive elements can receive focus using the keyboard.", "errorDescription": "This element has an ARIA role that is intended for widgets that are used for interaction. However, it lacks a `tabindex` attribute. As a consequence, users who navigate the page via keyboard will be unable to gain focus on this control and will be unable to interact with it with the keyboard. Add `tabindex=\"0\"` to this control. Also ensure that this control responds to all of the necessary key events required of this type of control.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 52, "y": 52 }, "height": 52, "width": 52 }, "position": { "line": 110, "column": 0 }, "errorSnippet": "<a role=\"button\" class=\"navbar-burger burger\" aria-label=\"menu\" aria-expanded=\"false\" data-target=\"signalNavbar\" style=\"\"> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"><", "xpath": "/html/body/nav[1]/div[1]/div[1]/a[2]", "issueID": "bce168ca3ad50fb14088b26ff0f5e7f4", "signature": "22271043e0a0e4514399bb4f9e915f91", "ref": "https://tenon.io/bestpractice.php?bpID=73&tID=190&issueID=bce168ca3ad50fb14088b26ff0f5e7f4" }, { "tID": 218, "bpID": 207, "priority": 88, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This link opens in a new window without user control.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.2.5 Change on Request" ], "resultTitle": "Notify the user when links will open new windows or tabs", "errorDescription": "This link opens in a new window without user control. Opening a new window or new tab unexpectedly can cause confusion for users, particularly for blind users and those with low vision, cogntive impairments or learning disabilities.. Avoid opening links in new windows or tabs. If it is unavoidable, give the user warning via text or a properly marked up and appropriate icon.", "viewPortLocation": { "top-left": { "x": 834, "y": 0 }, "bottom-right": { "x": 846, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://twitter.com/signalapp\" target=\"_blank\"><i class=\"icon icon-twitter\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[7]", "issueID": "cb563fbcbd7f748f7b764f087168d63e", "signature": "7e4a254b854c474d4999221eb057a5cc", "ref": "https://tenon.io/bestpractice.php?bpID=207&tID=218&issueID=cb563fbcbd7f748f7b764f087168d63e" }, { "tID": 218, "bpID": 207, "priority": 88, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This link opens in a new window without user control.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.2.5 Change on Request" ], "resultTitle": "Notify the user when links will open new windows or tabs", "errorDescription": "This link opens in a new window without user control. Opening a new window or new tab unexpectedly can cause confusion for users, particularly for blind users and those with low vision, cogntive impairments or learning disabilities.. Avoid opening links in new windows or tabs. If it is unavoidable, give the user warning via text or a properly marked up and appropriate icon.", "viewPortLocation": { "top-left": { "x": 870, "y": 0 }, "bottom-right": { "x": 882, "y": 36 }, "height": 36, "width": 12 }, "position": { "line": 111, "column": 0 }, "errorSnippet": "<a class=\"navbar-item\" href=\"https://instagram.com/signal_app/\" target=\"_blank\"><i class=\"icon icon-instagram\"></i></a>", "xpath": "/html/body/nav[1]/div[1]/div[2]/div[1]/a[8]", "issueID": "ade49020e7d439d8b4c98b184cefabca", "signature": "dd4f4d18e7f28b804e8cd8bec3d7c37f", "ref": "https://tenon.io/bestpractice.php?bpID=207&tID=218&issueID=ade49020e7d439d8b4c98b184cefabca" }, { "tID": 218, "bpID": 207, "priority": 88, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This link opens in a new window without user control.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.2.5 Change on Request" ], "resultTitle": "Notify the user when links will open new windows or tabs", "errorDescription": "This link opens in a new window without user control. Opening a new window or new tab unexpectedly can cause confusion for users, particularly for blind users and those with low vision, cogntive impairments or learning disabilities.. Avoid opening links in new windows or tabs. If it is unavoidable, give the user warning via text or a properly marked up and appropriate icon.", "viewPortLocation": { "top-left": { "x": 688.8125, "y": 47 }, "bottom-right": { "x": 741.8125, "y": 67 }, "height": 20, "width": 53 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<a href=\"https://github.com/signalapp\" target=\"_blank\">GitHub</a>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[4]/ul[1]/li[1]/a[1]", "issueID": "8a976b2ba8323e1e2fa1ed6c10ee1390", "signature": "05b755d758193f6066ea986d57faf433", "ref": "https://tenon.io/bestpractice.php?bpID=207&tID=218&issueID=8a976b2ba8323e1e2fa1ed6c10ee1390" }, { "tID": 218, "bpID": 207, "priority": 88, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This link opens in a new window without user control.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.2.5 Change on Request" ], "resultTitle": "Notify the user when links will open new windows or tabs", "errorDescription": "This link opens in a new window without user control. Opening a new window or new tab unexpectedly can cause confusion for users, particularly for blind users and those with low vision, cogntive impairments or learning disabilities.. Avoid opening links in new windows or tabs. If it is unavoidable, give the user warning via text or a properly marked up and appropriate icon.", "viewPortLocation": { "top-left": { "x": 688.8125, "y": 69 }, "bottom-right": { "x": 742.8125, "y": 89 }, "height": 20, "width": 54 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<a href=\"https://twitter.com/signalapp\" target=\"_blank\">Twitter</a>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[4]/ul[1]/li[2]/a[1]", "issueID": "d2172d5aa246d84872078cfcd1cf70ec", "signature": "aa73a917355c53b022b4b2534b468023", "ref": "https://tenon.io/bestpractice.php?bpID=207&tID=218&issueID=d2172d5aa246d84872078cfcd1cf70ec" }, { "tID": 218, "bpID": 207, "priority": 88, "level": [ "AAA" ], "certainty": 100, "errorTitle": "This link opens in a new window without user control.", "standards": [ "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.2.5 Change on Request" ], "resultTitle": "Notify the user when links will open new windows or tabs", "errorDescription": "This link opens in a new window without user control. Opening a new window or new tab unexpectedly can cause confusion for users, particularly for blind users and those with low vision, cogntive impairments or learning disabilities.. Avoid opening links in new windows or tabs. If it is unavoidable, give the user warning via text or a properly marked up and appropriate icon.", "viewPortLocation": { "top-left": { "x": 688.8125, "y": 91 }, "bottom-right": { "x": 762.8125, "y": 111 }, "height": 20, "width": 74 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<a href=\"https://www.instagram.com/signal_app/\" target=\"_blank\">Instagram</a>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[4]/ul[1]/li[3]/a[1]", "issueID": "90d0340c4e6ab5fa66e710131b97d4c4", "signature": "dd364223b02c1eb1bb0a692281f8361e", "ref": "https://tenon.io/bestpractice.php?bpID=207&tID=218&issueID=90d0340c4e6ab5fa66e710131b97d4c4" }, { "tID": 242, "bpID": 209, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "Multiple consecutive `<br>` tags next to each other, simulating paragraphs.", "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.9 Link Purpose (Link Only)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.4 Abbreviations", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.5 Reading Level" ], "resultTitle": "Ensure content is easy to read and understand", "errorDescription": "This section of code contains multiple consecutive `<br>` elements, probably used to simulate paragraphs or add whitespace. `<br>` elements are often announced as \"blank\" for users of text-to-speech software, multiple times in sequence, which increases cognitive load for these users. Also, it will not identify these sections as paragraphs. Remove the `<br>` elements. Replace them with `<p>` elements, and use CSS to control whitespace.", "viewPortLocation": { "top-left": { "x": 958.015625, "y": 302 }, "bottom-right": { "x": 958.015625, "y": 302 }, "height": 0, "width": 0 }, "position": { "line": 7517, "column": 0 }, "errorSnippet": "<br>", "xpath": "/html/body/section[7]/div[1]/div[1]/div[2]/p[1]/br[1]", "issueID": "97788033061ff0e12e06886e409673d2", "signature": "4898934aa9cb6a83b2de333b26326cb4", "ref": "https://tenon.io/bestpractice.php?bpID=209&tID=242&issueID=97788033061ff0e12e06886e409673d2" }, { "tID": 242, "bpID": 209, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "Multiple consecutive `<br>` tags next to each other, simulating paragraphs.", "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.9 Link Purpose (Link Only)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.4 Abbreviations", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.5 Reading Level" ], "resultTitle": "Ensure content is easy to read and understand", "errorDescription": "This section of code contains multiple consecutive `<br>` elements, probably used to simulate paragraphs or add whitespace. `<br>` elements are often announced as \"blank\" for users of text-to-speech software, multiple times in sequence, which increases cognitive load for these users. Also, it will not identify these sections as paragraphs. Remove the `<br>` elements. Replace them with `<p>` elements, and use CSS to control whitespace.", "viewPortLocation": { "top-left": { "x": 205, "y": 57 }, "bottom-right": { "x": 205, "y": 57 }, "height": 0, "width": 0 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<br>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[1]/br[2]", "issueID": "a8fa715333bd3fd22de0a3b4efa36f4b", "signature": "99437c5f036645de3265c69e3e34bec3", "ref": "https://tenon.io/bestpractice.php?bpID=209&tID=242&issueID=a8fa715333bd3fd22de0a3b4efa36f4b" }, { "tID": 242, "bpID": 209, "priority": 100, "level": [ "A", "AAA" ], "certainty": 100, "errorTitle": "Multiple consecutive `<br>` tags next to each other, simulating paragraphs.", "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.9 Link Purpose (Link Only)", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.4 Abbreviations", "Web Content Accessibility Guidelines (WCAG) 2.0, Level AAA: 3.1.5 Reading Level" ], "resultTitle": "Ensure content is easy to read and understand", "errorDescription": "This section of code contains multiple consecutive `<br>` elements, probably used to simulate paragraphs or add whitespace. `<br>` elements are often announced as \"blank\" for users of text-to-speech software, multiple times in sequence, which increases cognitive load for these users. Also, it will not identify these sections as paragraphs. Remove the `<br>` elements. Replace them with `<p>` elements, and use CSS to control whitespace.", "viewPortLocation": { "top-left": { "x": 0, "y": 0 }, "bottom-right": { "x": 0, "y": 0 }, "height": 0, "width": 0 }, "position": { "line": 7815, "column": 0 }, "errorSnippet": "<br>", "xpath": "/html/body/footer[1]/div[1]/div[1]/div[6]/br[2]", "issueID": "18c7e1595fcc711a5d9612fd5bd862a0", "signature": "daf17c637a7e7a88bd3c99a5347dc3b8", "ref": "https://tenon.io/bestpractice.php?bpID=209&tID=242&issueID=18c7e1595fcc711a5d9612fd5bd862a0" } ], "log": [] }, "success": true }, "endTime": 1664723047996 } ], "timeStamp": "69jmj", "startTime": "2022-10-02T15:02:56", "presses": 0, "amountRead": 0, "testTimes": [ [ "hover", 27 ], [ "motion", 13 ], [ "alfa", 4 ], [ "ibm", 3 ], [ "wave", 2 ], [ "focInd", 1 ], [ "axe", 1 ], [ "tenon", 1 ], [ "allHidden", 0 ], [ "bulk", 0 ], [ "docType", 0 ], [ "embAc", 0 ], [ "focAll", 0 ], [ "focOp", 0 ], [ "focVis", 0 ], [ "labClash", 0 ], [ "linkTo", 0 ], [ "linkUl", 0 ], [ "menuNav", 0 ], [ "miniText", 0 ], [ "nonTable", 0 ], [ "radioSet", 0 ], [ "role", 0 ], [ "styleDiff", 0 ], [ "tabNav", 0 ], [ "titledEl", 0 ], [ "zIndex", 0 ], [ "continuum", 0 ], [ "htmlcs", 0 ], [ "nuVal", 0 ] ], "logCount": 0, "logSize": 0, "errorLogCount": 0, "errorLogSize": 0, "prohibitedCount": 0, "visitTimeoutCount": 0, "visitRejectionCount": 0, "visitLatency": 12, "endTime": "2022-10-02T15:04:08", "elapsedSeconds": 71, "score": { "scoreProcID": "sp16a", "logWeights": { "logCount": 0.5, "logSize": 0.01, "errorLogCount": 1, "errorLogSize": 0.02, "prohibitedCount": 15, "visitTimeoutCount": 10, "visitRejectionCount": 10, "visitLatency": 1 }, "soloWeight": 2, "groupWeights": { "absolute": 2, "largest": 1, "smaller": 0.4 }, "preventionWeights": { "testaro": 50, "other": 100 }, "packageDetails": { "testaro": { "focInd": 2, "linkUl": 152, "role": 5, "styleDiff": 2, "zIndex": 2 }, "alfa": { "r11": 12, "r14": 4, "r2": 52, "r73": 36, "r74": 36, "r80": 36, "r87": 1 }, "axe": { "hidden-content": 0, "aria-allowed-attr": 18, "color-contrast-enhanced": 6, "image-alt": 52, "label-content-name-mismatch": 3, "landmark-one-main": 2, "link-name": 9, "region": 16 }, "continuum": { "89": 52, "123": 4, "237": 12 }, "htmlcs": { "e:AA.1_1_1.H30.2": 4, "e:AA.1_1_1.H37": 48, "e:AA.4_1_2.H91.A.NoContent": 8, "w:AA.1_3_1.H48": 3, "w:AA.1_4_10.C32,C31,C33,C38,SCR34,G206": 2, "w:AA.2_5_3.F96": 1 }, "ibm": { "WCAG21_Label_Accessible": 4, "WCAG20_Img_HasAlt": 56, "WCAG20_A_HasText": 12, "Rpt_Aria_OrphanedContent_Native_Host_Sematics": 60, "Rpt_Aria_ContentinfoWithNoMain_Implicit": 1, "element_attribute_deprecated": 1, "aria_role_redundant": 1 }, "nuVal": { "The navigation role is unnecessary for element nav.": 1, "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.": 56, "Section lacks heading. Consider using h2-h6 elements to add identifying headings to all sections, or else use a div element instead for any cases where no heading is needed.": 2, "The type attribute is unnecessary for JavaScript resources.": 3 }, "wave": { "e:alt_missing": 52, "e:alt_link_missing": 4, "e:link_empty": 8, "a:heading_possible": 1 }, "tenon": { "57": 12, "98": 4, "144": 44, "152": 24, "190": 4, "218": 20, "242": 12 } }, "groupDetails": { "groups": { "focusIndication": { "testaro": { "focInd": { "score": 2, "what": "Focused element displaying no or nostandard focus indicator" } } }, "linkIndication": { "testaro": { "linkUl": { "score": 76, "what": "Non-underlined adjacent links" } } }, "roleBad": { "testaro": { "role": { "score": 4, "what": "Nonexistent or implicit-overriding role" } }, "ibm": { "Rpt_Aria_ContentinfoWithNoMain_Implicit": { "score": 1, "what": "Element has a contentinfo role when no element has a main role" } } }, "inconsistentStyles": { "testaro": { "styleDiff": { "score": 1, "what": "Heading, link, and button style inconsistencies" } } }, "zIndexNotZero": { "testaro": { "zIndex": { "score": 1, "what": "Layering with nondefault z-index values" } } }, "linkNoText": { "alfa": { "r11": { "score": 12, "what": "Link has no accessible name" } }, "axe": { "link-name": { "score": 9, "what": "Link has no discernible text" } }, "continuum": { "237": { "score": 12, "what": "a element has no mechanism that allows an accessible name value to be calculated" } }, "htmlcs": { "e:AA.1_1_1.H30.2": { "score": 4, "what": "img element is the only link content but has no text alternative" }, "e:AA.4_1_2.H91.A.NoContent": { "score": 8, "what": "Link has an href attribute but no text" } }, "ibm": { "WCAG20_A_HasText": { "score": 12, "what": "Hyperlink has no text description" } }, "wave": { "e:alt_link_missing": { "score": 4, "what": "Linked image has no text alternative" }, "e:link_empty": { "score": 8, "what": "Link contains no text" } }, "tenon": { "57": { "score": 12, "what": "Link has no text inside it" } } }, "visibleLabelNotName": { "alfa": { "r14": { "score": 3, "what": "Visible label is not in the accessible name" } }, "axe": { "label-content-name-mismatch": { "score": 2, "what": "Element visible text is not part of its accessible name" } }, "htmlcs": { "w:AA.2_5_3.F96": { "score": 1, "what": "Visible label is not in the accessible name" } }, "ibm": { "WCAG21_Label_Accessible": { "score": 3, "what": "Accessible name does not match or contain the visible label text" } } }, "imageNoText": { "alfa": { "r2": { "score": 52, "what": "Image has no accessible name" } }, "axe": { "image-alt": { "score": 52, "what": "Image has no text alternative" } }, "continuum": { "89": { "score": 52, "what": "img element has no mechanism that allows an accessible name to be calculated" } }, "htmlcs": { "e:AA.1_1_1.H37": { "score": 48, "what": "img element has no alt attribute" } }, "ibm": { "WCAG20_Img_HasAlt": { "score": 56, "what": "Image has no alt attribute conveying its meaning, or alt=\"\" if decorative" } }, "nuVal": { "An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.": { "score": 56, "what": "img element has no alt attribute" } }, "wave": { "e:alt_missing": { "score": 52, "what": "Text alternative is missing" } } }, "leadingInsufficient": { "alfa": { "r73": { "score": 18, "what": "Paragraph of text has insufficient line height" } } }, "fontSizeAbsolute": { "alfa": { "r74": { "score": 18, "what": "Paragraph text has an absolute font size" } } }, "leadingAbsolute": { "alfa": { "r80": { "score": 18, "what": "Paragraph text has an absolute line height" } } }, "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": 18, "what": "ARIA attribute is invalid for the role of its element" } } }, "contrastAAA": { "axe": { "color-contrast-enhanced": { "score": 2, "what": "Element has insufficient color contrast (Level AAA)" } } }, "mainNot1": { "axe": { "landmark-one-main": { "score": 1, "what": "page has no main landmark" } } }, "contentBeyondLandmarks": { "axe": { "region": { "score": 8, "what": "Some page content is not contained by landmarks" } }, "ibm": { "Rpt_Aria_OrphanedContent_Native_Host_Sematics": { "score": 30, "what": "Content does not reside within an element with a landmark role" } } }, "svgImageNoText": { "continuum": { "123": { "score": 4, "what": "svg element has no mechanism that allows an accessible name to be calculated" } } }, "pseudoNavListRisk": { "htmlcs": { "w:AA.1_3_1.H48": { "score": 1, "what": "Navigation links are not coded as a list" } } }, "scrollRisk": { "htmlcs": { "w:AA.1_4_10.C32,C31,C33,C38,SCR34,G206": { "score": 1, "what": "Fixed-position element may force bidirectional scrolling" } } }, "obsolete": { "ibm": { "element_attribute_deprecated": { "score": 1, "what": "Element or attribute is obsolete" } } }, "roleRedundant": { "ibm": { "aria_role_redundant": { "score": 1, "what": "Explicitly assigned ARIA role is redundant with the implicit role of the element" } }, "nuVal": { "^The .+ role is unnecessary for element .+$": { "score": 1, "what": "explicit role is redundant for its element" } } }, "sectionHeadingless": { "nuVal": { "Section lacks heading. Consider using h2-h6 elements to add identifying headings to all sections, or else use a div element instead for any cases where no heading is needed.": { "score": 1, "what": "section has no heading" } } }, "typeRedundant": { "nuVal": { "The type attribute is unnecessary for JavaScript resources.": { "score": 1, "what": "type attribute is unnecessary for a JavaScript resource" } } }, "pseudoHeadingRisk": { "wave": { "a:heading_possible": { "score": 1, "what": "Possible heading" } } }, "linkTextsSame": { "tenon": { "98": { "score": 2, "what": "Links have the same text but different destinations" } } }, "leadingClipsText": { "tenon": { "144": { "score": 44, "what": "Line height is insufficent to properly display the computed font size" } } }, "targetSize": { "tenon": { "152": { "score": 18, "what": "Actionable element is smaller than the minimum required size" } } }, "tabIndexMissing": { "tenon": { "190": { "score": 4, "what": "Interactive item is not natively actionable, but has no tabindex=0 attribute" } } }, "linkForcesNewWindow": { "tenon": { "218": { "score": 15, "what": "Link opens in a new window without user control" } } }, "pseudoParagraphRisk": { "tenon": { "242": { "score": 3, "what": "Multiple consecutive br elements may simulate paragraphs" } } } }, "solos": {} }, "preventionScores": {}, "summary": { "total": 578, "log": -1, "preventions": 0, "solos": 0, "groups": [ { "groupName": "imageNoText", "score": 183 }, { "groupName": "linkIndication", "score": 78 }, { "groupName": "leadingClipsText", "score": 46 }, { "groupName": "linkNoText", "score": 42 }, { "groupName": "contentBeyondLandmarks", "score": 35 }, { "groupName": "leadingInsufficient", "score": 20 }, { "groupName": "fontSizeAbsolute", "score": 20 }, { "groupName": "leadingAbsolute", "score": 20 }, { "groupName": "ariaBadAttribute", "score": 20 }, { "groupName": "targetSize", "score": 20 }, { "groupName": "linkForcesNewWindow", "score": 17 }, { "groupName": "visibleLabelNotName", "score": 7 }, { "groupName": "roleBad", "score": 6 }, { "groupName": "svgImageNoText", "score": 6 }, { "groupName": "tabIndexMissing", "score": 6 }, { "groupName": "pseudoParagraphRisk", "score": 5 }, { "groupName": "focusIndication", "score": 4 }, { "groupName": "contrastAAA", "score": 4 }, { "groupName": "linkTextsSame", "score": 4 }, { "groupName": "inconsistentStyles", "score": 3 }, { "groupName": "zIndexNotZero", "score": 3 }, { "groupName": "skipRepeatedContent", "score": 3 }, { "groupName": "hiddenContentRisk", "score": 3 }, { "groupName": "mainNot1", "score": 3 }, { "groupName": "pseudoNavListRisk", "score": 3 }, { "groupName": "scrollRisk", "score": 3 }, { "groupName": "obsolete", "score": 3 }, { "groupName": "roleRedundant", "score": 3 }, { "groupName": "sectionHeadingless", "score": 3 }, { "groupName": "typeRedundant", "score": 3 }, { "groupName": "pseudoHeadingRisk", "score": 3 } ] } }, "scoreProcID": "sp16a" }