axe-matchers 1.0.0
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.
- checksums.yaml +7 -0
- data/LICENSE +362 -0
- data/README.md +72 -0
- data/lib/axe.rb +17 -0
- data/lib/axe/api.rb +5 -0
- data/lib/axe/api/a11y_check.rb +48 -0
- data/lib/axe/api/audit.rb +25 -0
- data/lib/axe/api/context.rb +60 -0
- data/lib/axe/api/options.rb +34 -0
- data/lib/axe/api/results.rb +23 -0
- data/lib/axe/api/results/check.rb +24 -0
- data/lib/axe/api/results/checked_node.rb +24 -0
- data/lib/axe/api/results/node.rb +21 -0
- data/lib/axe/api/results/rule.rb +27 -0
- data/lib/axe/api/rules.rb +43 -0
- data/lib/axe/api/value_object.rb +9 -0
- data/lib/axe/configuration.rb +42 -0
- data/lib/axe/cucumber/step.rb +89 -0
- data/lib/axe/cucumber/step_definitions.rb +3 -0
- data/lib/axe/javascript_library.rb +26 -0
- data/lib/axe/matchers.rb +1 -0
- data/lib/axe/matchers/be_accessible.rb +62 -0
- data/lib/axe/page.rb +26 -0
- data/lib/axe/rspec.rb +6 -0
- data/lib/axe/version.rb +3 -0
- data/lib/webdriver_script_adapter/exec_eval_script_adapter.rb +27 -0
- data/lib/webdriver_script_adapter/execute_async_script_adapter.rb +90 -0
- data/node_modules/axe-core/axe.min.js +25 -0
- metadata +270 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'rubygems'
|
3
|
+
|
4
|
+
module Axe
|
5
|
+
class JavaScriptLibrary
|
6
|
+
|
7
|
+
def inject_into(page)
|
8
|
+
page.execute_script source
|
9
|
+
end
|
10
|
+
|
11
|
+
def source
|
12
|
+
axe_lib.read
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def axe_lib
|
18
|
+
gem_root + 'node_modules/axe-core/axe.min.js'
|
19
|
+
end
|
20
|
+
|
21
|
+
def gem_root
|
22
|
+
Pathname.new Gem::Specification.find_by_name('axe-matchers').gem_dir
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/axe/matchers.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'axe/matchers/be_accessible'
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'axe/page'
|
3
|
+
require 'axe/api/a11y_check'
|
4
|
+
|
5
|
+
module Axe
|
6
|
+
module Matchers
|
7
|
+
class BeAccessible
|
8
|
+
extend Forwardable
|
9
|
+
|
10
|
+
def_delegators :@audit, :failure_message, :failure_message_when_negated
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
@a11y_check = API::A11yCheck.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def matches?(page)
|
17
|
+
@audit = @a11y_check.call Page.new page
|
18
|
+
|
19
|
+
@audit.passed?
|
20
|
+
end
|
21
|
+
|
22
|
+
def within(inclusion)
|
23
|
+
@a11y_check.include inclusion
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def excluding(exclusion)
|
28
|
+
@a11y_check.exclude exclusion
|
29
|
+
self
|
30
|
+
end
|
31
|
+
|
32
|
+
def according_to(*tags)
|
33
|
+
@a11y_check.rules_by_tags tags.flatten
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
def checking(*rules)
|
38
|
+
@a11y_check.run_rules rules.flatten
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
42
|
+
def skipping(*rules)
|
43
|
+
@a11y_check.skip_rules rules.flatten
|
44
|
+
self
|
45
|
+
end
|
46
|
+
|
47
|
+
def checking_only(*rules)
|
48
|
+
@a11y_check.run_only_rules rules.flatten
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
def with_options(options)
|
53
|
+
@a11y_check.custom_options options
|
54
|
+
self
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def be_accessible
|
59
|
+
BeAccessible.new
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/axe/page.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'webdriver_script_adapter/exec_eval_script_adapter'
|
3
|
+
require 'webdriver_script_adapter/execute_async_script_adapter'
|
4
|
+
|
5
|
+
module Axe
|
6
|
+
class Page
|
7
|
+
extend Forwardable
|
8
|
+
def_delegators :@driver, :execute_script, :execute_async_script
|
9
|
+
|
10
|
+
def initialize(driver)
|
11
|
+
@driver = wrap_exec_async wrap_exec_eval driver
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# ensure driver has #execute_async_script
|
17
|
+
def wrap_exec_async(driver)
|
18
|
+
::WebDriverScriptAdapter::ExecuteAsyncScriptAdapter.wrap driver
|
19
|
+
end
|
20
|
+
|
21
|
+
# ensure driver has #execute_script and #evaluate_script
|
22
|
+
def wrap_exec_eval(driver)
|
23
|
+
::WebDriverScriptAdapter::ExecEvalScriptAdapter.wrap driver
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/axe/rspec.rb
ADDED
data/lib/axe/version.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'dumb_delegator'
|
2
|
+
|
3
|
+
module WebDriverScriptAdapter
|
4
|
+
# Capybara distinguishes eval from exec
|
5
|
+
# (eval is a query, exec is a command)
|
6
|
+
# this decorator makes webdriver act like capybara
|
7
|
+
class ExecEvalScriptAdapter < ::DumbDelegator
|
8
|
+
|
9
|
+
def self.wrap(driver)
|
10
|
+
raise WebDriverError, "WebDriver must respond to #execute_script" unless driver.respond_to? :execute_script
|
11
|
+
driver.respond_to?(:evaluate_script) ? driver : new(driver)
|
12
|
+
end
|
13
|
+
|
14
|
+
# executes script without returning result
|
15
|
+
def execute_script(script)
|
16
|
+
super
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
# returns result of executing script
|
21
|
+
def evaluate_script(script)
|
22
|
+
__getobj__.execute_script "return #{script}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class WebDriverError < TypeError; end
|
27
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'dumb_delegator'
|
2
|
+
require 'securerandom'
|
3
|
+
require 'timeout'
|
4
|
+
require 'webdriver_script_adapter/exec_eval_script_adapter'
|
5
|
+
|
6
|
+
module WebDriverScriptAdapter
|
7
|
+
class << self
|
8
|
+
attr_accessor :async_results_identifier, :max_wait_time, :wait_interval
|
9
|
+
|
10
|
+
def configure
|
11
|
+
yield self
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module Defaults
|
16
|
+
module_function
|
17
|
+
|
18
|
+
def async_results_identifier
|
19
|
+
-> { ::SecureRandom.uuid }
|
20
|
+
end
|
21
|
+
|
22
|
+
def max_wait_time
|
23
|
+
if defined? ::Capybara
|
24
|
+
if ::Capybara.respond_to? :default_max_wait_time
|
25
|
+
::Capybara.default_max_wait_time
|
26
|
+
else
|
27
|
+
::Capybara.default_wait_time
|
28
|
+
end
|
29
|
+
elsif defined? ::Selenium::WebDriver::Wait::DEFAULT_TIMEOUT
|
30
|
+
::Selenium::WebDriver::Wait::DEFAULT_TIMEOUT
|
31
|
+
else
|
32
|
+
3
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def wait_interval
|
37
|
+
if defined? ::Selenium::WebDriver::Wait::DEFAULT_INTERVAL
|
38
|
+
::Selenium::WebDriver::Wait::DEFAULT_INTERVAL
|
39
|
+
else
|
40
|
+
0.1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
module ScriptWriter
|
46
|
+
module_function
|
47
|
+
|
48
|
+
def async_results_identifier
|
49
|
+
id = WebDriverScriptAdapter.async_results_identifier
|
50
|
+
"window['#{ id.respond_to?(:call) ? id.call : id }']"
|
51
|
+
end
|
52
|
+
|
53
|
+
def callback(resultsIdentifier)
|
54
|
+
"function(returnValue){ #{resultsIdentifier} = returnValue; }"
|
55
|
+
end
|
56
|
+
|
57
|
+
def async_wrapper(script, *args)
|
58
|
+
"(function(){ #{script} })(#{args.join(', ')});"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
module Patiently
|
63
|
+
module_function
|
64
|
+
|
65
|
+
def wait_until
|
66
|
+
::Timeout.timeout(WebDriverScriptAdapter.max_wait_time) do
|
67
|
+
sleep(WebDriverScriptAdapter.wait_interval) while (value = yield).nil?
|
68
|
+
value
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class ExecuteAsyncScriptAdapter < ::DumbDelegator
|
74
|
+
def self.wrap(driver)
|
75
|
+
new ExecEvalScriptAdapter.wrap driver
|
76
|
+
end
|
77
|
+
|
78
|
+
def execute_async_script(script, *args)
|
79
|
+
results = ScriptWriter.async_results_identifier
|
80
|
+
execute_script ScriptWriter.async_wrapper(script, *args, ScriptWriter.callback(results))
|
81
|
+
Patiently.wait_until { evaluate_script results }
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
configure do |c|
|
86
|
+
c.async_results_identifier = Defaults.async_results_identifier
|
87
|
+
c.max_wait_time = Defaults.max_wait_time
|
88
|
+
c.wait_interval = Defaults.wait_interval
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*! aXe v1.0.1
|
2
|
+
* Copyright (c) 2015 Deque Systems, Inc.
|
3
|
+
*
|
4
|
+
* Your use of this Source Code Form is subject to the terms of the Mozilla Public
|
5
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
6
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
*
|
8
|
+
* This entire copyright notice must appear in every copy of this file you
|
9
|
+
* distribute or in any file that contains substantial portions of this source
|
10
|
+
* code.
|
11
|
+
*/
|
12
|
+
!function(a){function b(a){"use strict";var c,d,e=a;if(null!==a&&"object"==typeof a)if(Array.isArray(a))for(e=[],c=0,d=a.length;d>c;c++)e[c]=b(a[c]);else{e={};for(c in a)e[c]=b(a[c])}return e}function c(a){"use strict";this.reporter=a,this.rules=[],this.tools={}}function d(a){"use strict";this.id=a.id,this.data=null,this.relatedNodes=[],this.result=null}function e(a){"use strict";this.id=a.id,this.options=a.options,this.selector=a.selector,this.evaluate=a.evaluate,a.after&&(this.after=a.after),a.matches&&(this.matches=a.matches),this.enabled=a.hasOwnProperty("enabled")?a.enabled:!0}function f(a,b){"use strict";if(!R.isHidden(b)){var c=R.findBy(a.frames,"node",b);c||a.frames.push({node:b,include:[],exclude:[]})}}function g(a,b,c){"use strict";a.frames=a.frames||[];var d,e,f=document.querySelectorAll(c.shift());a:for(var g=0,h=f.length;h>g;g++){e=f[g];for(var i=0,j=a.frames.length;j>i;i++)if(a.frames[i].node===e){a.frames[i][b].push(c);break a}d={node:e,include:[],exclude:[]},c&&d[b].push(c),a.frames.push(d)}}function h(a){"use strict";if(a&&"object"==typeof a){if(a instanceof Node)return{include:[a],exclude:[]};if(a.hasOwnProperty("include")||a.hasOwnProperty("exclude"))return{include:a.include||[],exclude:a.exclude||[]};if(a.length===+a.length)return{include:a,exclude:[]}}return"string"==typeof a?{include:[a],exclude:[]}:{include:[],exclude:[]}}function i(a,b){"use strict";for(var c,d=[],e=0,h=a[b].length;h>e;e++){if(c=a[b][e],"string"==typeof c){d=d.concat(R.toArray(document.querySelectorAll(c)));break}c&&c.length?c.length>1?g(a,b,c):d=d.concat(R.toArray(document.querySelectorAll(c[0]))):d.push(c)}return d.filter(function(b){if(b){if("IFRAME"===b.nodeName||"FRAME"===b.nodeName)return f(a,b),!1;R.toArray(b.querySelectorAll("iframe, frame")).forEach(function(b){f(a,b)})}return b})}function j(a){"use strict";this.frames=[],this.page=a instanceof Node&&a.nodeType===Node.DOCUMENT_NODE||!a,this.initiator=a&&"boolean"==typeof a.initiator?a.initiator:!0,a=h(a),this.exclude=a.exclude,this.include=a.include,this.include=i(this,"include"),this.exclude=i(this,"exclude")}function k(a,b,c){"use strict";if(b=b||300,c=c||"...",a.length>b){var d=Math.floor((b-c.length)/2);a=a.slice(0,d)+c+a.slice(-d)}return a}function l(a,b){"use strict";b=b||{},this.selector=b.selector||[R.getSelector(a)],this.source=k(b.source||a.outerHTML),this.element=a}function m(a){"use strict";this.id=a.id,this.result=Q.constants.result.NA,this.pageLevel=a.pageLevel,this.impact=null,this.nodes=[]}function n(a,b){"use strict";var c,d;if(b.all)for(c=0,d=b.all.length;d>c;c++)a.all.push(new e(b.all[c]));if(b.none)for(c=0,d=b.none.length;d>c;c++)a.none.push(new e(b.none[c]));if(b.any)for(c=0,d=b.any.length;d>c;c++)a.any.push(new e(b.any[c]))}function o(a){"use strict";this.id=a.id,this.selector=a.selector||"*",this.excludeHidden="boolean"==typeof a.excludeHidden?a.excludeHidden:!0,this.enabled="boolean"==typeof a.enabled?a.enabled:!0,this.pageLevel="boolean"==typeof a.pageLevel?a.pageLevel:!1,this.any=[],this.all=[],this.none=[],n(this,a),this.tags=a.tags||[],a.matches&&(this.matches=a.matches)}function p(a){"use strict";return R.getAllChecks(a).filter(function(a){return"function"==typeof a.after})}function q(a,b){"use strict";var c=[];return a.forEach(function(a){var d=R.getAllChecks(a);d.forEach(function(a){a.id===b&&c.push(a)})}),c}function r(a){"use strict";return a.filter(function(a){return a.filtered!==!0})}function s(a){"use strict";var b=["any","all","none"],c=a.nodes.filter(function(a){var c=0;return b.forEach(function(b){a[b]=r(a[b]),c+=a[b].length}),c>0});return a.pageLevel&&c.length&&(c=[c.reduce(function(a,c){return a?(b.forEach(function(b){a[b].push.apply(a[b],c[b])}),a):void 0})]),c}function t(a){"use strict";a.source=a.source||{},this.id=a.id,this.options=a.options,this._run=a.source.run,this._cleanup=a.source.cleanup,this.active=!1}function u(a){"use strict";if(!Q._audit)throw new Error("No audit configured");var b=R.queue();Object.keys(Q._audit.tools).forEach(function(a){var c=Q._audit.tools[a];c.active&&b.defer(function(a){c.cleanup(a)})}),R.toArray(document.querySelectorAll("frame, iframe")).forEach(function(a){b.defer(function(b){return R.sendCommandToFrame(a,{command:"cleanup-tool"},b)})}),b.then(a)}function v(a,b){"use strict";var c=a&&a.context||{};c.include&&!c.include.length&&(c.include=[document]);var d=a&&a.options||{};switch(a.command){case"rules":return z(c,d,b);case"run-tool":return A(a.parameter,a.selectorArray,d,b);case"cleanup-tool":return u(b)}}function w(a){"use strict";var b=a||{};return b.rules=b.rules||[],b.tools=b.tools||[],b.data=b.data||{checks:{},rules:{}},b}function x(a){"use strict";if(T&&T.parentNode&&(T.parentNode.removeChild(T),T=null),a){var b=document.head||document.getElementsByTagName("head")[0];return T=document.createElement("style"),T.type="text/css",void 0===T.styleSheet?T.appendChild(document.createTextNode(a)):T.styleSheet.cssText=a,b.appendChild(T),T}}function y(a){"use strict";return"string"==typeof a&&V[a]?V[a]:"function"==typeof a?a:U}function z(a,b,c){"use strict";a=new j(a);var d=R.queue(),e=Q._audit;a.frames.length&&d.defer(function(c){R.collectResultsFromFrames(a,b,"rules",null,c)}),d.defer(function(c){e.run(a,b,c)}),d.then(function(d){var f=R.mergeResults(d.map(function(a){return{results:a}}));a.initiator&&(f=e.after(f,b),f=f.map(R.finalizeRuleResult)),c(f)})}function A(a,b,c,d){"use strict";if(!Q._audit)throw new Error("No audit configured");if(b.length>1){var e=document.querySelector(b.shift());return R.sendCommandToFrame(e,{options:c,command:"run-tool",parameter:a,selectorArray:b},d)}var f=document.querySelector(b.shift());Q._audit.tools[a].run(f,c,d)}function B(a,b){"use strict";Object.keys(Q.constants.raisedMetadata).forEach(function(c){var d=Q.constants.raisedMetadata[c],e=b.reduce(function(a,b){var e=d.indexOf(b[c]);return e>a?e:a},-1);d[e]&&(a[c]=d[e])})}function C(a){"use strict";var b=a.any.length||a.all.length||a.none.length;return b?Q.constants.result.FAIL:Q.constants.result.PASS}function D(a){"use strict";function b(a){return R.extendBlacklist({},a,["result"])}var c=R.extendBlacklist({violations:[],passes:[]},a,["nodes"]);return a.nodes.forEach(function(a){var d=R.getFailingChecks(a),e=C(d);return e===Q.constants.result.FAIL?(B(a,R.getAllChecks(d)),a.any=d.any.map(b),a.all=d.all.map(b),a.none=d.none.map(b),void c.violations.push(a)):(a.any=a.any.filter(function(a){return a.result}).map(b),a.all=a.all.map(b),a.none=a.none.map(b),void c.passes.push(a))}),B(c,c.violations),c.result=c.violations.length?Q.constants.result.FAIL:c.passes.length?Q.constants.result.PASS:c.result,c}function E(a){"use strict";for(var b=1,c=a.nodeName;a=a.previousElementSibling;)a.nodeName===c&&b++;return b}function F(a,b){"use strict";var c,d,e=a.parentNode.children;if(!e)return!1;var f=e.length;for(c=0;f>c;c++)if(d=e[c],d!==a&&R.matchesSelector(d,b))return!0;return!1}function G(a,b,c){"use strict";a.forEach(function(a){a.node.selector.unshift(c),a.node=new l(b,a.node);var d=R.getAllChecks(a);d.length&&d.forEach(function(a){a.relatedNodes.forEach(function(a){a.selector.unshift(c),a=new l(b,a)})})})}function H(a,b){"use strict";for(var c,d,e=b[0].node,f=0,g=a.length;g>f;f++)if(d=a[f].node,c=R.nodeSorter(d.element,e.element),c>0||0===c&&e.selector.length<d.selector.length)return void a.splice.apply(a,[f,0].concat(b));a.push.apply(a,b)}function I(a){"use strict";return a&&a.results?Array.isArray(a.results)?a.results.length?a.results:null:[a.results]:null}function J(a){"use strict";return a.sort(function(a,b){return R.contains(a,b)?1:-1})[0]}function K(a,b){"use strict";var c=b.include&&J(b.include.filter(function(b){return R.contains(b,a)})),d=b.exclude&&J(b.exclude.filter(function(b){return R.contains(b,a)}));return!d&&c||d&&R.contains(d,c)?!0:!1}function L(a,b,c){"use strict";for(var d=0,e=b.length;e>d;d++)-1===a.indexOf(b[d])&&K(b[d],c)&&a.push(b[d])}var M=function(){"use strict";function a(a){var b,c,d=a.Element.prototype,e=["matches","matchesSelector","mozMatchesSelector","webkitMatchesSelector","msMatchesSelector"],f=e.length;for(b=0;f>b;b++)if(c=e[b],d[c])return c}var b;return function(c,d){return b&&c[b]||(b=a(c.ownerDocument.defaultView)),c[b](d)}}(),N=function(a){"use strict";for(var b,c=String(a),d=c.length,e=-1,f="",g=c.charCodeAt(0);++e<d;){if(b=c.charCodeAt(e),0==b)throw new Error("INVALID_CHARACTER_ERR");f+=b>=1&&31>=b||b>=127&&159>=b||0==e&&b>=48&&57>=b||1==e&&b>=48&&57>=b&&45==g?"\\"+b.toString(16)+" ":(1!=e||45!=b||45!=g)&&(b>=128||45==b||95==b||b>=48&&57>=b||b>=65&&90>=b||b>=97&&122>=b)?c.charAt(e):"\\"+c.charAt(e)}return f};(function(){function a(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){16>e&&(b[d+e++]=m[a])});16>e;)b[d+e++]=0;return b}function b(a,b){var c=b||0,d=l;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function c(a,c,d){var e=c&&d||0,f=c||[];a=a||{};var g=null!=a.clockseq?a.clockseq:q,h=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:s+1,j=h-r+(i-s)/1e4;if(0>j&&null==a.clockseq&&(g=g+1&16383),(0>j||h>r)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");r=h,s=i,q=g,h+=122192928e5;var k=(1e4*(268435455&h)+i)%4294967296;f[e++]=k>>>24&255,f[e++]=k>>>16&255,f[e++]=k>>>8&255,f[e++]=255&k;var l=h/4294967296*1e4&268435455;f[e++]=l>>>8&255,f[e++]=255&l,f[e++]=l>>>24&15|16,f[e++]=l>>>16&255,f[e++]=g>>>8|128,f[e++]=255&g;for(var m=a.node||p,n=0;6>n;n++)f[e+n]=m[n];return c?c:b(f)}function d(a,c,d){var f=c&&d||0;"string"==typeof a&&(c="binary"==a?new k(16):null,a=null),a=a||{};var g=a.random||(a.rng||e)();if(g[6]=15&g[6]|64,g[8]=63&g[8]|128,c)for(var h=0;16>h;h++)c[f+h]=g[h];return c||b(g)}var e,f=this;if("function"==typeof f.require)try{var g=f.require("crypto").randomBytes;e=g&&function(){return g(16)}}catch(h){}if(!e&&f.crypto&&crypto.getRandomValues){var i=new Uint8Array(16);e=function(){return crypto.getRandomValues(i),i}}if(!e){var j=new Array(16);e=function(){for(var a,b=0;16>b;b++)0===(3&b)&&(a=4294967296*Math.random()),j[b]=a>>>((3&b)<<3)&255;return j}}for(var k="function"==typeof f.Buffer?f.Buffer:Array,l=[],m={},n=0;256>n;n++)l[n]=(n+256).toString(16).substr(1),m[l[n]]=n;var o=e(),p=[1|o[0],o[1],o[2],o[3],o[4],o[5]],q=16383&(o[6]<<8|o[7]),r=0,s=0,t=d;if(t.v1=c,t.v4=d,t.parse=a,t.unparse=b,t.BufferClass=k,"undefined"!=typeof module&&module.exports)module.exports=t;else if("function"==typeof P&&P.amd)P(function(){return t});else{var u=f.uuid;t.noConflict=function(){return f.uuid=u,t},f.uuid=t}}).call(this);var O,P,Q={},R={};R.matchesSelector=M,R.escapeSelector=N,R.clone=b;var S={};c.prototype.addRule=function(a){"use strict";for(var b,c=0,d=this.rules.length;d>c;c++)if(b=this.rules[c],b.id===a.id)return void(this.rules[c]=new o(a));this.rules.push(new o(a))},c.prototype.addTool=function(a){"use strict";this.tools[a.id]=new t(a)},c.prototype.run=function(a,b,c){"use strict";var d=R.queue();this.rules.forEach(function(c){R.ruleShouldRun(c,a,b)&&d.defer(function(d){c.run(a,b,d)})}),d.then(c)},c.prototype.after=function(a,b){"use strict";var c=this.rules;return a.map(function(a){var d=R.findBy(c,"id",a.id);return d.after(a,b)})},e.prototype.matches=function(a){"use strict";return!this.selector||R.matchesSelector(a,this.selector)?!0:!1},e.prototype.run=function(a,b,c){"use strict";b=b||{};var e=b.hasOwnProperty("enabled")?b.enabled:this.enabled,f=b.options||this.options;if(e&&this.matches(a)){var g,h=new d(this),i=R.checkHelper(h,c);try{g=this.evaluate.call(i,a,f)}catch(j){return Q.log(j.message,j.stack),void c(null)}i.isAsync||(h.result=g,setTimeout(function(){c(h)},0))}else c(null)},l.prototype.toJSON=function(){"use strict";return{selector:this.selector,source:this.source}},o.prototype.matches=function(){"use strict";return!0},o.prototype.gather=function(a){"use strict";var b=R.select(this.selector,a);return this.excludeHidden?b.filter(function(a){return!R.isHidden(a)}):b},o.prototype.runChecks=function(a,b,c,d){"use strict";var e=this,f=R.queue();this[a].forEach(function(a){var d=R.getCheckOption(a,e.id,c);f.defer(function(c){a.run(b,d,c)})}),f.then(function(b){b=b.filter(function(a){return a}),d({type:a,results:b})})},o.prototype.run=function(a,b,c){"use strict";var d,e=this.gather(a),f=R.queue(),g=this;d=new m(this),e.forEach(function(a){g.matches(a)&&f.defer(function(c){var e=R.queue();e.defer(function(c){g.runChecks("any",a,b,c)}),e.defer(function(c){g.runChecks("all",a,b,c)}),e.defer(function(c){g.runChecks("none",a,b,c)}),e.then(function(b){if(b.length){var e=!1,f={node:new l(a)};b.forEach(function(a){var b=a.results.filter(function(a){return a});f[a.type]=b,b.length&&(e=!0)}),e&&d.nodes.push(f)}c()})})}),f.then(function(){c(d)})},o.prototype.after=function(a,b){"use strict";var c=p(this),d=this.id;return c.forEach(function(c){var e=q(a.nodes,c.id),f=R.getCheckOption(c,d,b),g=c.after(e,f);e.forEach(function(a){-1===g.indexOf(a)&&(a.filtered=!0)})}),a.nodes=s(a),a},t.prototype.run=function(a,b,c){"use strict";b="undefined"==typeof b?this.options:b,this.active=!0,this._run(a,b,c)},t.prototype.cleanup=function(a){"use strict";this.active=!1,this._cleanup(a)},Q.constants={},Q.constants.result={PASS:"PASS",FAIL:"FAIL",NA:"NA"},Q.constants.raisedMetadata={impact:["minor","moderate","serious","critical"]},Q.version="dev",a.axe=Q,Q.log=function(){"use strict";"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},Q.cleanup=u,Q.configure=function(a){"use strict";var b=Q._audit;if(!b)throw new Error("No audit configured");a.reporter&&("function"==typeof a.reporter||V[a.reporter])&&(b.reporter=a.reporter)},Q.getRules=function(a){"use strict";a=a||[];var b=a.length?Q._audit.rules.filter(function(b){return!!a.filter(function(a){return-1!==b.tags.indexOf(a)}).length}):Q._audit.rules,c=Q._audit.data.rules||{};return b.map(function(a){var b=c[a.id]||{description:""};return{ruleId:a.id,description:b.description}})};var T;Q._load=function(a){"use strict";a=w(a),Q._audit=new c(a.reporter),O=a.commons,Q._audit.version=a.version;var b,d;for(b=0,d=a.rules.length;d>b;b++)Q._audit.addRule(a.rules[b]);for(b=0,d=a.tools.length;d>b;b++)Q._audit.addTool(a.tools[b]);Q._audit.data=a.data||{checks:{},rules:{}},x(a.style),R.respondable.subscribe("axe.ping",function(a,b){b({axe:!0})}),R.respondable.subscribe("axe.start",v)};var U,V={};Q.reporter=function(a,b,c){"use strict";V[a]=b,c&&(U=b)},Q.a11yCheck=function(a,b,c){"use strict";"function"==typeof b&&(c=b,b={}),b&&"object"==typeof b||(b={});var d=Q._audit;if(!d)throw new Error("No audit configured");var e=y(b.reporter||d.reporter);z(a,b,function(a){e(a,c)})},Q.tool=A,S.failureSummary=function(a){"use strict";var b={};return b.none=a.none.concat(a.all),b.any=a.any,Object.keys(b).map(function(a){return b[a].length?Q._audit.data.failureSummaries[a].failureMessage(b[a].map(function(a){return a.message||""})):void 0}).filter(function(a){return void 0!==a}).join("\n\n")},S.formatNode=function(a){"use strict";return{target:a?a.selector:null,html:a?a.source:null}},S.splitResults=function(a,b){"use strict";var c=[],d=[];return a.forEach(function(a){function e(c){var d=c.result||a.result,e=S.formatNode(c.node);return e.impact=c.impact||null,b(e,c,d)}var f,g={id:a.id,description:a.description,help:a.help,helpUrl:a.helpUrl||null,impact:null,tags:a.tags,nodes:[]};f=R.clone(g),f.impact=a.impact||null,f.nodes=a.violations.map(e),g.nodes=a.passes.map(e),f.nodes.length&&c.push(f),g.nodes.length&&d.push(g)}),{violations:c,passes:d,url:window.location.href,timestamp:new Date}},Q.reporter("raw",function(a,b){"use strict";b(a)}),Q.reporter("v1",function(a,b){"use strict";b(S.splitResults(a,function(a,b,c){return c===Q.constants.result.FAIL&&(a.failureSummary=S.failureSummary(b)),a}))}),Q.reporter("v2",function(a,b){"use strict";function c(a){return{id:a.id,impact:a.impact,message:a.message,data:a.data,relatedNodes:a.relatedNodes.map(S.formatNode)}}b(S.splitResults(a,function(a,b){return a.any=b.any.map(c),a.all=b.all.map(c),a.none=b.none.map(c),a}))},!0),R.checkHelper=function(a,b){"use strict";return{isAsync:!1,async:function(){return this.isAsync=!0,function(c){a.value=c,b(a)}},data:function(b){a.data=b},relatedNodes:function(b){b=Array.isArray(b)?b:[b],a.relatedNodes=b.map(function(a){return new l(a)})}}},R.sendCommandToFrame=function(a,b,c){"use strict";var d=a.contentWindow;if(!d)return Q.log("Frame does not have a content window",a),c({});var e=setTimeout(function(){e=setTimeout(function(){Q.log("No response from frame: ",a),c(null)},0)},500);R.respondable(d,"axe.ping",null,function(){clearTimeout(e),e=setTimeout(function(){Q.log("Error returning results from frame: ",a),c({}),c=null},3e4),R.respondable(d,"axe.start",b,function(a){c&&(clearTimeout(e),c(a))})})},R.collectResultsFromFrames=function(a,b,c,d,e){"use strict";function f(e){var f={options:b,command:c,parameter:d,context:{initiator:!1,page:a.page,include:e.include||[],exclude:e.exclude||[]}};g.defer(function(a){var b=e.node;R.sendCommandToFrame(b,f,function(c){return c?a({results:c,frameElement:b,frame:R.getSelector(b)}):void a(null)})})}for(var g=R.queue(),h=a.frames,i=0,j=h.length;j>i;i++)f(h[i]);g.then(function(a){e(R.mergeResults(a))})},R.contains=function(a,b){"use strict";return"function"==typeof a.contains?a.contains(b):!!(16&a.compareDocumentPosition(b))},R.extendBlacklist=function(a,b,c){"use strict";c=c||[];for(var d in b)b.hasOwnProperty(d)&&-1===c.indexOf(d)&&(a[d]=b[d]);return a},R.extendMetaData=function(a,b){"use strict";for(var c in b)if(b.hasOwnProperty(c))if("function"==typeof b[c])try{a[c]=b[c](a)}catch(d){a[c]=null}else a[c]=b[c]},R.getFailingChecks=function(a){"use strict";var b=a.any.filter(function(a){return!a.result});return{all:a.all.filter(function(a){return!a.result}),any:b.length===a.any.length?b:[],none:a.none.filter(function(a){return!!a.result})}},R.finalizeRuleResult=function(a){"use strict";return R.publishMetaData(a),D(a)},R.findBy=function(a,b,c){"use strict";a=a||[];var d,e;for(d=0,e=a.length;e>d;d++)if(a[d][b]===c)return a[d]},R.getAllChecks=function(a){"use strict";var b=[];return b.concat(a.any||[]).concat(a.all||[]).concat(a.none||[])},R.getCheckOption=function(a,b,c){"use strict";var d=((c.rules&&c.rules[b]||{}).checks||{})[a.id],e=(c.checks||{})[a.id],f=a.enabled,g=a.options;return e&&(e.hasOwnProperty("enabled")&&(f=e.enabled),e.hasOwnProperty("options")&&(g=e.options)),d&&(d.hasOwnProperty("enabled")&&(f=d.enabled),d.hasOwnProperty("options")&&(g=d.options)),{enabled:f,options:g}},R.getSelector=function(a){"use strict";function b(a){return R.escapeSelector(a)}for(var c,d=[];a.parentNode;){if(c="",a.id&&1===document.querySelectorAll("#"+R.escapeSelector(a.id)).length){d.unshift("#"+R.escapeSelector(a.id));break}if(a.className&&"string"==typeof a.className&&(c="."+a.className.trim().split(/\s+/).map(b).join("."),("."===c||F(a,c))&&(c="")),!c){if(c=R.escapeSelector(a.nodeName).toLowerCase(),"html"===c||"body"===c){d.unshift(c);break}F(a,c)&&(c+=":nth-of-type("+E(a)+")")}d.unshift(c),a=a.parentNode}return d.join(" > ")},R.isHidden=function(a,b){"use strict";if(9===a.nodeType)return!1;var c=a.ownerDocument.defaultView.getComputedStyle(a,null);return c&&a.parentNode&&"none"!==c.getPropertyValue("display")&&(b||"hidden"!==c.getPropertyValue("visibility"))&&"true"!==a.getAttribute("aria-hidden")?R.isHidden(a.parentNode,!0):!0},R.mergeResults=function(a){"use strict";var b=[];return a.forEach(function(a){var c=I(a);c&&c.length&&c.forEach(function(c){c.nodes&&a.frame&&G(c.nodes,a.frameElement,a.frame);var d=R.findBy(b,"id",c.id);d?c.nodes.length&&H(d.nodes,c.nodes):b.push(c)})}),b},R.nodeSorter=function(a,b){"use strict";return a===b?0:4&a.compareDocumentPosition(b)?-1:1},R.publishMetaData=function(a){"use strict";function b(a){return function(b){var d=c[b.id]||{},e=d.messages||{},f=R.extendBlacklist({},d,["messages"]);f.message=b.result===a?e.pass:e.fail,R.extendMetaData(b,f)}}var c=Q._audit.data.checks||{},d=Q._audit.data.rules||{},e=R.findBy(Q._audit.rules,"id",a.id)||{};a.tags=R.clone(e.tags||[]);var f=b(!0),g=b(!1);a.nodes.forEach(function(a){a.any.forEach(f),a.all.forEach(f),a.none.forEach(g)}),R.extendMetaData(a,R.clone(d[a.id]||{}))},function(){"use strict";function a(){}function b(){function b(){for(var a=e.length;a>f;f++){var b=e[f],d=b.shift();b.push(c(f)),d.apply(null,b)}}function c(a){return function(b){e[a]=b,--g||d()}}function d(){h(e)}var e=[],f=0,g=0,h=a;return{defer:function(a){e.push([a]),++g,b()},then:function(a){h=a,g||d()},abort:function(b){h=a,b(e)}}}R.queue=b}(),function(a){"use strict";function b(a){return"object"==typeof a&&"string"==typeof a.uuid&&a._respondable===!0}function c(a,b,c,d,e){var f={uuid:d,topic:b,message:c,_respondable:!0};g[d]=e,a.postMessage(JSON.stringify(f),"*")}function d(a,b,d,e){var f=uuid.v1();c(a,b,d,f,e)}function e(a,b){var c=b.topic,d=b.message,e=h[c];e&&e(d,f(a.source,null,b.uuid))}function f(a,b,d){return function(e,f){c(a,b,e,d,f)}}var g={},h={};d.subscribe=function(a,b){h[a]=b},window.addEventListener("message",function(a){if("string"==typeof a.data){var c;try{c=JSON.parse(a.data)}catch(d){}if(b(c)){var h=c.uuid;g[h]&&(g[h](c.message,f(a.source,c.topic,h)),g[h]=null),e(a,c)}}},!1),a.respondable=d}(R),R.ruleShouldRun=function(a,b,c){"use strict";if(a.pageLevel&&!b.page)return!1;var d=c.runOnly,e=(c.rules||{})[a.id];return d?"rule"===d.type?-1!==d.values.indexOf(a.id):!!(d.values||[]).filter(function(b){return-1!==a.tags.indexOf(b)}).length:(e&&e.hasOwnProperty("enabled")?e.enabled:a.enabled)?!0:!1},R.select=function(a,b){"use strict";for(var c=[],d=0,e=b.include.length;e>d;d++)L(c,b.include[d].querySelectorAll(a),b);return c.sort(R.nodeSorter)},R.toArray=function(a){"use strict";return Array.prototype.slice.call(a)},/*! aXe Rules v1.0.2
|
13
|
+
* Copyright (c) 2015 Deque Systems, Inc.
|
14
|
+
*
|
15
|
+
* Your use of this Source Code Form is subject to the terms of the Mozilla Public
|
16
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
17
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
18
|
+
*
|
19
|
+
* This entire copyright notice must appear in every copy of this file you
|
20
|
+
* distribute or in any file that contains substantial portions of this source
|
21
|
+
* code.
|
22
|
+
*/
|
23
|
+
Q._load({data:{rules:{accesskeys:{description:"Ensures that each element on the page with an accesskey attribute has a unique value",helpUrl:"https://dequeuniversity.com/courses/html-css/robust-compatibility/markup-validation",help:"accesskey attribute value must be unique"},"area-alt":{helpUrl:"https://dequeuniversity.com/courses/html-css/images/image-maps",help:"Active <area> elements need alternate text",description:"Checks the <area> elements of image maps to ensure that they have an alternative text"},"aria-allowed-attr":{helpUrl:"https://dequeuniversity.com/issues/aria-allowed-attr",help:"ARIA attributes not allowed for role assigned to this element",description:"Checks all attributes that start with 'aria-' to ensure that they are all official WAI-ARIA attributes"},"aria-required-attr":{description:"Checks all elements that contain WAI-ARIA roles to ensure that all required aria- attributes are present",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/special-input-attributes",help:"ARIA attribute not provided for element with given role"},"aria-required-children":{helpUrl:"https://dequeuniversity.com/issues/aria-required-children",description:"Checks all elements that contain a WAI-ARIA role to ensure that all required children roles are present",help:"Certain ARIA roles must contain particular children"},"aria-required-parent":{helpUrl:"https://dequeuniversity.com/issues/aria-required-parent",description:"Checks all elements that contain a WAI-ARIA role to ensure that all required parent roles are present",help:"Certain ARIA roles must be contained by particular parents"},"aria-roles":{description:"Checks all elements that contain the WAI-ARIA role attribute to ensure that the role value is valid",help:"ARIA roles used must conform to valid values",helpUrl:"https://dequeuniversity.com/issues/aria-roles"},"aria-valid-attr-value":{helpUrl:"https://dequeuniversity.com/issues/aria-valid-attr-value",description:"Checks all elements that contain WAI-ARIA atributes to ensure that the values of the attributes are valid",help:"ARIA attributes used must conform to valid values"},"aria-valid-attr":{helpUrl:"https://dequeuniversity.com/issues/aria-valid-attr",description:"Checks all elements that contain WAI-ARIA attributes to ensure that the attributes are valid attributes",help:"ARIA attributes used must conform to valid names"},"audio-caption":{helpUrl:"https://dequeuniversity.com/issues/audio-caption",description:"Checks the use of all <audio> element to ensure that the element contains a <caption> element",help:"HTML5 <audio> elements need a captions track"},blink:{description:"Checks to make sure that the <blink> tag is never used",helpUrl:"https://dequeuniversity.com/courses/html-css/visual-layout/fonts-and-typography#id55_avoid_blink_marquee",help:"The <blink> tag is deprecated and must not be used"},"button-name":{description:"Checks all <button> elements to ensure that they have a discernable accessible name",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/form-labels#id84_example_button",help:"<button> elements must have alternate text"},bypass:{description:"Ensures that each page has at least one mechanism for a keyboard-only user to bypass the navigation and jump straight to the content",helpUrl:"https://dequeuniversity.com/courses/html-css/navigation/",help:"Page must have means to bypass content"},checkboxgroup:{description:"Ensures that all checkbox groups have a group and that that group designation is consistent",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/form-labels#id84_labels_for_checkboxes",help:"Checkbox inputs with the same name must be part of a group"},"color-contrast":{description:"Checks all elements to ensure that the contrast between the foreground and the background meets the WCAG 2 AA contrast ratio thresholds.",help:"Elements must have sufficient color contrast",helpUrl:"https://dequeuniversity.com/courses/html-css/visual-layout/color-contrast"},"data-table":{description:"Checks that data tables are marked up semantically and have the correct header structure",helpUrl:"https://dequeuniversity.com/courses/html-css/data-tables/",help:"Data tables should be marked up properly"},"definition-list":{description:"Ensures that all <dl> elements are structured correctly",help:"<dl> elements must contain properly-ordered <dt> and <dd> elements",helpUrl:"https://dequeuniversity.com/issues/definition-list"},dlitem:{helpUrl:"https://dequeuniversity.com/issues/dlitem",description:"Ensures that all <dd> and <dt> elements have a <dl> as a parent",help:"<dd> and <dt> elements must be contained in a <dl>"},"document-title":{description:"Ensures that each HTML document contains a title",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/page-title",help:"Documents must have <title> element to aid in navigation"},"duplicate-id":{description:"Ensures that each element on the page with an ID attribute has a unique ID attribute value",helpUrl:"https://dequeuniversity.com/courses/html-css/robust-compatibility/markup-validation",help:"ID attribute value must be unique"},"empty-heading":{helpUrl:"https://dequeuniversity.com/issues/empty-heading",description:"Ensures that headings on the page do not contain empty text",help:"Headings should not be empty"},"frame-title":{description:"Ensure that all iframe and frame elements contain a unique and non-empty title attribute",helpUrl:"https://dequeuniversity.com/courses/html-css/frames/titles",help:"Frames must have unique title attribute"},"heading-order":{description:"Ensure that the order in which the headings appear in the DOM is semantically correct",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/headings#id37_use_headings_in_order",help:"Heading levels must only increase by one"},"html-lang":{description:"Ensures that every HTML document has a lang attribute and that it contains a valid value",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/language",help:"documentElement (<html>) must have a valid 'lang' attribute"},"image-alt":{description:"Ensures that every <img> element has alternative text or is marked as presentational",helpUrl:"https://dequeuniversity.com/courses/html-css/images/alt-text",help:"Images must have alternate text"},"input-image-alt":{description:"Ensures that every <input> that represents an image button has an accessible name",helpUrl:"https://dequeuniversity.com/courses/html-css/images/alt-text#id57_active_images_links_and_buttons",help:"Image buttons must have alternate text"},"label-title-only":{description:"Ensures that every <input> that requires a label is not only labeled using the title attribute",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/form-labels",help:"Only title or aria-describedby used to generate label for form element"},label:{description:"Ensures that every input element that requires a label, has an appropriate label",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/form-labels",help:"Form elements must have labels"},"layout-table":{description:"Ensures that <table> elements that are being used for layout do not contain markup only relevant for data tables",help:"Layout tables must not use data table elements",helpUrl:"https://dequeuniversity.com/courses/html-css/data-tables/"},"link-name":{description:"Ensures that every link has an accessible name",helpUrl:"https://dequeuniversity.com/courses/html-css/navigation/links",help:"Links must have alternate text"},list:{description:"Ensures that lists are structured correctly",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/lists-links-blockquote#id38_lists",help:"<ul> and <ol> lists must contain only <li> listitems"},listitem:{description:"Ensures that every list item is used semantically",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/lists-links-blockquote#id38_lists",help:"All <li> elements must be contained in a <ul> or <ol>"},marquee:{description:"Ensures that the deprecated <marquee> tag is not used",helpUrl:"https://dequeuniversity.com/courses/html-css/visual-layout/fonts-and-typography#id55_avoid_blink_marquee",help:"<marquee> elements are deprecated and must not be used"},"meta-refresh":{description:"Ensures that <meta> refresh is not used",help:"Timed refresh must not exist"},"meta-viewport":{description:"Ensures that when <meta> viewport is used, it does not cause text scaling problems",helpUrl:"https://dequeuniversity.com/courses/html-css/visual-layout/fonts-and-typography#id55_ensure_text_resize_to_200_percent",help:"Zooming and scaling must not disabled"},"object-alt":{description:"Ensures that every <object> element has a text alternative",help:"An embedded object must have a text alternative",helpUrl:"https://dequeuniversity.com/issues/object-alt"},radiogroup:{description:"Ensures that radio button groups are part of a group structure",helpUrl:"https://dequeuniversity.com/courses/html-css/forms/form-labels#id84_labels_for_radio_buttons",help:"Radio inputs with the same name must be part of a group"},region:{description:"Ensures that all content on a page is contained within a landmark region",help:"Content must be contained in a region",helpUrl:"https://dequeuniversity.com/courses/html-css/navigation/html5-aria-landmarks"},scope:{description:"Ensures that the scope attribute is used correctly on tables",helpUrl:"https://dequeuniversity.com/courses/html-css/data-tables/row-and-column-headers#id81_associate_header_cells_with_data_cells",help:"scope attribute is used correctly"},"server-side-image-map":{description:"Ensures that server-side image maps are never used",helpUrl:"https://dequeuniversity.com/courses/html-css/images/image-maps#id63_avoid_use_of_server_side_image_maps",help:"Server-side image maps should not be used"},"skip-link":{description:"Ensures that the best practice of having a skip link as the very first link in a page, is adhered-to",helpUrl:"https://dequeuniversity.com/courses/html-css/navigation/skip-navigation",help:"The page must have a skip link as its first link"},tabindex:{description:"Ensures that explicit tabindex attributes that are greater than 0 are never used",helpUrl:"https://dequeuniversity.com/courses/html-css/device-independence/keyboard-tab-order",help:"Elements must not have tabindex greater than zero"},"valid-lang":{description:"Ensures that when the 'lang' attribute is used, it has a valid value",helpUrl:"https://dequeuniversity.com/courses/html-css/structure-and-semantics/language#id35__language_codes",help:"lang attribute must have a valid value"},"video-caption":{description:"Ensures that the HTML5 <video> tag is captioned",helpUrl:"https://dequeuniversity.com/courses/html-css/video-audio-multimedia/",help:"HTML5 video elements need captions"},"video-description":{description:"Ensures that every <video> tag has an audio description",helpUrl:"https://dequeuniversity.com/courses/html-css/video-audio-multimedia/",help:"HTML5 video elements need an audio description track"}},checks:{accesskeys:{impact:"critical",messages:{pass:function(a){var b="Accesskey attribute value is unique";return b},fail:function(a){var b="Document has multiple elements with the same accesskey";return b}}},"non-empty-alt":{impact:"critical",messages:{pass:function(a){var b="Element has a non-empty alt attribute";return b},fail:function(a){var b="Element has no alt attribute or the alt attribute is empty";return b}}},"aria-label":{impact:"critical",messages:{pass:function(a){var b="aria-label attribute exists and is not empty";return b},fail:function(a){var b="aria-label attribute does not exist or is empty";return b}}},"aria-labelledby":{impact:"critical",messages:{pass:function(a){var b="aria-labelledby attribute exists and references elements that are visible to screen readers";return b},fail:function(a){var b="aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty or not visible";return b}}},"aria-allowed-attr":{impact:"critical",messages:{pass:function(a){var b="ARIA attributes are used correctly for the defined role";return b},fail:function(a){var b="ARIA attribute"+(a.data&&a.data.length>1?"s are":" is")+" not allowed:",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},"aria-required-attr":{impact:"critical",messages:{pass:function(a){var b="All required ARIA attributes are present";return b},fail:function(a){var b="Required ARIA attribute"+(a.data&&a.data.length>1?"s":"")+" not present:",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},"aria-required-children":{impact:"critical",messages:{pass:function(a){var b="Required ARIA children are present";return b},fail:function(a){var b="Required ARIA "+(a.data&&a.data.length>1?"children":"child")+" role not present:",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},"aria-required-parent":{impact:"critical",messages:{pass:function(a){var b="Required ARIA parent role present";return b},fail:function(a){var b="Required ARIA parent"+(a.data&&a.data.length>1?"s":"")+" role not present:",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},invalidrole:{impact:"critical",messages:{pass:function(a){var b="ARIA role is valid";return b},fail:function(a){var b="Role must be one of the valid ARIA roles";return b}}},abstractrole:{impact:"serious",messages:{pass:function(a){var b="Abstract roles are not used";return b},fail:function(a){var b="Abstract roles cannot be directly used";return b}}},"aria-valid-attr-value":{impact:"critical",messages:{pass:function(a){var b="ARIA attribute values are valid";return b},fail:function(a){var b="Invalid ARIA attribute value"+(a.data&&a.data.length>1?"s":"")+":",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},"aria-valid-attr":{impact:"critical",messages:{pass:function(a){var b="ARIA attribute name"+(a.data&&a.data.length>1?"s":"")+" are valid";return b},fail:function(a){var b="Invalid ARIA attribute name"+(a.data&&a.data.length>1?"s":"")+":",c=a.data;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+=" "+d;return b}}},caption:{impact:"critical",messages:{pass:function(a){var b="The multimedia element has a captions track";return b},fail:function(a){var b="The multimedia element does not have a captions track";return b}}},exists:{impact:"minor",messages:{pass:function(a){var b="Element does not exist";return b},fail:function(a){var b="Element exists";return b}}},"non-empty-if-present":{impact:"critical",messages:{pass:function(a){var b="Element ";return b+=a.data?"has a non-empty value attribute":"does not have a value attribute"},fail:function(a){var b="Element has a value attribute and the value attribute is empty";return b}}},"non-empty-value":{impact:"critical",messages:{pass:function(a){var b="Element has a non-empty value attribute";return b},fail:function(a){var b="Element has no value attribute or the value attribute is empty";return b}}},"button-has-visible-text":{impact:"critical",messages:{pass:function(a){var b="Element has inner text that is visible to screen readers";return b},fail:function(a){var b="Element does not have inner text that is visible to screen readers";return b}}},"role-presentation":{impact:"moderate",messages:{pass:function(a){var b='Element\'s default semantics were overriden with role="presentation"';return b},fail:function(a){var b='Element\'s default semantics were not overridden with role="presentation"';return b}}},"duplicate-img-label":{impact:"minor",messages:{pass:function(a){var b="Element does not duplicate existing text in <img> alt text";return b},fail:function(a){var b="Element contains <img> element with alt text that duplicates existing text";return b}}},"focusable-no-name":{impact:"serious",messages:{pass:function(a){var b="Element is not in tab order or has accessible text";return b},fail:function(a){var b="Element is in tab order and does not have accessible text";return b}}},"internal-link-present":{impact:"critical",messages:{pass:function(a){var b="Valid skip link found";return b},fail:function(a){var b="No valid skip link found";return b}}},"header-present":{impact:"moderate",messages:{pass:function(a){var b="Page has a header";return b},fail:function(a){var b="Page does not have a header";return b}}},landmark:{impact:"serious",messages:{pass:function(a){var b="Page has a landmark region";return b},fail:function(a){var b="Page does not have a landmark region";return b}}},"group-labelledby":{impact:"critical",messages:{pass:function(a){var b='All elements with the name "'+a.data.name+'" reference the same element with aria-labelledby';return b},fail:function(a){var b='All elements with the name "'+a.data.name+'" do not reference the same element with aria-labelledby';return b}}},fieldset:{impact:"critical",messages:{pass:function(a){var b="Element is contained in a fieldset";return b},fail:function(a){var b="";return a.data&&a.data.failureCode?"no-legend"===a.data.failureCode?b+="Fieldset does not have a legend as its first child":"empty-legend"===a.data.failureCode?b+="Legend does not have text that is visible to screen readers":"mixed-inputs"===a.data.failureCode?b+="Fieldset contains unrelated inputs":"no-group-label"===a.data.failureCode?b+="ARIA group does not have aria-label or aria-labelledby":"group-mixed-inputs"===a.data.failureCode&&(b+="ARIA group contains unrelated inputs"):b+="Element does not have a containing fieldset or ARIA group",b}}},"color-contrast":{impact:"critical",messages:{pass:function(a){var b="";return b+=a.data&&a.data.contrastRatio?"Element has sufficient color contrast of "+a.data.contrastRatio:"Unable to determine contrast ratio"},fail:function(a){var b="Element has insufficient color contrast of "+a.data.contrastRatio+" (foreground color: "+a.data.fgColor+", background color: "+a.data.bgColor+", font size: "+a.data.fontSize+", font weight: "+a.data.fontWeight+")";return b}}},"consistent-columns":{impact:"critical",messages:{pass:function(a){var b="Table has consistent column widths";return b},fail:function(a){var b="Table does not have the same number of columns in every row";return b}}},"cell-no-header":{impact:"critical",messages:{pass:function(a){var b="All data cells have table headers";return b},fail:function(a){var b="Some data cells do not have table headers";return b}}},"headers-visible-text":{impact:"critical",messages:{pass:function(a){var b="Header cell has visible text";return b},fail:function(a){var b="Header cell does not have visible text";return b}}},"headers-attr-reference":{impact:"critical",messages:{pass:function(a){var b="headers attribute references elements that are visible to screen readers";return b},fail:function(a){var b="headers attribute references element that is not visible to screen readers";return b}}},"th-scope":{impact:"serious",messages:{pass:function(a){var b="<th> elements use scope attribute";return b},fail:function(a){var b="<th> elements must use scope attribute";return b}}},"no-caption":{impact:"serious",messages:{pass:function(a){var b="Table has a <caption>";return b},fail:function(a){var b="Table does not have a <caption>";return b}}},"th-headers-attr":{impact:"serious",messages:{pass:function(a){var b="<th> elements do not use headers attribute";return b},fail:function(a){var b="<th> elements should not use headers attribute";return b}}},"th-single-row-column":{impact:"serious",messages:{pass:function(a){var b="<th> elements are used when there is only a single row and single column of headers";return b},fail:function(a){var b="<th> elements should only be used when there is a single row and single column of headers";return b}}},"same-caption-summary":{impact:"moderate",messages:{pass:function(a){var b="Content of summary attribute and <caption> are not duplicated";return b},fail:function(a){var b="Content of summary attribute and <caption> element are indentical";return b}}},rowspan:{impact:"critical",messages:{pass:function(a){var b="Table does not have cells with rowspan attribute greater than 1";return b},fail:function(a){var b="Table has cells whose rowspan attribute is not equal to 1";return b}}},"has-dlitems":{impact:"serious",messages:{pass:function(a){var b="Element has both <dt> and <dd> elements";return b},fail:function(a){var b="Element does not have at least one <dt> element followed by at least one <dd> element";return b}}},"only-dlitems":{impact:"serious",messages:{pass:function(a){var b="Element only has children that are <dt> or <dd> elements";return b},fail:function(a){var b="Element has children that are not <dt> or <dd> elements";return b}}},dlitem:{impact:"serious",messages:{pass:function(a){var b="Description list item has a <dl> parent element";return b},fail:function(a){var b="Description list item does not have a <dl> parent element";return b}}},"doc-has-title":{impact:"moderate",messages:{pass:function(a){var b="Document has a non-empty <title> element";return b},fail:function(a){var b="Document does not have a non-empty <title> element";return b}}},"duplicate-id":{impact:"critical",messages:{pass:function(a){var b="Document has no elements that share the same id attribute";return b},fail:function(a){var b="Document has multiple elements with the same id attribute";return b}}},"has-visible-text":{impact:"critical",messages:{pass:function(a){var b="Element has text that is visible to screen readers";return b},fail:function(a){var b="Element does not have text that is visible to screen readers";return b}}},"non-empty-title":{impact:"critical",messages:{pass:function(a){var b="Element has a title attribute";return b},fail:function(a){var b="Element has no title attribute or the title attribute is empty";return b}}},"unique-frame-title":{impact:"serious",messages:{pass:function(a){var b="Element's title attribute is unique";return b},fail:function(a){var b="Element's title attribute is not unique";return b}}},"heading-order":{impact:"minor",messages:{pass:function(a){var b="Heading order valid";return b},fail:function(a){var b="Heading order invalid";return b}}},"has-lang":{impact:"serious",messages:{pass:function(a){var b="The <html> element has a lang attribute";return b},fail:function(a){var b="The <html> element does not have a lang attribute";return b}}},"valid-lang":{impact:"serious",messages:{pass:function(a){var b="Value of lang attribute is included in the list of allowable languages";return b},fail:function(a){var b="Value of lang attribute not included in the list of allowable languages";return b}}},"has-alt":{impact:"critical",messages:{pass:function(a){var b="Element has an alt attribute";return b},fail:function(a){var b="Element does not have an alt attribute";return b}}},"title-only":{impact:"serious",messages:{pass:function(a){var b="Form element does not solely use title attribute for its label";return b},fail:function(a){var b="Only title used to generate label for form element";return b}}},"implicit-label":{impact:"critical",messages:{pass:function(a){var b="Form element has an implicit (wrapped) <label>";return b},fail:function(a){var b="Form element does not have an implicit (wrapped) <label>";return b}}},"explicit-label":{impact:"critical",messages:{pass:function(a){var b="Form element has an explicit <label>";return b},fail:function(a){var b="Form element does not have an explicit <label>";return b}}},"help-same-as-label":{impact:"minor",messages:{pass:function(a){var b="Help text (title or aria-describedby) does not duplicate label text";return b},fail:function(a){var b="Help text (title or aria-describedby) text is the same as the label text";return b}}},"multiple-label":{impact:"serious",messages:{pass:function(a){var b="Form element does not have multiple <label> elements";return b},fail:function(a){var b="Form element has multiple <label> elements";return b}}},"has-th":{impact:"serious",messages:{pass:function(a){var b="Layout table does not use <th> elements";return b},fail:function(a){var b="Layout table uses <th> elements";return b}}},"has-caption":{impact:"serious",messages:{pass:function(a){var b="Layout table does not use <caption> element";return b},fail:function(a){var b="Layout table uses <caption> element";return b}}},"has-summary":{impact:"serious",messages:{pass:function(a){var b="Layout table does not use summary attribute";return b},fail:function(a){var b="Layout table uses summary attribute";return b}}},"has-listitem":{impact:"minor",messages:{pass:function(a){var b="List element contains a <li> element";return b},fail:function(a){var b="List element does not contain a <li> element";return b}}},"only-listitems":{impact:"serious",messages:{pass:function(a){var b="List element only has children that are <li> elements";return b},fail:function(a){var b="List element has children that are not <li> elements";return b}}},listitem:{impact:"critical",messages:{pass:function(a){var b="List item has a <ul> or <ol> parent element";return b},fail:function(a){var b="List item does not have a <ul> or <ol> parent element";return b}}},"meta-refresh":{impact:"critical",messages:{pass:function(a){var b="<meta> tag does not immediately refresh the page";return b},fail:function(a){var b="<meta> tag forces timed refresh of page";return b}}},"meta-viewport":{impact:"critical",messages:{pass:function(a){var b="<meta> tag does not disable zooming";return b},fail:function(a){var b="<meta> tag disables zooming";return b}}},region:{impact:"moderate",messages:{pass:function(a){var b="Content contained by ARIA landmark";return b},fail:function(a){var b="Content not contained by an ARIA landmark";return b}}},"html5-scope":{impact:"serious",messages:{pass:function(a){var b="Scope attribute is only used on table header elements (<th>)";return b},fail:function(a){var b="In HTML 5, scope attributes may only be used on table header elements (<th>)";return b}}},"html4-scope":{impact:"serious",messages:{pass:function(a){var b="Scope attribute is only used on table cell elements (<th> and <td>)";return b},fail:function(a){var b="In HTML 4, the scope attribute may only be used on table cell elements (<th> and <td>)";return b}}},"scope-value":{impact:"critical",messages:{pass:function(a){var b="Scope attribute is used correctly";return b},fail:function(a){var b="The value of the scope attribute may only be 'row' or 'col'";return b}}},"skip-link":{impact:"critical",messages:{pass:function(a){var b="Valid skip link found";return b},fail:function(a){var b="No valid skip link found";return b}}},tabindex:{impact:"serious",messages:{pass:function(a){var b="Element does not have a tabindex greater than 0";return b},fail:function(a){var b="Element has a tabindex greater than 0";return b}}},description:{impact:"serious",messages:{pass:function(a){var b="The multimedia element has an audio description track";return b},fail:function(a){var b="The multimedia element does not have an audio description track";return b}}}},failureSummaries:{any:{failureMessage:function(a){var b="Fix any of the following:",c=a;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+="\n "+d.split("\n").join("\n ");return b}},none:{failureMessage:function(a){var b="Fix all of the following:",c=a;if(c)for(var d,e=-1,f=c.length-1;f>e;)d=c[e+=1],b+="\n "+d.split("\n").join("\n ");return b}}}},rules:[{id:"accesskeys",selector:"[accesskey]",tags:["wcag2a","wcag211"],all:[],any:[],none:[{id:"accesskeys",evaluate:function(a,b){return this.data(a.getAttribute("accesskey")),this.relatedNodes([a]),!0},after:function(a,b){var c={};return a.filter(function(a){return c[a.data]?(c[a.data].relatedNodes.push(a.relatedNodes[0]),!1):(c[a.data]=a,a.relatedNodes=[],!0)}).map(function(a){return a.result=!!a.relatedNodes.length,a})}}]},{id:"area-alt",selector:"map area[href]",excludeHidden:!1,tags:["wcag2a","wcag111","section508","section508a"],all:[],any:[{id:"non-empty-alt",evaluate:function(a,b){var c=a.getAttribute("alt");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}}],none:[]},{id:"aria-allowed-attr",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-allowed-attr",matches:function(a){var b=a.getAttribute("role");b||(b=O.aria.implicitRole(a));var c=O.aria.allowedAttr(b);if(b&&c){var d=/^aria-/;if(a.hasAttributes())for(var e=a.attributes,f=0,g=e.length;g>f;f++)if(d.test(e[f].nodeName))return!0}return!1},evaluate:function(a,b){var c,d,e,f=[],g=a.getAttribute("role"),h=a.attributes;if(g||(g=O.aria.implicitRole(a)),e=O.aria.allowedAttr(g),g&&e)for(var i=0,j=h.length;j>i;i++)c=h[i],d=c.nodeName,O.aria.validateAttr(d)&&-1===e.indexOf(d)&&f.push(d+'="'+c.nodeValue+'"');return f.length?(this.data(f),!1):!0}}],none:[]},{id:"aria-required-attr",selector:"[role]",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-required-attr",evaluate:function(a,b){var c=[];if(a.hasAttributes()){var d,e=a.getAttribute("role"),f=O.aria.requiredAttr(e);if(e&&f)for(var g=0,h=f.length;h>g;g++)d=f[g],a.getAttribute(d)||c.push(d)}return c.length?(this.data(c),!1):!0}}],none:[]},{id:"aria-required-children",selector:"[role]",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-required-children",evaluate:function(a,b){function c(a,b,c){if(null===a)return!1;var d=g(b),e=['[role="'+b+'"]'];return d&&(e=e.concat(d)),e=e.join(","),c?h(a,e)||!!a.querySelector(e):!!a.querySelector(e)}function d(a,b){var d,e;for(d=0,e=a.length;e>d;d++)if(null!==a[d]&&c(a[d],b,!0))return!0;return!1}function e(a,b,e){var f,g=b.length,h=[],j=i(a,"aria-owns");for(f=0;g>f;f++){var k=b[f];if(c(a,k)||d(j,k)){if(!e)return null}else e&&h.push(k)}return h.length?h:!e&&b.length?b:null}var f=O.aria.requiredOwned,g=O.aria.implicitNodes,h=O.utils.matchesSelector,i=O.dom.idrefs,j=a.getAttribute("role"),k=f(j);if(!k)return!0;var l=!1,m=k.one;if(!m){var l=!0;m=k.all}var n=e(a,m,l);return n?(this.data(n),!1):!0}}],none:[]},{id:"aria-required-parent",selector:"[role]",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-required-parent",evaluate:function(a,b){function c(a){var b=O.aria.implicitNodes(a)||[];return b.concat('[role="'+a+'"]').join(",")}function d(a,b,d){var e,f,g=a.getAttribute("role"),h=[];if(b||(b=O.aria.requiredContext(g)),!b)return null;for(e=0,f=b.length;f>e;e++){if(d&&O.utils.matchesSelector(a,c(b[e])))return null;if(O.dom.findUp(a,c(b[e])))return null;h.push(b[e])}return h}function e(a){for(var b=[],c=null;a;)a.id&&(c=a.ownerDocument.querySelector("[aria-owns~="+O.utils.escapeSelector(a.id)+"]"),c&&b.push(c)),a=a.parentNode;return b.length?b:null}var f=d(a);if(!f)return!0;var g=e(a);if(g)for(var h=0,i=g.length;i>h;h++)if(f=d(g[h],f,!0),!f)return!0;return this.data(f),!1}}],none:[]},{id:"aria-roles",selector:"[role]",tags:["wcag2a","wcag411"],all:[],any:[],none:[{id:"invalidrole",evaluate:function(a,b){return!O.aria.isValidRole(a.getAttribute("role"))}},{id:"abstractrole",evaluate:function(a,b){return"abstract"===O.aria.getRoleType(a.getAttribute("role"))}}]},{id:"aria-valid-attr-value",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-valid-attr-value",matches:function(a){var b=/^aria-/;if(a.hasAttributes())for(var c=a.attributes,d=0,e=c.length;e>d;d++)if(b.test(c[d].nodeName))return!0;return!1},evaluate:function(a,b){b=Array.isArray(b)?b:[];for(var c,d,e=[],f=/^aria-/,g=a.attributes,h=0,i=g.length;i>h;h++)c=g[h],d=c.nodeName,-1===b.indexOf(d)&&f.test(d)&&!O.aria.validateAttrValue(a,d)&&e.push(d+'="'+c.nodeValue+'"');return e.length?(this.data(e),!1):!0},options:[]}],none:[]},{id:"aria-valid-attr",tags:["wcag2a","wcag411"],all:[],any:[{id:"aria-valid-attr",matches:function(a){var b=/^aria-/;if(a.hasAttributes())for(var c=a.attributes,d=0,e=c.length;e>d;d++)if(b.test(c[d].nodeName))return!0;return!1},evaluate:function(a,b){
|
24
|
+
b=Array.isArray(b)?b:[];for(var c,d=[],e=/^aria-/,f=a.attributes,g=0,h=f.length;h>g;g++)c=f[g].nodeName,-1===b.indexOf(c)&&e.test(c)&&!O.aria.validateAttr(c)&&d.push(c);return d.length?(this.data(d),!1):!0},options:[]}],none:[]},{id:"audio-caption",selector:"audio",excludeHidden:!1,tags:["wcag2a","wcag122","section508","section508a"],all:[],any:[],none:[{id:"caption",evaluate:function(a,b){return!a.querySelector("track[kind=captions]")}}]},{id:"blink",selector:"blink",tags:["wcag2a","wcag411"],all:[],any:[],none:[{id:"exists",evaluate:function(a,b){return!0}}]},{id:"button-name",selector:'button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]',tags:["wcag2a","wcag111","section508","section508a"],all:[],any:[{id:"non-empty-if-present",evaluate:function(a,b){var c=a.getAttribute("value");return this.data(c),null===c||""!==O.text.sanitize(c).trim()},selector:'[type="submit"], [type="reset"]'},{id:"non-empty-value",evaluate:function(a,b){var c=a.getAttribute("value");return!!(c?O.text.sanitize(c).trim():"")},selector:'[type="button"]'},{id:"button-has-visible-text",evaluate:function(a,b){return O.text.accessibleText(a).length>0},selector:'button, [role="button"]:not(input)'},{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}},{id:"role-presentation",evaluate:function(a,b){return"presentation"===a.getAttribute("role")}}],none:[{id:"duplicate-img-label",evaluate:function(a,b){for(var c=a.querySelectorAll("img"),d=O.text.visible(a,!0),e=0,f=c.length;f>e;e++){var g=O.text.accessibleText(c[e]);if(g===d&&""!==d)return!0}return!1},enabled:!1},{id:"focusable-no-name",evaluate:function(a,b){var c=a.getAttribute("tabindex"),d=O.dom.isFocusable(a)&&c>-1;return d?!O.text.accessibleText(a):!1}}]},{id:"bypass",selector:"html",pageLevel:!0,matches:function(a){return!!a.querySelector("a[href]")},tags:["wcag2a","wcag241","section508","section508o"],all:[],any:[{id:"internal-link-present",selector:"html",evaluate:function(a,b){return!!a.querySelector('a[href^="#"]')}},{id:"header-present",selector:"html",evaluate:function(a,b){return!!a.querySelector('h1, h2, h3, h4, h5, h6, [role="heading"]')}},{id:"landmark",selector:"html",evaluate:function(a,b){return!!a.querySelector('[role="main"]')}}],none:[]},{id:"checkboxgroup",selector:"input[type=checkbox][name]",tags:["wcag2a","wcag131"],all:[],any:[{id:"group-labelledby",evaluate:function(a,b){this.data({name:a.getAttribute("name"),type:a.getAttribute("type")});var c=a.ownerDocument.querySelectorAll('input[type="'+O.utils.escapeSelector(a.type)+'"][name="'+O.utils.escapeSelector(a.name)+'"]');return c.length<=1?!0:0!==[].map.call(c,function(a){var b=a.getAttribute("aria-labelledby");return b?b.split(/\s+/):[]}).reduce(function(a,b){return a.filter(function(a){return-1!==b.indexOf(a)})}).filter(function(b){var c=a.ownerDocument.getElementById(b);return c&&O.text.accessibleText(c)}).length},after:function(a,b){var c={};return a.filter(function(a){var b=a.data;return b&&(c[b.type]=c[b.type]||{},!c[b.type][b.name])?(c[b.type][b.name]=!0,!0):!1})}},{id:"fieldset",evaluate:function(a,b){function c(a,b){return O.utils.toArray(a.querySelectorAll('select,textarea,button,input:not([name="'+b+'"]):not([type="hidden"])'))}function d(a,b){var d=a.firstElementChild;if(!d||"LEGEND"!==d.nodeName)return i.relatedNodes([a]),h="no-legend",!1;if(!O.text.accessibleText(d))return i.relatedNodes([d]),h="empty-legend",!1;var e=c(a,b);return e.length?(i.relatedNodes(e),h="mixed-inputs",!1):!0}function e(a,b){var d=O.dom.idrefs(a,"aria-labelledby").some(function(a){return a&&O.text.accessibleText(a)}),e=a.getAttribute("aria-label");if(!(d||e&&O.text.sanitize(e)))return i.relatedNodes(a),h="no-group-label",!1;var f=c(a,b);return f.length?(i.relatedNodes(f),h="group-mixed-inputs",!1):!0}function f(a,b){return O.utils.toArray(a).filter(function(a){return a!==b})}function g(b){var c=O.utils.escapeSelector(a.name),g=a.ownerDocument.querySelectorAll('input[type="'+O.utils.escapeSelector(a.type)+'"][name="'+c+'"]');if(g.length<2)return!0;var j=O.dom.findUp(b,"fieldset"),k=O.dom.findUp(b,'[role="group"]'+("radio"===a.type?',[role="radiogroup"]':""));return k||j?j?d(j,c):e(k,c):(h="no-group",i.relatedNodes(f(g,b)),!1)}var h,i=this,j={name:a.getAttribute("name"),type:a.getAttribute("type")},k=g(a);return k||(j.failureCode=h),this.data(j),k},after:function(a,b){var c={};return a.filter(function(a){if(a.result)return!0;var b=a.data;if(b){if(c[b.type]=c[b.type]||{},!c[b.type][b.name])return c[b.type][b.name]=[b],!0;var d=c[b.type][b.name].some(function(a){return a.failureCode===b.failureCode});return d||c[b.type][b.name].push(b),!d}return!1})}}],none:[]},{id:"color-contrast",selector:"*",tags:["wcag2aa","wcag143"],all:[],any:[{id:"color-contrast",matches:function(a){var b=a.nodeName,c=a.type;if("INPUT"===b)return-1===["hidden","range","color","checkbox","radio","image"].indexOf(c)&&!a.disabled;if("SELECT"===b)return!!a.options.length&&!a.disabled;if("TEXTAREA"===b)return!a.disabled;if("OPTION"===b)return!1;if("BUTTON"===b&&a.disabled)return!1;if(""===O.text.visible(a,!1,!0))return!1;var d,e,f=a.ownerDocument.createRange(),g=a.childNodes,h=g.length;for(e=0;h>e;e++)d=g[e],3===d.nodeType&&""!==O.text.sanitize(d.nodeValue)&&f.selectNodeContents(d);var i=f.getClientRects();for(h=i.length,e=0;h>e;e++)if(O.dom.visuallyOverlaps(i[e],a))return!0;return!1},evaluate:function(a,b){var c=[],d=O.color.getBackgroundColor(a,c),e=O.color.getForegroundColor(a);if(null===e||null===d)return!0;var f=a.ownerDocument.defaultView,g=f.getComputedStyle(a),h=parseFloat(g.getPropertyValue("font-size")),i=g.getPropertyValue("font-weight"),j=-1!==["bold","bolder","600","700","800","900"].indexOf(i),k=O.color.hasValidContrastRatio(d,e,h,j);return this.data({fgColor:e.toHexString(),bgColor:d.toHexString(),contrastRatio:k.contrastRatio.toFixed(2),fontSize:(72*h/96).toFixed(1)+"pt",fontWeight:j?"bold":"normal"}),k.isValid||this.relatedNodes(c),k.isValid}}],none:[]},{id:"data-table",selector:"table",matches:function(a){return O.table.isDataTable(a)},tags:["wcag2a","wcag131"],all:[],any:[{id:"consistent-columns",evaluate:function(a,b){for(var c,d=O.table.toArray(a),e=[],f=0,g=d.length;g>f;f++)0===f?c=d[f].length:c!==d[f].length&&e.push(a.rows[f]);return!e.length}}],none:[{id:"cell-no-header",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],!O.table.isDataCell(d)||O.aria.label(d)||O.table.getHeaders(d).length||e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}},{id:"headers-visible-text",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],O.table.isHeader(d)&&!O.text.accessibleText(d)&&e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}},{id:"headers-attr-reference",evaluate:function(a,b){function c(a){a&&O.text.accessibleText(a)||g.push(e)}for(var d,e,f,g=[],h=0,i=a.rows.length;i>h;h++){d=a.rows[h];for(var j=0,k=d.cells.length;k>j;j++)e=d.cells[j],f=O.dom.idrefs(e,"headers"),f.length&&f.forEach(c)}return g.length?(this.relatedNodes(g),!0):!1}},{id:"th-scope",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],"TH"!==d.nodeName||d.getAttribute("scope")||e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}},{id:"no-caption",evaluate:function(a,b){return!(a.caption||{}).textContent},enabled:!1},{id:"th-headers-attr",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],"TH"===d.nodeName&&d.getAttribute("headers")&&e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}},{id:"th-single-row-column",evaluate:function(a,b){for(var c,d,e,f=[],g=[],h=0,i=a.rows.length;i>h;h++){c=a.rows[h];for(var j=0,k=c.cells.length;k>j;j++)d=c.cells[j],d.nodeName&&(O.table.isColumnHeader(d)&&-1===g.indexOf(h)?g.push(h):O.table.isRowHeader(d)&&(e=O.table.getCellPosition(d),-1===f.indexOf(e.x)&&f.push(e.x)))}return g.length>1||f.length>1?!0:!1}},{id:"same-caption-summary",selector:"table",evaluate:function(a,b){return!(!a.summary||!a.caption)&&a.summary===O.text.accessibleText(a.caption)}},{id:"rowspan",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],1!==d.rowSpan&&e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}}]},{id:"definition-list",selector:"dl",tags:["wcag2a","wcag131"],all:[],any:[],none:[{id:"has-dlitems",evaluate:function(a,b){var c=a.children;if(0===c.length)return!0;for(var d=!1,e=0;e<c.length;e++)if("DT"===c[e].nodeName&&(d=!0),d&&"DD"===c[e].nodeName)return!1;return!0}},{id:"only-dlitems",evaluate:function(a,b){for(var c,d=[],e=a.childNodes,f=!1,g=0;g<e.length;g++)c=e[g],1===c.nodeType&&"DT"!==c.nodeName&&"DD"!==c.nodeName?d.push(c):3===c.nodeType&&""!==c.nodeValue.trim()&&(f=!0);return d.length&&this.relatedNodes(d),!!d.length||f}}]},{id:"dlitem",selector:"dd, dt",tags:["wcag2a","wcag131"],all:[],any:[{id:"dlitem",evaluate:function(a,b){return"DL"===a.parentNode.tagName}}],none:[]},{id:"document-title",selector:"html",tags:["wcag2a","wcag242"],all:[],any:[{id:"doc-has-title",evaluate:function(a,b){var c=a.ownerDocument.title;return!!(c?O.text.sanitize(c).trim():"")}}],none:[]},{id:"duplicate-id",selector:"[id]",tags:["wcag2a","wcag411"],all:[],any:[{id:"duplicate-id",evaluate:function(a,b){for(var c=a.ownerDocument.querySelectorAll('[id="'+O.utils.escapeSelector(a.id)+'"]'),d=[],e=0;e<c.length;e++)c[e]!==a&&d.push(c[e]);return d.length&&this.relatedNodes(d),this.data(a.getAttribute("id")),c.length<=1},after:function(a,b){var c=[];return a.filter(function(a){return-1===c.indexOf(a.data)?(c.push(a.data),!0):!1})}}],none:[]},{id:"empty-heading",selector:'h1, h2, h3, h4, h5, h6, [role="heading"]',tags:["wcag2a","wcag131"],all:[],any:[{id:"has-visible-text",evaluate:function(a,b){return O.text.accessibleText(a).length>0}}],none:[]},{id:"frame-title",selector:"frame, iframe",tags:["wcag2a","wcag241"],all:[],any:[{id:"non-empty-title",evaluate:function(a,b){var c=a.getAttribute("title");return!!(c?O.text.sanitize(c).trim():"")}}],none:[{id:"unique-frame-title",evaluate:function(a,b){return this.data(a.title),!0},after:function(a,b){var c={};return a.forEach(function(a){c[a.data]=void 0!==c[a.data]?++c[a.data]:0}),a.filter(function(a){return!!c[a.data]})}}]},{id:"heading-order",selector:"h1,h2,h3,h4,h5,h6,[role=heading]",enabled:!1,tags:["best-practice"],all:[],any:[{id:"heading-order",evaluate:function(a,b){var c=a.getAttribute("aria-level");if(null!==c)return this.data(parseInt(c,10)),!0;var d=a.tagName.match(/H(\d)/);return d?(this.data(parseInt(d[1],10)),!0):!0},after:function(a,b){if(a.length<2)return a;for(var c=a[0].data,d=1;d<a.length;d++)a[d].result&&a[d].data>c+1&&(a[d].result=!1),c=a[d].data;return a}}],none:[]},{id:"html-lang",selector:"html",tags:["wcag2a","wcag311"],all:[],any:[{id:"has-lang",evaluate:function(a,b){return a.hasAttribute("lang")||a.hasAttribute("xml:lang")}}],none:[{id:"valid-lang",options:["en","es","ja"],evaluate:function(a,b){var c=(a.getAttribute("lang")||"").trim().toLowerCase(),d=(a.getAttribute("xml:lang")||"").trim().toLowerCase(),e=[];return(b||[]).forEach(function(a){a=a.toLowerCase(),!c||c!==a&&0!==c.indexOf(a.toLowerCase()+"-")||(c=null),!d||d!==a&&0!==d.indexOf(a.toLowerCase()+"-")||(d=null)}),d&&e.push('xml:lang="'+d+'"'),c&&e.push('lang="'+c+'"'),e.length?(this.data(e),!0):!1}}]},{id:"image-alt",selector:"img",tags:["wcag2a","wcag111","section508","section508a"],all:[],any:[{id:"has-alt",evaluate:function(a,b){return a.hasAttribute("alt")}},{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}},{id:"non-empty-title",evaluate:function(a,b){var c=a.getAttribute("title");return!!(c?O.text.sanitize(c).trim():"")}}],none:[]},{id:"input-image-alt",selector:'input[type="image"]',tags:["wcag2a","wcag111","section508","section508a"],all:[],any:[{id:"non-empty-alt",evaluate:function(a,b){var c=a.getAttribute("alt");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}}],none:[]},{id:"label-title-only",selector:"input:not([type='hidden']):not([type='image']):not([type='button']):not([type='submit']):not([type='reset']), select, textarea",enabled:!1,tags:["best-practice"],all:[],any:[],none:[{id:"title-only",evaluate:function(a,b){var c=O.text.label(a);return!(c||!a.getAttribute("title")&&!a.getAttribute("aria-describedby"))}}]},{id:"label",selector:"input:not([type='hidden']):not([type='image']):not([type='button']):not([type='submit']):not([type='reset']), select, textarea",tags:["wcag2a","wcag332","wcag131","section508","section508n"],all:[],any:[{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}},{id:"implicit-label",evaluate:function(a,b){var c=O.dom.findUp(a,"label");return c?!!O.text.accessibleText(c):!1}},{id:"explicit-label",evaluate:function(a,b){var c=a.ownerDocument.querySelector('label[for="'+O.utils.escapeSelector(a.id)+'"]');return c?!!O.text.accessibleText(c):!1},selector:"[id]"},{id:"non-empty-title",evaluate:function(a,b){var c=a.getAttribute("title");return!!(c?O.text.sanitize(c).trim():"")}}],none:[{id:"help-same-as-label",evaluate:function(a,b){var c=O.text.label(a),d=a.getAttribute("title");if(!c)return!1;if(!d&&(d="",a.getAttribute("aria-describedby"))){var e=O.dom.idrefs(a,"aria-describedby");d=e.map(function(a){return a?O.text.accessibleText(a):""}).join("")}return O.text.sanitize(d)===O.text.sanitize(c)},enabled:!1},{id:"multiple-label",evaluate:function(a,b){for(var c=[].slice.call(a.ownerDocument.querySelectorAll('label[for="'+O.utils.escapeSelector(a.id)+'"]')),d=a.parentNode;d;)"LABEL"===d.tagName&&-1===c.indexOf(d)&&c.push(d),d=d.parentNode;return this.relatedNodes(c),c.length>1}}]},{id:"layout-table",selector:"table",matches:function(a){return!O.table.isDataTable(a)},tags:["wcag2a","wcag131"],all:[],any:[],none:[{id:"has-th",evaluate:function(a,b){for(var c,d,e=[],f=0,g=a.rows.length;g>f;f++){c=a.rows[f];for(var h=0,i=c.cells.length;i>h;h++)d=c.cells[h],"TH"===d.nodeName&&e.push(d)}return e.length?(this.relatedNodes(e),!0):!1}},{id:"has-caption",evaluate:function(a,b){return!!a.caption}},{id:"has-summary",evaluate:function(a,b){return!!a.summary}}]},{id:"link-name",selector:'a[href]:not([role="button"]), [role=link][href]',tags:["wcag2a","wcag111","wcag412","section508","section508a"],all:[],any:[{id:"has-visible-text",evaluate:function(a,b){return O.text.accessibleText(a).length>0}},{id:"aria-label",evaluate:function(a,b){var c=a.getAttribute("aria-label");return!!(c?O.text.sanitize(c).trim():"")}},{id:"aria-labelledby",evaluate:function(a,b){var c,d,e=O.dom.idrefs(a,"aria-labelledby"),f=e.length;for(d=0;f>d;d++)if(c=e[d],c&&O.text.accessibleText(c).trim())return!0;return!1}},{id:"role-presentation",evaluate:function(a,b){return"presentation"===a.getAttribute("role")}}],none:[{id:"duplicate-img-label",evaluate:function(a,b){for(var c=a.querySelectorAll("img"),d=O.text.visible(a,!0),e=0,f=c.length;f>e;e++){var g=O.text.accessibleText(c[e]);if(g===d&&""!==d)return!0}return!1},enabled:!1},{id:"focusable-no-name",evaluate:function(a,b){var c=a.getAttribute("tabindex"),d=O.dom.isFocusable(a)&&c>-1;return d?!O.text.accessibleText(a):!1}}]},{id:"list",selector:"ul, ol",tags:["wcag2a","wcag131"],all:[],any:[],none:[{id:"has-listitem",evaluate:function(a,b){var c=a.children;if(0===c.length)return!0;for(var d=0;d<c.length;d++)if("LI"===c[d].nodeName)return!1;return!0}},{id:"only-listitems",evaluate:function(a,b){for(var c,d=[],e=a.childNodes,f=!1,g=0;g<e.length;g++)c=e[g],1===c.nodeType&&"LI"!==c.nodeName?d.push(c):3===c.nodeType&&""!==c.nodeValue.trim()&&(f=!0);return d.length&&this.relatedNodes(d),!!d.length||f}}]},{id:"listitem",selector:"li",tags:["wcag2a","wcag131"],all:[],any:[{id:"listitem",evaluate:function(a,b){return-1!==["UL","OL"].indexOf(a.parentNode.tagName)}}],none:[]},{id:"marquee",selector:"marquee",tags:["wcag2a","wcag222","section508","section508j"],all:[],any:[],none:[{id:"exists",evaluate:function(a,b){return!0}}]},{id:"meta-refresh",selector:'meta[http-equiv="refresh"]',excludeHidden:!1,tags:["wcag2a","wcag2aaa","wcag221","wcag224","wcag325"],all:[],any:[{id:"meta-refresh",evaluate:function(a,b){var c=a.getAttribute("content")||"",d=c.split(/[;,]/);return""===c||"0"===d[0]}}],none:[]},{id:"meta-viewport",selector:'meta[name="viewport"]',excludeHidden:!1,tags:["wcag2aa","wcag144"],all:[],any:[{id:"meta-viewport",evaluate:function(a,b){for(var c,d=a.getAttribute("content")||"",e=d.split(/[;,]/),f={},g=0,h=e.length;h>g;g++){c=e[g].split("=");var i=c.shift();i&&c.length&&(f[i.trim()]=c.join("=").trim())}return f["maximum-scale"]&&parseFloat(f["maximum-scale"])<5?!1:"no"===f["user-scalable"]?!1:!0}}],none:[]},{id:"object-alt",selector:"object",tags:["wcag2a","wcag111"],all:[],any:[{id:"has-visible-text",evaluate:function(a,b){return O.text.accessibleText(a).length>0}}],none:[]},{id:"radiogroup",selector:"input[type=radio][name]",tags:["wcag2a","wcag131"],all:[],any:[{id:"group-labelledby",evaluate:function(a,b){this.data({name:a.getAttribute("name"),type:a.getAttribute("type")});var c=a.ownerDocument.querySelectorAll('input[type="'+O.utils.escapeSelector(a.type)+'"][name="'+O.utils.escapeSelector(a.name)+'"]');return c.length<=1?!0:0!==[].map.call(c,function(a){var b=a.getAttribute("aria-labelledby");return b?b.split(/\s+/):[]}).reduce(function(a,b){return a.filter(function(a){return-1!==b.indexOf(a)})}).filter(function(b){var c=a.ownerDocument.getElementById(b);return c&&O.text.accessibleText(c)}).length},after:function(a,b){var c={};return a.filter(function(a){var b=a.data;return b&&(c[b.type]=c[b.type]||{},!c[b.type][b.name])?(c[b.type][b.name]=!0,!0):!1})}},{id:"fieldset",evaluate:function(a,b){function c(a,b){return O.utils.toArray(a.querySelectorAll('select,textarea,button,input:not([name="'+b+'"]):not([type="hidden"])'))}function d(a,b){var d=a.firstElementChild;if(!d||"LEGEND"!==d.nodeName)return i.relatedNodes([a]),h="no-legend",!1;if(!O.text.accessibleText(d))return i.relatedNodes([d]),h="empty-legend",!1;var e=c(a,b);return e.length?(i.relatedNodes(e),h="mixed-inputs",!1):!0}function e(a,b){var d=O.dom.idrefs(a,"aria-labelledby").some(function(a){return a&&O.text.accessibleText(a)}),e=a.getAttribute("aria-label");if(!(d||e&&O.text.sanitize(e)))return i.relatedNodes(a),h="no-group-label",!1;var f=c(a,b);return f.length?(i.relatedNodes(f),h="group-mixed-inputs",!1):!0}function f(a,b){return O.utils.toArray(a).filter(function(a){return a!==b})}function g(b){var c=O.utils.escapeSelector(a.name),g=a.ownerDocument.querySelectorAll('input[type="'+O.utils.escapeSelector(a.type)+'"][name="'+c+'"]');if(g.length<2)return!0;var j=O.dom.findUp(b,"fieldset"),k=O.dom.findUp(b,'[role="group"]'+("radio"===a.type?',[role="radiogroup"]':""));return k||j?j?d(j,c):e(k,c):(h="no-group",i.relatedNodes(f(g,b)),!1)}var h,i=this,j={name:a.getAttribute("name"),type:a.getAttribute("type")},k=g(a);return k||(j.failureCode=h),this.data(j),k},after:function(a,b){var c={};return a.filter(function(a){if(a.result)return!0;var b=a.data;if(b){if(c[b.type]=c[b.type]||{},!c[b.type][b.name])return c[b.type][b.name]=[b],!0;var d=c[b.type][b.name].some(function(a){return a.failureCode===b.failureCode});return d||c[b.type][b.name].push(b),!d}return!1})}}],none:[]},{id:"region",selector:"html",pageLevel:!0,enabled:!1,tags:["best-practice"],all:[],any:[{id:"region",evaluate:function(a,b){function c(a){return h&&O.dom.isFocusable(O.dom.getElementByReference(h,"href"))&&h===a}function d(a){var b=a.getAttribute("role");return b&&-1!==g.indexOf(b)}function e(a){return d(a)?null:c(a)?f(a):O.dom.isVisible(a,!0)&&(O.text.visible(a,!0,!0)||O.dom.isVisualContent(a))?a:f(a)}function f(a){var b=O.utils.toArray(a.children);return 0===b.length?[]:b.map(e).filter(function(a){return null!==a}).reduce(function(a,b){return a.concat(b)},[])}var g=O.aria.getRolesByType("landmark"),h=a.querySelector("a[href]"),i=f(a);return this.relatedNodes(i),!i.length},after:function(a,b){return[a[0]]}}],none:[]},{id:"scope",selector:"[scope]",tags:["wcag2a","wcag411","wcag131"],all:[],any:[{id:"html5-scope",evaluate:function(a,b){return O.dom.isHTML5(a.ownerDocument)?"TH"===a.nodeName:!1}},{id:"html4-scope",evaluate:function(a,b){return O.dom.isHTML5(a.ownerDocument)?!1:"TH"===a.nodeName||"TD"===a.nodeName}}],none:[{id:"scope-value",evaluate:function(a,b){var c=a.getAttribute("scope");return"row"!==c&&"col"!==c}}]},{id:"server-side-image-map",selector:"img[ismap]",tags:["wcag2a","wcag211","section508","section508f"],all:[],any:[],none:[{id:"exists",evaluate:function(a,b){return!0}}]},{id:"skip-link",selector:"a[href]",pageLevel:!0,enabled:!1,tags:["best-practice"],all:[],any:[{id:"skip-link",selector:"a[href]",evaluate:function(a,b){return O.dom.isFocusable(O.dom.getElementByReference(a,"href"))},after:function(a,b){return[a[0]]}}],none:[]},{id:"tabindex",selector:"[tabindex]",tags:["wcag2a","wcag243"],all:[],any:[{id:"tabindex",evaluate:function(a,b){return a.tabIndex<=0}}],none:[]},{id:"valid-lang",selector:"[lang]:not(html), [xml\\:lang]:not(html)",tags:["wcag2aa","wcag312"],all:[],any:[],none:[{id:"valid-lang",options:["en","es","ja"],evaluate:function(a,b){var c=(a.getAttribute("lang")||"").trim().toLowerCase(),d=(a.getAttribute("xml:lang")||"").trim().toLowerCase(),e=[];return(b||[]).forEach(function(a){a=a.toLowerCase(),!c||c!==a&&0!==c.indexOf(a.toLowerCase()+"-")||(c=null),!d||d!==a&&0!==d.indexOf(a.toLowerCase()+"-")||(d=null)}),d&&e.push('xml:lang="'+d+'"'),c&&e.push('lang="'+c+'"'),e.length?(this.data(e),!0):!1}}]},{id:"video-caption",selector:"video",tags:["wcag2a","wcag122","wcag123","section508","section508a"],all:[],any:[],none:[{id:"caption",evaluate:function(a,b){return!a.querySelector("track[kind=captions]")}}]},{id:"video-description",selector:"video",tags:["wcag2aa","wcag125","section508","section508a"],all:[],any:[],none:[{id:"description",evaluate:function(a,b){return!a.querySelector("track[kind=descriptions]")}}]}],commons:function(){function a(b){"use strict";var c,d,e=b;if(null!==b&&"object"==typeof b)if(Array.isArray(b))for(e=[],c=0,d=b.length;d>c;c++)e[c]=a(b[c]);else{e={};for(c in b)e[c]=a(b[c])}return e}function b(a){"use strict";var b=a.match(/rect\s*\(([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px\s*\)/);return b&&5===b.length?b[3]-b[1]<=0&&b[2]-b[4]<=0:!1}function c(a){var b=null;return a.id&&(b=a.ownerDocument.querySelector('label[for="'+v.escapeSelector(a.id)+'"]'))?b:b=s.findUp(a,"label")}function d(a){return-1!==["button","reset","submit"].indexOf(a.type)}function e(a){return"TEXTAREA"===a.nodeName||"SELECT"===a.nodeName||"INPUT"===a.nodeName&&"hidden"!==a.type}function f(a){return-1!==["BUTTON","SUMMARY","A"].indexOf(a.nodeName)}function g(a){return-1!==["TABLE","FIGURE"].indexOf(a.nodeName)}function h(a){if("INPUT"===a.nodeName)return!a.hasAttribute("type")||-1!==z.indexOf(a.getAttribute("type"))&&a.value?a.value:"";if("SELECT"===a.nodeName){var b=a.options;if(b&&b.length){for(var c="",d=0;d<b.length;d++)b[d].selected&&(c+=" "+b[d].text);return u.sanitize(c)}return""}return"TEXTAREA"===a.nodeName&&a.value?a.value:""}function i(a,b){var c=a.querySelector(b);return c?u.accessibleText(c):""}function j(a){if(!a)return!1;switch(a.nodeName){case"SELECT":case"TEXTAREA":return!0;case"INPUT":return!a.hasAttribute("type")||-1!==z.indexOf(a.getAttribute("type"));default:return!1}}function k(a){return"INPUT"===a.nodeName&&"image"===a.type||-1!==["IMG","APPLET","AREA"].indexOf(a.nodeName)}function l(a){return!!u.sanitize(a)}var m={};m.version="dev";var n=function(){"use strict";function a(a){var b,c,d=a.Element.prototype,e=["matches","matchesSelector","mozMatchesSelector","webkitMatchesSelector","msMatchesSelector"],f=e.length;for(b=0;f>b;b++)if(c=e[b],d[c])return c}var b;return function(c,d){return b&&c[b]||(b=a(c.ownerDocument.defaultView)),c[b](d)}}(),o=function(a){"use strict";for(var b,c=String(a),d=c.length,e=-1,f="",g=c.charCodeAt(0);++e<d;){if(b=c.charCodeAt(e),0==b)throw new Error("INVALID_CHARACTER_ERR");f+=b>=1&&31>=b||b>=127&&159>=b||0==e&&b>=48&&57>=b||1==e&&b>=48&&57>=b&&45==g?"\\"+b.toString(16)+" ":(1!=e||45!=b||45!=g)&&(b>=128||45==b||95==b||b>=48&&57>=b||b>=65&&90>=b||b>=97&&122>=b)?c.charAt(e):"\\"+c.charAt(e)}return f},p=m.aria={},q=p._lut={};q.attributes={"aria-activedescendant":{type:"http://www.w3.org/2001/XMLSchema#idref"},"aria-atomic":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-autocomplete":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["inline","list","both","none"]},"aria-busy":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-checked":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","mixed","undefined"]},"aria-controls":{type:"http://www.w3.org/2001/XMLSchema#idrefs"},"aria-describedby":{type:"http://www.w3.org/2001/XMLSchema#idrefs"},"aria-disabled":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-dropeffect":{type:"http://www.w3.org/2001/XMLSchema#nmtokens",values:["copy","move","reference","execute","popup","none"]},"aria-expanded":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","undefined"]},"aria-flowto":{type:"http://www.w3.org/2001/XMLSchema#idrefs"},"aria-grabbed":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","undefined"]},"aria-haspopup":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-hidden":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-invalid":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","spelling","grammar"]},"aria-label":{type:"http://www.w3.org/2001/XMLSchema#string"},"aria-labelledby":{type:"http://www.w3.org/2001/XMLSchema#idrefs"},"aria-level":{type:"http://www.w3.org/2001/XMLSchema#int"},"aria-live":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["off","polite","assertive"]},"aria-multiline":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-multiselectable":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-orientation":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["horizontal","vertical"]},"aria-owns":{type:"http://www.w3.org/2001/XMLSchema#idrefs"},"aria-posinset":{type:"http://www.w3.org/2001/XMLSchema#int"},"aria-pressed":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","mixed","undefined"]},"aria-readonly":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-relevant":{type:"http://www.w3.org/2001/XMLSchema#nmtokens",values:["additions","removals","text","all"]},"aria-required":{type:"http://www.w3.org/2001/XMLSchema#boolean",values:["true","false"]},"aria-selected":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["true","false","undefined"]},"aria-setsize":{type:"http://www.w3.org/2001/XMLSchema#int"},"aria-sort":{type:"http://www.w3.org/2001/XMLSchema#nmtoken",values:["ascending","descending","other","none"]},"aria-valuemax":{type:"http://www.w3.org/2001/XMLSchema#decimal"},"aria-valuemin":{type:"http://www.w3.org/2001/XMLSchema#decimal"},"aria-valuenow":{type:"http://www.w3.org/2001/XMLSchema#decimal"},"aria-valuetext":{type:"http://www.w3.org/2001/XMLSchema#string"}},q.globalAttributes=["aria-atomic","aria-busy","aria-controls","aria-describedby","aria-disabled","aria-dropeffect","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant"],q.role={alert:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},alertdialog:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},application:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},article:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["article"]},banner:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},button:{type:"widget",attributes:{allowed:["aria-expanded","aria-pressed"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["button",'input[type="button"]','input[type="image"]']},checkbox:{type:"widget",attributes:{required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="checkbox"]']},columnheader:{type:"structure",attributes:{allowed:["aria-expanded","aria-sort","aria-readonly","aria-selected","aria-required"]},owned:null,nameFrom:["author","contents"],context:["row"]},combobox:{type:"composite",attributes:{required:["aria-expanded"],allowed:["aria-autocomplete","aria-required","aria-activedescendant"]},owned:{all:["listbox","textbox"]},nameFrom:["author"],context:null},command:{nameFrom:["author"],type:"abstract"},complementary:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["aside"]},composite:{nameFrom:["author"],type:"abstract"},contentinfo:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},definition:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},dialog:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["dialog"]},directory:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author","contents"],context:null},document:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["body"]},form:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},grid:{type:"composite",attributes:{allowed:["aria-level","aria-multiselectable","aria-readonly","aria-activedescendant","aria-expanded"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null},gridcell:{type:"widget",attributes:{allowed:["aria-selected","aria-readonly","aria-expanded","aria-required"]},owned:null,nameFrom:["author","contents"],context:["row"]},group:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["details"]},heading:{type:"structure",attributes:{allowed:["aria-level","aria-expanded"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["h1","h2","h3","h4","h5","h6"]},img:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["img"]},input:{nameFrom:["author"],type:"abstract"},landmark:{nameFrom:["author"],type:"abstract"},link:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["a[href]"]},list:{type:"structure",attributes:{
|
25
|
+
allowed:["aria-expanded"]},owned:{all:["listitem"]},nameFrom:["author"],context:null,implicit:["ol","ul"]},listbox:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded"]},owned:{all:["option"]},nameFrom:["author"],context:null,implicit:["select"]},listitem:{type:"structure",attributes:{allowed:["aria-level","aria-posinset","aria-setsize","aria-expanded"]},owned:null,nameFrom:["author","contents"],context:["list"],implicit:["li"]},log:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},main:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},marquee:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},math:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},menu:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded"]},owned:{one:["menuitem","menuitemradio","menuitemcheckbox"]},nameFrom:["author"],context:null},menubar:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded"]},owned:null,nameFrom:["author"],context:null},menuitem:{type:"widget",attributes:null,owned:null,nameFrom:["author","contents"],context:["menu","menubar"]},menuitemcheckbox:{type:"widget",attributes:{required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"]},menuitemradio:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize"],required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"]},navigation:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},note:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},option:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize","aria-checked"]},owned:null,nameFrom:["author","contents"],context:["listbox"]},presentation:{type:"structure",attributes:null,owned:null,nameFrom:["author"],context:null},progressbar:{type:"widget",attributes:{allowed:["aria-valuetext","aria-valuenow","aria-valuemax","aria-valuemin"]},owned:null,nameFrom:["author"],context:null},radio:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize"],required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="radio"]']},radiogroup:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-required","aria-expanded"]},owned:{all:["radio"]},nameFrom:["author"],context:null},range:{nameFrom:["author"],type:"abstract"},region:{type:"structure",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["section"]},roletype:{type:"abstract"},row:{type:"structure",attributes:{allowed:["aria-level","aria-selected","aria-activedescendant","aria-expanded"]},owned:{one:["columnheader","rowheader","gridcell"]},nameFrom:["author","contents"],context:["rowgroup","grid","treegrid"]},rowgroup:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded"]},owned:{all:["row"]},nameFrom:["author","contents"],context:["grid"]},rowheader:{type:"structure",attributes:{allowed:["aria-sort","aria-required","aria-readonly","aria-expanded","aria-selected"]},owned:null,nameFrom:["author","contents"],context:["row"]},scrollbar:{type:"widget",attributes:{required:["aria-controls","aria-orientation","aria-valuenow","aria-valuemax","aria-valuemin"],allowed:["aria-valuetext"]},owned:null,nameFrom:["author"],context:null},search:{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},section:{nameFrom:["author","contents"],type:"abstract"},sectionhead:{nameFrom:["author","contents"],type:"abstract"},select:{nameFrom:["author"],type:"abstract"},separator:{type:"structure",attributes:{allowed:["aria-expanded","aria-orientation"]},owned:null,nameFrom:["author"],context:null},slider:{type:"widget",attributes:{allowed:["aria-valuetext","aria-orientation"],required:["aria-valuenow","aria-valuemax","aria-valuemin"]},owned:null,nameFrom:["author"],context:null},spinbutton:{type:"widget",attributes:{allowed:["aria-valuetext","aria-required"],required:["aria-valuenow","aria-valuemax","aria-valuemin"]},owned:null,nameFrom:["author"],context:null},status:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:["output"]},structure:{type:"abstract"},tab:{type:"widget",attributes:{allowed:["aria-selected","aria-expanded"]},owned:null,nameFrom:["author","contents"],context:["tablist"]},tablist:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-level","aria-multiselectable"]},owned:{all:["tab"]},nameFrom:["author"],context:null},tabpanel:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},textbox:{type:"widget",attributes:{allowed:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-readonly","aria-required"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="text"]',"input:not([type])"]},timer:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author"],context:null},toolbar:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded"]},owned:null,nameFrom:["author"],context:null,implicit:['menu[type="toolbar"]']},tooltip:{type:"widget",attributes:{allowed:["aria-expanded"]},owned:null,nameFrom:["author","contents"],context:null},tree:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded"]},owned:{all:["treeitem"]},nameFrom:["author"],context:null},treegrid:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-level","aria-multiselectable","aria-readonly","aria-required"]},owned:{all:["treeitem"]},nameFrom:["author"],context:null},treeitem:{type:"widget",attributes:{allowed:["aria-checked","aria-selected","aria-expanded","aria-level","aria-posinset","aria-setsize"]},owned:null,nameFrom:["author","contents"],context:["treegrid","tree"]},widget:{type:"abstract"},window:{nameFrom:["author"],type:"abstract"}};var r={};m.color=r;var s=m.dom={},t=m.table={},u=m.text={},v=m.utils={};v.escapeSelector=o,v.matchesSelector=n,v.clone=a,p.requiredAttr=function(a){"use strict";var b=q.role[a],c=b&&b.attributes&&b.attributes.required;return c||[]},p.allowedAttr=function(a){"use strict";var b=q.role[a],c=b&&b.attributes&&b.attributes.allowed||[],d=b&&b.attributes&&b.attributes.required||[];return c.concat(q.globalAttributes).concat(d)},p.validateAttr=function(a){"use strict";return!!q.attributes[a]},p.validateAttrValue=function(a,b){"use strict";var c,d,e,f,g=a.ownerDocument,h=a.getAttribute(b),i=q.attributes[b];if(!i)return!0;if(i.values)return"string"==typeof h&&-1!==i.values.indexOf(h.toLowerCase())?!0:!1;switch(i.type){case"http://www.w3.org/2001/XMLSchema#idref":return!(!h||!g.getElementById(h));case"http://www.w3.org/2001/XMLSchema#idrefs":for(c=v.tokenList(h),d=0,e=c.length;e>d;d++)if(c[d]&&!g.getElementById(c[d]))return!1;return!!c.length;case"http://www.w3.org/2001/XMLSchema#string":return!0;case"http://www.w3.org/2001/XMLSchema#decimal":return f=h.match(/^[-+]?([0-9]*)\.?([0-9]*)$/),!(!f||!f[1]&&!f[2]);case"http://www.w3.org/2001/XMLSchema#int":return/^[-+]?[0-9]+$/.test(h)}},p.label=function(a){var b,c;return a.getAttribute("aria-labelledby")&&(b=s.idrefs(a,"aria-labelledby"),c=b.map(function(a){return a?u.visible(a,!0):""}).join(" ").trim())?c:(c=a.getAttribute("aria-label"),c&&(c=u.sanitize(c).trim())?c:null)},p.isValidRole=function(a){"use strict";return q.role[a]?!0:!1},p.getRolesWithNameFromContents=function(){return Object.keys(q.role).filter(function(a){return q.role[a].nameFrom&&-1!==q.role[a].nameFrom.indexOf("contents")})},p.getRolesByType=function(a){return Object.keys(q.role).filter(function(b){return q.role[b].type===a})},p.getRoleType=function(a){var b=q.role[a];return b&&b.type||null},p.requiredOwned=function(a){"use strict";var b=null,c=q.role[a];return c&&(b=v.clone(c.owned)),b},p.requiredContext=function(a){"use strict";var b=null,c=q.role[a];return c&&(b=v.clone(c.context)),b},p.implicitNodes=function(a){"use strict";var b=null,c=q.role[a];return c&&c.implicit&&(b=v.clone(c.implicit)),b},p.implicitRole=function(a){"use strict";var b,c,d,e=q.role;for(b in e)if(e.hasOwnProperty(b)&&(c=e[b],c.implicit))for(var f=0,g=c.implicit.length;g>f;f++)if(d=c.implicit[f],v.matchesSelector(a,d))return b;return null},r.Color=function(a,b,c,d){this.red=a,this.green=b,this.blue=c,this.alpha=d,this.toHexString=function(){var a=Math.round(this.red).toString(16),b=Math.round(this.green).toString(16),c=Math.round(this.blue).toString(16);return"#"+(this.red>15.5?a:"0"+a)+(this.green>15.5?b:"0"+b)+(this.blue>15.5?c:"0"+c)};var e=/^rgb\((\d+), (\d+), (\d+)\)$/,f=/^rgba\((\d+), (\d+), (\d+), (\d*(\.\d+)?)\)/;this.parseRgbString=function(a){var b=a.match(e);return b?(this.red=parseInt(b[1],10),this.green=parseInt(b[2],10),this.blue=parseInt(b[3],10),void(this.alpha=1)):(b=a.match(f),b?(this.red=parseInt(b[1],10),this.green=parseInt(b[2],10),this.blue=parseInt(b[3],10),void(this.alpha=parseFloat(b[4]))):void 0)},this.getRelativeLuminance=function(){var a=this.red/255,b=this.green/255,c=this.blue/255,d=.03928>=a?a/12.92:Math.pow((a+.055)/1.055,2.4),e=.03928>=b?b/12.92:Math.pow((b+.055)/1.055,2.4),f=.03928>=c?c/12.92:Math.pow((c+.055)/1.055,2.4);return.2126*d+.7152*e+.0722*f}},r.flattenColors=function(a,b){var c=a.alpha,d=(1-c)*b.red+c*a.red,e=(1-c)*b.green+c*a.green,f=(1-c)*b.blue+c*a.blue,g=a.alpha+b.alpha*(1-a.alpha);return new r.Color(d,e,f,g)},r.getContrast=function(a,b){if(!b||!a)return null;b.alpha<1&&(b=r.flattenColors(b,a));var c=a.getRelativeLuminance(),d=b.getRelativeLuminance();return(Math.max(d,c)+.05)/(Math.min(d,c)+.05)},r.hasValidContrastRatio=function(a,b,c,d){var e=r.getContrast(a,b),f=d&&Math.ceil(72*c)/96<14||!d&&Math.ceil(72*c)/96<18;return{isValid:f&&e>=4.5||!f&&e>=3,contrastRatio:e}};var w=function(a){var b,c=a.ownerDocument.defaultView,d=c.getComputedStyle(a);if("none"!==d.getPropertyValue("background-image"))return null;var e=d.getPropertyValue("background-color");"transparent"===e?b=new r.Color(0,0,0,0):(b=new r.Color,b.parseRgbString(e));var f=d.getPropertyValue("opacity");return b.alpha=b.alpha*f,b};s.isOpaque=function(a){var b=w(a);return null===b||1===b.alpha?!0:!1};var x=function(a,b){for(var c,d,e,f,g,h,i,j=[],k=!1,l=a.ownerDocument.defaultView,m=a,n=l.getComputedStyle(m);null!==m&&(!s.isOpaque(m)||0===parseInt(n.getPropertyValue("height"),10));)e=n.getPropertyValue("position"),f=n.getPropertyValue("top"),g=n.getPropertyValue("bottom"),h=n.getPropertyValue("left"),i=n.getPropertyValue("right"),("static"!==e&&"relative"!==e||"relative"===e&&("auto"!==h||"auto"!==i||"auto"!==f||"auto"!==g))&&(k=!0),m=m.parentElement,null!==m&&(n=l.getComputedStyle(m),0!==parseInt(n.getPropertyValue("height"),10)&&j.push(m));return k&&s.supportsElementsFromPoint(a.ownerDocument)&&(c=s.elementsFromPoint(a.ownerDocument,Math.ceil(b.left+1),Math.ceil(b.top+1)),c&&(d=c.indexOf(a))<c.length-1&&(j=c.slice(d+1))),j};r.getBackgroundColor=function(a,b){var c,d,e=w(a);if(!b||null!==e&&0===e.alpha||b.push(a),null===e||1===e.alpha)return e;a.scrollIntoView();for(var f=a.getBoundingClientRect(),g=a,h=[{color:e,node:a}],i=x(g,f);1!==e.alpha;){if(c=i.shift(),!c&&"HTML"!==g.tagName)return null;if(c||"HTML"!==g.tagName){if(!s.visuallyContains(a,c))return null;if(d=w(c),!b||null!==d&&0===d.alpha||b.push(c),null===d)return null}else d=new r.Color(255,255,255,1);g=c,e=d,h.push({color:e,node:g})}for(var j=h.pop(),k=j.color;void 0!==(j=h.pop());)k=r.flattenColors(j.color,k);return k},r.getForegroundColor=function(a){var b=a.ownerDocument.defaultView,c=b.getComputedStyle(a),d=new r.Color;d.parseRgbString(c.getPropertyValue("color"));var e=c.getPropertyValue("opacity");if(d.alpha=d.alpha*e,1===d.alpha)return d;var f=r.getBackgroundColor(a);return null===f?null:r.flattenColors(d,f)},s.findUp=function(a,b){"use strict";var c,d=a.ownerDocument,e=d.querySelectorAll(b),f=e.length;if(!f)return null;for(e=v.toArray(e),c=a.parentNode;c&&-1===e.indexOf(c);)c=c.parentNode;return c},s.getElementByReference=function(a,b){"use strict";var c,d=a.getAttribute(b),e=a.ownerDocument;if(d&&"#"===d.charAt(0)){if(d=d.substring(1),c=e.getElementById(d))return c;if(c=e.getElementsByName(d),c.length)return c[0]}return null},s.getElementCoordinates=function(a){"use strict";var b=a.ownerDocument,c=s.getScrollOffset(b),d=c.left,e=c.top,f=a.getBoundingClientRect();return{top:f.top+e,right:f.right+d,bottom:f.bottom+e,left:f.left+d,width:f.right-f.left,height:f.bottom-f.top}},s.supportsElementsFromPoint=function(a){var b=a.createElement("x");return b.style.cssText="pointer-events:auto","auto"===b.style.pointerEvents||!!a.msElementsFromPoint},s.elementsFromPoint=function(a,b,c){var d,e,f,g=[],h=[];if(a.msElementsFromPoint){var i=a.msElementsFromPoint(b,c);return i?Array.prototype.slice.call(i):null}for(;(d=a.elementFromPoint(b,c))&&-1===g.indexOf(d)&&null!==d&&(g.push(d),h.push({value:d.style.getPropertyValue("pointer-events"),priority:d.style.getPropertyPriority("pointer-events")}),d.style.setProperty("pointer-events","none","important"),!s.isOpaque(d)););for(e=h.length;f=h[--e];)g[e].style.setProperty("pointer-events",f.value?f.value:"",f.priority);return g},s.getScrollOffset=function(a){"use strict";if(!a.nodeType&&a.document&&(a=a.document),9===a.nodeType){var b=a.documentElement,c=a.body;return{left:b&&b.scrollLeft||c&&c.scrollLeft||0,top:b&&b.scrollTop||c&&c.scrollTop||0}}return{left:a.scrollLeft,top:a.scrollTop}},s.getViewportSize=function(a){"use strict";var b,c=a.document,d=c.documentElement;return a.innerWidth?{width:a.innerWidth,height:a.innerHeight}:d?{width:d.clientWidth,height:d.clientHeight}:(b=c.body,{width:b.clientWidth,height:b.clientHeight})},s.idrefs=function(a,b){"use strict";var c,d,e=a.ownerDocument,f=[],g=a.getAttribute(b);if(g)for(g=v.tokenList(g),c=0,d=g.length;d>c;c++)f.push(e.getElementById(g[c]));return f},s.isFocusable=function(a){"use strict";if(!a||a.disabled||!s.isVisible(a)&&"AREA"!==a.nodeName)return!1;switch(a.nodeName){case"A":case"AREA":if(a.href)return!0;break;case"INPUT":return"hidden"!==a.type;case"TEXTAREA":case"SELECT":case"DETAILS":case"BUTTON":return!0}var b=a.getAttribute("tabindex");return b&&!isNaN(parseInt(b,10))?!0:!1},s.isHTML5=function(a){var b=a.doctype;return null===b?!1:"html"===b.name&&!b.publicId&&!b.systemId},s.isNode=function(a){"use strict";var b=a&&a.ownerDocument||a,c=b&&b.defaultView;return!!c&&a instanceof c.Node},s.isOffscreen=function(a){"use strict";var b,c=a.ownerDocument,d=c.defaultView,e=c.documentElement,f=d.getComputedStyle(c.body||e).getPropertyValue("direction"),g=s.getElementCoordinates(a);if(g.bottom<0)return!0;if("ltr"===f){if(g.right<0)return!0}else if(b=Math.max(e.scrollWidth,s.getViewportSize(d).width),g.left>b)return!0;return!1},s.isVisible=function(a,c,d){"use strict";var e,f=a.nodeName,g=a.parentNode;return 9===a.nodeType?!0:(e=a.ownerDocument.defaultView.getComputedStyle(a,null),null===e?!1:"none"===e.getPropertyValue("display")||"STYLE"===f||"SCRIPT"===f||!c&&b(e.getPropertyValue("clip"))||!d&&("hidden"===e.getPropertyValue("visibility")||!c&&s.isOffscreen(a))||c&&"true"===a.getAttribute("aria-hidden")?!1:g?s.isVisible(g,c,!0):!1)},s.isVisualContent=function(a){"use strict";switch(a.tagName.toUpperCase()){case"IMG":case"IFRAME":case"OBJECT":case"VIDEO":case"AUDIO":case"CANVAS":case"SVG":case"MATH":case"BUTTON":case"SELECT":case"TEXTAREA":case"KEYGEN":case"PROGRESS":case"METER":return!0;case"INPUT":return"hidden"!==a.type;default:return!1}},s.visuallyContains=function(a,b){var c=a.getBoundingClientRect(),d=b.getBoundingClientRect(),e=d.top,f=d.left,g={top:e-b.scrollTop,bottom:e-b.scrollTop+b.scrollHeight,left:f-b.scrollLeft,right:f-b.scrollLeft+b.scrollWidth};if(c.left<g.left&&c.left<d.left||c.top<g.top&&c.top<d.top||c.right>g.right&&c.right>d.right||c.bottom>g.bottom&&c.bottom>d.bottom)return!1;var h=a.ownerDocument.defaultView,i=h.getComputedStyle(b);return c.right>d.right||c.bottom>d.bottom?"scroll"===i.overflow||"auto"===i.overflow||"hidden"===i.overflow||b instanceof h.HTMLBodyElement||b instanceof h.HTMLHtmlElement:!0},s.visuallyOverlaps=function(a,b){var c=b.getBoundingClientRect(),d=c.top,e=c.left,f={top:d-b.scrollTop,bottom:d-b.scrollTop+b.scrollHeight,left:e-b.scrollLeft,right:e-b.scrollLeft+b.scrollWidth};if(a.left>f.right&&a.left>c.right||a.top>f.bottom&&a.top>c.bottom||a.right<f.left&&a.right<c.left||a.bottom<f.top&&a.bottom<c.top)return!1;var g=b.ownerDocument.defaultView,h=g.getComputedStyle(b);return a.left>c.right||a.top>c.bottom?"scroll"===h.overflow||"auto"===h.overflow||b instanceof g.HTMLBodyElement||b instanceof g.HTMLHtmlElement:!0},t.getCellPosition=function(a){for(var b,c=t.toArray(s.findUp(a,"table")),d=0;d<c.length;d++)if(c[d]&&(b=c[d].indexOf(a),-1!==b))return{x:b,y:d}},t.getHeaders=function(a){if(a.getAttribute("headers"))return m.dom.idrefs(a,"headers");for(var b,c=[],d=m.table.toArray(m.dom.findUp(a,"table")),e=m.table.getCellPosition(a),f=e.x-1;f>=0;f--)b=d[e.y][f],m.table.isRowHeader(b)&&c.unshift(b);for(var g=e.y-1;g>=0;g--)b=d[g][e.x],b&&m.table.isColumnHeader(b)&&c.unshift(b);return c},t.isColumnHeader=function(a){var b=a.getAttribute("scope");if("col"===b)return!0;if(b||"TH"!==a.nodeName)return!1;for(var c,d=t.getCellPosition(a),e=t.toArray(s.findUp(a,"table")),f=e[d.y],g=0,h=f.length;h>g;g++)if(c=f[g],c!==a&&t.isDataCell(c))return!1;return!0},t.isDataCell=function(a){return a.children.length||a.textContent.trim()?"TD"===a.nodeName:!1},t.isDataTable=function(a){var b=a.ownerDocument.defaultView,c=a.getAttribute("role");if("presentation"===c&&!s.isFocusable(a))return!1;if("true"===a.getAttribute("contenteditable")||s.findUp(a,'[contenteditable="true"]'))return!0;if("grid"===c||"treegrid"===c)return!0;if("landmark"===m.aria.getRoleType(c))return!0;if("0"===a.getAttribute("datatable"))return!1;if(a.getAttribute("summary"))return!0;if(a.tHead||a.tFoot||a.caption)return!0;for(var d=0,e=a.children.length;e>d;d++)if("COLGROUP"===a.children[d].nodeName)return!0;for(var f,g,h=0,i=a.rows.length,j=!1,k=0;i>k;k++){f=a.rows[k];for(var l=0,n=f.cells.length;n>l;l++){if(g=f.cells[l],j||g.offsetWidth===g.clientWidth&&g.offsetHeight===g.clientHeight||(j=!0),g.getAttribute("scope")||g.getAttribute("headers")||g.getAttribute("abbr"))return!0;if("TH"===g.nodeName)return!0;if(1===g.children.length&&"ABBR"===g.children[0].nodeName)return!0;h++}}if(a.getElementsByTagName("table").length)return!1;if(2>i)return!1;var o=a.rows[Math.ceil(i/2)];if(1===o.cells.length&&1===o.cells[0].colSpan)return!1;if(o.cells.length>=5)return!0;if(j)return!0;var p,q;for(k=0;i>k;k++){if(f=a.rows[k],p&&p!==b.getComputedStyle(f).getPropertyValue("background-color"))return!0;if(p=b.getComputedStyle(f).getPropertyValue("background-color"),q&&q!==b.getComputedStyle(f).getPropertyValue("background-image"))return!0;q=b.getComputedStyle(f).getPropertyValue("background-image")}return i>=20?!0:s.getElementCoordinates(a).width>.95*s.getViewportSize(b).width?!1:10>h?!1:a.querySelector("object, embed, iframe, applet")?!1:!0},t.isHeader=function(a){return t.isColumnHeader(a)||t.isRowHeader(a)?!0:a.id?!!a.ownerDocument.querySelector('[headers~="'+v.escapeSelector(a.id)+'"]'):!1},t.isRowHeader=function(a){var b=a.getAttribute("scope");if("row"===b)return!0;if(b||"TH"!==a.nodeName)return!1;if(t.isColumnHeader(a))return!1;for(var c,d=t.getCellPosition(a),e=t.toArray(s.findUp(a,"table")),f=0,g=e.length;g>f;f++)if(c=e[f][d.x],c!==a&&t.isDataCell(c))return!1;return!0},t.toArray=function(a){for(var b=[],c=a.rows,d=0,e=c.length;e>d;d++){var f=c[d].cells;b[d]=b[d]||[];for(var g=0,h=0,i=f.length;i>h;h++)for(var j=0;j<f[h].colSpan;j++){for(var k=0;k<f[h].rowSpan;k++){for(b[d+k]=b[d+k]||[];b[d+k][g];)g++;b[d+k][g]=f[h]}g++}}return b};var y={submit:"Submit",reset:"Reset"},z=["text","search","tel","url","email","date","time","number","range","color"],A=["a","em","strong","small","mark","abbr","dfn","i","b","s","u","code","var","samp","kbd","sup","sub","q","cite","span","bdo","bdi","br","wbr","ins","del","img","embed","object","iframe","map","area","script","noscript","ruby","video","audio","input","textarea","select","button","label","output","datalist","keygen","progress","command","canvas","time","meter"];return u.accessibleText=function(a){function b(a,b,g){var h="";if(f(a)&&(h=n(a,!1,!1)||"",l(h)))return h;if("FIGURE"===a.nodeName&&(h=i(a,"figcaption"),l(h)))return h;if("TABLE"===a.nodeName){if(h=i(a,"caption"),l(h))return h;if(h=a.getAttribute("title")||a.getAttribute("summary")||"",l(h))return h}if(k(a))return a.getAttribute("alt")||"";if(e(a)&&!g){if(d(a))return a.value||a.title||y[a.type]||"";var j=c(a);if(j)return o(j,b,!0)}return""}function m(a,b,c){return!b&&a.hasAttribute("aria-labelledby")?u.sanitize(s.idrefs(a,"aria-labelledby").map(function(b){return a===b&&q.pop(),o(b,!0,a!==b)}).join(" ")):c&&j(a)||!a.hasAttribute("aria-label")?"":u.sanitize(a.getAttribute("aria-label"))}function n(a,b,c){for(var d,e=a.childNodes,f="",g=0;g<e.length;g++)d=e[g],3===d.nodeType?f+=d.textContent:1===d.nodeType&&(-1===A.indexOf(d.nodeName.toLowerCase())&&(f+=" "),f+=o(e[g],b,c));return f}function o(a,c,d){"use strict";var e="";if(null===a||!s.isVisible(a,!0)||-1!==q.indexOf(a))return"";q.push(a);var f=a.getAttribute("role");return e+=m(a,c,d),l(e)?e:(e=b(a,c,d),l(e)?e:d&&(e+=h(a),l(e))?e:g(a)||f&&-1===p.getRolesWithNameFromContents().indexOf(f)||(e=n(a,c,d),!l(e))?a.hasAttribute("title")?a.getAttribute("title"):"":e)}var q=[];return u.sanitize(o(a))},u.label=function(a){var b,c;return(c=p.label(a))?c:a.id&&(b=a.ownerDocument.querySelector('label[for="'+v.escapeSelector(a.id)+'"]'),c=b&&u.visible(b,!0))?c:(b=s.findUp(a,"label"),c=b&&u.visible(b,!0),c?c:null)},u.sanitize=function(a){"use strict";return a.replace(/\r\n/g,"\n").replace(/\u00A0/g," ").replace(/[\s]{2,}/g," ").trim()},u.visible=function(a,b,c){"use strict";var d,e,f,g=a.childNodes,h=g.length,i="";for(d=0;h>d;d++)e=g[d],3===e.nodeType?(f=e.nodeValue,f&&s.isVisible(a,b)&&(i+=e.nodeValue)):c||(i+=u.visible(e,b));return u.sanitize(i)},v.toArray=function(a){"use strict";return Array.prototype.slice.call(a)},v.tokenList=function(a){"use strict";return a.trim().replace(/\s{2,}/g," ").split(" ")},m}(),version:"1.0.2"}),Q.version="1.0.1"}(this);
|
metadata
ADDED
@@ -0,0 +1,270 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: axe-matchers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Deque Systems
|
8
|
+
- Test Double
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: dumb_delegator
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.8'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0.8'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: virtus
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: bundler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.6'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.6'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: cucumber
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.3'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.3'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '10.4'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '10.4'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '3.2'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '3.2'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rspec-its
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.2'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.2'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec_junit_formatter
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.2'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0.2'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: sinatra
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.4'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1.4'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: capybara
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ~>
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '2.4'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ~>
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '2.4'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: capybara-webkit
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '1.3'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ~>
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '1.3'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: poltergeist
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ~>
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '1.6'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ~>
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '1.6'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: selenium-webdriver
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ~>
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '2.46'
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ~>
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '2.46'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: watir-webdriver
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ~>
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0.8'
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ~>
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0.8'
|
210
|
+
description: |2
|
211
|
+
axe-matchers provides matchers that wrap the axe-core accessibility library.
|
212
|
+
The matchers can be used with RSpec, MiniTest, Cucumber and other test tools.
|
213
|
+
Cucumber step definitions for are also provided.
|
214
|
+
email:
|
215
|
+
executables: []
|
216
|
+
extensions: []
|
217
|
+
extra_rdoc_files: []
|
218
|
+
files:
|
219
|
+
- lib/axe/api/a11y_check.rb
|
220
|
+
- lib/axe/api/audit.rb
|
221
|
+
- lib/axe/api/context.rb
|
222
|
+
- lib/axe/api/options.rb
|
223
|
+
- lib/axe/api/results/check.rb
|
224
|
+
- lib/axe/api/results/checked_node.rb
|
225
|
+
- lib/axe/api/results/node.rb
|
226
|
+
- lib/axe/api/results/rule.rb
|
227
|
+
- lib/axe/api/results.rb
|
228
|
+
- lib/axe/api/rules.rb
|
229
|
+
- lib/axe/api/value_object.rb
|
230
|
+
- lib/axe/api.rb
|
231
|
+
- lib/axe/configuration.rb
|
232
|
+
- lib/axe/cucumber/step.rb
|
233
|
+
- lib/axe/cucumber/step_definitions.rb
|
234
|
+
- lib/axe/javascript_library.rb
|
235
|
+
- lib/axe/matchers/be_accessible.rb
|
236
|
+
- lib/axe/matchers.rb
|
237
|
+
- lib/axe/page.rb
|
238
|
+
- lib/axe/rspec.rb
|
239
|
+
- lib/axe/version.rb
|
240
|
+
- lib/axe.rb
|
241
|
+
- lib/webdriver_script_adapter/exec_eval_script_adapter.rb
|
242
|
+
- lib/webdriver_script_adapter/execute_async_script_adapter.rb
|
243
|
+
- node_modules/axe-core/axe.min.js
|
244
|
+
- LICENSE
|
245
|
+
- README.md
|
246
|
+
homepage: https://www.deque.com
|
247
|
+
licenses:
|
248
|
+
- MPL-2.0
|
249
|
+
metadata: {}
|
250
|
+
post_install_message:
|
251
|
+
rdoc_options: []
|
252
|
+
require_paths:
|
253
|
+
- lib
|
254
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - '>='
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: 1.9.3
|
259
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
|
+
requirements:
|
261
|
+
- - '>='
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: 1.3.6
|
264
|
+
requirements: []
|
265
|
+
rubyforge_project:
|
266
|
+
rubygems_version: 2.0.14
|
267
|
+
signing_key:
|
268
|
+
specification_version: 4
|
269
|
+
summary: Automated accessibility testing powered by aXe
|
270
|
+
test_files: []
|