Accessibility digest
Contents
Page | Ted Brown;Libertarian;Texas |
---|---|
URL | https://tedbrown.org/ |
Test date | 2024/09/22 |
Score | 1782 |
Redirections | permitted |
---|---|
Tool isolation | no |
Report format(s) | standard |
Requester | |
Device | default |
Browser type | webkit |
Reduced motion | not requested |
Tested by | Testaro, procedure senate2024 |
Scored by | Testilo, procedure tsp50 |
Digested by | Testilo, procedure tdp50 |
Full report | 240915T1658-ikz-22.json |
Introduction
How accessible is the Ted Brown;Libertarian;Texas web page at https://tedbrown.org/
?
This digest gives one answer to that question. Eleven different tools (Alfa, ASLint, Axe, Editoria11y, Equal Access, HTML CodeSniffer, Nu Html Checker, QualWeb, Testaro, WAVE, and WallyAX) tested the page to check its compliance with their accessibility rules. In all, the tools define about a thousand rules, which are classified here into about three hundred accessibility issues.
The results were interpreted to yield a score, with 0 being ideal. The score for this page was 1782, the sum of 430 for the count of issues, 739 for specific issues, 0 for unclassified rule violations, 133 for tool-by-tool ratings, 146 for the count of violating elements, 300 for the page preventing tools from running, 34 for browser warnings, and 0 for delayed page responses.
How the page was scored
Introduction
This is an explanation of the scoring of the page.
Motivations for scoring
Why score? Specifically, why aggregate many facts about a page into a single number?
One motivation is to simplify comparison and tracking. If you want to compare a page with other pages, or if you want to track changes in a page over time, aggregating many test results for each page into one page score simplifies the task. It becomes possible to say things like Page A is more accessible than page B
or Page A is becoming more accessible over time
.
Another motivation is to influence behavior. A score arises from decisions about importance, urgency, and other attributes. People may use scores to award benefits, impose costs, or prioritize work. So, scoring can influence who gets and does what.
How to score?
Scoring is subjective. Accessibility testing tools use various scoring procedures, based on various ideas.
The built-in scoring procedures of Testilo are based on the idea that multiple attributes should affect a web-page accessibility score, including:
- conformity to standards
- adherence to best practices
- how many different issues exist
- how many instances of each issue exist
- how many tools report violations of their rules
- how trustworthy each test of each tool is
- how serious each violation of a rule is
- simplicity
- speed of page responses
- testability
- conformity to expectations of browsers
Some ideas found elsewhere in accessibility scoring are rejected by the Testilo procedures:
- density: that an accessibility score should be based on the count of accessibility faults as a fraction of the count of potential accessibility faults (so, the score of a large page with particular faults should be better than the score of a smaller page with exactly those faults)
- applicability: that the score of a page should depend on the types of its content (so, the score of a page with accessible video content should be better than the score of an otherwise identical page without video content)
Scoring method summary
The scoring method is found in the code of the procedure. The file for any procedure tspnn
is in the file procs/score/tspnn.js
within the Testilo package.
The score computed by this procedure for any page is a non-negative number. The numbers represent accessibility faults, so a higher-scoring page is considered less accessible than a lower-scoring page. The best possible score is 0.
The procedure makes the score of a page the sum of 7 components:
- issue score: how many instances of issues were reported
- solo score: how many violations of rules not yet classified into issues were reported
- tool score: how many violations of their rules did tools report
- element score: how many HTML elements did any tool identify as violating at least one tool rule
- prevention score: how many tools were unable to perform their tests on the page
- log score: how much logging of page errors and other events did the browser do
- latency score: how long did the page take to load and become stable
Scoring method details
The above component descriptions omit various details.
About a thousand tool rules are classified into issues in the tic50.js
file used by this procedure. Each of those rules has a quality, ranging from 0 to 1. When the issue score is computed, the count of violations of each rule is multiplied by the quality of that rule. Whichever tool has the largest quality-weighted violation count for an issue, that count is treated as the instance count for the issue. Thus, if 8 tools each report 15 violations within the issue, and their rule qualities are all 1, the instance count is 15, not 120. Moreover, the issue itself has a weight, ranging from 1 to 4, representing its importance. This instance count is multiplied by that weight. That product is further multiplied by the issueCountWeight
value, namely 10. That final product is further adjusted if the issue is inherently limited in instance count. For example, if the issue is that the page html
element has no lang
attribute, the instance count is limited to 1. If there is such a limit, the maxWeight
value, namely 30, is divided by the actual instance count and the quotient is added to 1. That product (or 1 if there is no limit) is multiplied by the instance count, and then the result is treated as the contribution of the issue to the issue score.
Each solo (not yet issue-classified) rule violation is multiplied by the sum of 1 and the ordinal severity of the rule, to produce the solo score.
Each rule violation reported by each tool is severity-weighted in the same way as solo rule violations are. Then the sum of those violations is multiplied by the toolWeight
value, namely 0.1, to produce the tool score.
The count of elements reported as violators of any rule is multiplied by the elementWeight
value, namely 2, to produce the element score.
The count of prevented Testaro rules is multiplied by the testaroRulePreventionWeight
quantity, namely 30, and the count of other prevented tools is multiplied by the preventionWeight
value, namely 300, to produce the prevention score.
The log score is the sum of several components:
- log count: how many times the browser logged a message
- log size: how many characters large the collection of browser log messages was
- error log count: how many browser log messages reported page errors
- error log size: how many characters large the collection of browser log messages reporting page errors was
- prohibition count: how many times the browser logged a prohibited response status (403)
- visit rejection count: how many times the browser logged an abnormal response status
Each of these components is multiplied by a weight found in the logWeights
object.
Finally, the latency score is based on how much longer it took for the page to become loaded and stable than expected. The expected total duration in seconds is the normalLatency
value, namely 22 seconds (that is 2 seconds per visit, multiplied by the 11 visits of the 11 tools). This is subtracted from the actual total latency, and that difference is multiplied by the latencyWeight
amount, namely 2.
Issue summary
Details about this summary
- This table shows the numbers of rule violations (
instances
) reported by one or more tools, classified by issue. - Tools often disagree on instance counts, because of non-equivalent rules or invalid tests. You can inspect the full report to diagnose differences.
- The
WCAG
value is the principle, guideline, or success criterion of the Web Content Accessibility Guidelines most relevant to the issue. - The
Weight
value estimates the importance of an instance of the issue, from 1 (minor or advisory) to 4 (serious). - The
Score
value is the contribution of the instances of the issue to the page score. - An instance count of 0 means the tool has a rule belonging to the issue but reported no violations of that rule, although at least one tool reported at least one violation.
- You can sort this table by WCAG, weight, or score.
The summary
Sorting is by score.
Issue | WCAG | Weight | Score | Instance counts |
---|---|---|---|---|
not exactly 1 h1 heading | 1.3.1 | 2 | 124 | nuVal :2, aslint :0, axe :0, wave :0 |
line height low | 1.4.8 | 2 | 112 | testaro :56, alfa :0 |
color missing | 1.4.3 | 4 | 96 | qualWeb :24 |
title attribute invalid | 1.3.1 | 4 | 60 | testaro :15 |
focus indication poor | 2.4.7 | 4 | 48 | testaro :12, alfa :0, aslint :0 |
contrast poor | 1.4.3 | 4 | 40 | alfa :10, axe :9, ibm :8, qualWeb :9, wave :9, aslint :0, htmlcs :0, wax :0 |
type redundant | 1.3.1 | 1 | 32 | nuVal :32 |
font size absolute | 1.4.4 | 2 | 28 | alfa :14, qualWeb :1 |
void element has trailing slash | 4.1 | 1 | 28 | nuVal :28 |
text contrast improvable | 1.4.6 | 1 | 17 | alfa :17, aslint :16, axe :6, htmlcs :8, qualWeb :16, wax :0 |
link indication poor | 1.3.3 | 2 | 14 | axe :3, testaro :7, alfa :0 |
link not named | 2.4.4 | 4 | 12 | alfa :3, axe :3, htmlcs :1, ibm :3, qualWeb :3, wave :1, ed11y :0, wax :0 |
content beyond landmarks | 1.3.6 | 1 | 12 | alfa :12, axe :1, ibm :2, wax :0 |
link not named | 2.4.4 | 4 | 12 | aslint :3, ed11y :1, htmlcs :3, qualWeb :3, wave :3, wax :0 |
all-capital text | 3.1.5 | 1 | 9 | aslint :9, testaro :3, alfa :0, ed11y :0 |
title attribute redundant | 1.3.1 | 1 | 9 | testaro :9, wave :8, aslint :0, qualWeb :0 |
links named identically | 2.4.4 | 2 | 8 | aslint :4, qualWeb :0, testaro :0 |
parent invalid | 1.3.1 | 4 | 8 | nuVal :2, ibm :0 |
target small | 2.5.5 | 1 | 7 | alfa :2, testaro :7 |
heading empty | 2.4.6 | 3 | 6 | alfa :1, aslint :1, axe :1, ed11y :1, htmlcs :1, ibm :1, nuVal :2, wave :1, qualWeb :0 |
code invalid | 4.1 | 3 | 6 | nuVal :2, qualWeb :0, wave :0 |
internal link broken | 1.3.1 | 4 | 4 | aslint :1, htmlcs :1, wave :0, wax :0 |
CSS bans page rotation | 1.3.4 | 4 | 4 | aslint :1, qualWeb :0 |
nav links not list | 1.3.1 | 2 | 4 | htmlcs :2 |
role redundant | 4.1.2 | 1 | 4 | ibm :2, nuVal :4 |
no role-required name | 4.1.2 | 4 | 4 | ibm :1, wax :0 |
hr misused | 1.3.1 | 1 | 3 | aslint :3, testaro :3 |
element obsolete | 4.1 | 3 | 3 | aslint :1, alfa :0, htmlcs :0, nuVal :0, qualWeb :0 |
text contrast not testable | 1.4.3 | 1 | 3 | htmlcs :3, alfa :0, aslint :0 |
role assigned instead of implicit | 4.1.2 | 1 | 3 | testaro :3 |
tab-opening link action unstated? | 3.2.5 | 1 | 2 | aslint :2, htmlcs :2, testaro :2 |
aside child of landmark | 1.3.6 | 2 | 2 | axe :1, qualWeb :1, wax :0 |
section heading missing | 1.3.1 | 1 | 2 | nuVal :2 |
main child of landmark | 1.3.6 | 2 | 2 | qualWeb :1, aslint :0, axe :0 |
element not focusable | 2.1.1 | 4 | 2 | testaro :1, alfa :0, qualWeb :0 |
inconsistent heading, link, or button styles | 3.2.4 | 1 | 2 | testaro :2 |
item makes testing inconclusive | 4.1 | 1 | 1 | alfa :1 |
title attribute empty | 1.3.1 | 1 | 1 | aslint :1, htmlcs :0, nuVal :0, wax :0 |
image dubiously marked decorative | 1.1.1 | 1 | 1 | htmlcs :1 |
heading-like styles dubious | 1.3.1 | 1 | 1 | htmlcs :1, axe :0, ed11y :0, wave :0 |
position sticky | 1.4.10 | 1 | 1 | htmlcs :1, aslint :0 |
complementary not named | 1.3.6 | 1 | 1 | ibm :1 |
all-italic text | 3.1.5 | 1 | 1 | testaro :1, alfa :0, aslint :0 |
Itemized issues
The reported rule violations are itemized below, issue by issue. Additional details can be inspected in the full report.
Issue: not exactly 1 h1 heading
Impact: User cannot understand the topic of the document
WCAG: 1.3.1
Score: 124
Elements
None identified
Violations of nuVal
rules
Rule Consider using the h1 element as a top-level heading only (all h1 elements are treated as top-level headings by many screen readers and other tools).
Description: Page contains more than 1 h1 element
Count of instances: 2
Issue: line height low
Impact: Text is difficult to read
WCAG: 1.4.8
Score: 112
Elements
- /html/body/div
- /html/body/div/div[1]
- /html/body/div/div[1]/header
- /html/body/div/div[1]/header/div
- /html/body/div/div[1]/header/div/hgroup
- /html/body/div/div[1]/header/div/hgroup/h1
- /html/body/div/div[1]/header/div/hgroup/h1/a
- /html/body/div/div[1]/header/div/hgroup/div
- /html/body/div/div[2]
- /html/body/div/div[2]/nav
- /html/body/div/div[2]/nav/div[1]
- /html/body/div/div[2]/nav/div[1]/button
- /html/body/div/div[2]/nav/div[1]/button/span[1]
- /html/body/div/div[2]/nav/div[2]
- /html/body/div/div[2]/nav/div[2]/ul
- /html/body/div/div[2]/nav/div[2]/ul/li[1]
- /html/body/div/div[2]/nav/div[2]/ul/li[1]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[2]
- /html/body/div/div[2]/nav/div[2]/ul/li[2]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[3]
- /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[4]
- /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[5]
- /html/body/div/div[2]/nav/div[2]/ul/li[5]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[6]
- /html/body/div/div[2]/nav/div[2]/ul/li[6]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[7]
- /html/body/div/div[2]/nav/div[2]/ul/li[7]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[8]
- /html/body/div/div[2]/nav/div[2]/ul/li[8]/a
- /html/body/div/div[4]
- /html/body/div/div[4]/div
- /html/body/div/div[4]/div/div
- /html/body/div/div[4]/div/div/div[1]
- /html/body/div/div[4]/div/div/div[1]/section
- /html/body/div/div[4]/div/div/div[1]/section/main
- /html/body/div/div[4]/div/div/div[1]/section/main/article
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em/span[1]
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em/span[2]
- /html/body/div/div[4]/div/div/div[2]
- /html/body/div/div[4]/div/div/div[2]/div
- /html/body/div/div[4]/div/div/div[2]/div/div[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[1]/span
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]
- /html/body/div/div[4]/div/div/div[2]/div/div[2]
- /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[1]/span
- /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[2]
- /html/body/div/footer
Violations of testaro
rules
Rule lineHeight
Description: Text has a line height less than 1.5 times its font size
Count of instances: 56
Issue: color missing
Impact: Content is impossible to perceive under some conditions
WCAG: 1.4.3
Score: 96
Elements
None identified
Violations of qualWeb
rules
Rule QW-WCAG-T31
Description: Foreground or background color is specified but not both
Count of instances: 24
Issue: title attribute invalid
Impact: User cannot hover to get help explaining an item
WCAG: 1.3.1
Score: 60
Elements
- /html/head/link[5]
- /html/head/link[6]
- /html/head/link[16]
- /html/head/link[17]
- /html/head/link[20]
- /html/head/link[21]
- /html/body/div/div[2]/nav/div[2]/ul/li[1]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[2]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[5]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[6]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[7]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[8]/a
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
Violations of testaro
rules
Rule titledEl
Description: title attribute belongs to an inappropriate element
Count of instances: 15
Issue: focus indication poor
Impact: Keyboard-only user cannot choose an item to operate
WCAG: 2.4.7
Score: 48
Elements
- /html/body/div/div[1]/header/div/hgroup/h1/a
- /html/body/div/div[2]/nav/div[2]/ul/li[1]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[2]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[5]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[6]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[7]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[8]/a
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[2]
Violations of testaro
rules
Rule focInd
Description: Focused element displays a nonstandard or no focus indicator
Count of instances: 12
Issue: contrast poor
Impact: Content is difficult to understand
WCAG: 1.4.3
Score: 40
Elements
None identified
Violations of alfa
rules
Rule r69
Description: Text outside widget has subminimum contrast
Count of instances: 10
Violations of axe
rules
Rule color-contrast
Description: Element has insufficient color contrast
Count of instances: 9
Violations of ibm
rules
Rule text_contrast_sufficient
Description: Text has a contrast with its background less than the WCAG AA minimum for its size and weight
Count of instances: 8
Violations of qualWeb
rules
Rule QW-ACT-R37
Description: Text has less than the minimum contrast
Count of instances: 9
Violations of wave
rules
Rule contrast
Description: Very low contrast
Count of instances: 9
Issue: type redundant
Impact: Document includes unnecessary code
WCAG: 1.3.1
Score: 32
Elements
None identified
Violations of nuVal
rules
Rule The type attribute is unnecessary for JavaScript resources.
Description: type attribute is unnecessary for a JavaScript resource
Count of instances: 20
Rule The type attribute for the style element is not needed and should be omitted.
Description: type attribute is unnecessary for a style element
Count of instances: 12
Issue: font size absolute
Impact: User cannot adjust the text size for readability
WCAG: 1.4.4
Score: 28
Elements
None identified
Violations of alfa
rules
Rule r74
Description: Paragraph text has an absolute font size
Count of instances: 14
Violations of qualWeb
rules
Rule QW-WCAG-T28
Description: Font size set to an absolute unit value
Count of instances: 1
Issue: void element has trailing slash
Impact: Document contains invalid code
WCAG: 4.1
Score: 28
Elements
None identified
Violations of nuVal
rules
Rule Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.
Description: Void element has a useless trailing slash.
Count of instances: 28
Issue: text contrast improvable
Impact: Content is not easy to understand
WCAG: 1.4.6
Score: 17
Elements
None identified
Violations of alfa
rules
Rule r66
Description: Text contrast less than AAA requires
Count of instances: 17
Violations of aslint
rules
Rule color_contrast_aaa7
Description: Text has contrast less than 7:1
Count of instances: 16
Violations of axe
rules
Rule color-contrast-enhanced
Description: Element has insufficient color contrast (Level AAA)
Count of instances: 6
Violations of htmlcs
rules
Rule AAA.1_4_6.G17.Fail
Description: Text has insufficient contrast
Count of instances: 8
Violations of qualWeb
rules
Rule QW-ACT-R76
Description: Text has less than the enhanced minimum contrast
Count of instances: 16
Issue: link indication poor
Impact: User cannot differentiate a link from plain text
WCAG: 1.3.3
Score: 14
Elements
- /html/body/div/div[1]/header/div/hgroup/h1/a
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[2]
- /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[2]/p[1]/a
- /html/body/div/footer/div[3]/a[1]
- /html/body/div/footer/div[3]/a[2]
Violations of axe
rules
Rule link-in-text-block
Description: Element is not distinct from surrounding text without reliance on color
Count of instances: 3
Violations of testaro
rules
Rule linkUl
Description: Inline links are not underlined
Count of instances: 7
Issue: link not named
Impact: User cannot get help understanding what a link points to
WCAG: 2.4.4
Score: 12
Elements
None identified
Violations of alfa
rules
Rule r11
Description: Link has no accessible name
Count of instances: 3
Violations of axe
rules
Rule link-name
Description: Link has no discernible text
Count of instances: 3
Violations of htmlcs
rules
Rule AAA.4_1_2.H91.A.NoContent
Description: Link has an href attribute but not named
Count of instances: 1
Violations of ibm
rules
Rule a_text_purpose
Description: Hyperlink has no link text, label, or image with a text alternative
Count of instances: 3
Violations of qualWeb
rules
Rule QW-ACT-R12
Description: Link has no accessible name
Count of instances: 3
Violations of wave
rules
Rule link_empty
Description: Link contains not named
Count of instances: 1
Issue: content beyond landmarks
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 12
Elements
None identified
Violations of alfa
rules
Rule r57
Description: Perceivable text content is not included in any landmark
Count of instances: 12
Violations of axe
rules
Rule region
Description: Some page content is not contained by landmarks
Count of instances: 1
Violations of ibm
rules
Rule aria_content_in_landmark
Description: Content is not within a landmark element
Count of instances: 2
Issue: link not named
Impact: User cannot get help understanding what a link points to
WCAG: 2.4.4
Score: 12
Elements
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
Violations of aslint
rules
Rule img_empty_alt_in_link
Description: Element is an image in a link but has no text alternative
Count of instances: 3
Violations of ed11y
rules
Rule altEmptyLinked
Description: Link name is only an image with no text alternative
Count of instances: 1
Violations of htmlcs
rules
Rule AAA.1_1_1.H30.2
Description: img element is the only link content but has no text alternative
Count of instances: 3
Violations of qualWeb
rules
Rule QW-WCAG-T21
Description: Accessible name is not provided for an image which is the only content in a link
Count of instances: 3
Violations of wave
rules
Rule alt_link_missing
Description: Linked image has no text alternative
Count of instances: 3
Issue: all-capital text
Impact: Text is difficult to read
WCAG: 3.1.5
Score: 9
Elements
- /html/body/div/div[2]/nav/div[1]/button/span[1]
- /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
Violations of aslint
rules
Rule capital_letters_words
Description: Element or its title has entirely upper-case words
Count of instances: 9
Violations of testaro
rules
Rule allCaps
Description: Element has a text substring of at least 8 upper-case characters
Count of instances: 3
Issue: title attribute redundant
Impact: Helper repeats the explanation of an item
WCAG: 1.3.1
Score: 9
Elements
- /html/body/div/div[2]/nav/div[2]/ul/li[1]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[2]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[5]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[6]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[7]/a
- /html/body/div/div[2]/nav/div[2]/ul/li[8]/a
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
Violations of testaro
rules
Rule linkTitle
Description: Link title value is also contained in the link text
Count of instances: 9
Violations of wave
rules
Rule title_redundant
Description: Title attribute text is the same as the text or alternative text
Count of instances: 8
Issue: links named identically
Impact: User cannot get help differentiating links
WCAG: 2.4.4
Score: 8
Elements
None identified
Violations of aslint
rules
Rule links_same_content_different_url
Description: Links with the same text content have different destination URLs
Count of instances: 4
Issue: parent invalid
Impact: User cannot properly operate an item
WCAG: 1.3.1
Score: 8
Elements
None identified
Violations of nuVal
rules
Rule ^Element .+ not allowed as child of element .+ in this context.*$
Description: Element has an invalid parent
Count of instances: 2
Issue: target small
Impact: User cannot reliably choose an item to click or tap
WCAG: 2.5.5
Score: 7
Elements
- /html/body/div/div[2]/nav/div[1]/button
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[1]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[2]
- /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[2]/p[1]/a
- /html/body/div/footer/div[3]/a[1]
- /html/body/div/footer/div[3]/a[2]
Violations of alfa
rules
Rule r111
Description: Target size is suboptimal
Count of instances: 2
Violations of testaro
rules
Rule targetSize
Description: Button, input, or non-inline link is smaller than 44 px wide and high
Count of instances: 7
Issue: heading empty
Impact: User cannot get help on the topic of a part of the document
WCAG: 2.4.6
Score: 6
Elements
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[1]/h1
Violations of alfa
rules
Rule r64
Description: Heading has no non-empty accessible name
Count of instances: 1
Violations of aslint
rules
Rule empty_heading
Description: Element is a heading but is empty
Count of instances: 1
Violations of axe
rules
Rule empty-heading
Description: Heading is empty
Count of instances: 1
Violations of ed11y
rules
Rule headingEmpty
Description: Heading is empty
Count of instances: 1
Violations of htmlcs
rules
Rule AAA.1_3_1.H42.2
Description: Heading is empty
Count of instances: 1
Violations of ibm
rules
Rule heading_content_exists
Description: Heading element has no descriptive content
Count of instances: 1
Violations of nuVal
rules
Rule Empty heading.
Description: Empty heading
Count of instances: 2
Violations of wave
rules
Rule heading_empty
Description: Empty heading
Count of instances: 1
Issue: code invalid
Impact: Invalid code in the document may prevent a helper from working
WCAG: 4.1
Score: 6
Elements
None identified
Violations of nuVal
rules
Rule ^The .+ element must not appear as a descendant of the .+ element.*$
Description: Element has an invalid ancestor
Count of instances: 2
Issue: internal link broken
Impact: User cannot reach a promised document location
WCAG: 1.3.1
Score: 4
Elements
None identified
Violations of aslint
rules
Rule broken_same_page_link
Description: Same-page destination of the link does not exist
Count of instances: 1
Violations of htmlcs
rules
Rule AAA.2_4_1.G1,G123,G124.NoSuchID
Description: Internal link references a nonexistent destination
Count of instances: 1
Issue: CSS bans page rotation
Impact: User must read sideways after rotating a device
WCAG: 1.3.4
Score: 4
Elements
None identified
Violations of aslint
rules
Rule orientation
Description: CSS media query specifies an orientation
Count of instances: 1
Issue: nav links not list
Impact: User cannot get help recognizing a list of navigation links
WCAG: 1.3.1
Score: 4
Elements
None identified
Violations of htmlcs
rules
Rule AAA.1_3_1.H48
Description: Navigation links are not coded as a list
Count of instances: 2
Issue: role redundant
Impact: Document includes unnecessary code
WCAG: 4.1.2
Score: 4
Elements
None identified
Violations of ibm
rules
Rule aria_role_redundant
Description: Explicitly assigned ARIA role is redundant with the implicit role of the element
Count of instances: 2
Violations of nuVal
rules
Rule ^The .+ role is unnecessary for element .+$
Description: explicit role is redundant for its element
Count of instances: 4
Issue: no role-required name
Impact: User cannot get help understanding an item
WCAG: 4.1.2
Score: 4
Elements
None identified
Violations of ibm
rules
Rule aria_accessiblename_exists
Description: Element has no accessible name, although its role requires one
Count of instances: 1
Issue: hr misused
Impact: User cannot get help on the nature of segments of the document
WCAG: 1.3.1
Score: 3
Elements
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/hr[1]
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/hr[2]
- /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/hr
Violations of aslint
rules
Rule horizontal_rule
Description: hr element has neither a true aria-hidden attribute nor a presentation role
Count of instances: 3
Violations of testaro
rules
Rule hr
Description: hr instead of styles is used for vertical segmentation
Count of instances: 3
Issue: element obsolete
Impact: Document includes obsolete code that the browser may fail to process
WCAG: 4.1
Score: 3
Elements
None identified
Violations of aslint
rules
Rule obsolete_html_elements
Description: Element is obsolete
Count of instances: 1
Issue: text contrast not testable
Impact: Text may be difficult to read
WCAG: 1.4.3
Score: 3
Elements
None identified
Violations of htmlcs
rules
Rule AAA.1_4_3_F24.F24.FGColour
Description: Inline foreground color may lack a complementary background color
Count of instances: 3
Issue: role assigned instead of implicit
Impact: User may misunderstand the purpose of an item
WCAG: 4.1.2
Score: 3
Elements
- /html/body/div/div[2]/nav
- /html/body/div/div[4]/div/div/div[1]/section/main
- /html/body/div/footer/div[1]/div/div
Violations of testaro
rules
Rule role
Description: Explicitly assigned ARIA role is also an implicit element role
Count of instances: 3
Issue: tab-opening link action unstated?
Impact: Following a link opens a new window, possibly surprising a user
WCAG: 3.2.5
Score: 2
Elements
- /html/body/div/footer/div[3]/a[1]
- /html/body/div/footer/div[3]/a[2]
Violations of aslint
rules
Rule links_new_window_mark
Description: Indicator that the link opens a new window or tab may be missing
Count of instances: 2
Violations of htmlcs
rules
Rule AAA.3_2_5.H83.3
Description: Link text may fail to indicate that the link will open in a new window
Count of instances: 2
Violations of testaro
rules
Rule linkExt
Description: Link opens a new window or tab
Count of instances: 2
Issue: aside child of landmark
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 2
Elements
None identified
Violations of axe
rules
Rule landmark-complementary-is-top-level
Description: complementary landmark (aside) is contained in another landmark
Count of instances: 1
Violations of qualWeb
rules
Rule QW-BP25
Description: complementary landmark is not at the top level
Count of instances: 1
Issue: section heading missing
Impact: User cannot understand the topic of a part of the document
WCAG: 1.3.1
Score: 2
Elements
None identified
Violations of nuVal
rules
Rule 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.
Description: section has no heading
Count of instances: 2
Issue: main child of landmark
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 2
Elements
None identified
Violations of qualWeb
rules
Rule QW-BP27
Description: main landmark is not at the top level
Count of instances: 1
Issue: element not focusable
Impact: Keyboard-only user cannot choose an item to operate
WCAG: 2.1.1
Score: 2
Elements
None identified
Violations of testaro
rules
Rule focAll
Description: Discrepancy between elements that should be and that are Tab-focusable
Count of instances: 1
Issue: inconsistent heading, link, or button styles
Impact: User cannot easily distinguish items of different types
WCAG: 3.2.4
Score: 2
Elements
None identified
Violations of testaro
rules
Rule styleDiff
Description: Heading, link, and button style inconsistencies
Count of instances: 2
Issue: item makes testing inconclusive
Impact: Item prevents a conclusive accessibility test
WCAG: 4.1
Score: 1
Elements
None identified
Violations of alfa
rules
Rule cantTell
Description: Test could not give a conclusive result
Count of instances: 1
Issue: title attribute empty
Impact: Hovering does not get the promised explanation of an item
WCAG: 1.3.1
Score: 1
Elements
None identified
Violations of aslint
rules
Rule empty_title_attribute
Description: title attribute of the element is empty or only whitespace
Count of instances: 1
Issue: image dubiously marked decorative
Impact: Helper ignores an image that is apparently informative
WCAG: 1.1.1
Score: 1
Elements
None identified
Violations of htmlcs
rules
Rule AAA.1_1_1.H67.2
Description: Image marked as decorative may be informative
Count of instances: 1
Issue: heading-like styles dubious
Impact: User may be unable to understand the topic of a part of the document
WCAG: 1.3.1
Score: 1
Elements
None identified
Violations of htmlcs
rules
Rule AAA.1_3_1.H42
Description: Heading coding is not used but the element may be intended as a heading
Count of instances: 1
Issue: position sticky
Impact: User may be unable to see needed content or may be forced to scroll in both dimensions
WCAG: 1.4.10
Score: 1
Elements
None identified
Violations of htmlcs
rules
Rule AAA.1_4_10.C32,C31,C33,C38,SCR34,G206
Description: Fixed-position element may force bidirectional scrolling
Count of instances: 1
Issue: complementary not named
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 1
Elements
None identified
Violations of ibm
rules
Rule aria_complementary_labelled
Description: Element with a complementary role has no label
Count of instances: 1
Issue: all-italic text
Impact: Text is difficult to read
WCAG: 3.1.5
Score: 1
Elements
- /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em
Violations of testaro
rules
Rule allSlanted
Description: Element has a text substring of at least 40 italic or oblique characters
Count of instances: 1
Elements with issues
Elements exhibiting issues:
Element /html/body/div
- line height low
Element /html/body/div/div[1]
- line height low
Element /html/body/div/div[1]/header
- line height low
Element /html/body/div/div[1]/header/div
- line height low
Element /html/body/div/div[1]/header/div/hgroup
- line height low
Element /html/body/div/div[1]/header/div/hgroup/div
- line height low
Element /html/body/div/div[1]/header/div/hgroup/h1
- line height low
Element /html/body/div/div[1]/header/div/hgroup/h1/a
- focus indication poor
- line height low
- link indication poor
Element /html/body/div/div[2]
- line height low
Element /html/body/div/div[2]/nav
- line height low
- role assigned instead of implicit
Element /html/body/div/div[2]/nav/div[1]
- line height low
Element /html/body/div/div[2]/nav/div[1]/button
- line height low
- target small
Element /html/body/div/div[2]/nav/div[1]/button/span[1]
- all-capital text
- line height low
Element /html/body/div/div[2]/nav/div[2]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[1]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[1]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[2]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[2]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[3]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[3]/a
- all-capital text
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[4]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[4]/a
- all-capital text
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[5]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[5]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[6]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[6]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[7]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[7]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[2]/nav/div[2]/ul/li[8]
- line height low
Element /html/body/div/div[2]/nav/div[2]/ul/li[8]/a
- focus indication poor
- line height low
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[4]
- line height low
Element /html/body/div/div[4]/div
- line height low
Element /html/body/div/div[4]/div/div
- line height low
Element /html/body/div/div[4]/div/div/div[1]
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main
- line height low
- role assigned instead of implicit
Element /html/body/div/div[4]/div/div/div[1]/section/main/article
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[1]/a
- focus indication poor
- link indication poor
- link not named
- target small
- title attribute invalid
- title attribute redundant
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[1]/h1
- heading empty
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em
- all-italic text
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em/span[1]
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/h2/span/em/span[2]
- line height low
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/hr[1]
- hr misused
Element /html/body/div/div[4]/div/div/div[1]/section/main/article/div[2]/div[3]/hr[2]
- hr misused
Element /html/body/div/div[4]/div/div/div[2]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[1]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[1]/span
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/hr
- hr misused
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[1]
- focus indication poor
- link indication poor
- target small
Element /html/body/div/div[4]/div/div/div[2]/div/div[1]/div[2]/p[4]/a[2]
- focus indication poor
- link indication poor
- target small
Element /html/body/div/div[4]/div/div/div[2]/div/div[2]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[1]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[1]/span
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[2]
- line height low
Element /html/body/div/div[4]/div/div/div[2]/div/div[2]/div[2]/p[1]/a
- link indication poor
- target small
Element /html/body/div/footer
- line height low
Element /html/body/div/footer/div[1]/div/div
- role assigned instead of implicit
Element /html/body/div/footer/div[3]/a[1]
- link indication poor
- tab-opening link action unstated?
- target small
Element /html/body/div/footer/div[3]/a[2]
- link indication poor
- tab-opening link action unstated?
- target small
Element /html/head/link[16]
- title attribute invalid
Element /html/head/link[17]
- title attribute invalid
Element /html/head/link[20]
- title attribute invalid
Element /html/head/link[21]
- title attribute invalid
Element /html/head/link[5]
- title attribute invalid
Element /html/head/link[6]
- title attribute invalid