diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 7814376e4..17e4f314a 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -75,6 +75,8 @@ jobs:
run: echo ::set-env name=RELEASE_VERSION::${GITHUB_REF:10}
- run: npm install
working-directory: cypress-accessibility-checker
+ - run: npm run build:report
+ working-directory: cypress-accessibility-checker
- run: npm run package:npm
working-directory: cypress-accessibility-checker
- run: gitactions/publish/cypress-achecker.sh
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4b7cb405b..937d1ec33 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -207,7 +207,8 @@ jobs:
working-directory: accessibility-checker-engine
- run: npm install
working-directory: cypress-accessibility-checker
-
+ - run: npm run build:report
+ working-directory: cypress-accessibility-checker
- run: npm test
working-directory: cypress-accessibility-checker
diff --git a/cypress-accessibility-checker/.achecker.yml b/cypress-accessibility-checker/.achecker.yml
index 2ec3eb11c..71cf87930 100644
--- a/cypress-accessibility-checker/.achecker.yml
+++ b/cypress-accessibility-checker/.achecker.yml
@@ -50,6 +50,7 @@ captureScreenshots: false
# Default: json
outputFormat:
- json
+ - html
# Optional - Specify labels that you would like associated to your scan
#
diff --git a/cypress-accessibility-checker/README.md b/cypress-accessibility-checker/README.md
index 3a53591d6..52242932d 100644
--- a/cypress-accessibility-checker/README.md
+++ b/cypress-accessibility-checker/README.md
@@ -1,6 +1,6 @@
# cypress-accessibility-checker
-Cypress plugin for Accessibility Testing. This plugin is a wrapper around the NodeJS version of `accessibility-checker` which is [available on NPM](https://www.npmjs.com/package/accessibility-checker). The plugin works by taking a stringified version of the page and passing it down to a Cypress plugin which then executes the `accessibility-checker` library against the stringified page. Please see the `Usage` section in this README for more details.
+Cypress plugin for Accessibility Testing. This plugin is a Cypress flavor of the NodeJS version of `accessibility-checker` which is also [available on NPM](https://www.npmjs.com/package/accessibility-checker). The plugin works by injecting the accessibility-checker engine into the Cypress browser and scanning the page in context. Please see the `Usage` section in this README for more details.
## Bugs and Issues
@@ -12,7 +12,7 @@ All bugs or issues related to the cypress-accessibility-checker code can be crea
## Installation
-Install the package as a devDependency. It will pull in a few packages including `accessibility-checker` which runs the actual tests.
+Install the package as a devDependency.
```
npm install cypress-accessibility-checker --save-dev
@@ -30,10 +30,10 @@ There are two setup steps you must complete in order for the Cypress tests to be
In the `cypress/plugins/index.js` file located in your project, require the plugin and then register it with Cypress.
```
-const a11yTasks = require('cypress-accessibility-checker/plugin');
+const aCheckerTasks = require('cypress-accessibility-checker/plugin');
module.exports = (on, config) => {
on('task', {
- accessibilityChecker: a11yTasks
+ accessibilityChecker: aCheckerTasks
});
};
```
@@ -53,30 +53,26 @@ The typical use case will be to get the accessibility compliance of a document a
```
// Retrieves the compliance of the document then checks the results against the defined settings.
// If there are issues when compared to the defined settings, it will fail the Cypress test.
-cy.getA11yComplianceOfDocument('my scan').assertA11yCompliance()
+cy.getCompliance('my scan').assertCompliance()
```
Examples on how to use each of the APIs below can be found in the `achecker.js` test file [located here](https://github.com/IBMa/equal-access/blob/master/cypress-accessibility-checker/test/cypress/integration/achecker.js).
-- `cy.getA11yCompliance(content: string, label)`
- - `content` must only be a string of HTML. Due to the nature of how the plugin works, only string version of HTML is supported.
+- `cy.getCompliance(label)`
+ - Similar to `getCompliance()` in the reference API above.
- Returned data ([defined here](https://www.npmjs.com/package/accessibility-checker#async-acheckergetcompliance-content--label--string)) will only contain the `report` object.
-- `cy.getA11yComplianceOfDocument(label)`
- - Similar to `getCompliance()` in the reference API above, however it will automatically pass in the document.
+- `cy.getCompliance(cyObj, label)`
+ - Similar to `getCompliance()` in the reference API above, using the passed cy object (typically obtained via `cy.document`).
- Returned data ([defined here](https://www.npmjs.com/package/accessibility-checker#async-acheckergetcompliance-content--label--string)) will only contain the `report` object.
-- `cy.assertA11yCompliance(failOnError?: boolean)`
+- `cy.assertCompliance(failOnError?: boolean)`
- If `failOnError` is set to false, this will not fail your test. This is useful for testing what needs to be fixed without failing the test. By default this command will fail your test unless you specify `false` here.
-- `cy.getA11yDiffResults(label)`
-- `cy.getA11yBaseline(label)`
-- `cy.diffA11yResultsWithExpected(actual, expected, clean)`
-- `cy.stringifyA11yResults(report)`
-- `cy.getA11yConfig()`
-- `cy.closeA11y()`
-
-You can chain the commands similar to other Cypress commands. For example, `cy.getA11yComplianceOfDocument('my-label').assertA11yCompliance()` will get the compliance report of the document and then assert there are no violations or that it matches up with a baseline of the same label.
-
-**NOTE**: The results folder will contain scan results. Each file will contain the stringified version of what was scanned on the page instead of the URL scanned. This is currently working as expected.
+- `cy.getDiffResults(label)`
+- `cy.getBaseline(label)`
+- `cy.diffResultsWithExpected(actual, expected, clean)`
+- `cy.stringifyResults(report)`
+- `cy.getACheckerConfig()`
+You can chain the commands similar to other Cypress commands. For example, `cy.getCompliance('my-label').assertCompliance()` will get the compliance report of the document and then assert there are no violations or that it matches up with a baseline of the same label.
### Using Baselines
Baselines are a helpful feature of `accessibility-checker` that can also be used in this Cypress wrapper. The concept involves capturing a scan result as a 'baseline' so that future scans will pass if they match the baseline. If they differ, then the test will fail. This feature is useful for things like false positives or issues you plan on not fixing.
diff --git a/cypress-accessibility-checker/boilerplates/cypress/integration/accessibility-checker-example.spec.js b/cypress-accessibility-checker/boilerplates/cypress/integration/accessibility-checker-example.spec.js
index 06c8e264f..6b21ffbdb 100644
--- a/cypress-accessibility-checker/boilerplates/cypress/integration/accessibility-checker-example.spec.js
+++ b/cypress-accessibility-checker/boilerplates/cypress/integration/accessibility-checker-example.spec.js
@@ -17,10 +17,10 @@
///
context('Accessibility checker example', () => {
- it('Scan website that contains failures', () => {
- // Replace URL with application URL
- cy.visit('http://localhost:8080/example-html-file.html')
- .getA11yComplianceOfDocument('example') // Label should be unique per call to the function
- .assertA11yCompliance();
- });
+ it('Scan website that contains failures', () => {
+ // Replace URL with application URL
+ cy.visit('http://localhost:8080/example-html-file.html')
+ .getCompliance('example') // Label should be unique per call to the function
+ .assertCompliance();
+ });
});
diff --git a/cypress-accessibility-checker/cypress.json b/cypress-accessibility-checker/cypress.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/cypress-accessibility-checker/cypress.json
@@ -0,0 +1 @@
+{}
diff --git a/cypress-accessibility-checker/package.json b/cypress-accessibility-checker/package.json
index c7ccec04e..56ca76b68 100644
--- a/cypress-accessibility-checker/package.json
+++ b/cypress-accessibility-checker/package.json
@@ -4,10 +4,11 @@
"description": "Accessibility Checker for Cypress",
"scripts": {
"lint": "eslint .",
- "test": "start-server-and-test 'npm run test:start-http' 8080 'cd test && cypress run'",
- "test:open": "cd test && cypress open",
+ "test": "npm run build:report && start-server-and-test 'npm run test:start-http' 8080 'cd test && cypress run'",
+ "test:open": "npm run build:report && cd test && cypress open",
"test:start-http": "http-server -c-1 --silent",
- "package:common": "rm -rf package && mkdir package && cp -R *.js src package/ && cp package.json package/ && cp README.md package/",
+ "build:report": "(cd ../report-react && npm run build && cd ../cypress-accessibility-checker && shx cp ../report-react/build/genReport.js ./src/lib/reporters/)",
+ "package:common": "npm run build:report && rm -rf package && mkdir package && cp -R *.js src package/ && cp package.json package/ && cp README.md package/",
"package:zip": "npm run package:common && cd package && npm pack",
"package:npm": "npm run package:common"
},
@@ -32,7 +33,7 @@
"cypress": "^3 || ^4"
},
"devDependencies": {
- "cypress": "^4.5.0",
+ "cypress": "^5.2.0",
"eslint": "^7.0.0",
"eslint-plugin-cypress": "^2.10.3",
"http-server": "^0.12.3",
diff --git a/cypress-accessibility-checker/src/commands.js b/cypress-accessibility-checker/src/commands.js
index 35a7aa4cf..b78477f91 100644
--- a/cypress-accessibility-checker/src/commands.js
+++ b/cypress-accessibility-checker/src/commands.js
@@ -16,133 +16,146 @@
///
-/**
- * Scans the sent HTML and returns a report.
- */
-Cypress.Commands.add('getA11yCompliance', (html, label) => {
- return cy
- .task('accessibilityChecker', {
- task: 'getCompliance',
- data: {
- html,
- label
- }
- })
- .then((result) => {
- return cy.wrap(result, { log: false });
+const ACCommands = require("./lib/ACCommands");
+before(() => {
+ // To write to disk, we have to be outside of the browser, so that's a task
+ cy.task('accessibilityChecker', {
+ task: 'loadBaselines'
+ }).then((baselines) => {
+ return ACCommands.setBaselines(baselines);
});
-});
+})
-/**
- * Scans and returns a report using the entire `document` and the sent label.
- */
-Cypress.Commands.add('getA11yComplianceOfDocument', (label) => {
- return cy.document({ log: false }).then((doc) => {
+after(() => {
+ // To write to disk, we have to be outside of the browser, so that's a task
cy.task('accessibilityChecker', {
- task: 'getCompliance',
- data: {
- html: doc.getElementsByTagName('html')[0].outerHTML,
- label
- }
- }).then((result) => {
- return cy.wrap(result, { log: false });
+ task: 'onRunComplete'
});
- });
+})
+// Note: Command run within the browser. Tasks execute outside of the browser
+
+/**
+ * Get compliance of a cypress object
+ *
+ * This can be called with a single parameter - getCompliance("SCAN_LABEL"),
+ * which will scan the current document. Otherwise, pass a cypress object
+ * (document) and a label
+ */
+Cypress.Commands.add("getCompliance", (cyObj, scanLabel) => {
+ let p;
+ if (typeof cyObj === "string") {
+ p = cy.document({ log: false })
+ .then((doc) => {
+ scanLabel = cyObj;
+ cyObj = doc;
+ })
+ } else {
+ // We already have a cypress object to scan
+ p = cy.wrap({});
+ }
+ return p
+ // Allow the scan to run for 20 seconds
+ .then({ timeout: 20000 }, () => {
+ return ACCommands.getCompliance(cyObj, scanLabel);
+ })
+ .then((result) => {
+ // To write to disk, we have to be outside of the browser, so that's a task
+ return cy.task('accessibilityChecker', {
+ task: 'sendResultsToReporter',
+ data: result
+ }).then(() => {
+ return result.report;
+ });
+ })
});
/**
- * Asserts a11y compliance against a baseline or failure level of violation. If a failure
+ * Asserts accessibility compliance against a baseline or failure level of violation. If a failure
* is logged then the test will have an assertion fail.
*/
Cypress.Commands.add(
- 'assertA11yCompliance',
+ 'assertCompliance',
{ prevSubject: true },
(priorResults, failOnError = true) => {
- const taskResult = cy
- .task('accessibilityChecker', {
- task: 'assertCompliance',
- data: { report: priorResults.report }
- })
+ const taskResult = ACCommands.assertCompliance(priorResults)
.then((result) => {
- const name = 'A11y';
- if (result === 0) {
- // 0 - results match baseline or no violations based on failLevels
- Cypress.log({
- name,
- message: 'No violations based on baseline/failLevels'
- });
return result;
- } else if (result === 1) {
- // 1 - results don't match baseline
- // Get the diff between the results/baseline and put in console
- cy.getA11yDiffResults(priorResults.report.label).then((diff) => {
- const message =
- 'Does not match baseline. See console for scan diff.';
- Cypress.log({
- name,
- message,
- consoleProps: () => {
- return {
- message,
- diff
- };
- }
- });
-
- return result;
- });
- } else if (result === 2) {
- // 2 - failure based on failLevels
- // Print report and then individual violations
- const message =
- 'Violations according to failLevels. See console for scan results.';
- Cypress.log({
- name,
- message,
- consoleProps: () => {
- return {
- message,
- priorResults
- };
- }
- });
-
- // Individual violations
- return cy.getA11yConfig().then(({ failLevels }) => {
- priorResults.report.results
- .filter((curErr) => failLevels.indexOf(curErr.level) !== -1)
- .forEach((curErr) => {
- Cypress.log({
- name,
- message: curErr.message,
- consoleProps: () => {
- return {
- curErr
- };
- }
- });
- });
- return result;
- });
- } else if (result === -1) {
- // -1 - Exception
- Cypress.log({
- name,
- message: 'Exception asserting compliance. See Cypress logs.'
- });
- return result;
- }
+ // const name = 'A11y';
+ // if (result === 0) {
+ // // 0 - results match baseline or no violations based on failLevels
+ // Cypress.log({
+ // name,
+ // message: 'No violations based on baseline/failLevels'
+ // });
+ // return result;
+ // } else if (result === 1) {
+ // // 1 - results don't match baseline
+ // // Get the diff between the results/baseline and put in console
+ // cy.getDiffResults(priorResults.report.label).then((diff) => {
+ // const message =
+ // 'Does not match baseline. See console for scan diff.';
+ // Cypress.log({
+ // name,
+ // message,
+ // consoleProps: () => {
+ // return {
+ // message,
+ // diff
+ // };
+ // }
+ // });
+
+ // return result;
+ // });
+ // } else if (result === 2) {
+ // // 2 - failure based on failLevels
+ // // Print report and then individual violations
+ // const message =
+ // 'Violations according to failLevels. See console for scan results.';
+ // Cypress.log({
+ // name,
+ // message,
+ // consoleProps: () => {
+ // return {
+ // message,
+ // priorResults
+ // };
+ // }
+ // });
+
+ // // Individual violations
+ // return cy.getACheckerConfig().then(({ failLevels }) => {
+ // priorResults.report.results
+ // .filter((curErr) => failLevels.indexOf(curErr.level) !== -1)
+ // .forEach((curErr) => {
+ // Cypress.log({
+ // name,
+ // message: curErr.message,
+ // consoleProps: () => {
+ // return {
+ // curErr
+ // };
+ // }
+ // });
+ // });
+ // return result;
+ // });
+ // } else if (result === -1) {
+ // // -1 - Exception
+ // Cypress.log({
+ // name,
+ // message: 'Exception asserting compliance. See Cypress logs.'
+ // });
+ // return result;
+ // }
})
- .then((result) => {
- return cy.wrap(result, { log: false });
- });
- if (!!failOnError) {
- const message =
- 'accessibility-checker: See previous logs for accessibility violation data';
+ // if (!!failOnError) {
+ // const message =
+ // 'accessibility-checker: See previous logs for accessibility violation data';
- taskResult.should('eq', 0, message);
- }
+ // taskResult.should('eq', 0, message);
+ // }
return taskResult;
}
@@ -151,19 +164,14 @@ Cypress.Commands.add(
/**
* Retrieves the diff of the results for the given label against the baseline.
*/
-Cypress.Commands.add('getA11yDiffResults', (label) => {
- cy.task('accessibilityChecker', {
- task: 'getDiffResults',
- data: { label }
- }).then((diff) => {
- return cy.wrap(diff, { log: false });
- });
+Cypress.Commands.add('getDiffResults', (label) => {
+ return cy.wrap(ACCommands.getDiffResults(label), { log: false });
});
/**
* Retrieves the baseline associated with the label.
*/
-Cypress.Commands.add('getA11yBaseline', (label) => {
+Cypress.Commands.add('getBaseline', (label) => {
cy.task('accessibilityChecker', {
task: 'getBaseline',
data: { label }
@@ -176,7 +184,7 @@ Cypress.Commands.add('getA11yBaseline', (label) => {
* Compare provided actual and expected objects and get the differences if there are any.
*/
Cypress.Commands.add(
- 'diffA11yResultsWithExpected',
+ 'diffResultsWithExpected',
(actual, expected, clean) => {
cy.task('accessibilityChecker', {
task: 'diffResultsWithExpected',
@@ -191,7 +199,7 @@ Cypress.Commands.add(
* Retrieve the readable stringified representation of the scan results.
*/
Cypress.Commands.add(
- 'stringifyA11yResults',
+ 'stringifyResults',
{ prevSubject: true },
(report) => {
// Send proper report property
@@ -209,7 +217,7 @@ Cypress.Commands.add(
/**
* Retrieve the configuration object used by accessibility-checker.
*/
-Cypress.Commands.add('getA11yConfig', () => {
+Cypress.Commands.add('getACheckerConfig', () => {
cy.task('accessibilityChecker', {
task: 'getConfig',
data: {}
@@ -217,15 +225,3 @@ Cypress.Commands.add('getA11yConfig', () => {
return cy.wrap(result, { log: false });
});
});
-
-/**
- * Close puppeteer pages and other resources that may be used by accessibility-checker.
- */
-Cypress.Commands.add('closeA11y', () => {
- cy.task('accessibilityChecker', {
- task: 'close',
- data: {}
- }).then((result) => {
- return cy.wrap(result, { log: false });
- });
-});
diff --git a/cypress-accessibility-checker/src/engine/ace-node.js b/cypress-accessibility-checker/src/engine/ace-node.js
new file mode 100644
index 000000000..27ca5f27e
--- /dev/null
+++ b/cypress-accessibility-checker/src/engine/ace-node.js
@@ -0,0 +1,16 @@
+/*!
+ * Copyright:: 2016,2017,2019,2020- IBM, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+module.exports=function(e){var t={};function i(a){if(t[a])return t[a].exports;var l=t[a]={i:a,l:!1,exports:{}};return e[a].call(l.exports,l,l.exports,i),l.l=!0,l.exports}return i.m=e,i.c=t,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)i.d(a,l,function(t){return e[t]}.bind(null,l));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=8)}([function(e,t,i){"use strict";var a,l;Object.defineProperty(t,"__esModule",{value:!0}),t.RuleManual=t.RulePotential=t.RuleFail=t.RuleRender=t.RulePass=t.eRuleCategory=t.eRulePolicy=t.eRuleConfidence=void 0,function(e){e.PASS="PASS",e.FAIL="FAIL",e.POTENTIAL="POTENTIAL",e.MANUAL="MANUAL"}(a=t.eRuleConfidence||(t.eRuleConfidence={})),function(e){e.VIOLATION="VIOLATION",e.RECOMMENDATION="RECOMMENDATION",e.INFORMATION="INFORMATION"}(l=t.eRulePolicy||(t.eRulePolicy={})),function(e){e.ACCESSIBILITY="Accessibility",e.DESIGN="Design",e.OTHER="Other"}(t.eRuleCategory||(t.eRuleCategory={})),t.RulePass=function(e,t,i){if(null==e)throw new Error("Reason ID must be defined");return{value:[l.INFORMATION,a.PASS],reasonId:e,messageArgs:t||[],apiArgs:i||[]}},t.RuleRender=function(e,t,i){if(null==e)throw new Error("Reason ID must be defined");return{value:[l.INFORMATION,a.PASS],reasonId:0,messageArgs:t||[],apiArgs:i||[]}},t.RuleFail=function(e,t,i){if(null==e)throw new Error("Reason ID must be defined");return{value:[l.INFORMATION,a.FAIL],reasonId:e,messageArgs:t||[],apiArgs:i||[]}},t.RulePotential=function(e,t,i){if(null==e)throw new Error("Reason ID must be defined");return{value:[l.INFORMATION,a.POTENTIAL],reasonId:e,messageArgs:t||[],apiArgs:i||[]}},t.RuleManual=function(e,t,i){if(null==e)throw new Error("Reason ID must be defined");return{value:[l.INFORMATION,a.MANUAL],reasonId:e,messageArgs:t||[],apiArgs:i||[]}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeWalker=t.ColorObj=t.RPTUtilStyle=t.RPTUtil=void 0;var a=i(2),l=i(6),o=function(){function e(){}return e.isDefinedAriaAttributeAtIndex=function(t,i){var a=t.attributes[i].name;return e.isDefinedAriaAttribute(t,a)},e.getAriaAttribute=function(t,i){var a=t.getAttribute(i);if(t.hasAttribute(i)&&""==a.trim())return a;if(!a){var o=t.nodeName.toLowerCase();i in e.ariaAttributeImplicitMappings&&(o in e.ariaAttributeImplicitMappings[i]?"function"==typeof(a=e.ariaAttributeImplicitMappings[i][o])&&(a=a(t)):"*"in e.ariaAttributeImplicitMappings[i]&&"function"==typeof(a=e.ariaAttributeImplicitMappings[i]["*"])&&(a=a(t)))}if(!a){var n=l.ARIAMapper.nodeToRole(t);n in e.ariaAttributeRoleDefaults&&i in e.ariaAttributeRoleDefaults[n]&&"function"==typeof(a=e.ariaAttributeRoleDefaults[n][i])&&(a=a(t))}return!a&&i in e.ariaAttributeGlobalDefaults&&(a=e.ariaAttributeGlobalDefaults[i]),a},e.wordCount=function(e){return 0==(e=e.trim()).length?0:e.split(/\s+/g).length},e.isTabbable=function(t){if(!e.isNodeVisible(t))return!1;if(t.hasAttribute("tabindex"))return parseInt(t.getAttribute("tabindex"))>=0;var i=t.nodeName.toLowerCase();if(i in e.tabTagMap){var a=e.tabTagMap[i];return"function"==typeof a&&(a=a(t)),a}return!1},e.tabIndexLEZero=function(t){if(e.hasAttribute(t,"tabindex")&&t.getAttribute("tabindex").match(/^-?\d+$/)){var i=parseInt(t.getAttribute("tabindex"));return 0==i||-1==i}return!1},e.isHtmlEquiv=function(e,t){var i=!1;if(e&&"input"==e.nodeName.toLowerCase()){var a=e.getAttribute("type").toLowerCase();a&&(-1!=t.indexOf("checkbox")?i="checkbox"==a:-1!=t.indexOf("radio")&&(i="radio"==a))}return i},e.isDefinedAriaAttribute=function(e,t){var i=!1;return"aria-"==t.substring(0,5)&&(i=e.hasAttribute&&e.hasAttribute(t)),i},e.normalizeSpacing=function(e){return e.trim().replace(/\s+/g," ")},e.nonExistantIDs=function(t,i){var a="";if(e.normalizeSpacing(i).length<1)return a;for(var l=i.split(" "),o=t.ownerDocument,n=0;n=2?a.substring(0,a.length-2):""},e.getDocElementsByTag=function(e,t){var i=e.ownerDocument;return t=t.toLowerCase(),i.RPT_DOCELEMSBYTAG||(i.RPT_DOCELEMSBYTAG={}),t in i.RPT_DOCELEMSBYTAG||(i.RPT_DOCELEMSBYTAG[t]=i.getElementsByTagName(t)),i.RPT_DOCELEMSBYTAG[t]},e.getChildByTag=function(t,i){return e.getChildByTagHidden(t,i,!1,!1)},e.getChildByTagHidden=function(t,i,a,l){for(var o=[],n=t.firstChild;null!=n;){if(n.nodeName.toLowerCase()==i){if((a||l&&!e.shouldCheckHiddenContent(n))&&!e.isNodeVisible(n)){n=n.nextSibling;continue}o.push(n)}n=n.nextSibling}return o},e.getElementsByRole=function(t,i){return e.getElementsByRoleHidden(t,i,!1,!1)},e.getElementsByRoleHidden=function(t,i,a,l){var o=null;if(null==(o=l?e.getCache(t,"RPTUtil_GETELEMENTSBY_ROLE_IMPLICIT",null):e.getCache(t,"RPTUtil_GETELEMENTSBY_ROLE",null))){o={};for(var n=t.body;null!=n.parentNode;)n=n.parentNode;for(var r=new s(n);r.nextNode();)if(!r.bEndTag){var u=[];if(r.node.hasAttribute&&r.node.hasAttribute("role")&&(u=r.node.getAttribute("role").split(" ")),0===u.length&&l){var d=e.getElementAriaProperty(r.node);d&&d.implicitRole&&(u=d.implicitRole)}if(0==u.length)continue;if(a&&e.shouldNodeBeSkippedHidden(r.node))continue;for(var c=0;c0&&e.concatUniqueArrayItemList(n,a)}return a},e.getImplicitRole=function(t){var i=e.getElementAriaProperty(t);return i&&i.implicitRole?i.implicitRole:[]},e.getRoleRequiredProperties=function(t,i){return null==t?null:a.ARIADefinitions.designPatterns[t]?"separator"===t.toLowerCase()?e.isFocusable(i)?a.ARIADefinitions.designPatterns[t].reqProps:null:a.ARIADefinitions.designPatterns[t].reqProps:null},e.isFocusable=function(t){return"undefined"!==t&&null!=t&&e.isTabbable(t)},e.hasRole=function(t,i,a){var l=!1;if(t&&t.hasAttribute&&t.hasAttribute("role"))if("string"!=typeof i)for(var o=t.getAttribute("role").trim().split(" "),n=0;!l&&n0&&(a=!0)}return a},e.isDataTable=function(t){return!(e.hasRole(t,"none")||e.hasRole(t,"presentation"))},e.isComplexDataTable=function(t){if("RPTUtil_isComplexDataTable"in t)return!!t.RPTUtil_isComplexDataTable;var i=!1;if(t&&e.isDataTable(t)){for(var a=null,l=null,o=t.getElementsByTagName("tr"),n=o.length,r=0,s=0,u=0,d=0;!i&&d1;for(var c=0;!i&&c2)&&e.getAncestor(l[m],"table")==t}else s>0&&++u,i=2==u;if(!i){var p=t.getElementsByTagName("thead"),_=p.length;_>0&&((i=_>1)||(i=p[0].getElementsByTagName("tr").length>1))}i||0===n||(i=s>0&&!e.isTableHeaderInFirstRowOrColumn(t))}return t.RPTUtil_isComplexDataTable=i,i},e.isTableHeaderInFirstRowOrColumn=function(t){var i=!1,a=t.rows;if(null!=a&&a.length>0){var l=a[0];if(!(i=l.cells.length>0&&0==e.getChildByTagHidden(l,"td",!1,!0).length)){i=!0;for(var o=0;i&&o=2?"."+t[1]:""},e.getFileAnchor=function(e){var t=e.match(/#(([^;?\.]|^$)+)([;?]|$)/);return null!=t&&t.length>=2?t[1]:""},e.checkObjEmbed=function(t,i,a){var l=t.nodeName.toLowerCase();if("object"!=l&&"embed"!=l&&"a"!=l&&"area"!=l)return!1;var o=!1;!o&&t.hasAttribute("type")&&(o=a(t.getAttribute("type").toLowerCase()));!o&&t.hasAttribute("codetype")&&(o=a(t.getAttribute("codetype")));if(!o){var n="";"embed"==l?n=t.getAttribute("src"):"a"==l||"area"==l?n=t.getAttribute("href"):t.hasAttribute("data")&&(n=t.getAttribute("data")),null==n&&(n=""),o=i(e.getFileExt(n))}if(!o&&"object"==l)for(var r=e.getChildByTagHidden(t,"param",!1,!0),s=0;!o&&null!=r&&s0)return e.getCache(t.ownerDocument,"RPTUtil_LABELS",{})[n]}return null},e.getElementAttribute=function(e,t){return e&&e.hasAttribute&&e.hasAttribute(t)?e.getAttribute(t):null},e.hasAriaLabel=function(t){return e.attributeNonEmpty(t,"aria-label")||e.attributeNonEmpty(t,"aria-labelledby")},e.hasImplicitLabel=function(t){var i=e.getAncestor(t,"label");if(i&&"label"===i.tagName.toLowerCase()&&e.isFirstFormElement(i,t)){var a=i.cloneNode(!0);return a=e.removeAllFormElementsFromLabel(a),e.hasInnerContentHidden(a)}return!1},e.isFirstFormElement=function(e,t){var i=["input","textarea","select","keygen","progress","meter","output"];if(null!=e.firstChild)for(var a=new s(e);a.nextNode();)if(-1!==i.indexOf(a.node.nodeName.toLowerCase()))return a.node===t;return!1},e.removeAllFormElementsFromLabel=function(e){for(var t=["input","textarea","select","button","datalist","optgroup","option","keygen","output","progress","meter"],i=e.childNodes,a=0;a-1&&e.removeChild(i[a]);return e},e.hasUniqueAriaLabelsLocally=function(t,i){if(0===t.length)return!1;var a=t[0].ownerDocument,l=!1,o=null;i&&(o=e.getCache(a,"RPTUtil_HAS_UNIQUE_ARIA_LABELS",null)),null==o&&(o={});for(var n=0;!l&&na){for(var o=0;ol){for(o=0;o0},e.getCache=function(e,t,i){var a=(e.nodeType,e);return null==a.aceCache&&(a.aceCache={}),null==a.aceCache[t]&&(a.aceCache[t]=i),a.aceCache[t]},e.setCache=function(e,t,i){var a=(e.nodeType,e);return null==a.aceCache&&(a.aceCache={}),a.aceCache[t]=i,i},e.getFrameByName=function(e,t){for(var i=[e.ownerDocument.defaultView],a=0;a0)},e.getInnerText=function(e){var t=e.innerText;return null!=t&&""!=t.trim()||(t=e.textContent),t},e.isInnerTextEmpty=function(t){var i=e.getInnerText(t);return!(null!=i&&i.trim().length>0)},e.hasInnerContent=function(t){var i=e.getInnerText(t),a=null!=i&&i.trim().length>0;if(null!=t.firstChild)for(var l=new s(t);!a&&l.nextNode();)a="img"==l.node.nodeName.toLowerCase()&&e.attributeNonEmpty(l.node,"alt");return a},e.hasInnerContentHidden=function(t){return e.hasInnerContentHiddenHyperLink(t,!1)},e.hasInnerContentHiddenHyperLink=function(t,i){if(!t)return!1;var a=!1;if(null!=t.firstElementChild)for(var l=new s(t);!a&&l.nextNode()&&l.node!=t;){var o=l.node;if(!(a="img"==o.nodeName.toLowerCase()&&e.attributeNonEmpty(o,"alt")&&e.isNodeVisible(o))&&1==o.nodeType&&e.isNodeVisible(o)&&!(a=!e.isInnerTextOnlyEmpty(o))&&1==i){a=e.attributeNonEmpty(o,"aria-label")||e.attributeNonEmpty(o,"aria-labelledby");var n=o.ownerDocument;if(n){var r=n.defaultView;if(r){var u=r.getComputedStyle(o);a||null==u||(a=(u.backgroundImage&&u.backgroundImage.indexOf||u.content)&&e.attributeNonEmpty(o,"alt"))}}}3==o.nodeType&&o.parentElement==t&&(a=!e.isInnerTextEmpty(o))}else a=!e.isInnerTextEmpty(t);return a},e.hasInnerContentOrAlt=function(t){var i=e.getInnerText(t),a=null!=i&&i.trim().length>0||e.attributeNonEmpty(t,"alt");if(null!=t.firstChild)for(var l=new s(t);!a&&l.nextNode()&&l.node!=t;)a="img"==l.node.nodeName.toLowerCase()&&e.attributeNonEmpty(l.node,"alt");return a},e.concatUniqueArrayItem=function(e,t){return-1===t.indexOf(e)&&null!==e&&t.push(e),t},e.concatUniqueArrayItemList=function(t,i){for(var a=0;null!==t&&a0?o["h1-6-with-aria-level-positive-integer"]:o["h1-6-without-aria-level-positive-integer"];break;case"header":var r=e.getAncestor(t,"article");null===r&&(r=e.getAncestor(t,"aside")),null===r&&(r=e.getAncestor(t,"main")),null===r&&(r=e.getAncestor(t,"nav")),null===r&&(r=e.getAncestor(t,"section")),l=null!==r?o["des-section-article"]:o["not-des-section-article"];break;case"hgroup":l=e.attributeNonEmpty(t,"aria-level")?o["with-aria-level"]:o["without-aria-level"];break;case"img":l=t.hasAttribute("alt")&&""===t.getAttribute("alt").trim()?o["img-with-empty-alt"]:o["img-without-empty-alt"];break;case"input":if(e.attributeNonEmpty(t,"type")){var s=t.getAttribute("type").trim().toLowerCase();if(null==(l=o[s]))switch(s){case"search":l=e.attributeNonEmpty(t,"list")?o["search-list"]:o["search-no-list"];break;case"text":l=e.attributeNonEmpty(t,"list")?o["text-with-list"]:o["text-no-list"];break;case"tel":l=e.attributeNonEmpty(t,"list")?o["tel-with-list"]:o["tel-no-list"];break;case"url":l=e.attributeNonEmpty(t,"list")?o["url-with-list"]:o["url-no-list"];break;case"email":l=e.attributeNonEmpty(t,"list")?o["email-with-list"]:o["email-no-list"];break;case"checkbox":l=e.attributeNonEmpty(t,"aria-pressed")?o["checkbox-with-aria-pressed"]:o["checkbox-without-aria-pressed"];break;default:l=e.attributeNonEmpty(t,"list")?o["text-with-list"]:o["text-no-list"]}}else l=e.attributeNonEmpty(t,"list")?o["text-with-list"]:o["text-no-list"];break;case"li":var u=t.parentNode;l=null===u||"ol"!==u.tagName.toLowerCase()&&"ul"!==u.tagName.toLowerCase()?o["parent-not-ol-or-ul"]:o["parent-ol-or-ul"];break;case"link":l=e.attributeNonEmpty(t,"href")?o["with-href"]:o["without-href"];break;case"menu":l=e.attributeNonEmpty(t,"type")&&"context"===t.getAttribute("type").trim().toLowerCase()?o["type-context"]:l;break;case"menuitem":e.attributeNonEmpty(t,"type")&&("command"===t.getAttribute("type").trim().toLowerCase()?l=o["type-command"]:"checkbox"===t.getAttribute("type").trim().toLowerCase()?l=o["type-checkbox"]:"radio"===t.getAttribute("type").trim().toLowerCase()&&(l=o["type-radio"])),null==l&&(l=o.default);break;case"option":var d=t.parentNode;l="datalist"===d.tagName.toLowerCase()||"options"===d.tagName.toLowerCase()?o["list-suggestion-datalist"]:o["not-list-suggestion-datalist"];break;case"select":o=a.ARIADefinitions.documentConformanceRequirementSpecialTags.select,l=t.hasAttribute("multiple")||e.attributeNonEmpty(t,"size")&&t.getAttribute("size")>1?o["multiple-attr-size-gt1"]:o["no-multiple-attr-size-gt1"];break;default:l=a.ARIADefinitions.textLevelSemanticElements.indexOf(i)>-1?a.ARIADefinitions.documentConformanceRequirementSpecialTags["text-level-semantic-elements"]:a.ARIADefinitions.documentConformanceRequirementSpecialTags.default}}return l||null},e.getAllowedAriaRoles=function(t,i){t.tagName.toLowerCase();var a=[],l=null;return null!=(l=null!=i&&void 0!==i?i:e.getElementAriaProperty(t))&&(null!==l.implicitRole&&e.concatUniqueArrayItemList(l.implicitRole,a),null!==l.validRoles&&e.concatUniqueArrayItemList(l.validRoles,a)),a},e.getAllowedAriaAttributes=function(t,i,l){var o=t.tagName.toLowerCase(),n=[];t.hasAttribute("disabled")&&-1===a.ARIADefinitions.elementsAllowedDisabled.indexOf(o)&&(n=e.concatUniqueArrayItem("aria-disabled",n)),t.hasAttribute("required")&&a.ARIADefinitions.elementsAllowedRequired.indexOf(o)>-1&&(n=e.concatUniqueArrayItem("aria-required",n)),t.hasAttribute("readonly")&&-1===a.ARIADefinitions.elementsAllowedReadOnly.indexOf(o)&&(n=e.concatUniqueArrayItem("aria-readonly",n)),t.hasAttribute("hidden")&&(n=e.concatUniqueArrayItem("aria-hidden",n));var r=null;r=null!=l&&void 0!==l?l:e.getElementAriaProperty(t);var s=!1;if("form"!==o&&"section"!==o||(s=!t.hasAttribute("aria-label")&&!t.hasAttribute("aria-labelledby")&&!t.hasAttribute("title")),null!=r){if(null!==r.implicitRole&&(null==i||0==i.length)&&!s)for(var u=0;u-1)return!0;if(null==e.unhideableElements||null==e.unhideableElements||-1==e.unhideableElements.indexOf(a)){if(!t.ownerDocument.defaultView)return!0;i=t.ownerDocument.defaultView.getComputedStyle(t,null);var l=t.getAttribute("hidden"),o=e.getCache(t,"PT_NODE_HIDDEN",void 0),n="boolean"==typeof t.hidden&&t.hidden;if(!(i||n||null!=l&&null!=l||o))return!0;if(null!==i&&("none"==i.getPropertyValue("display")||!t.Visibility_Check_Parent&&"hidden"==i.getPropertyValue("visibility"))||n||null!=l||o)return e.setCache(t,"PT_NODE_HIDDEN",!0),!1}var r=t.parentNode;if(null!=r&&1==r.nodeType){r.Visibility_Check_Parent=!0;var s=e.isNodeVisible(r);return s||e.setCache(t,"PT_NODE_HIDDEN",!0),s}return!0},e.getControlOfLabel=function(t){var i=e.getAncestor(t,"label");if(i&&i.hasAttribute("for"))return t.ownerDocument.getElementById(i.getAttribute("for"));for(var a={},l=t;l;){if(1===l.nodeType){var o=l;o.hasAttribute("id")&&(a[o.getAttribute("id")]=!0)}l=l.parentNode}for(var n=t.ownerDocument.querySelectorAll("*[aria-labelledby]"),r=0;r-1||r)return i=!0,e.setCache(t,"PT_NODE_DISABLED",i),!0;var s=t.parentNode;if(null!=s&&1==s.nodeType){var u=e.isNodeDisabled(s);return u&&(i=!0),e.setCache(t,"PT_NODE_DISABLED",i),u}return!1},e.shouldCheckHiddenContent=function(e){return!1},e.shouldNodeBeSkippedHidden=function(t){return!e.shouldCheckHiddenContent(t)&&!e.isNodeVisible(t)},e.isfocusableByDefault=function(t){return!("a"!=t.nodeName.toLowerCase()||!e.hasAttribute(t,"href"))||(!("area"!=t.nodeName.toLowerCase()||!e.hasAttribute(t,"href"))||-1!=["input","select","button","textarea","option","area"].indexOf(t.nodeName.toLowerCase()))},e.nonTabableChildCheck=function(t){if(!t.hasAttribute("tabindex")||-1!=parseInt(t.getAttribute("tabindex")))return!1;for(var i=new s(t);i.nextNode();){var a=i.node;if(1===a.nodeType&&(a.hasAttribute("tabindex")&&-1!=parseInt(a.getAttribute("tabindex"))&&!e.hasInnerContent(a)))return!1}return!0},e.Color=function(t){if("transparent"==(t=t.toLowerCase()))return new r(255,255,255,0);if(t in e.CSSColorLookup&&(t=e.CSSColorLookup[t]),t.startsWith("rgb(")){var i=/\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/;return null==(a=t.match(i))?null:new r(a[1],a[2],a[3])}if(t.startsWith("rgba(")){var a;i=/\s*rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(.+)\s*\)/;return null==(a=t.match(i))?null:new r(a[1],a[2],a[3],a[4])}if("#"!=t.charAt(0))return null;4==t.length&&(t="#"+t.charAt(1).repeat(2)+t.charAt(2).repeat(2)+t.charAt(3).repeat(2));var l=parseInt(t.substring(1,3),16),o=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return new r(l,o,n)},e.ColorCombo=function(t){var i=t.ownerDocument;if(!i)return null;var a=i.defaultView;if(!a)return null;for(var l=[],o=t;o;)1==o.nodeType&&l.push(o),o=o.parentElement;var n={hasGradient:!1,hasBGImage:!1,fg:null,bg:null},r=a.getComputedStyle(t).color;r||(r="black");for(var s=e.Color(r),u=/transparent|rgba?\([^)]+\)/gi,d=function(e,t,i){try{if(void 0===e.length)return e;for(var a=null,l=null,o=1;o1e-4;){for(;u+s<=1&&r>i.contrastRatio(e[o].mix(e[o-1],u+s).getOverlayColor(t));)n=e[o].mix(e[o-1],u+s).getOverlayColor(t),r=i.contrastRatio(n),u+=s;for(;u-s>=0&&r>i.contrastRatio(e[o].mix(e[o-1],u-s).getOverlayColor(t));)n=e[o].mix(e[o-1],u-s).getOverlayColor(t),r=i.contrastRatio(n),u-=s;s/=10}(null==l||l>r)&&(l=r,a=n)}return a}catch(e){console.log(e)}return t},c=e.Color("white"),m=null,p=null,_=null;l.length>0;){var h=l.pop(),R=a.getComputedStyle(h);if(null!=R){var A=null;if(R.backgroundColor&&"transparent"!=R.backgroundColor&&"rgba(0, 0, 0, 0)"!=R.backgroundColor&&(A=e.Color(R.backgroundColor)),R.backgroundImage&&R.backgroundImage.indexOf&&-1!=R.backgroundImage.indexOf("gradient")){var g=R.backgroundImage.match(u);if(g){for(var f=[],b=0;b0&&parseFloat(R.opacity)<1?(null!=_&&(_.alpha=m*p,c=_.getOverlayColor(c)),m=1,p=null,_=null,R.opacity&&R.opacity.length>0&&(m=parseFloat(R.opacity)),null!=A&&(p=(_=A).alpha||1,delete _.alpha,1==m&&1==p&&(n.hasBGImage=!1,n.hasGradient=!1))):null!=A&&(null==_?(p=(_=A).alpha||1,delete _.alpha):_=A.getOverlayColor(_),1==m&&1==p&&1==(_.alpha||1)&&0==(A.alpha||1)&&(n.hasBGImage=!1,n.hasGradient=!1)),R.backgroundImage&&"none"!=R.backgroundImage&&(R.backgroundImage.indexOf&&-1!=R.backgroundImage.indexOf("gradient")?n.hasGradient=!0:n.hasBGImage=!0)}}return null!=_&&delete(s=s.getOverlayColor(_)).alpha,s.alpha=(s.alpha||1)*m,s=s.getOverlayColor(c),null!=_&&(_.alpha=m*p,c=_.getOverlayColor(c)),n.fg=s,n.bg=c,n},e.hasAttribute=function(e,t){var i=!1;if(e.hasAttribute)i=e.hasAttribute(t);else if(e.attributes&&e.attributes.getNamedItem){var a=e.attributes.getNamedItem(t);i=a&&a.specified}return i},e.unhideableElements=["area","param","audio"],e.hiddenByDefaultElements=["script","link","style","head","title","meta","base","noscript","template","datalist"],e.navLinkKeywords=["start","next","prev","previous","contents","index"],e.rulesThatHaveToCheckHidden=["RPT_Elem_UniqueId"],e.ariaAttributeRoleDefaults={alert:{"aria-live":"assertive","aria-atomic":"true"},checkbox:{"aria-checked":"false"},combobox:{"aria-expanded":"false","aria-haspopup":"listbox"},heading:{"aria-level":"2"},listbox:{"aria-orientation":"vertical"},log:{"aria-live":"polite"},menu:{"aria-orientation":"vertical"},menubar:{"aria-orientation":"horizontal"},menuitemcheckbox:{"aria-checked":"false"},menuitemradio:{"aria-checked":"false"},option:{"aria-selected":"false"},radio:{"aria-checked":"false"},scrollbar:{"aria-orientation":"vertical","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":function(t){var i=e.getAriaAttribute(t,"aria-valuemax"),a=e.getAriaAttribute(t,"aria-valuemin");return""+((i-a)/2+a)}},separator:{"aria-orientation":"horizontal","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":"50"},slider:{"aria-orientation":"horizontal","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":function(t){var i=e.getAriaAttribute(t,"aria-valuemax"),a=e.getAriaAttribute(t,"aria-valuemin");return""+((i-a)/2+a)}},spinbutton:{"aria-valuenow":"0"},status:{"aria-live":"polite","aria-atomic":"true"},switch:{"aria-checked":"false"},tab:{"aria-selected":"false"},tablist:{"aria-orientation":"horizontal"},toolbar:{"aria-orientation":"horizontal"},tree:{"aria-orientation":"vertical"}},e.ariaAttributeGlobalDefaults={"aria-atomic":"false","aria-autocomplete":"none","aria-busy":"false","aria-checked":void 0,"aria-current":"false","aria-disabled":"false","aria-dropeffect":"none","aria-expanded":void 0,"aria-grabbed":void 0,"aria-haspopup":"false","aria-hidden":void 0,"aria-invalid":"false","aria-live":"off","aria-modal":"false","aria-multiline":"false","aria-multiselectable":"false","aria-orientation":void 0,"aria-pressed":void 0,"aria-readonly":"false","aria-required":"false","aria-selected":void 0,"aria-sort":"none"},e.ariaAttributeImplicitMappings={"aria-autocomplete":{form:function(e){return"off"===e.getAttribute("autocomplete")?"none":"both"},input:function(e){return"off"===e.getAttribute("autocomplete")?"none":"both"},select:function(e){return"off"===e.getAttribute("autocomplete")?"none":"both"},textarea:function(e){return"off"===e.getAttribute("autocomplete")?"none":"both"}},"aria-checked":{input:function(e){return e.hasAttribute("indeterminate")?"mixed":""+e.hasAttribute("checked")},menuitem:function(e){return e.hasAttribute("indeterminate")?"mixed":""+e.hasAttribute("checked")},"*":function(e){if(e.hasAttribute("indeterminate"))return"mixed"}},"aria-haspopup":{"*":function(e){if(e.hasAttribute("contextmenu"))return"true"}},"aria-multiselectable":{input:function(e){if(e.hasAttribute("multiple"))return"true"}},"aria-expanded":{details:function(e){return e.getAttribute("open")},dialog:function(e){return e.getAttribute("open")}},"aria-placeholder":{input:function(e){return e.getAttribute("placeholder")},textarea:function(e){return e.getAttribute("placeholder")}},"aria-required":{input:function(e){return e.getAttribute("required")},select:function(e){return e.getAttribute("required")},textarea:function(e){return e.getAttribute("required")}},"aria-disabled":{button:function(e){return e.hasAttribute("disabled")?"true":"false"},fieldset:function(e){return e.hasAttribute("disabled")?"true":"false"},input:function(e){return e.hasAttribute("disabled")?"true":"false"},keygen:function(e){return e.hasAttribute("disabled")?"true":"false"},optgroup:function(e){return e.hasAttribute("disabled")?"true":"false"},option:function(e){return e.hasAttribute("disabled")?"true":"false"},select:function(e){return e.hasAttribute("disabled")?"true":"false"},textarea:function(e){return e.hasAttribute("disabled")?"true":"false"}}},e.tabTagMap={button:!0,input:function(e){return"hidden"!=e.getAttribute("type")},select:!0,textarea:!0,div:function(e){return e.hasAttribute("contenteditable")},a:function(e){return e.hasAttribute("href")},area:function(e){return e.hasAttribute("href")},audio:function(e){return e.hasAttribute("controls")},video:function(e){return e.hasAttribute("controls")}},e.CSSColorLookup={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",buttontext:"rgba(0, 0, 0, 0.847)",buttonface:"#ffffff",graytext:"rgba(0, 0, 0, 0.247)"},e}();t.RPTUtil=o;var n=function(){function e(){}return e.getWeightNumber=function(e){var t={light:100,bold:700},i=parseInt(e);return i||(e in t?t[e]:400)},e.getFontInPixels=function(e){var t=parseFloat(e);if(!t)return{"xx-small":16,"x-small":10,small:13,medium:16,large:18,"x-large":24,"xx-large":32}[e];var i=e.substring((""+t).length);return""==i||"px"==i?t:"em"==i?16*t:"%"==i?t/100*16:"pt"==i?4*t/3:Math.round(t)},e}();t.RPTUtilStyle=n;var r=function(){function e(e,t,i,a){function l(e){if("string"!=typeof e)return e;var t=e;return"%"!=(t=t.trim())[t.length-1]?parseInt(t):Math.round(2.55*parseFloat(t.substring(0,t.length-1)))}this.red=l(e),this.green=l(t),this.blue=l(i),void 0!==a&&(this.alpha="string"==typeof a?parseFloat(a):a)}return e.prototype.toHexHelp=function(e){var t=Math.round(e).toString(16);return 1==t.length?"0"+t:t},e.prototype.toHex=function(){return"#"+this.toHexHelp(this.red)+this.toHexHelp(this.green)+this.toHexHelp(this.blue)},e.prototype.contrastRatio=function(e){var t=this;void 0!==this.alpha&&(t=this.getOverlayColor(e));var i=t.relativeLuminance();if(!e.relativeLuminance){var a="";for(var l in e)a+=l+"\n";alert(e),alert(a)}var o=e.relativeLuminance();return i>o?(i+.05)/(o+.05):(o+.05)/(i+.05)},e.prototype.relativeLuminance=function(){var e=this.red/255,t=this.green/255,i=this.blue/255;return.2126*(e=e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t=t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},e.prototype.mix=function(t,i){if(void 0===this.alpha&&void 0===t.alpha)return new e(i*this.red+(1-i)*t.red,i*this.green+(1-i)*t.green,i*this.blue+(1-i)*t.blue);var a=this.alpha?this.alpha:1,l=t.alpha?t.alpha:1;return new e(i*this.red+(1-i)*t.red,i*this.green+(1-i)*t.green,i*this.blue+(1-i)*t.blue,i*a+(1-i)*l)},e.prototype.getOverlayColor=function(e){if(void 0===this.alpha||this.alpha>=1)return this;if(this.alpha<0)return null;if(void 0!==e.alpha&&e.alpha<1)return null;var t=this.mix(e,this.alpha);return delete t.alpha,t},e.fromCSSColor=function(t){var i=-1,a=-1,l=-1;if((t=t.toLowerCase()).startsWith("rgb(")){var n=/\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/;if(null==(r=t.match(n)))return null;i=r[1],a=r[2],l=r[3]}else if(t.startsWith("rgba(")){var r;n=/\s*rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(.+)\s*\)/;if(null==(r=t.match(n)))return null;i=r[1],a=r[2],l=r[3]}else{if("#"!=t.charAt(0)){if(!(t in o.CSSColorLookup))return null;t=o.CSSColorLookup[t]}var s=function(e){for(var t={a:10,b:11,c:12,d:13,e:14,f:15},i=0,a=0;a0&&!this.hierarchyChildrenHaveRole[this.hierarchyChildrenHaveRole.length-1]?(t="none",this.hierarchyChildrenHaveRole.push(!1)):(t=this.getRole(e)||"none",this.hierarchyChildrenHaveRole.push(this.childrenHaveRole(e,t))),this.hierarchyRole.push(t),"none"!==t){var i=this.hierarchyPath[this.hierarchyPath.length-1];i.roleCount[t]=(i.roleCount[t]||0)+1,this.hierarchyPath.push({rolePath:i.rolePath+"/"+t+"["+i.roleCount[t]+"]",roleCount:{}})}this.hierarchyResults.push({node:e,namespace:this.getNamespace(),role:t,attributes:this.getAttributes(e),rolePath:this.hierarchyPath[this.hierarchyPath.length-1].rolePath,bounds:this.getBounds(e)})},e.prototype.popHierarchy=function(){var e=this.hierarchyRole.pop();this.hierarchyChildrenHaveRole.pop(),"none"!==e&&this.hierarchyPath.pop(),this.hierarchyResults.pop()},e.prototype.openScope=function(e){return null===this.hierarchyRole&&this.reset(e),this.pushHierarchy(e),this.hierarchyResults},e.prototype.closeScope=function(e){for(var t=[],i=0,a=this.hierarchyResults;i0){for(var h="",R=0,A=d;R0&&(!a&&!l||!b))return n.getAttribute("aria-label").trim();if("presentation"!==f&&"none"!==f){if("img"===i.nodeName.toLowerCase()&&n.hasAttribute("alt"))return r.DOMUtil.cleanWhitespace(n.getAttribute("alt")).trim();if("input"===i.nodeName.toLowerCase()&&n.hasAttribute("id")&&n.getAttribute("id").length>0){var v=n.ownerDocument.querySelector("label[for='"+n.getAttribute("id")+"']");if(v)return this.computeNameHelp(e,v,!1,!1)}}if((l||a)&&b){if("textbox"===f)if("input"===n.nodeName.toLowerCase()){if(n.hasAttribute("value"))return n.getAttribute("value")}else l=!1;if("button"===f)if("input"===n.nodeName.toLowerCase()){var P=n.getAttribute("type").toLowerCase();if(["button","submit","reset"].includes(P)){if(n.hasAttribute("value"))return n.getAttribute("value");if("submit"===P)return"Submit";if("reset"===P)return"Reset"}}else l=!1;if("combobox"===f&&n.hasAttribute("aria-activedescendant")){var y=n.ownerDocument.getElementById("aria-activedescendant");if(y)return t.computeNameHelp(e,y,!1,!1)}if(["progressbar","scrollbar","slider","spinbutton"].includes(f)){if(n.hasAttribute("aria-valuetext"))return n.getAttribute("aria-valuetext");if(n.hasAttribute("aria-valuenow"))return n.getAttribute("aria-valuenow")}}if(!l&&(o.ARIADefinitions.nameFromContent(f)||a)){h="";var C=null;(C=n.ownerDocument.defaultView.getComputedStyle(n,"before").content)&&"none"!==C&&(h+=C=C.replace(/^"/,"").replace(/"$/,""));for(var T=new s.DOMWalker(n,!1,n);T.nextNode()&&!T.atRoot();)T.bEndTag||(h+=" "+t.computeNameHelp(e,T.node,a,!0));var I=null;try{I=n.ownerDocument.defaultView.getComputedStyle(n,"after").content}catch(e){}return I&&"none"!==I&&(h+=I=I.replace(/^"/,"").replace(/"$/,"")),h=h.replace(/\s+/g," ").trim()}return n.hasAttribute("title")?n.getAttribute("title"):""},t.nodeToRole=function(e){if(3===e.nodeType)return"text";if(1!==e.nodeType)return null;var i=e;if(!i||1!==i.nodeType)return null;if(i.hasAttribute("role")&&i.getAttribute("role").trim().length>0)return i.getAttribute("role").trim();var a=i.nodeName.toLowerCase();if(!(a in t.elemToRoleMap))return null;var l=t.elemToRoleMap[a];return"string"==typeof l?l:"function"==typeof l?l(i):null},t.hasParentRole=function(e,i){for(var a=e.parentNode;a;){if(t.nodeToRole(a)===i)return!0;a=a.parentNode}return!1},t.inputToRole=function(e){if(!e)return null;var i="text";if(e.hasAttribute("type")&&e.getAttribute("type").toLowerCase().trim().length>0&&(i=e.getAttribute("type").toLowerCase().trim()),!(i in t.inputToRoleMap))return null;var a=t.inputToRoleMap[i];return"string"==typeof a?a:"function"==typeof a?a(e):null},t.elemAttrValueCalculators={global:{name:t.computeName},datalist:{multiselectable:function(e){var t=e.getAttribute("id");if(t&&t.length>0){e.ownerDocument.querySelector("input[list='"+t+"']");return""+(e.getAttribute("multiple")&&("true"==e.getAttribute("multiple")||""==e.getAttribute("multiple")))}return null}},h1:{level:"1"},h2:{level:"2"},h3:{level:"3"},h4:{level:"4"},h5:{level:"5"},h6:{level:"6"},input:{checked:function(e){return"checkbox"===e.getAttribute("type")||"radio"===e.getAttribute("type")?""+e.checked:null},setsize:function(e){return null},posinset:function(e){return null},owns:function(e){return null}},keygen:{multiselectable:"false"},li:{setsize:function(e){var t=r.DOMUtil.getAncestor(e,["ol","ul","menu"]);if(!t)return null;var i=t.querySelectorAll("li"),a=t.querySelectorAll("ol li, ul li, menu li");return""+(i.length-a.length)},posinset:function(e){var t=r.DOMUtil.getAncestor(e,["ol","ul","menu"]);if(!t)return null;for(var i=t.querySelectorAll("li"),a=0,l=0;l1?"listbox":"combobox"},table:"table",textarea:"textbox",tbody:"rowgroup",td:function(e){for(var i=e.parentNode;i;){var a=t.nodeToRole(i);if("table"===a)return"cell";if("grid"===a)return"gridcell";i=i.parentNode}return null},th:function(e){if(e.hasAttribute("scope")){var i=e.getAttribute("scope").toLowerCase();if("row"===i)return"rowheader";if("col"===i)return"columnheader"}!e.hasAttribute("scope")||e.getAttribute("scope").toLowerCase();for(var a=e.parentNode;a;){var l=t.nodeToRole(a);if("table"===l)return"cell";if("grid"===l)return"gridcell";a=a.parentNode}return null},tfoot:"rowgroup",thead:"rowgroup",tr:"row",ul:"list"}),t}(n.CommonMapper);t.ARIAMapper=d},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AncestorUtil=void 0;var a=function(){function e(){}return e.isPresentationFrame=function(e){if(e&&e.dom)for(var t=e.dom.length-2;t>=0;--t){var i=e.dom[t].node;if(1===i.nodeType&&"presentation"===i.getAttribute("role")||"true"===i.getAttribute("aria-hidden"))return!0}return!1},e}();t.AncestorUtil=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Config=t.checkDemo=t.ARIAMapper=t.Context=t.Checker=void 0;var a=i(9);Object.defineProperty(t,"Context",{enumerable:!0,get:function(){return a.Context}});var l=i(11);Object.defineProperty(t,"Checker",{enumerable:!0,get:function(){return l.Checker}});var o=i(6);Object.defineProperty(t,"ARIAMapper",{enumerable:!0,get:function(){return o.ARIAMapper}});var n=i(4);Object.defineProperty(t,"Config",{enumerable:!0,get:function(){return n.Config}}),String.prototype.startsWith=String.prototype.startsWith||function(e){return 0===this.indexOf(e)},String.prototype.includes=String.prototype.includes||function(e){return-1!==this.indexOf(e)},Array.prototype.includes=Array.prototype.includes||function(e){return-1!==this.indexOf(e)},t.checkDemo=function(e){e||(e=0);var t=new l.Checker;setTimeout((function(){t.check(document.documentElement,["IBM_Accessibility","IBM_Design"]).then((function(e){console.log(e);for(var t={FAIL:0,POTENTIAL:1,MANUAL:2,PASS:3},i=0;i0)throw new Error("Cannot have !attr"+i+" context");if(e&&void 0!==i&&i.length>0&&(void 0===a||0===a.length))throw new Error("Cannot have equivalence check without a value")}return e.prototype.matches=function(e){var t=e.attributes;if(this.attr in t){if(this.inclusive){if(this.eq){var i=t[this.attr];if("="===this.eq)return this.value===i;if("!="===this.eq)return this.value!==i;if("~"===this.eq)return this.value===i;if("!~"===this.eq)return this.value!==i;throw new Error("Context equivalence operator not supported")}return!0}return!1}return!this.inclusive},e}();t.AttrInfo=a;var l=function(){function e(e,t,i,a,l){if(this.inclusive=e,this.namespace=t,this.role=i,this.attrs=a,this.connector=l,"*"===i&&!e)throw new Error("!* context not supported")}return e.prototype.matches=function(e,t){var i=this.namespace in e&&(e[this.namespace][t].role===this.role||"none"!==e[this.namespace][t].role&&"*"===this.role);if(!i||"*"!==this.role||"dom"!==this.namespace||"#text"!==e[this.namespace][t].role&&"/#text"!==e[this.namespace][t].role||(i=!1),this.inclusive&&!i)return!1;if(!this.inclusive&&!i)return!0;for(var a=this.attrs,l=e[this.namespace][t],o=!0,n=0,r=a;n+~]?/g);i+~]?)/),r=[],s=0,u=n[3].match(/\[([^\]]+)\]/g)||[];s+~,])/g,"$1")).replace(/([>+~,]) +/g,"$1")).replace(/ +/g," ")).trim()},e.parse=function(t){for(var i=e.splitMultiple(e.cleanContext(t)),a=[],l=0;l=0;a--)"data-namewalk"!==i[a].name&&(t+=" "+i[a].name+'="'+i[a].value+'"');return t+=">"},e.prototype.run=function(t,i,a,l){var o,n=(new Date).getTime();try{o=this.rule.run(i,a,l)}catch(e){var r=e;throw console.error("RULE EXCEPTION:",this.rule.id,i.dom.rolePath,r.stack),e}var s=(new Date).getTime();o||(o=[]),o instanceof Array||(o=[o]);for(var u=[],d=0,c=o;d0&&t.ownerDocument.getElementById(m)}if(s.DOMUtil.isNodeVisible(o.node)||"style"===o.node.nodeName.toLowerCase()||"datalist"===o.node.nodeName.toLowerCase()||"param"===o.node.nodeName.toLowerCase()||!s.DOMUtil.getAncestor(o.node,["body"])){var p={};for(var _ in d){var h=d[_],R=h[h.length-1];p[_]=R}for(var A={},g=0,f=this.getMatchingRules(d);g=1&&(s=a+"$$"+i),++i;var d=new u(e,r);this.wrappedRuleMap[s]=d;var c=d.parsedInfo.contextInfo,m=c[c.length-1],p=m.namespace+":"+m.role;m.inclusive?(this.inclRules[p]=this.inclRules[p]||[],this.inclRules[p].push(d)):(this.exclRules[p]=this.exclRules[p]||[],this.exclRules[p].push(d))}}},e.prototype.addNlsMap=function(e){for(var t in e)this.nlsMap[t]=e[t]},e.prototype.addHelpMap=function(e){for(var t in e)this.helpMap[t]=e[t]},e.prototype.getMessage=function(e,t,i){var a=e.indexOf("$$");if(a>=0&&(e=e.substring(0,a)),!(e in this.nlsMap))return e;var l=this.nlsMap[e][t||0];return l?l.replace(/\{(\d+)\}/g,(function(e,t,a){return i[t]})):e+"_"+t},e.prototype.getHelp=function(e,t){var i=e.indexOf("$$");if(i>=0&&(e=e.substring(0,i)),!(e in this.helpMap))return e;return((t=t||0)in this.helpMap[e]?this.helpMap[e][t||0]:this.helpMap[e][0])||e+"_"+t},e.prototype.addMapper=function(e){this.mappers[e.getNamespace()]=e},e.match=function(e,t){var i=e.length-1,a=t.dom.length-1;if(!e[i].matches(t,a))return!1;for(--i,--a;a>=0&&i>=0;){var l=e[i],o=e[i].matches(t,a);if(">"===l.connector){if(!o)return!1;--i,--a}else{if(" "!==l.connector)throw new Error("Context connector "+l.connector+" is not supported");if(l.inclusive)o&&--i,--a;else{if(!o)return!1;for(var n=!1,r=a-1;!n&&r>=0;--r)n=!e[i].matches(t,r);if(n)return!1;--i}}}return-1===i},e.prototype.getMatchingRules=function(t){var i={},a=[];function l(l){for(var o=0,n=l;o0;return i?a.RulePass(1):i?void 0:a.RuleManual("Manual_1")}}];t.a11yRulesCanvas=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesFrame=void 0;var a=i(0),l=i(1),o=[{id:"WCAG20_Frame_HasTitle",context:"dom:frame, dom:iframe",run:function(e,t){var i=e.dom.node;return l.RPTUtil.hasRole(i,"presentation")?null:l.RPTUtil.attributeNonEmpty(i,"title")?a.RulePass("Pass_0"):a.RuleFail("Fail_1")}},{id:"Valerie_Frame_SrcHtml",context:"dom:frame, dom:iframe",run:function(e,t){var i=e.dom.node,o=l.RPTUtil.attributeNonEmpty(i,"src")&&l.RPTUtil.isHtmlExt(l.RPTUtil.getFileExt(i.getAttribute("src")));return o?a.RulePass("Pass_0"):o?void 0:a.RulePotential("Potential_1")}}];t.a11yRulesFrame=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesMeta=void 0;var a=i(0),l=[{id:"WCAG20_Meta_RedirectZero",context:"dom:meta[http-equiv][content]",run:function(e,t){var i=e.dom.node;if("refresh"==i.getAttribute("http-equiv").toLowerCase()){var l=i.getAttribute("content").toLowerCase();return-1!=l.indexOf("url")&&!l.startsWith("0;")?a.RuleFail("Fail_1"):a.RulePass("Pass_0")}return null}},{id:"RPT_Meta_Refresh",context:"dom:meta[http-equiv][content]",run:function(e,t){var i=e.dom.node;return"refresh"!=i.getAttribute("http-equiv").toLowerCase()?a.RulePass("Pass_0"):-1==i.getAttribute("content").toLowerCase().indexOf("url=")?a.RulePotential("Potential_1"):a.RulePass("Pass_0")}}];t.a11yRulesMeta=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesColor=void 0;var a=i(0),l=i(1),o=[{id:"IBMA_Color_Contrast_WCAG2AA",context:"dom:*",run:function(e,t){var i=e.dom.node,o=i.nodeName.toLowerCase();if(!l.RPTUtil.isNodeVisible(i)||null!=l.RPTUtil.hiddenByDefaultElements&&null!=l.RPTUtil.hiddenByDefaultElements&&l.RPTUtil.hiddenByDefaultElements.indexOf(o)>-1)return null;for(var n="",r=i.childNodes,s=0;s=24||A>=18.6&&R>=700,f=h>=4.5||h>=3&&g,b=m.hasBGImage||m.hasGradient,v=l.RPTUtil.isNodeDisabled(i);if(!v){var P=l.RPTUtil.getControlOfLabel(i);P&&(v=l.RPTUtil.isNodeDisabled(P))}return l.RPTUtil.setCache(i,"EXT_Color_Contrast_WCAG2AA",{ratio:h,isLargeScale:g,weight:R,size:A,hasBackground:b,isDisabled:v}),b?null:(!f&&v&&(f=!0),f?a.RulePass("Pass_0",[h.toFixed(2),A,R,p.toHex(),_.toHex(),m.hasBGImage,m.hasGradient]):a.RuleFail("Fail_1",[h.toFixed(2),A,R,p.toHex(),_.toHex(),m.hasBGImage,m.hasGradient]))}},{id:"IBMA_Color_Contrast_WCAG2AA_PV",context:"dom:*",dependencies:["IBMA_Color_Contrast_WCAG2AA"],run:function(e,t){var i=e.dom.node,o=i.nodeName.toLowerCase();if(l.RPTUtil.isNodeDisabled(i)||!l.RPTUtil.isNodeVisible(i)||null!=l.RPTUtil.hiddenByDefaultElements&&null!=l.RPTUtil.hiddenByDefaultElements&&l.RPTUtil.hiddenByDefaultElements.indexOf(o)>-1)return null;var n=l.RPTUtil.getCache(i,"EXT_Color_Contrast_WCAG2AA",null);if(!n)return a.RulePass("Pass_0");var r=n.ratio>=4.5||n.ratio>=3&&n.isLargeScale;return!r&&n.isDisabled&&(r=!0),r?a.RulePass("Pass_0",[n.ratio.toFixed(2),n.size,n.weight]):a.RulePotential("Potential_1",[n.ratio.toFixed(2),n.size,n.weight])}},{id:"IBMA_Link_Contrast_WCAG2AA",context:"a[href] | *[onclick]",run:function(e,t){var i=e.dom.node,o=l.RPTUtil.ColorCombo(i),n=l.RPTUtil.getCache(i,"EXT_Link_Contrast_WCAG2AA",null);if(null===n){n={};for(var r="",s=i.childNodes,u=0;u=24||R>=18.6&&h>=700;for(var A=function(e){var t=c.getComputedStyle(e),i=l.RPTUtilStyle.getWeightNumber(t.fontWeight),a=l.RPTUtilStyle.getFontInPixels(t.fontSize),n=l.RPTUtil.ColorCombo(e),r=o.fg.contrastRatio(n.fg),s=o.bg.contrastRatio(n.bg),u=Math.abs(i-h)>=300||Math.abs(a-R)>5||t.textDecoration!=_.textDecoration;return{ratio:Math.max(r,s),fgRatio:r,bgRatio:s,scaleChange:u,colorCombo:n}},g=new l.NodeWalker(i);g.prevNode()&&!m(g.node)&&!p(g.node);)if(3==g.node.nodeType&&g.node.nodeValue.trim().length>0){g.node=g.node.parentNode,n.prev=A(g.node);break}for(var f=new l.NodeWalker(i,!0);f.nextNode()&&!m(f.node)&&!p(f.node);)if(3==f.node.nodeType&&f.node.textContent.trim().length>0){f.node=f.node.parentNode,n.next=A(f.node);break}}l.RPTUtil.setCache(i,"EXT_Link_Contrast_WCAG2AA",n);var b=!0,v=0,P=null,y=n.isLargeScale?3:4.5;return n.prev?(b=n.prev.ratio>=y||n.prev.scaleChange)||(v=n.prev.fgRatio,P=n.prev.colorCombo):n.next&&((b=b&&n.next.ratio>=y||n.next.scaleChange)||(v=n.next.fgRatio,P=n.next.colorCombo)),b?a.RulePass("Pass_0"):a.RulePotential("Potential_1",[v.toFixed(2),o.fg.toHex(),P.fg.toHex()])}}];t.a11yRulesColor=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesHeading=void 0;var a=i(0),l=i(1),o=[{id:"RPT_Header_HasContent",context:"dom:h1, dom:h2, dom:h3, dom:h4, dom:h5, dom:h6",run:function(e,t){var i=e.dom.node;return l.RPTUtil.hasInnerContentHidden(i)?a.RulePass("Pass_0"):a.RuleFail("Fail_1")}},{id:"RPT_Header_Trigger",context:"dom:h1, dom:h2, dom:h3, dom:h4, dom:h5, dom:h6",dependencies:["RPT_Header_HasContent"],run:function(e,t){var i=e.dom.node,o=l.RPTUtil.triggerOnce(i.ownerDocument,"RPT_Header_Trigger",!1);return o?a.RulePass("Pass_0"):o?void 0:a.RulePotential("Potential_1")}},{id:"RPT_Headers_FewWords",context:"dom:h1, dom:h2, dom:h3, dom:h4, dom:h5, dom:h6",dependencies:["RPT_Header_HasContent"],run:function(e,t){var i=e.dom.node,o=l.RPTUtil.wordCount(l.RPTUtil.getInnerText(i))<=20;return o?a.RulePass("Pass_0"):o?void 0:a.RulePotential("Potential_1")}},{id:"RPT_Block_ShouldBeHeading",context:"dom:p, dom:div, dom:br",run:function(e,t){for(var i=e.dom.node,o=0,n=new l.NodeWalker(i),r=!1;!r&&n.nextNode()&&n.node!=i&&n.node!=i.parentNode&&!["br","div","p"].includes(n.node.nodeName.toLowerCase());){var s=n.node.nodeName.toLowerCase();if("b"!=s&&"em"!=s&&"i"!=s&&"strong"!=s&&"u"!=s&&"font"!=s||l.RPTUtil.shouldNodeBeSkippedHidden(n.node))r=1==n.node.nodeType&&l.RPTUtil.attributeNonEmpty(n.node,"alt")&&("applet"==s||"embed"==s||"img"==s||"input"==s&&n.node.hasAttribute("type")&&"image"==n.node.getAttribute("type"))||"#text"==s&&n.node.nodeValue.trim().length>0||"a"==s&&n.node.hasAttribute("href")&&l.RPTUtil.attributeNonEmpty(n.node,"href");else{var u=l.RPTUtil.wordCount(l.RPTUtil.getInnerText(n.node));u>0,r=(o+=u)>10,n.bEndTag=!0}}return 0==o&&(r=!0),r?a.RulePass("Pass_0"):r?void 0:a.RulePotential("Potential_1")}}];t.a11yRulesHeading=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesMobile=void 0;var a=i(0),l=i(1),o=[{id:"HAAC_Aria_ImgAlt",context:"dom:*[role]",run:function(e,t){var i=e.dom.node;if(!i.getAttribute("role").includes("img")||!l.RPTUtil.hasRole(i,"img"))return null;if("true"===i.getAttribute("aria-hidden"))return null;var o=l.RPTUtil.getAriaLabel(i).length>0;return o||(o=l.RPTUtil.attributeNonEmpty(i,"title")),o?a.RulePass("Pass_0"):a.RuleFail("Fail_2")}}];t.a11yRulesMobile=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesApplet=void 0;var a=i(0),l=i(1),o=[{id:"WCAG20_Applet_HasAlt",context:"dom:applet",run:function(e,t){var i=e.dom.node;if(l.RPTUtil.attributeNonEmpty(i,"alt")){var o=i.getAttribute("alt").trim();return i.hasAttribute("code")&&o==i.getAttribute("code").trim()?a.RuleFail("Fail_2"):l.RPTUtil.hasInnerContentHidden(i)?a.RulePass("Pass_0"):a.RuleFail("Fail_3")}return a.RuleFail("Fail_1")}}];t.a11yRulesApplet=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesCombobox=void 0;var a=i(0),l=i(1),o=[{id:"HAAC_Combobox_Must_Have_Text_Input",context:"aria:combobox",run:function(e,t){var i=e.dom.node;if(!l.RPTUtil.isNodeVisible(i)||l.RPTUtil.isNodeDisabled(i))return null;var o=i.tagName.toLowerCase(),n="input"===i.nodeName.toLowerCase()?"1.0":"1.1",r="true"===l.RPTUtil.getAriaAttribute(i,"aria-expanded").trim().toLowerCase(),s=!0,u=null;if("1.0"===n)s="false"===l.RPTUtil.getAriaAttribute(i,"aria-multiline").trim().toLowerCase(),u=i;else{s=!1;for(var d=new l.NodeWalker(i);!s&&d.nextNode()&&d.node!=i&&d.node!=i.nextSibling;)1===d.node.nodeType&&l.RPTUtil.isNodeVisible(d.node)&&!l.RPTUtil.isNodeDisabled(d.node)&&(s=(l.RPTUtil.hasRoleInSemantics(d.node,"textbox")||l.RPTUtil.hasRoleInSemantics(d.node,"searchbox"))&&"false"===l.RPTUtil.getAriaAttribute(d.node,"aria-multiline").trim().toLowerCase(),u=d.node);if(!s){var c=l.RPTUtil.getElementAttribute(i,"aria-owns");if(c)for(var m=l.RPTUtil.normalizeSpacing(c.trim()).split(" "),p=0;!s&&p0||null!=r&&r.length>0)o=!0;else for(var s=l.RPTUtil.getDocElementsByTag(i,"a"),u={},d=0;!o&&d0;if(!l)for(var o=i.nextSibling;!l&&null!=o;){if("noembed"==o.nodeName.toLowerCase())l=!0;else{if("#text"==o.nodeName.toLowerCase()&&o.nodeValue.trim().length>0)break;if(1==o.nodeType)break}o=o.nextSibling}return l?a.RulePass("Pass_0"):l?void 0:a.RulePotential("Potential_1")}},{id:"Valerie_Noembed_HasContent",context:"dom:noembed",run:function(e,t){var i=e.dom.node,o=l.RPTUtil.hasInnerContentHidden(i);return o?a.RulePass("Pass_0"):o?void 0:a.RulePotential("Potential_1")}},{id:"RPT_Embed_HasAlt",context:"dom:embed",run:function(e,t){var i=e.dom.node;return l.RPTUtil.attributeNonEmpty(i,"alt")?a.RulePass("Pass_0"):a.RulePotential("Potential_1")}},{id:"RPT_Embed_AutoStart",context:"dom:param[name=autoplay], dom:param[name=autostart], dom:embed[flashvars], dom:embed[src], dom:*[autostart=true], dom:*[autostart=1], dom:bgsound",run:function(e,t){var i,l=e.dom.node,o=l.nodeName.toLowerCase();if("bgsound"==o)i=!1;else if("param"==o){var n="";l.hasAttribute("value")&&(n=l.getAttribute("value").toLowerCase()),i=0==n.indexOf("0;")||!(-1!=n.indexOf("true")||-1!=n.indexOf("1"))}else if("embed"==o){var r;if(i=!0,l.hasAttribute("flashvars"))i=-1==(r=l.getAttribute("flashvars")).indexOf("autostart=true")&&-1==r.indexOf("autostart=1");if(i&&l.hasAttribute("src"))i=-1==(r=l.getAttribute("src")).indexOf("autostart=true")&&-1==r.indexOf("autostart=1")}if(i&&l.hasAttribute("autostart")){var s=l.getAttribute("autostart").toLowerCase();i="true"!=s&&"1"!=s}return i?a.RulePass("Pass_0"):a.RulePotential("Potential_1")}}];t.a11yRulesEmbed=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesImg=void 0;var a=i(0),l=i(1),o=[{id:"WCAG20_Img_HasAlt",context:"dom:img",run:function(e,t){var i=e.dom.node,l=i.hasAttribute("alt");if(l){var o=i.getAttribute("alt");if(0==o.trim().length&&0!=o.length)return a.RuleFail("Fail_1")}return l?a.RulePass("Pass_0"):a.RuleFail("Fail_2")}},{id:"WCAG20_Img_PresentationImgHasNonNullAlt",context:"dom:img[alt]",run:function(e,t){var i=e.dom.node,o=!0;return(l.RPTUtil.hasRole(i,"presentation")||l.RPTUtil.hasRole(i,"none"))&&(o=0==i.getAttribute("alt").length),o?a.RulePass("Pass_0"):a.RuleFail("Fail_1")}},{id:"WCAG20_Img_LinkTextNotRedundant",context:"dom:img[alt]",run:function(e,t){var i=e.dom.node,o=l.RPTUtil.getAncestor(i,"a");if(null==o)return null;var n=i.getAttribute("alt").trim().toLowerCase();if(0==n.length)return null;var r=o.innerText,s="";if(null!=r&&(s=r.trim().toLowerCase()),!(s.length>0)){for(var u=!0,d=new l.NodeWalker(o);u&&d.prevNode();){if("#text"==(m=(c=d.node).nodeName.toLowerCase())&&c.nodeValue.length>0||"img"==m&&l.RPTUtil.attributeNonEmpty(c,"alt"))break;"a"!=m||l.RPTUtil.shouldNodeBeSkippedHidden(c)||(u=(c.innerText||c.textContent||"").trim().toLowerCase()!=n)}if(!u)return a.RuleFail("Fail_2");for(d=new l.NodeWalker(o,!0);u&&d.nextNode();){var c,m;if("#text"==(m=(c=d.node).nodeName.toLowerCase())&&c.nodeValue.length>0||"img"==m&&l.RPTUtil.attributeNonEmpty(c,"alt"))break;"a"!=m||l.RPTUtil.shouldNodeBeSkippedHidden(c)||(u=c.innerText.trim().toLowerCase()!=n)}return u?a.RulePass("Pass_0"):a.RuleFail("Fail_3")}return n==s?a.RuleFail("Fail_1"):void 0}},{id:"WCAG20_Img_AltTriggerNonDecorative",context:"dom:img[alt]",run:function(e,t){var i=e.dom.node;if(l.RPTUtil.hasRole(i,"presentation")||l.RPTUtil.hasRole(i,"none")||0==i.getAttribute("alt").length)return a.RulePass(1);var o={bulletMax:{value:30,type:"integer"},horizMinWidth:{value:400,type:"integer"},horizMaxHeight:{value:30,type:"integer"}},n=-1,r=-1;return i.hasAttribute("height")&&(n=parseInt(i.getAttribute("height"))),i.hasAttribute("width")&&(r=parseInt(i.getAttribute("width"))),-1!=n&&-1!=r&&(r<=o.bulletMax.value&&n<=o.bulletMax.value||r>=o.horizMinWidth.value&&n<=o.horizMaxHeight.value)?a.RulePass("Pass_0"):a.RulePotential("Potential_1")}},{id:"WCAG20_Img_TitleEmptyWhenAltNull",context:"dom:img[alt]",run:function(e,t){var i=e.dom.node;return i.getAttribute("alt").trim().length>0?null:l.RPTUtil.attributeNonEmpty(i,"title")?a.RuleFail("Fail_1"):a.RulePass("Pass_0")}},{id:"RPT_Img_UsemapValid",context:"dom:img[ismap]",run:function(e,t){var i=e.dom.node,o=!1;if(i.hasAttribute("usemap")){var n=i.getAttribute("usemap"),r=(n=n.trim().toLowerCase()).indexOf("#");if(-1!=r&&(n=n.substr(r+1)),n.length>0)for(var s=l.RPTUtil.getDocElementsByTag(i,"map"),u=0;!o&&u0){for(var r=["short description"],s=0;o&&s0||l.RPTUtil.getChildByTagHidden(i,"option",!1,!0).length<=10;return o?a.RulePass("Pass_0"):o?void 0:a.RulePotential("Potential_1")}}];t.a11yRulesSelect=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yRulesAria=void 0;var a=i(0),l=i(1),o=i(2),n=[{id:"Rpt_Aria_ValidRole",context:"dom:*[role]",run:function(e,t){for(var i=e.dom.node,l=o.ARIADefinitions.designPatterns,n=[],r=0,s=i.getAttribute("role").trim().toLowerCase().split(/\s+/);r0?a.RuleFail("Fail_1",[n.join(",")]):a.RulePass("Pass_0")}},{id:"Rpt_Aria_ValidProperty",context:"dom:*",run:function(e,t){var i=e.dom.node,n=i.attributes;if(n){for(var r=o.ARIADefinitions.propertyDataTypes,s="",u=0,d=0,c=n.length;d1&&A.includes("all"))n.push(d[m].nodeValue.split(" ")),r.push(_),s.push(h.values.toString());else for(var g={},f=0;f=1&&g.length>1){n=!1;for(var f=0,b=g.length;f=1)for(var v=0,P=g.length;v