diff --git a/package.json b/package.json
index 49c0573..b27f9fb 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
},
"homepage": "https://github.com/lpelypenko/axe-html-reporter",
"scripts": {
- "prebuild": "rimraf dist build",
+ "prebuild": "rm -rf dist build",
"copy": "cp -R ./src/util/template ./dist/util/template",
"build": "tsc --project tsconfig.build.json && npm run copy",
"test": "jest test",
@@ -44,16 +44,15 @@
"axe-core": ">=3"
},
"devDependencies": {
- "@types/jest": "^25.2.3",
+ "@types/jest": "^29.5.12",
"@types/mustache": "^4.0.1",
"@types/node": "^14.11.8",
- "jest": "^26.5.3",
+ "jest": "^29.7.0",
"prettier": "^2.1.2",
- "ts-jest": "^26.4.1",
+ "ts-jest": "^29.2.4",
"typescript": "^4.0.3"
},
"dependencies": {
- "mustache": "^4.0.1",
- "rimraf": "^3.0.2"
+ "mustache": "^4.0.1"
}
}
diff --git a/test/__snapshots__/getWcagReference.test.ts.snap b/test/__snapshots__/getWcagReference.test.ts.snap
index dbbb1cf..2c02a19 100644
--- a/test/__snapshots__/getWcagReference.test.ts.snap
+++ b/test/__snapshots__/getWcagReference.test.ts.snap
@@ -1,28 +1,28 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Successful tests Tags for all C 1`] = `
-Array [
- Object {
+[
+ {
"id": "label-content-name-mismatch",
- "tags": Array [
+ "tags": [
"wcag21a",
"wcag253",
"experimental",
],
"wcag": "WCAG 2.1 Level A, WCAG 2.5.3",
},
- Object {
+ {
"id": "duplicate-id-aria",
- "tags": Array [
+ "tags": [
"cat.parsing",
"wcag2a",
"wcag411",
],
"wcag": "WCAG 2 Level A, WCAG 4.1.1",
},
- Object {
+ {
"id": "svg-img-alt",
- "tags": Array [
+ "tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
@@ -31,18 +31,18 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 1.1.1",
},
- Object {
+ {
"id": "aria-required-children",
- "tags": Array [
+ "tags": [
"cat.aria",
"wcag2a",
"wcag131",
],
"wcag": "WCAG 2 Level A, WCAG 1.3.1",
},
- Object {
+ {
"id": "aria-required-parent",
- "tags": Array [
+ "tags": [
"cat.aria",
"wcag2a",
"wcag131",
@@ -53,28 +53,28 @@ Array [
`;
exports[`Successful tests Tags for all J 1`] = `
-Array [
- Object {
+[
+ {
"id": "label-content-name-mismatch",
- "tags": Array [
+ "tags": [
"wcag21a",
"wcag253",
"experimental",
],
"wcag": "WCAG 2.1 Level A, WCAG 2.5.3",
},
- Object {
+ {
"id": "duplicate-id-aria",
- "tags": Array [
+ "tags": [
"cat.parsing",
"wcag2a",
"wcag411",
],
"wcag": "WCAG 2 Level A, WCAG 4.1.1",
},
- Object {
+ {
"id": "svg-img-alt",
- "tags": Array [
+ "tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
@@ -87,10 +87,10 @@ Array [
`;
exports[`Successful tests Tags for general set of violations 1`] = `
-Array [
- Object {
+[
+ {
"id": "button-name",
- "tags": Array [
+ "tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
@@ -99,36 +99,36 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 4.1.2",
},
- Object {
+ {
"id": "color-contrast",
- "tags": Array [
+ "tags": [
"cat.color",
"wcag2aa",
"wcag143",
],
"wcag": "WCAG 2 Level AA, WCAG 1.4.3",
},
- Object {
+ {
"id": "duplicate-id-active",
- "tags": Array [
+ "tags": [
"cat.parsing",
"wcag2a",
"wcag411",
],
"wcag": "WCAG 2 Level A, WCAG 4.1.1",
},
- Object {
+ {
"id": "duplicate-id",
- "tags": Array [
+ "tags": [
"cat.parsing",
"wcag2a",
"wcag411",
],
"wcag": "WCAG 2 Level A, WCAG 4.1.1",
},
- Object {
+ {
"id": "frame-title",
- "tags": Array [
+ "tags": [
"cat.text-alternatives",
"wcag2a",
"wcag241",
@@ -138,18 +138,18 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 2.4.1, WCAG 4.1.2",
},
- Object {
+ {
"id": "html-has-lang",
- "tags": Array [
+ "tags": [
"cat.language",
"wcag2a",
"wcag311",
],
"wcag": "WCAG 2 Level A, WCAG 3.1.1",
},
- Object {
+ {
"id": "image-alt",
- "tags": Array [
+ "tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
@@ -158,9 +158,9 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 1.1.1",
},
- Object {
+ {
"id": "label",
- "tags": Array [
+ "tags": [
"cat.forms",
"wcag2a",
"wcag412",
@@ -170,25 +170,25 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 4.1.2, WCAG 1.3.1",
},
- Object {
+ {
"id": "landmark-one-main",
- "tags": Array [
+ "tags": [
"cat.semantics",
"best-practice",
],
"wcag": "Best practice",
},
- Object {
+ {
"id": "landmark-unique",
- "tags": Array [
+ "tags": [
"cat.semantics",
"best-practice",
],
"wcag": "Best practice",
},
- Object {
+ {
"id": "link-in-text-block",
- "tags": Array [
+ "tags": [
"cat.color",
"experimental",
"wcag2a",
@@ -196,9 +196,9 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 1.4.1",
},
- Object {
+ {
"id": "link-name",
- "tags": Array [
+ "tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
@@ -208,17 +208,17 @@ Array [
],
"wcag": "WCAG 2 Level A, WCAG 4.1.2, WCAG 2.4.4",
},
- Object {
+ {
"id": "region",
- "tags": Array [
+ "tags": [
"cat.keyboard",
"best-practice",
],
"wcag": "Best practice",
},
- Object {
+ {
"id": "tabindex",
- "tags": Array [
+ "tags": [
"cat.keyboard",
"best-practice",
],
diff --git a/test/__snapshots__/index.test.ts.snap b/test/__snapshots__/index.test.ts.snap
index 00b9b6e..aa2440a 100644
--- a/test/__snapshots__/index.test.ts.snap
+++ b/test/__snapshots__/index.test.ts.snap
@@ -2,11 +2,11 @@
exports[`Successful tests All optional parameters present 1`] = `
"
-
+
-
-
+
+
-
+
Axe-coreĀ® Accessibility Results
-
+
Axe-coreĀ® Accessibility Results for DEQUE project
-
-
+
+
-
Test Case: Full page analysis
+
Test Case: Full page analysis
Steps:
-
+
Open https://dequeuniversity.com/demo/mars/
Analyze full page with all rules enabled
-
axe-core found 85 violations
-
+ axe-core found 85 violations
+
- #
- Description
- Axe rule ID
- WCAG
- Impact
- Count
+ #
+ Description
+ Axe rule ID
+ WCAG
+ Impact
+ Count
- 1
+ 1
Buttons must have discernible text
button-name
WCAG 2 Level A, WCAG 4.1.2
@@ -118,7 +118,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 2
+ 2
Elements must have sufficient color contrast
color-contrast
WCAG 2 Level AA, WCAG 1.4.3
@@ -126,7 +126,7 @@ exports[`Successful tests All optional parameters present 1`] = `
11
- 3
+ 3
IDs of active elements must be unique
duplicate-id-active
WCAG 2 Level A, WCAG 4.1.1
@@ -134,7 +134,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 4
+ 4
id attribute value must be unique
duplicate-id
WCAG 2 Level A, WCAG 4.1.1
@@ -142,7 +142,7 @@ exports[`Successful tests All optional parameters present 1`] = `
10
- 5
+ 5
Frames must have title attribute
frame-title
WCAG 2 Level A, WCAG 2.4.1, WCAG 4.1.2
@@ -150,7 +150,7 @@ exports[`Successful tests All optional parameters present 1`] = `
2
- 6
+ 6
<html> element must have a lang attribute
html-has-lang
WCAG 2 Level A, WCAG 3.1.1
@@ -158,7 +158,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 7
+ 7
Images must have alternate text
image-alt
WCAG 2 Level A, WCAG 1.1.1
@@ -166,7 +166,7 @@ exports[`Successful tests All optional parameters present 1`] = `
4
- 8
+ 8
Form elements must have labels
label
WCAG 2 Level A, WCAG 4.1.2, WCAG 1.3.1
@@ -174,7 +174,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 9
+ 9
Document must have one main landmark
landmark-one-main
Best practice
@@ -182,7 +182,7 @@ exports[`Successful tests All optional parameters present 1`] = `
4
- 10
+ 10
Ensures landmarks are unique
landmark-unique
Best practice
@@ -190,7 +190,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 11
+ 11
Links must be distinguished from surrounding text in a way that does not rely on color
link-in-text-block
WCAG 2 Level A, WCAG 1.4.1
@@ -198,7 +198,7 @@ exports[`Successful tests All optional parameters present 1`] = `
1
- 12
+ 12
Links must have discernible text
link-name
WCAG 2 Level A, WCAG 4.1.2, WCAG 2.4.4
@@ -206,7 +206,7 @@ exports[`Successful tests All optional parameters present 1`] = `
8
- 13
+ 13
All page content must be contained by landmarks
region
Best practice
@@ -214,7 +214,7 @@ exports[`Successful tests All optional parameters present 1`] = `
37
- 14
+ 14
Elements should not have tabindex greater than zero
tabindex
Best practice
@@ -224,52 +224,52 @@ exports[`Successful tests All optional parameters present 1`] = `
Failed
-
-
-
-
- 1. Buttons must have discernible text
+
+
+
-
-
button-name
-
+
+
button-name
+
WCAG 2 Level A, WCAG 4.1.2
-
-
Ensures buttons have discernible text
-
+
+
Ensures buttons have discernible text
+
critical
-
-
+
+
Issue Tags:
- cat.name-role-value
+ cat.name-role-value
- wcag2a
+ wcag2a
- wcag412
+ wcag412
- section508
+ section508
- section508.22.a
+ section508.22.a
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -279,16 +279,16 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- .departure-date > .ui-datepicker-trigger:nth-child(4)
+ .departure-date > .ui-datepicker-trigger:nth-child(4)
Element source
- <button class="ui-datepicker-trigger" type="button">
+ <button class="ui-datepicker-trigger" type="button">
<!-- <img title="..." alt="..." src="/redesign/assets/demo-sites/mars/images/calendar.png"> -->
</button>
-
+
Fix any of the following:
-
+
Element does not have inner text that is visible to screen readers
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -304,48 +304,48 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 2. Elements must have sufficient color contrast
+
+
+
+
+ 2. Elements must have sufficient color contrast
Learn more
-
-
color-contrast
-
+
+
color-contrast
+
WCAG 2 Level AA, WCAG 1.4.3
-
-
Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds
-
+
+
Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds
+
serious
-
-
+
+
Issue Tags:
- cat.color
+ cat.color
- wcag2aa
+ wcag2aa
- wcag143
+ wcag143
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -355,212 +355,212 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- :root > h3
+ :root > h3
Element source
- <h3>Be Bold...</h3>
+ <h3>Be Bold...</h3>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 4.31 (foreground color: #ff9999, background color: #344b6e, font size: 13.5pt (18px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
2
Element location
- #vap-plan > p:nth-child(3)
+ #vap-plan > p:nth-child(3)
Element source
- <p>Step out of your comfort zone, and into a rocket with enough fuel to blast a Manhattan-sized crater if it explodes. But it won't. Probably.<br>
+ <p>Step out of your comfort zone, and into a rocket with enough fuel to blast a Manhattan-sized crater if it explodes. But it won't. Probably.<br>
</p>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 4.49 (foreground color: #acbad0, background color: #344b6e, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
3
Element location
- :root > h3
+ :root > h3
Element source
- <h3>Countdown...</h3>
+ <h3>Countdown...</h3>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 1.87 (foreground color: #067ab4, background color: #344b6e, font size: 13.5pt (18px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
4
Element location
- #vap-book > p:nth-child(3)
+ #vap-book > p:nth-child(3)
Element source
- <p>If you're serious about traveling to Mars - really serious - then <a href="mars2.html?a=last_will">prepare your last will and testament</a>, and book a trip! </p>
+ <p>If you're serious about traveling to Mars - really serious - then <a href="mars2.html?a=last_will">prepare your last will and testament</a>, and book a trip! </p>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 4.49 (foreground color: #acbad0, background color: #344b6e, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
5
Element location
- :root > h3
+ :root > h3
Element source
- <h3>Blast Off!</h3>
+ <h3>Blast Off!</h3>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 2.83 (foreground color: #46a546, background color: #344b6e, font size: 13.5pt (18px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
6
Element location
- #vap-travel > p:nth-child(3)
+ #vap-travel > p:nth-child(3)
Element source
- <p>Expect violent turbulence, bone-crushing g-forces, muscle atrophy, and certain death (hey, everyone's death is certain at some point, right?).<br>
+ <p>Expect violent turbulence, bone-crushing g-forces, muscle atrophy, and certain death (hey, everyone's death is certain at some point, right?).<br>
</p>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 4.49 (foreground color: #acbad0, background color: #344b6e, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
7
Element location
- :root > a[href="mars2\\\\.html\\\\?a\\\\=crater_adventure"]
+ :root > a[href="mars2\\.html\\?a\\=crater_adventure"]
Element source
- <a class="" href="mars2.html?a=crater_adventure">10% off Crater Adventure</a>
+ <a class="" href="mars2.html?a=crater_adventure">10% off Crater Adventure</a>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 1.87 (foreground color: #067ab4, background color: #344b6e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
8
Element location
- :root > a[href="mars2\\\\.html\\\\?a\\\\=ice_cream"]
+ :root > a[href="mars2\\.html\\?a\\=ice_cream"]
Element source
- <a class="" href="mars2.html?a=ice_cream">Free Astronaut Ice Cream</a>
+ <a class="" href="mars2.html?a=ice_cream">Free Astronaut Ice Cream</a>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 1.87 (foreground color: #067ab4, background color: #344b6e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
9
Element location
- li:nth-child(2) > .deal-text > p
+ li:nth-child(2) > .deal-text > p
Element source
- <p>Spend an extra 3 months in orbit around Mars in our newly-remodelled MarsPod and get a free package of freeze-wrapped dehydrated astronaut ice cream. <a class="link-arrow" href="mars2.html?a=ice_cream">Get your free dehydrated ice cream!</a>
+ <p>Spend an extra 3 months in orbit around Mars in our newly-remodelled MarsPod and get a free package of freeze-wrapped dehydrated astronaut ice cream. <a class="link-arrow" href="mars2.html?a=ice_cream">Get your free dehydrated ice cream!</a>
</p>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 2.37 (foreground color: #000000, background color: #344b6e, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
10
Element location
- li:nth-child(3) > .deal-text > h3 > .link
+ li:nth-child(3) > .deal-text > h3 > .link
Element source
- <a class="link" href="mars2.html?a=low_price_guarantee">Lowest Price Guarantee</a>
+ <a class="link" href="mars2.html?a=low_price_guarantee">Lowest Price Guarantee</a>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 1.87 (foreground color: #067ab4, background color: #344b6e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
11
Element location
- :root > a[href="mars2\\\\.html\\\\?a\\\\=free_year"]
+ :root > a[href="mars2\\.html\\?a\\=free_year"]
Element source
- <a href="mars2.html?a=free_year">Book a free year on Mars</a>
+ <a href="mars2.html?a=free_year">Book a free year on Mars</a>
-
+
Fix any of the following:
-
+
Element has insufficient color contrast of 1.87 (foreground color: #067ab4, background color: #344b6e, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
Related node:
-
body
+
body
@@ -568,48 +568,48 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 3. IDs of active elements must be unique
+
+
+
-
-
duplicate-id-active
-
+
+
duplicate-id-active
+
WCAG 2 Level A, WCAG 4.1.1
-
-
Ensures every id attribute value of active elements is unique
-
+
+
Ensures every id attribute value of active elements is unique
+
serious
-
-
+
+
Issue Tags:
- cat.parsing
+ cat.parsing
- wcag2a
+ wcag2a
- wcag411
+ wcag411
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -619,20 +619,20 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- .active
+ .active
Element source
- <a target="player" data-text="Life was possible on Mars" class="fader first active" href="http://www.youtube.com/embed/OagLGti_hTE?controls=1&showinfo=1&modestbranding=0&wmode=opaque&enablejsapi=1" id="default"></a>
+ <a target="player" data-text="Life was possible on Mars" class="fader first active" href="http://www.youtube.com/embed/OagLGti_hTE?controls=1&showinfo=1&modestbranding=0&wmode=opaque&enablejsapi=1" id="default"></a>
-
+
Fix any of the following:
-
+
Document has active elements with the same id attribute: default
Related node:
-
a[data-text="Why\\\\ Mars\\\\ died"]
-
a[data-text="The\\\\ world\\\\ that\\\\ never\\\\ was"]
+
a[data-text="Why\\ Mars\\ died"]
+
a[data-text="The\\ world\\ that\\ never\\ was"]
@@ -640,48 +640,48 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 4. id attribute value must be unique
+
+
+
-
-
duplicate-id
-
+
+
duplicate-id
+
WCAG 2 Level A, WCAG 4.1.1
-
-
Ensures every id attribute value is unique
-
+
+
Ensures every id attribute value is unique
+
minor
-
-
+
+
Issue Tags:
- cat.parsing
+ cat.parsing
- wcag2a
+ wcag2a
- wcag411
+ wcag411
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -691,47 +691,47 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- .loginnow > .container-fluid-full
+ .loginnow > .container-fluid-full
Element source
- <div id="control-panel" class="container-fluid-full">
+ <div id="control-panel" class="container-fluid-full">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.loggedin > .container-fluid-full
+
.loggedin > .container-fluid-full
2
Element location
- .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
+ .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
Element source
- <nav id="left-control-nav" class="pull-left">
+ <nav id="left-control-nav" class="pull-left">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.loggedin > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
+
.loggedin > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
3
Element location
- .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(2)
+ .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(2)
Element source
- <div id="search-bar" class="pull-left">
+ <div id="search-bar" class="pull-left">
<form id="search" action="/demo/mars/mars2" method="get">
<input type="hidden" name="fn" value="Search">
<input type="text" class="search" name="query" placeholder="search">
@@ -740,153 +740,153 @@ exports[`Successful tests All optional parameters present 1`] = `
</div>
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.loggedin > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(2)
+
.loggedin > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(2)
4
Element location
- :root > form[method="get"][action="\\\\/demo\\\\/mars\\\\/mars2"]
+ :root > form[method="get"][action="\\/demo\\/mars\\/mars2"]
Element source
- <form id="search" action="/demo/mars/mars2" method="get">
+ <form id="search" action="/demo/mars/mars2" method="get">
<input type="hidden" name="fn" value="Search">
<input type="text" class="search" name="query" placeholder="search">
<input type="submit" class="control-search">
</form>
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
:root > form[method="get"][action="\\\\/demo\\\\/mars\\\\/mars2"]
+
:root > form[method="get"][action="\\/demo\\/mars\\/mars2"]
5
Element location
- .loginnow > .container-fluid-full > .container > .span7.pull-right > .pull-right
+ .loginnow > .container-fluid-full > .container > .span7.pull-right > .pull-right
Element source
- <nav id="right-control-nav" class="pull-right" style="display: inline;">
+ <nav id="right-control-nav" class="pull-right" style="display: inline;">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.loggedin > .container-fluid-full > .container > .span7.pull-right > .pull-right
+
.loggedin > .container-fluid-full > .container > .span7.pull-right > .pull-right
6
Element location
- #left-column > div:nth-child(1)
+ #left-column > div:nth-child(1)
Element source
- <div id="vap-section">
+ <div id="vap-section">
<h1 style="color:#eee;">Destination Mars </h1>
<h2 style="color:#acbad0;">A trip to Mars starts in your imagination. Are you bold enough, brave enough, <strong>foolish enough?</strong> We are. You belong on Mars with fools like us. Most of us don't bite. Much.</h2></div>
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
#left-column > div:nth-child(2)
+
#left-column > div:nth-child(2)
7
Element location
- #select-country > input[name="nCountries"][type="hidden"]
+ #select-country > input[name="nCountries"][type="hidden"]
Element source
- <input type="hidden" id="nCountries" name="nCountries">
+ <input type="hidden" id="nCountries" name="nCountries">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
input[name="nCountries"][value="\\\\31 "][type="hidden"]
+
input[name="nCountries"][value="\\31 "][type="hidden"]
8
Element location
- .middle.widget-container:nth-child(13)
+ .middle.widget-container:nth-child(13)
Element source
- <div id="passenger-select" class="widget-container middle">
+ <div id="passenger-select" class="widget-container middle">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.middle.widget-container:nth-child(8)
+
.middle.widget-container:nth-child(8)
9
Element location
- .middle.widget-container:nth-child(13) > .interior-container > div:nth-child(3)
+ .middle.widget-container:nth-child(13) > .interior-container > div:nth-child(3)
Element source
- <div id="passengers">
+ <div id="passengers">
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.middle.widget-container:nth-child(8) > .interior-container > div
+
.middle.widget-container:nth-child(8) > .interior-container > div
10
Element location
- .ui-datepicker.ui-helper-clearfix.ui-corner-all:nth-child(33)
+ .ui-datepicker.ui-helper-clearfix.ui-corner-all:nth-child(33)
Element source
- <div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>
+ <div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>
-
+
Fix any of the following:
-
+
Document has multiple static elements with the same id attribute
Related node:
-
.ui-datepicker.ui-helper-clearfix.ui-corner-all:nth-child(38)
+
.ui-datepicker.ui-helper-clearfix.ui-corner-all:nth-child(38)
@@ -894,54 +894,54 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 5. Frames must have title attribute
+
+
+
-
-
frame-title
-
+
+
frame-title
+
WCAG 2 Level A, WCAG 2.4.1, WCAG 4.1.2
-
-
Ensures <iframe> and <frame> elements contain a non-empty title attribute
-
+
+
Ensures <iframe> and <frame> elements contain a non-empty title attribute
+
serious
-
-
+
+
Issue Tags:
- cat.text-alternatives
+ cat.text-alternatives
- wcag2a
+ wcag2a
- wcag241
+ wcag241
- wcag412
+ wcag412
- section508
+ section508
- section508.22.i
+ section508.22.i
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -951,14 +951,14 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- #player
+ #player
Element source
- <iframe width="365" height="205" name="player" id="player" src="https://www.youtube.com/embed/OagLGti_hTE?controls=1&showinfo=1&modestbranding=0&wmode=opaque&enablejsapi=1" frameborder="0" allowfullscreen=""></iframe>
+ <iframe width="365" height="205" name="player" id="player" src="https://www.youtube.com/embed/OagLGti_hTE?controls=1&showinfo=1&modestbranding=0&wmode=opaque&enablejsapi=1" frameborder="0" allowfullscreen=""></iframe>
-
+
Fix any of the following:
-
+
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
Element has no title attribute or the title attribute is empty
@@ -972,14 +972,14 @@ exports[`Successful tests All optional parameters present 1`] = `
2
Element location
- #fafbba78
+ #fafbba78
Element source
- <iframe id="fafbba78" name="f2bc5e72d" scrolling="no" style="border: none; overflow: hidden; height: 62px; width: 292px;" class="fb_ltr" src="/assets/demo-sites/mars/js/likebox.html"></iframe>
+ <iframe id="fafbba78" name="f2bc5e72d" scrolling="no" style="border: none; overflow: hidden; height: 62px; width: 292px;" class="fb_ltr" src="/assets/demo-sites/mars/js/likebox.html"></iframe>
-
+
Fix any of the following:
-
+
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
Element has no title attribute or the title attribute is empty
@@ -994,48 +994,48 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 6. <html> element must have a lang attribute
+
+
+
-
-
html-has-lang
-
+
+
html-has-lang
+
WCAG 2 Level A, WCAG 3.1.1
-
-
Ensures every HTML document has a lang attribute
-
+
+
Ensures every HTML document has a lang attribute
+
serious
-
-
+
+
Issue Tags:
- cat.language
+ cat.language
- wcag2a
+ wcag2a
- wcag311
+ wcag311
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1045,14 +1045,14 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- html
+ html
Element source
- <html class=" js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers no-applicationcache svg inlinesvg smil svgclippaths">
+ <html class=" js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers no-applicationcache svg inlinesvg smil svgclippaths">
-
+
Fix any of the following:
-
+
The <html> element does not have a lang attribute
@@ -1063,52 +1063,52 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 7. Images must have alternate text
+
+
+
-
-
image-alt
-
+
+
image-alt
+
WCAG 2 Level A, WCAG 1.1.1
-
-
Ensures <img> elements have alternate text or a role of none or presentation
-
+
+
Ensures <img> elements have alternate text or a role of none or presentation
+
critical
-
-
+
+
Issue Tags:
- cat.text-alternatives
+ cat.text-alternatives
- wcag2a
+ wcag2a
- wcag111
+ wcag111
- section508
+ section508
- section508.22.a
+ section508.22.a
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1118,14 +1118,14 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- img[src$="seg"]
+ img[src$="seg"]
Element source
- <img src="/assets/demo-sites/mars/js/seg" width="1" height="1">
+ <img src="/assets/demo-sites/mars/js/seg" width="1" height="1">
-
+
Fix any of the following:
-
+
Element does not have an alt attribute
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -1140,14 +1140,14 @@ exports[`Successful tests All optional parameters present 1`] = `
2
Element location
- :root > img[width="\\\\32 10"][height="\\\\31 20"]
+ :root > img[width="\\32 10"][height="\\31 20"]
Element source
- <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
+ <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
-
+
Fix any of the following:
-
+
Element does not have an alt attribute
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -1162,14 +1162,14 @@ exports[`Successful tests All optional parameters present 1`] = `
3
Element location
- :root > img[width="\\\\32 10"][height="\\\\31 20"]
+ :root > img[width="\\32 10"][height="\\31 20"]
Element source
- <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
+ <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
-
+
Fix any of the following:
-
+
Element does not have an alt attribute
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -1184,14 +1184,14 @@ exports[`Successful tests All optional parameters present 1`] = `
4
Element location
- :root > img[width="\\\\32 10"][height="\\\\31 20"]
+ :root > img[width="\\32 10"][height="\\31 20"]
Element source
- <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
+ <img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120">
-
+
Fix any of the following:
-
+
Element does not have an alt attribute
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -1207,54 +1207,54 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 8. Form elements must have labels
+
+
+
-
-
label
-
+
+
label
+
WCAG 2 Level A, WCAG 4.1.2, WCAG 1.3.1
-
-
Ensures every form element has a label
-
+
+
Ensures every form element has a label
+
critical
-
-
+
+
Issue Tags:
- cat.forms
+ cat.forms
- wcag2a
+ wcag2a
- wcag412
+ wcag412
- wcag131
+ wcag131
- section508
+ section508
- section508.22.n
+ section508.22.n
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1264,14 +1264,14 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- :root > .search[name="query"][placeholder="search"]
+ :root > .search[name="query"][placeholder="search"]
Element source
- <input type="text" class="search" name="query" placeholder="search">
+ <input type="text" class="search" name="query" placeholder="search">
-
+
Fix any of the following:
-
+
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
Form element does not have an implicit (wrapped) <label>
@@ -1286,46 +1286,46 @@ exports[`Successful tests All optional parameters present 1`] = `
-
-
-
-
- 9. Document must have one main landmark
+
+
+
-
-
landmark-one-main
-
+
+
landmark-one-main
+
Best practice
-
-
Ensures the document has a main landmark
-
+
+
Ensures the document has a main landmark
+
moderate
-
-
+
+
Issue Tags:
- cat.semantics
+ cat.semantics
- best-practice
+ best-practice
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1335,14 +1335,14 @@ exports[`Successful tests All optional parameters present 1`] = `
1
Element location
- html
+ html
Element source
- <html class=" js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers no-applicationcache svg inlinesvg smil svgclippaths">
+ <html class=" js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers no-applicationcache svg inlinesvg smil svgclippaths">
-
+
Fix all of the following:
-
+
Document does not have a main landmark
@@ -1352,15 +1352,15 @@ exports[`Successful tests All optional parameters present 1`] = `
2
Element location
- #player
+ #player
html
Element source
- <html lang="en" dir="ltr" data-cast-api-enabled="true">
+ <html lang="en" dir="ltr" data-cast-api-enabled="true">
-
+
Fix all of the following:
-
+
Document does not have a main landmark
@@ -1370,15 +1370,15 @@ html
3
Element location
- #fafbba78
+ #fafbba78
#facebook
Element source
- <html lang="en" id="facebook" class="">
+ <html lang="en" id="facebook" class="">
-
+
Fix all of the following:
-
+
Document does not have a main landmark
@@ -1388,15 +1388,15 @@ html
4
Element location
- .twitter-follow-button
+ .twitter-follow-button
html
Element source
- <html lang="en" class=" xl en">
+ <html lang="en" class=" xl en">
-
+
Fix all of the following:
-
+
Document does not have a main landmark
@@ -1407,46 +1407,46 @@ html
-
-
-
-
- 10. Ensures landmarks are unique
+
+
+
-
-
landmark-unique
-
+
+
landmark-unique
+
Best practice
-
-
Landmarks must have a unique role or role/label/title (i.e. accessible name) combination
-
+
+
Landmarks must have a unique role or role/label/title (i.e. accessible name) combination
+
moderate
-
-
+
+
Issue Tags:
- cat.semantics
+ cat.semantics
- best-practice
+ best-practice
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1456,28 +1456,28 @@ html
1
Element location
- .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
+ .loginnow > .container-fluid-full > .container > .span5.pull-left.left-first > .pull-left:nth-child(1)
Element source
- <nav id="left-control-nav" class="pull-left">
+ <nav id="left-control-nav" class="pull-left">
-
+
Fix any of the following:
-
+
The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Related node:
-
.loginnow > .container-fluid-full > .container > .span7.pull-right > .pull-right
-
#language-bar > nav
-
#main-nav
-
#main-sub-nav
-
#footer-book > nav
-
#footer-trains > nav
-
#footer-passes > nav
-
#footer-plan > nav
-
#footer-faq > nav
-
#footer-connect > nav
+
.loginnow > .container-fluid-full > .container > .span7.pull-right > .pull-right
+
#language-bar > nav
+
#main-nav
+
#main-sub-nav
+
#footer-book > nav
+
#footer-trains > nav
+
#footer-passes > nav
+
#footer-plan > nav
+
#footer-faq > nav
+
#footer-connect > nav
@@ -1485,50 +1485,50 @@ html
-
-
-
-
- 11. Links must be distinguished from surrounding text in a way that does not rely on color
+
+
+
+
+ 11. Links must be distinguished from surrounding text in a way that does not rely on color
Learn more
-
-
link-in-text-block
-
+
+
link-in-text-block
+
WCAG 2 Level A, WCAG 1.4.1
-
-
Links can be distinguished without relying on color
-
+
+
Links can be distinguished without relying on color
+
serious
-
-
+
+
Issue Tags:
- cat.color
+ cat.color
- experimental
+ experimental
- wcag2a
+ wcag2a
- wcag141
+ wcag141
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1538,14 +1538,14 @@ html
1
Element location
- a[href="mars2\\\\.html\\\\?a\\\\=last_will"]
+ a[href="mars2\\.html\\?a\\=last_will"]
Element source
- <a href="mars2.html?a=last_will">prepare your last will and testament</a>
+ <a href="mars2.html?a=last_will">prepare your last will and testament</a>
-
+
Fix all of the following:
-
+
Links need to be distinguished from surrounding text in some way other than by color
@@ -1556,54 +1556,54 @@ html
-
-
-
-
- 12. Links must have discernible text
+
+
+
-
-
link-name
-
+
+
link-name
+
WCAG 2 Level A, WCAG 4.1.2, WCAG 2.4.4
-
-
Ensures links have discernible text
-
+
+
Ensures links have discernible text
+
serious
-
-
+
+
Issue Tags:
- cat.name-role-value
+ cat.name-role-value
- wcag2a
+ wcag2a
- wcag412
+ wcag412
- wcag244
+ wcag244
- section508
+ section508
- section508.22.a
+ section508.22.a
-
-
+
+
- #
- Issue Description
-
+ #
+ Issue Description
+
To solve this violation, you need to...
@@ -1613,20 +1613,20 @@ html
1
Element location
- .link[href$="mars\\\\/\\\\#"]
+ .link[href$="mars\\/\\#"]
Element source
- <a class="link" href="demo/mars/#"><i class="icon-menu-home"></i> </a>
+ <a class="link" href="demo/mars/#"><i class="icon-menu-home"></i> </a>
-
+
Fix all of the following:
-
+
Element is in tab order and does not have accessible text
-
+
Fix any of the following:
-
+
Element does not have text that is visible to screen readers
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
@@ -1640,21 +1640,21 @@ html
2
Element location
- :root > a[href="mars2\\\\.html\\\\?a\\\\=crater_adventure"]
+ :root > a[href="mars2\\.html\\?a\\=crater_adventure"]
Element source
- <a href="mars2.html?a=crater_adventure">
+ <a href="mars2.html?a=crater_adventure">
<img src="/assets/demo-sites/mars/images/mars-spaceman.jpg" class="" width="210" height="120"></a>
-
+
Fix all of the following:
-
+
Element is in tab order and does not have accessible text
-
+
Fix any of the following:
-