@govtechsg/oobee 0.10.70 → 0.10.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DETAILS.md +0 -1
- package/README.md +12 -0
- package/S3_UPLOAD_README.md +172 -0
- package/dev/runGenerateJustHtmlReport.ts +25 -0
- package/package.json +4 -2
- package/src/combine.ts +71 -14
- package/src/constants/common.ts +89 -91
- package/src/constants/constants.ts +534 -59
- package/src/crawlers/crawlDomain.ts +313 -305
- package/src/crawlers/crawlIntelligentSitemap.ts +24 -18
- package/src/crawlers/crawlLocalFile.ts +29 -27
- package/src/crawlers/crawlSitemap.ts +264 -253
- package/src/crawlers/custom/utils.ts +809 -119
- package/src/crawlers/runCustom.ts +29 -4
- package/src/generateHtmlReport.ts +224 -0
- package/src/mergeAxeResults.ts +94 -44
- package/src/runGenerateJustHtmlReport.ts +20 -0
- package/src/services/s3Uploader.ts +184 -0
- package/src/static/ejs/partials/components/allIssues/AllIssues.ejs +9 -0
- package/src/static/ejs/partials/components/allIssues/CategoryBadges.ejs +82 -0
- package/src/static/ejs/partials/components/allIssues/FilterBar.ejs +33 -0
- package/src/static/ejs/partials/components/allIssues/IssuesTable.ejs +41 -0
- package/src/static/ejs/partials/components/header/SiteInfo.ejs +119 -0
- package/src/static/ejs/partials/components/header/aboutScanModal/AboutScanModal.ejs +15 -0
- package/src/static/ejs/partials/components/header/aboutScanModal/ScanConfiguration.ejs +44 -0
- package/src/static/ejs/partials/components/header/aboutScanModal/ScanDetails.ejs +142 -0
- package/src/static/ejs/partials/components/prioritiseIssues/IssueDetailCard.ejs +36 -0
- package/src/static/ejs/partials/components/prioritiseIssues/PrioritiseIssues.ejs +47 -0
- package/src/static/ejs/partials/components/ruleModal/ruleOffcanvas.ejs +196 -0
- package/src/static/ejs/partials/components/scannedPagesSegmentedTabs.ejs +48 -0
- package/src/static/ejs/partials/components/shared/InfoAlert.ejs +3 -0
- package/src/static/ejs/partials/components/{topFive.ejs → topTen.ejs} +2 -2
- package/src/static/ejs/partials/components/wcagCompliance/FailedCriteria.ejs +47 -0
- package/src/static/ejs/partials/components/wcagCompliance/WcagCompliance.ejs +16 -0
- package/src/static/ejs/partials/components/wcagCompliance/WcagGaugeBar.ejs +16 -0
- package/src/static/ejs/partials/components/wcagCoverageDetails.ejs +18 -0
- package/src/static/ejs/partials/footer.ejs +1 -1
- package/src/static/ejs/partials/header.ejs +7 -223
- package/src/static/ejs/partials/main.ejs +12 -23
- package/src/static/ejs/partials/scripts/allIssues/AllIssues.ejs +376 -0
- package/src/static/ejs/partials/scripts/categorySummary.ejs +1 -1
- package/src/static/ejs/partials/scripts/header/SiteInfo.ejs +44 -0
- package/src/static/ejs/partials/scripts/header/aboutScanModal/AboutScanModal.ejs +51 -0
- package/src/static/ejs/partials/scripts/header/aboutScanModal/ScanConfiguration.ejs +127 -0
- package/src/static/ejs/partials/scripts/header/aboutScanModal/ScanDetails.ejs +60 -0
- package/src/static/ejs/partials/scripts/prioritiseIssues/IssueDetailCard.ejs +137 -0
- package/src/static/ejs/partials/scripts/prioritiseIssues/PrioritiseIssues.ejs +214 -0
- package/src/static/ejs/partials/scripts/prioritiseIssues/wcagSvgMap.ejs +861 -0
- package/src/static/ejs/partials/scripts/ruleModal/constants.ejs +949 -0
- package/src/static/ejs/partials/scripts/ruleModal/itemCardRenderer.ejs +352 -0
- package/src/static/ejs/partials/scripts/ruleModal/pageAccordionBuilder.ejs +468 -0
- package/src/static/ejs/partials/scripts/ruleModal/ruleOffcanvas.ejs +306 -0
- package/src/static/ejs/partials/scripts/ruleModal/utilities.ejs +483 -0
- package/src/static/ejs/partials/scripts/scannedPagesSegmentedTabs.ejs +35 -0
- package/src/static/ejs/partials/scripts/screenshotLightbox.ejs +61 -57
- package/src/static/ejs/partials/scripts/topTen.ejs +61 -0
- package/src/static/ejs/partials/scripts/utils.ejs +15 -0
- package/src/static/ejs/partials/scripts/wcagCompliance/FailedCriteria.ejs +103 -0
- package/src/static/ejs/partials/scripts/wcagCompliance/WcagGaugeBar.ejs +47 -0
- package/src/static/ejs/partials/scripts/wcagCompliance.ejs +15 -0
- package/src/static/ejs/partials/scripts/wcagCoverageDetails.ejs +75 -0
- package/src/static/ejs/partials/styles/allIssues/AllIssues.ejs +384 -0
- package/src/static/ejs/partials/styles/bootstrap.ejs +17 -1
- package/src/static/ejs/partials/styles/header/SiteInfo.ejs +121 -0
- package/src/static/ejs/partials/styles/header/aboutScanModal/AboutScanModal.ejs +82 -0
- package/src/static/ejs/partials/styles/header/aboutScanModal/ScanConfiguration.ejs +50 -0
- package/src/static/ejs/partials/styles/header/aboutScanModal/ScanDetails.ejs +149 -0
- package/src/static/ejs/partials/styles/header.ejs +7 -0
- package/src/static/ejs/partials/styles/prioritiseIssues/IssueDetailCard.ejs +141 -0
- package/src/static/ejs/partials/styles/prioritiseIssues/PrioritiseIssues.ejs +204 -0
- package/src/static/ejs/partials/styles/ruleModal/ruleOffcanvas.ejs +456 -0
- package/src/static/ejs/partials/styles/scannedPagesSegmentedTabs.ejs +46 -0
- package/src/static/ejs/partials/styles/shared/InfoAlert.ejs +12 -0
- package/src/static/ejs/partials/styles/styles.ejs +198 -470
- package/src/static/ejs/partials/styles/topTenCard.ejs +44 -0
- package/src/static/ejs/partials/styles/wcagCompliance/FailedCriteria.ejs +59 -0
- package/src/static/ejs/partials/styles/wcagCompliance/WcagGaugeBar.ejs +62 -0
- package/src/static/ejs/partials/styles/wcagCompliance.ejs +36 -0
- package/src/static/ejs/partials/styles/wcagCoverageDetails.ejs +33 -0
- package/src/static/ejs/report.ejs +42 -259
- package/src/static/ejs/summary.ejs +1 -1
- package/src/utils.ts +30 -0
- package/src/static/ejs/partials/components/categorySelector.ejs +0 -4
- package/src/static/ejs/partials/components/categorySelectorDropdown.ejs +0 -57
- package/src/static/ejs/partials/components/pagesScannedModal.ejs +0 -70
- package/src/static/ejs/partials/components/reportSearch.ejs +0 -47
- package/src/static/ejs/partials/components/ruleOffcanvas.ejs +0 -105
- package/src/static/ejs/partials/components/scanAbout.ejs +0 -328
- package/src/static/ejs/partials/components/wcagCompliance.ejs +0 -52
- package/src/static/ejs/partials/scripts/categorySelectorDropdownScript.ejs +0 -190
- package/src/static/ejs/partials/scripts/reportSearch.ejs +0 -287
- package/src/static/ejs/partials/scripts/ruleOffcanvas.ejs +0 -804
- package/src/static/ejs/partials/scripts/scanAboutScript.ejs +0 -38
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
<aside id="scan-about" class="about-scan-details-left">
|
|
2
|
+
<h1>About this scan</h1>
|
|
3
|
+
<ul>
|
|
4
|
+
<li>
|
|
5
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
6
|
+
<path d="M14.2222 0H1.77778C0.791111 0 0 0.8 0 1.77778V14.2222C0 15.2 0.791111 16 1.77778 16H14.2222C15.2 16 16 15.2 16 14.2222V1.77778C16 0.8 15.2089 0 14.2222 0ZM14.2222 14.2222H1.77778V3.55556H14.2222V14.2222ZM12.4444 8H3.55556V6.22222H12.4444V8ZM8.88889 11.5556H3.55556V9.77778H8.88889V11.5556Z" fill="#686868"/>
|
|
7
|
+
</svg>
|
|
8
|
+
<span id="websiteTitle" class="website-title">
|
|
9
|
+
N/A
|
|
10
|
+
</span>
|
|
11
|
+
</li>
|
|
12
|
+
|
|
13
|
+
<li>
|
|
14
|
+
<svg width="16" height="16" viewBox="0 0 16 8" aria-hidden="true" focusable="false">
|
|
15
|
+
<path d="M1.52 4C1.52 2.632 2.632 1.52 4 1.52H7.2V0H4C1.792 0 0 1.792 0 4C0 6.208 1.792 8 4 8H7.2V6.48H4C2.632 6.48 1.52 5.368 1.52 4ZM4.8 4.8H11.2V3.2H4.8V4.8ZM12 0H8.8V1.52H12C13.368 1.52 14.48 2.632 14.48 4C14.48 5.368 13.368 6.48 12 6.48H8.8V8H12C14.208 8 16 6.208 16 4C16 1.792 14.208 0 12 0Z" fill="#686868"/>
|
|
16
|
+
</svg>
|
|
17
|
+
<a id="urlScanned" href="#" target="_blank" rel="noopener noreferrer">
|
|
18
|
+
<span id="urlScannedText" class="url-scanned-text">
|
|
19
|
+
N/A
|
|
20
|
+
</span>
|
|
21
|
+
<svg class="link-external-icon" width="16" height="12" viewBox="0 0 8 8" aria-hidden="true" focusable="false">
|
|
22
|
+
<path d="M7.11111 7.11111H0.888889V0.888889H4V0H0.888889C0.395556 0 0 0.4 0 0.888889V7.11111C0 7.6 0.395556 8 0.888889 8H7.11111C7.6 8 8 7.6 8 7.11111V4H7.11111V7.11111ZM4.88889 0V0.888889H6.48444L2.11556 5.25778L2.74222 5.88444L7.11111 1.51556V3.11111H8V0H4.88889Z" fill="#5735DF"/>
|
|
23
|
+
</svg>
|
|
24
|
+
</a>
|
|
25
|
+
</li>
|
|
26
|
+
<li>
|
|
27
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
28
|
+
<path d="M7.992 0C3.576 0 0 3.584 0 8C0 12.416 3.576 16 7.992 16C12.416 16 16 12.416 16 8C16 3.584 12.416 0 7.992 0ZM8 14.4C4.464 14.4 1.6 11.536 1.6 8C1.6 4.464 4.464 1.6 8 1.6C11.536 1.6 14.4 4.464 14.4 8C14.4 11.536 11.536 14.4 8 14.4Z" fill="#686868"/>
|
|
29
|
+
<path d="M8.25 4H7V8.59016L11.375 11L12 10.059L8.25 8.01639V4Z" fill="#4E4E4E"/>
|
|
30
|
+
</svg>
|
|
31
|
+
<span id="aboutStartTime">
|
|
32
|
+
N/A
|
|
33
|
+
</span>
|
|
34
|
+
</li>
|
|
35
|
+
|
|
36
|
+
<hr class="about-scan-divider" />
|
|
37
|
+
|
|
38
|
+
<% if (viewport !== null) { %>
|
|
39
|
+
<li>
|
|
40
|
+
<% if (viewport.startsWith('Desktop')) { %>
|
|
41
|
+
<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
42
|
+
<path d="M16.3636 0H1.63636C0.736364 0 0 0.72 0 1.6V11.2C0 12.08 0.736364 12.8 1.63636 12.8H7.36364V14.4H5.72727V16H12.2727V14.4H10.6364V12.8H16.3636C17.2636 12.8 18 12.08 18 11.2V1.6C18 0.72 17.2636 0 16.3636 0ZM16.3636 11.2H1.63636V1.6H16.3636V11.2Z" fill="#686868"/>
|
|
43
|
+
</svg>
|
|
44
|
+
<% } else if (viewport.startsWith('CustomWidth')) { %>
|
|
45
|
+
<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
46
|
+
<path d="M14.5455 9.33333H16V10.8889H14.5455V9.33333ZM14.5455 6.22222H16V7.77778H14.5455V6.22222ZM16 12.4444H14.5455V14C15.2727 14 16 13.2222 16 12.4444ZM8.72727 0H10.1818V1.55556H8.72727V0ZM14.5455 3.11111H16V4.66667H14.5455V3.11111ZM14.5455 0V1.55556H16C16 0.777778 15.2727 0 14.5455 0ZM0 3.11111H1.45455V4.66667H0V3.11111ZM11.6364 0H13.0909V1.55556H11.6364V0ZM11.6364 12.4444H13.0909V14H11.6364V12.4444ZM1.45455 0C0.727273 0 0 0.777778 0 1.55556H1.45455V0ZM5.81818 0H7.27273V1.55556H5.81818V0ZM2.90909 0H4.36364V1.55556H2.90909V0ZM0 6.22222V12.4444C0 13.3 0.654545 14 1.45455 14H10.1818V6.22222H0ZM1.45455 12.4444L3.27273 9.94778L4.57455 11.62L6.39273 9.11556L8.72727 12.4444H1.45455Z" fill="#686868"/>
|
|
47
|
+
</svg>
|
|
48
|
+
<% } else { %>
|
|
49
|
+
<svg width="16" height="16" viewBox="0 0 16 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
50
|
+
<path d="M2.66667 1.375H14.6667V0H2.66667C1.93333 0 1.33333 0.61875 1.33333 1.375V8.9375H0V11H9.33333V8.9375H2.66667V1.375ZM15.3333 2.75H11.3333C10.9667 2.75 10.6667 3.05938 10.6667 3.4375V10.3125C10.6667 10.6906 10.9667 11 11.3333 11H15.3333C15.7 11 16 10.6906 16 10.3125V3.4375C16 3.05938 15.7 2.75 15.3333 2.75ZM14.6667 8.9375H12V4.125H14.6667V8.9375Z" fill="#686868"/>
|
|
51
|
+
</svg>
|
|
52
|
+
<% } %>
|
|
53
|
+
<span id="viewport-text">
|
|
54
|
+
N/A
|
|
55
|
+
</span>
|
|
56
|
+
</li>
|
|
57
|
+
<% } %>
|
|
58
|
+
|
|
59
|
+
<li>
|
|
60
|
+
<svg width="16" height="16" viewBox="0 0 13 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
61
|
+
<path d="M13 14.072V4.8L8.125 0H1.625C0.73125 0 0.00812519 0.72 0.00812519 1.6L0 14.4C0 15.28 0.723125 16 1.61687 16H11.375C11.7406 16 12.0656 15.88 12.3419 15.68L8.7425 12.136C8.0925 12.552 7.32875 12.8 6.5 12.8C4.2575 12.8 2.4375 11.008 2.4375 8.8C2.4375 6.592 4.2575 4.8 6.5 4.8C8.7425 4.8 10.5625 6.592 10.5625 8.8C10.5625 9.616 10.3106 10.368 9.88813 11L13 14.072ZM4.0625 8.8C4.0625 10.128 5.15125 11.2 6.5 11.2C7.84875 11.2 8.9375 10.128 8.9375 8.8C8.9375 7.472 7.84875 6.4 6.5 6.4C5.15125 6.4 4.0625 7.472 4.0625 8.8Z" fill="#686868"/>
|
|
62
|
+
</svg>
|
|
63
|
+
<button
|
|
64
|
+
type="button"
|
|
65
|
+
class="js-view-btn about-scan-toggle"
|
|
66
|
+
aria-controls="view-crawl"
|
|
67
|
+
aria-selected="true"
|
|
68
|
+
>
|
|
69
|
+
<div class="d-flex">
|
|
70
|
+
<div class="about-scan-link-row">
|
|
71
|
+
<span id="pagesScannedModalToggleTxt" class="about-us-type-of-scan-text">N/A</span>
|
|
72
|
+
<svg class="about-scan-link-chev" width="10" height="12" viewBox="0 0 6 10" aria-hidden="true" focusable="false">
|
|
73
|
+
<path d="M0.726562 7.06L3.7799 4L0.726562 0.94L1.66656 0L5.66656 4L1.66656 8L0.726562 7.06Z" fill="#5735DF"/>
|
|
74
|
+
</svg>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</button>
|
|
78
|
+
</li>
|
|
79
|
+
|
|
80
|
+
<li class="advanced-group">
|
|
81
|
+
<svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
82
|
+
<path d="M13.2346 8.78333C13.2668 8.53333 13.2828 8.275 13.2828 8C13.2828 7.73333 13.2668 7.46667 13.2266 7.21667L14.857 5.9C15.0016 5.78333 15.0418 5.55833 14.9534 5.39167L13.4113 2.625C13.315 2.44167 13.1142 2.38333 12.9375 2.44167L11.0179 3.24167C10.6163 2.925 10.1906 2.65833 9.71675 2.45833L9.42761 0.341667C9.39548 0.141667 9.23485 0 9.04209 0H5.95791C5.76515 0 5.61255 0.141667 5.58042 0.341667L5.29128 2.45833C4.81741 2.65833 4.3837 2.93333 3.99015 3.24167L2.07057 2.44167C1.89387 2.375 1.69308 2.44167 1.5967 2.625L0.0626475 5.39167C-0.0337329 5.56667 -0.00160615 5.78333 0.159028 5.9L1.78946 7.21667C1.7493 7.46667 1.71718 7.74167 1.71718 8C1.71718 8.25833 1.73324 8.53333 1.7734 8.78333L0.142964 10.1C-0.00160614 10.2167 -0.0417645 10.4417 0.0465841 10.6083L1.58867 13.375C1.68505 13.5583 1.88584 13.6167 2.06254 13.5583L3.98212 12.7583C4.3837 13.075 4.80938 13.3417 5.28325 13.5417L5.57239 15.6583C5.61255 15.8583 5.76515 16 5.95791 16H9.04209C9.23485 16 9.39548 15.8583 9.41958 15.6583L9.70872 13.5417C10.1826 13.3417 10.6163 13.075 11.0099 12.7583L12.9294 13.5583C13.1061 13.625 13.3069 13.5583 13.4033 13.375L14.9454 10.6083C15.0418 10.425 15.0016 10.2167 14.849 10.1L13.2346 8.78333ZM7.5 11C5.90972 11 4.60859 9.65 4.60859 8C4.60859 6.35 5.90972 5 7.5 5C9.09028 5 10.3914 6.35 10.3914 8C10.3914 9.65 9.09028 11 7.5 11Z" fill="#686868"/>
|
|
83
|
+
</svg>
|
|
84
|
+
|
|
85
|
+
<div>
|
|
86
|
+
Advanced scan options enabled
|
|
87
|
+
</div>
|
|
88
|
+
</li>
|
|
89
|
+
<ul class="advanced-sublist">
|
|
90
|
+
<% if (advancedScanOptionsSummaryItems.showIncludeScreenshots) { %>
|
|
91
|
+
<li class="advanced-sublist-li">Include screenshots</li>
|
|
92
|
+
<% } %>
|
|
93
|
+
<% if (advancedScanOptionsSummaryItems.showAllowSubdomains) { %>
|
|
94
|
+
<li class="advanced-sublist-li">Allow subdomains for scans</li>
|
|
95
|
+
<% } %>
|
|
96
|
+
<% if (advancedScanOptionsSummaryItems.showEnableCustomChecks) { %>
|
|
97
|
+
<li class="advanced-sublist-li">Enable custom checks</li>
|
|
98
|
+
<% } %>
|
|
99
|
+
<% if (advancedScanOptionsSummaryItems.showEnableWcagAaa) { %>
|
|
100
|
+
<li class="advanced-sublist-li">Enable WCAG AAA checks</li>
|
|
101
|
+
<% } %>
|
|
102
|
+
<% if (advancedScanOptionsSummaryItems.showSlowScanMode) { %>
|
|
103
|
+
<li class="advanced-sublist-li">Slow scan mode</li>
|
|
104
|
+
<% } %>
|
|
105
|
+
<% if (advancedScanOptionsSummaryItems.showAdhereRobots) { %>
|
|
106
|
+
<li class="advanced-sublist-li">Adhere to robots.txt</li>
|
|
107
|
+
<% } %>
|
|
108
|
+
</ul>
|
|
109
|
+
|
|
110
|
+
<li>
|
|
111
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
112
|
+
<path d="M14.2222 1.77778V14.2222H1.77778V1.77778H14.2222ZM15.2 0H0.8C0.355556 0 0 0.355556 0 0.8V15.2C0 15.5556 0.355556 16 0.8 16H15.2C15.5556 16 16 15.5556 16 15.2V0.8C16 0.355556 15.5556 0 15.2 0ZM7.11111 3.55556H12.4444V5.33333H7.11111V3.55556ZM7.11111 7.11111H12.4444V8.88889H7.11111V7.11111ZM7.11111 10.6667H12.4444V12.4444H7.11111V10.6667ZM3.55556 3.55556H5.33333V5.33333H3.55556V3.55556ZM3.55556 7.11111H5.33333V8.88889H3.55556V7.11111ZM3.55556 10.6667H5.33333V12.4444H3.55556V10.6667Z" fill="#323232"/>
|
|
113
|
+
</svg>
|
|
114
|
+
<button
|
|
115
|
+
type="button"
|
|
116
|
+
class="js-view-btn about-scan-toggle"
|
|
117
|
+
aria-controls="view-wcag"
|
|
118
|
+
aria-selected="false"
|
|
119
|
+
>
|
|
120
|
+
<span class="wcag-criteria-label">
|
|
121
|
+
WCAG Automated Testing
|
|
122
|
+
</span>
|
|
123
|
+
<div class="about-scan-link-row">
|
|
124
|
+
<span class="about-scan-link-text">
|
|
125
|
+
20 (A & AA) and 6 (AAA) Criteria
|
|
126
|
+
</span>
|
|
127
|
+
<svg class="about-scan-link-chev" width="10" height="12" viewBox="0 0 6 10" aria-hidden="true" focusable="false">
|
|
128
|
+
<path d="M0.726562 7.06L3.7799 4L0.726562 0.94L1.66656 0L5.66656 4L1.66656 8L0.726562 7.06Z" fill="#5735DF"/>
|
|
129
|
+
</svg>
|
|
130
|
+
</div>
|
|
131
|
+
</button>
|
|
132
|
+
</li>
|
|
133
|
+
|
|
134
|
+
<hr class="about-scan-divider" />
|
|
135
|
+
|
|
136
|
+
<li>
|
|
137
|
+
<span id="oobeeAppVersion" class="oobee-version-text">N/A</span>
|
|
138
|
+
</li>
|
|
139
|
+
|
|
140
|
+
<li id = "cypressScanAboutMetadata"></li>
|
|
141
|
+
</ul>
|
|
142
|
+
</aside>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<div id="a11yIssueDetailCard" class="issue-detail-card" style="display: none">
|
|
2
|
+
<div class="issue-detail-content">
|
|
3
|
+
<!-- Image placeholder -->
|
|
4
|
+
<div class="issue-detail-image-container">
|
|
5
|
+
<img id="issueDetailImage" src="" alt="Issue illustration" class="issue-detail-image" />
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
<!-- Issue title -->
|
|
9
|
+
<h1 id="issueDetailTitle" class="issue-detail-title"></h1>
|
|
10
|
+
|
|
11
|
+
<!-- Conformance badges -->
|
|
12
|
+
<div class="issue-detail-conformance">
|
|
13
|
+
<span class="mustfix-badge-label">Must Fix</span>
|
|
14
|
+
<div id="issueDetailConformance" class="issue-detail-conformance-badges"></div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<!-- Long description -->
|
|
18
|
+
<p id="issueDetailLongDescription"></p>
|
|
19
|
+
|
|
20
|
+
<!-- Disability impact -->
|
|
21
|
+
<div id="issueDetailDisabilitySection" class="issue-detail-disability" style="display: none">
|
|
22
|
+
<div id="issueDetailDisabilityMessage" class="info-alert" role="alert"></div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<!-- View issue details button -->
|
|
26
|
+
<button id="viewIssueDetailsBtn" class="btn-view-issue-details">
|
|
27
|
+
View issue details
|
|
28
|
+
<svg width="8" height="10" viewBox="0 0 6 10" aria-hidden="true" focusable="false">
|
|
29
|
+
<path
|
|
30
|
+
d="M0.726562 7.06L3.7799 4L0.726562 0.94L1.66656 0L5.66656 4L1.66656 8L0.726562 7.06Z"
|
|
31
|
+
fill="#5735DF"
|
|
32
|
+
/>
|
|
33
|
+
</svg>
|
|
34
|
+
</button>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<div id="prioritiseIssuesCard" class="card rounded mt-4">
|
|
2
|
+
<div class="card-body">
|
|
3
|
+
<div class="d-flex align-items-center gap-2 mb-3">
|
|
4
|
+
<svg
|
|
5
|
+
width="40"
|
|
6
|
+
height="40"
|
|
7
|
+
viewBox="0 0 40 40"
|
|
8
|
+
fill="none"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
>
|
|
11
|
+
<g clip-path="url(#clip0_281_401)">
|
|
12
|
+
<path
|
|
13
|
+
d="M15.0002 34.9997C15.0002 35.9163 15.7502 36.6663 16.6668 36.6663H23.3335C24.2502 36.6663 25.0002 35.9163 25.0002 34.9997V33.333H15.0002V34.9997ZM20.0002 3.33301C13.5668 3.33301 8.3335 8.56634 8.3335 14.9997C8.3335 18.9663 10.3168 22.4497 13.3335 24.5663V28.333C13.3335 29.2497 14.0835 29.9997 15.0002 29.9997H25.0002C25.9168 29.9997 26.6668 29.2497 26.6668 28.333V24.5663C29.6835 22.4497 31.6668 18.9663 31.6668 14.9997C31.6668 8.56634 26.4335 3.33301 20.0002 3.33301ZM23.3335 22.833V26.6663H16.6668V22.833C14.1335 21.0497 11.6668 19.2163 11.6668 14.9997C11.6668 10.3997 15.4002 6.66634 20.0002 6.66634C24.6002 6.66634 28.3335 10.3997 28.3335 14.9997C28.3335 19.1497 25.8168 21.083 23.3335 22.833Z"
|
|
14
|
+
fill="#4D34BF"
|
|
15
|
+
/>
|
|
16
|
+
<path
|
|
17
|
+
d="M19 10.5C19 10.2239 19.2239 10 19.5 10H20.5C20.7761 10 21 10.2239 21 10.5V17.5C21 17.7761 20.7761 18 20.5 18H19.5C19.2239 18 19 17.7761 19 17.5V10.5Z"
|
|
18
|
+
fill="#4D34BF"
|
|
19
|
+
/>
|
|
20
|
+
<path
|
|
21
|
+
d="M19 20.5C19 20.2239 19.2239 20 19.5 20H20.5C20.7761 20 21 20.2239 21 20.5V21.5C21 21.7761 20.7761 22 20.5 22H19.5C19.2239 22 19 21.7761 19 21.5V20.5Z"
|
|
22
|
+
fill="#4D34BF"
|
|
23
|
+
/>
|
|
24
|
+
</g>
|
|
25
|
+
<defs>
|
|
26
|
+
<clipPath id="clip0_281_401">
|
|
27
|
+
<rect width="40" height="40" fill="white" />
|
|
28
|
+
</clipPath>
|
|
29
|
+
</defs>
|
|
30
|
+
</svg>
|
|
31
|
+
<h2 class="mb-0">Prioritise these issues first</h2>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="prioritise-issues-container">
|
|
35
|
+
<div class="prioritise-issues-main">
|
|
36
|
+
<div class="fw-semibold mb-3">
|
|
37
|
+
<%- include('../shared/InfoAlert', { text: 'Resolving each Must Fix issue within a criteria increases your WCAG score by 1.' }) %>
|
|
38
|
+
</div>
|
|
39
|
+
<div id="prioritiseIssuesAccordion" class="prioritise-issues-accordion">
|
|
40
|
+
<!-- Dynamically populated by script -->
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<%- include('./IssueDetailCard') %>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
<%# this is a template; content will be populated using js %>
|
|
2
|
+
<div
|
|
3
|
+
class="modal fade"
|
|
4
|
+
id="expandedRule"
|
|
5
|
+
tabindex="-1"
|
|
6
|
+
aria-labelledby="expandedRuleName"
|
|
7
|
+
aria-hidden="true"
|
|
8
|
+
data-bs-backdrop="true"
|
|
9
|
+
data-bs-keyboard="true"
|
|
10
|
+
>
|
|
11
|
+
<div class="modal-dialog modal-dialog-centered rule-modal-dialog">
|
|
12
|
+
<div class="modal-content">
|
|
13
|
+
<div class="modal-body rule-modal-body p-0">
|
|
14
|
+
<div class="d-flex w-100 modal-view">
|
|
15
|
+
<!-- Left Side -->
|
|
16
|
+
<div class="w-70 left-side-modal">
|
|
17
|
+
<div class="d-flex justify-content-end pt-3 pe-3">
|
|
18
|
+
<button
|
|
19
|
+
type="button"
|
|
20
|
+
class="btn-close modal-button-right"
|
|
21
|
+
data-bs-dismiss="modal"
|
|
22
|
+
aria-label="Close this popup"
|
|
23
|
+
></button>
|
|
24
|
+
</div>
|
|
25
|
+
<!-- SVG Image -->
|
|
26
|
+
<div id="expandedRuleImageContainer" class="rule-modal-image-container">
|
|
27
|
+
<img
|
|
28
|
+
id="expandedRuleImage"
|
|
29
|
+
src=""
|
|
30
|
+
alt="Issue illustration"
|
|
31
|
+
class="rule-modal-image"
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div class="d-flex flex-column gap-3 p-4">
|
|
36
|
+
<h1 id="expandedRuleName">Loading...</h1>
|
|
37
|
+
|
|
38
|
+
<!-- Conformance badges -->
|
|
39
|
+
<div class="rule-modal-conformance">
|
|
40
|
+
<span id="expandedRuleCategoryBadge" class="mustfix-badge-label">Must Fix</span>
|
|
41
|
+
<div id="expandedRuleConformance" class="rule-modal-conformance-badges"></div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<!-- Long description (from a11yRuleLongDescriptionMap) -->
|
|
45
|
+
<p id="expandedRuleDescription" class="rule-modal-description"></p>
|
|
46
|
+
|
|
47
|
+
<div id="expandedRuleManualTestSection" style="display: none">
|
|
48
|
+
<div>
|
|
49
|
+
This occurrence might be a false positive that needs to be verified by a human.
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<!-- Disability impact -->
|
|
54
|
+
<div
|
|
55
|
+
id="expandedRuleDisabilitySection"
|
|
56
|
+
class="rule-modal-disability"
|
|
57
|
+
style="display: none"
|
|
58
|
+
>
|
|
59
|
+
<div id="expandedRuleDisabilityMessage" class="info-alert mb-0" role="alert"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<!-- AI Feedback Section -->
|
|
63
|
+
<div id="expandedRuleAiFeedback" class="rule-modal-ai-feedback" style="display: none">
|
|
64
|
+
<svg
|
|
65
|
+
width="14"
|
|
66
|
+
height="16"
|
|
67
|
+
viewBox="0 0 14 16"
|
|
68
|
+
fill="none"
|
|
69
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
70
|
+
>
|
|
71
|
+
<path
|
|
72
|
+
d="M6.45906 3.34063C5.68875 2.57003 5.1615 1.22438 4.89984 0C4.63778 1.22462 4.11109 2.57056 3.3405 3.34116C2.57019 4.11122 1.22413 4.63847 0 4.90066C1.22462 5.16231 2.57044 5.68925 3.34075 6.45988C4.11106 7.23019 4.63831 8.57613 4.90038 9.8005C5.16203 8.57588 5.68913 7.22994 6.45931 6.45934C7.22962 5.68903 8.57569 5.16203 9.79981 4.89984C8.57547 4.63819 7.22966 4.11097 6.45906 3.34063Z"
|
|
73
|
+
fill="#5735DF"
|
|
74
|
+
/>
|
|
75
|
+
<path
|
|
76
|
+
d="M11.4627 9.5104C11.0029 9.05037 10.6874 8.24602 10.5311 7.51465C10.3745 8.24602 10.0601 9.05034 9.59975 9.51065C9.13944 9.97046 8.33525 10.2857 7.604 10.4423C8.3355 10.5988 9.13944 10.9136 9.59975 11.3739C10.0601 11.8339 10.3751 12.6382 10.5316 13.3696C10.6879 12.638 11.0029 11.8339 11.4629 11.3736C11.923 10.9136 12.7273 10.5986 13.4584 10.4417C12.7273 10.2854 11.923 9.97046 11.4627 9.5104Z"
|
|
77
|
+
fill="#5735DF"
|
|
78
|
+
/>
|
|
79
|
+
<path
|
|
80
|
+
d="M3.30271 11.084C3.17124 11.698 2.90724 12.3735 2.52087 12.7598C2.13455 13.1459 1.45937 13.4104 0.845459 13.5419C1.45937 13.6736 2.13455 13.9374 2.52087 14.324C2.90724 14.7103 3.17177 15.3852 3.30324 15.9995C3.43458 15.3852 3.69871 14.7103 4.08521 14.3237C4.47127 13.9374 5.14658 13.6731 5.76037 13.5414C5.14662 13.4101 4.47127 13.1459 4.08496 12.7595C3.69871 12.3735 3.43405 11.698 3.30271 11.084Z"
|
|
81
|
+
fill="#5735DF"
|
|
82
|
+
/>
|
|
83
|
+
</svg>
|
|
84
|
+
<span>This issue might benefit from AI suggested fixes.</span>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="d-flex flex-column rule-modal-pages-section">
|
|
89
|
+
<!-- Pages Affected Section -->
|
|
90
|
+
<div id="expandedRulePagesSection">
|
|
91
|
+
<div class="accordion" id="pagesAccordion">
|
|
92
|
+
<div class="accordion-item">
|
|
93
|
+
<h2 class="accordion-header" id="pagesAccordionHeader">
|
|
94
|
+
<button
|
|
95
|
+
class="accordion-button collapsed accordion-title"
|
|
96
|
+
type="button"
|
|
97
|
+
data-bs-toggle="collapse"
|
|
98
|
+
data-bs-target="#pagesAccordionContent"
|
|
99
|
+
aria-expanded="false"
|
|
100
|
+
aria-controls="pagesAccordionContent"
|
|
101
|
+
>
|
|
102
|
+
<svg
|
|
103
|
+
class="accordion-arrow"
|
|
104
|
+
width="24"
|
|
105
|
+
height="24"
|
|
106
|
+
viewBox="0 0 24 24"
|
|
107
|
+
fill="none"
|
|
108
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
109
|
+
>
|
|
110
|
+
<path
|
|
111
|
+
d="M7.41 8.58984L12 13.1698L16.59 8.58984L18 9.99984L12 15.9998L6 9.99984L7.41 8.58984Z"
|
|
112
|
+
fill="#5735DF"
|
|
113
|
+
/>
|
|
114
|
+
</svg>
|
|
115
|
+
<div class="d-flex justify-content-between align-items-center w-100">
|
|
116
|
+
<h3 id="expandedRuleDropdownTitle" class="mb-0">
|
|
117
|
+
Pages affected by this issue (#)
|
|
118
|
+
</h3>
|
|
119
|
+
<div class="d-flex align-items-center gap-3">
|
|
120
|
+
<span
|
|
121
|
+
id="expandedRuleDropdownToggleCategoryInfo"
|
|
122
|
+
class="rule-occurrence-count"
|
|
123
|
+
># Total occ.</span
|
|
124
|
+
>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</button>
|
|
128
|
+
</h2>
|
|
129
|
+
<div
|
|
130
|
+
id="pagesAccordionContent"
|
|
131
|
+
class="accordion-collapse collapse"
|
|
132
|
+
aria-labelledby="pagesAccordionHeader"
|
|
133
|
+
data-bs-parent="#pagesAccordion"
|
|
134
|
+
>
|
|
135
|
+
<div class="accordion-body">
|
|
136
|
+
<div class="group-by-toggle">
|
|
137
|
+
<span class="group-by-label">Group by</span>
|
|
138
|
+
<div class="group-by-options">
|
|
139
|
+
<div class="form-check form-check-inline">
|
|
140
|
+
<input
|
|
141
|
+
type="radio"
|
|
142
|
+
class="form-check-input"
|
|
143
|
+
name="groupByOptions"
|
|
144
|
+
id="groupByPage"
|
|
145
|
+
value="page"
|
|
146
|
+
checked
|
|
147
|
+
/>
|
|
148
|
+
<label class="form-check-label" for="groupByPage">Page</label>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div class="form-check form-check-inline">
|
|
152
|
+
<input
|
|
153
|
+
type="radio"
|
|
154
|
+
class="form-check-input"
|
|
155
|
+
name="groupByOptions"
|
|
156
|
+
id="groupByHtmlElement"
|
|
157
|
+
value="html"
|
|
158
|
+
/>
|
|
159
|
+
<label class="form-check-label" for="groupByHtmlElement"
|
|
160
|
+
>HTML Element</label
|
|
161
|
+
>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
<div id="expandedRuleCategoryContent"></div>
|
|
166
|
+
<div id="expandedRulePageContent">Total # affected pages</div>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<!-- Right Side -->
|
|
176
|
+
<div class="w-30 d-flex flex-column right-side-modal p-4">
|
|
177
|
+
<div class="d-flex align-self-end">
|
|
178
|
+
<button
|
|
179
|
+
type="button"
|
|
180
|
+
class="btn-close modal-button"
|
|
181
|
+
data-bs-dismiss="modal"
|
|
182
|
+
aria-label="Close"
|
|
183
|
+
></button>
|
|
184
|
+
</div>
|
|
185
|
+
<h2 class="rule-modal-section-title">Step by step plan</h2>
|
|
186
|
+
<h3>How to Fix</h3>
|
|
187
|
+
<!-- How to Fix Section -->
|
|
188
|
+
<div id="stepByStepContainer" class="rule-modal-how-to-fix">
|
|
189
|
+
<!-- Steps will be populated dynamically -->
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<div class="segmented-tabs" role="tablist" aria-label="Crawl views">
|
|
2
|
+
<button
|
|
3
|
+
type="button"
|
|
4
|
+
class="seg-pill"
|
|
5
|
+
aria-controls="pages-scanned"
|
|
6
|
+
aria-selected="true"
|
|
7
|
+
data-tab-target="#pages-scanned"
|
|
8
|
+
>
|
|
9
|
+
<span id="totalPagesScannedLabel">
|
|
10
|
+
N/A
|
|
11
|
+
</span>
|
|
12
|
+
<span>
|
|
13
|
+
Pages Scanned
|
|
14
|
+
</span>
|
|
15
|
+
</button>
|
|
16
|
+
|
|
17
|
+
<button
|
|
18
|
+
type="button"
|
|
19
|
+
id="seg-not-scanned"
|
|
20
|
+
class="seg-pill"
|
|
21
|
+
aria-controls="pages-not-scanned"
|
|
22
|
+
aria-selected="false"
|
|
23
|
+
data-tab-target="#pages-not-scanned"
|
|
24
|
+
>
|
|
25
|
+
<span id="totalPagesNotScannedLabel">
|
|
26
|
+
N/A
|
|
27
|
+
</span>
|
|
28
|
+
<span>
|
|
29
|
+
Pages Not Scanned
|
|
30
|
+
</span>
|
|
31
|
+
</button>
|
|
32
|
+
|
|
33
|
+
<button
|
|
34
|
+
type="button"
|
|
35
|
+
id="seg-unsupported"
|
|
36
|
+
class="seg-pill"
|
|
37
|
+
aria-controls="pages-unsupported"
|
|
38
|
+
aria-selected="false"
|
|
39
|
+
data-tab-target="#pages-unsupported"
|
|
40
|
+
>
|
|
41
|
+
<span id="totalUnsupportedDocsLabel">
|
|
42
|
+
N/A
|
|
43
|
+
</span>
|
|
44
|
+
<span>
|
|
45
|
+
Unsupported Documents
|
|
46
|
+
</span>
|
|
47
|
+
</button>
|
|
48
|
+
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<div id="top-
|
|
1
|
+
<div id="top-ten-card" class="h-100">
|
|
2
2
|
<div class="card-body">
|
|
3
|
-
<
|
|
3
|
+
<h3>Pages with the most issues</h3>
|
|
4
4
|
<ul class="unbulleted-list" id="top-issues-list"></ul>
|
|
5
5
|
</div>
|
|
6
6
|
</div>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<div id="failedCriteriaCard" class="mt-3">
|
|
2
|
+
<div class="wcag-row-column">
|
|
3
|
+
<div>
|
|
4
|
+
<h3 class="wcag-title">Failed Criteria (<span id="failedCriteriaCount">0</span>)</h3>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<ul id="failedCriteriaList" class="unbulleted-list">
|
|
8
|
+
<!-- dynamically populated -->
|
|
9
|
+
</ul>
|
|
10
|
+
|
|
11
|
+
<button
|
|
12
|
+
id="viewAllFailedCriteria"
|
|
13
|
+
type="button"
|
|
14
|
+
class="view-all-link"
|
|
15
|
+
data-bs-toggle="modal"
|
|
16
|
+
data-bs-target="#failedCriteriaModal"
|
|
17
|
+
hidden
|
|
18
|
+
>
|
|
19
|
+
View all failed criteria
|
|
20
|
+
<svg width="8" height="10" viewBox="0 0 6 10" aria-hidden="true" focusable="false">
|
|
21
|
+
<path
|
|
22
|
+
d="M0.726562 7.06L3.7799 4L0.726562 0.94L1.66656 0L5.66656 4L1.66656 8L0.726562 7.06Z"
|
|
23
|
+
fill="#5735DF"
|
|
24
|
+
/>
|
|
25
|
+
</svg>
|
|
26
|
+
</button>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<!-- Failed Criteria Modal -->
|
|
31
|
+
<div id="failedCriteriaModal" class="modal fade" tabindex="-1" aria-labelledby="failedCriteriaModalLabel" aria-hidden="true">
|
|
32
|
+
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
|
|
33
|
+
<div class="modal-content">
|
|
34
|
+
<div class="modal-header modal-title mt-2">
|
|
35
|
+
<h1 class="modal-title fw-bold" id="failedCriteriaModalLabel">
|
|
36
|
+
Failed Criteria (<span id="failedCriteriaModalCount">0</span>)
|
|
37
|
+
</h1>
|
|
38
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="modal-body">
|
|
41
|
+
<ul id="failedCriteriaModalList" class="unbulleted-list">
|
|
42
|
+
<!-- dynamically populated -->
|
|
43
|
+
</ul>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<div id="wcag-compliance-card" class="wcag-card">
|
|
2
|
+
<div class="wcag-row">
|
|
3
|
+
<div>
|
|
4
|
+
<h2 class="wcag-title">WCAG Score</h2>
|
|
5
|
+
|
|
6
|
+
<p class="wcag-sub">Based on Automated Checks</p>
|
|
7
|
+
|
|
8
|
+
<p id="wcagStatus" class="wcag-status" hidden>
|
|
9
|
+
This website does not meet the minimum accessibility standards.
|
|
10
|
+
</p>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div><%- include('WcagGaugeBar') %></div>
|
|
14
|
+
</div>
|
|
15
|
+
<div><%- include('FailedCriteria') %></div>
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<figure id="wcagGauge"
|
|
2
|
+
class="wcag-gauge"
|
|
3
|
+
role="img"
|
|
4
|
+
aria-label="WCAG A & AA automated checks passed">
|
|
5
|
+
<svg viewBox="0 0 100 60" aria-hidden="true" focusable="false">
|
|
6
|
+
<path class="gauge-track" d="M10,50 A40,40 0 0 1 90,50" />
|
|
7
|
+
<path class="gauge-fill" id="gaugeFill" d="M10,50 A40,40 0 0 1 90,50" />
|
|
8
|
+
</svg>
|
|
9
|
+
|
|
10
|
+
<figcaption class="gauge-center">
|
|
11
|
+
<span class="gauge-number">
|
|
12
|
+
<span id="gaugeValueNumber" class="gauge-value-number">0</span>/<span id="gaugeValueTotal">0</span>
|
|
13
|
+
</span>
|
|
14
|
+
</figcaption>
|
|
15
|
+
<div class="gauge-caption">Target to meet: <span id="gaugeTarget">20</span></div>
|
|
16
|
+
</figure>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<div id="wcagCoverage" class="my-3">
|
|
2
|
+
<h5 class="fw-semibold mb-2">
|
|
3
|
+
<span id="wcagAALabelCount">20</span> (A & AA) WCAG Success Criteria
|
|
4
|
+
</h5>
|
|
5
|
+
<div class="wcag-box">
|
|
6
|
+
<ul id="wcagLinksListAA" class="wcag-grid list-unstyled m-0">
|
|
7
|
+
<!-- dynamically populated -->
|
|
8
|
+
</ul>
|
|
9
|
+
</div>
|
|
10
|
+
<h5 class="fw-semibold mt-4 mb-2">
|
|
11
|
+
<span id="wcagAAALabelCount">6</span> (AAA) WCAG Success Criteria
|
|
12
|
+
</h5>
|
|
13
|
+
<div class="wcag-box">
|
|
14
|
+
<ul id="wcagLinksListAAA" class="wcag-grid list-unstyled m-0">
|
|
15
|
+
<!-- dynamically populated -->
|
|
16
|
+
</ul>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|