axe-cuprite 0.1.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/CHANGELOG.md +25 -0
- data/LICENSE.txt +30 -0
- data/README.md +257 -0
- data/lib/axe/cuprite/configuration.rb +56 -0
- data/lib/axe/cuprite/errors.rb +19 -0
- data/lib/axe/cuprite/injector.rb +182 -0
- data/lib/axe/cuprite/normalize.rb +27 -0
- data/lib/axe/cuprite/results.rb +167 -0
- data/lib/axe/cuprite/rspec/matchers.rb +227 -0
- data/lib/axe/cuprite/rspec.rb +27 -0
- data/lib/axe/cuprite/runner.rb +102 -0
- data/lib/axe/cuprite/tasks/axe.rake +73 -0
- data/lib/axe/cuprite/vendor/axe-core-LICENSE.txt +362 -0
- data/lib/axe/cuprite/vendor/axe.min.js +12 -0
- data/lib/axe/cuprite/version.rb +10 -0
- data/lib/axe/cuprite.rb +54 -0
- data/lib/axe-cuprite.rb +5 -0
- metadata +197 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module AxeCuprite
|
|
4
|
+
# Version of the axe-cuprite gem itself.
|
|
5
|
+
VERSION = "0.1.0"
|
|
6
|
+
|
|
7
|
+
# Version of the axe-core engine vendored under lib/axe/cuprite/vendor/axe.min.js.
|
|
8
|
+
# Keep this in sync with the vendored file via `rake axe:update`.
|
|
9
|
+
AXE_CORE_VERSION = "4.12.0"
|
|
10
|
+
end
|
data/lib/axe/cuprite.rb
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "axe/cuprite/version"
|
|
4
|
+
require "axe/cuprite/errors"
|
|
5
|
+
require "axe/cuprite/configuration"
|
|
6
|
+
require "axe/cuprite/results"
|
|
7
|
+
require "axe/cuprite/injector"
|
|
8
|
+
require "axe/cuprite/runner"
|
|
9
|
+
|
|
10
|
+
# axe-cuprite drives the axe-core accessibility engine through Capybara's
|
|
11
|
+
# driver-neutral JavaScript API, so it works with Cuprite (Ferrum/CDP) and any
|
|
12
|
+
# other real-browser Capybara driver — without ever touching Selenium internals.
|
|
13
|
+
#
|
|
14
|
+
# Quick start:
|
|
15
|
+
#
|
|
16
|
+
# require "axe/cuprite"
|
|
17
|
+
# require "axe/cuprite/rspec" # in a spec_helper, to load the matchers
|
|
18
|
+
#
|
|
19
|
+
# expect(page).to be_axe_clean.checking_only(:color_contrast)
|
|
20
|
+
#
|
|
21
|
+
module AxeCuprite
|
|
22
|
+
class << self
|
|
23
|
+
# The global configuration object. See AxeCuprite::Configuration.
|
|
24
|
+
def configuration
|
|
25
|
+
@configuration ||= Configuration.new
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Configure axe-cuprite:
|
|
29
|
+
#
|
|
30
|
+
# AxeCuprite.configure do |c|
|
|
31
|
+
# c.timeout = 30
|
|
32
|
+
# c.report_only = true
|
|
33
|
+
# end
|
|
34
|
+
def configure
|
|
35
|
+
yield configuration if block_given?
|
|
36
|
+
configuration
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Reset configuration to defaults (mainly useful in tests).
|
|
40
|
+
def reset_configuration!
|
|
41
|
+
@configuration = Configuration.new
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Path to the vendored axe-core JavaScript engine.
|
|
45
|
+
def axe_path
|
|
46
|
+
File.expand_path("cuprite/vendor/axe.min.js", __dir__)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# The cached source of the vendored axe-core engine.
|
|
50
|
+
def axe_source
|
|
51
|
+
@axe_source ||= File.read(axe_path)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/axe-cuprite.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: axe-cuprite
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Abdullah Hashim
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: capybara
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '3.0'
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '4.0'
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
requirements:
|
|
26
|
+
- - ">="
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
version: '3.0'
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '4.0'
|
|
32
|
+
- !ruby/object:Gem::Dependency
|
|
33
|
+
name: cuprite
|
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
|
35
|
+
requirements:
|
|
36
|
+
- - "~>"
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '0.17'
|
|
39
|
+
type: :development
|
|
40
|
+
prerelease: false
|
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - "~>"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0.17'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: ferrum
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - "~>"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '0.17'
|
|
53
|
+
type: :development
|
|
54
|
+
prerelease: false
|
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
56
|
+
requirements:
|
|
57
|
+
- - "~>"
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '0.17'
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: rspec
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '3.0'
|
|
67
|
+
type: :development
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '3.0'
|
|
74
|
+
- !ruby/object:Gem::Dependency
|
|
75
|
+
name: rake
|
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - "~>"
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '13.0'
|
|
81
|
+
type: :development
|
|
82
|
+
prerelease: false
|
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - "~>"
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '13.0'
|
|
88
|
+
- !ruby/object:Gem::Dependency
|
|
89
|
+
name: rack
|
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
|
91
|
+
requirements:
|
|
92
|
+
- - ">="
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: '2.0'
|
|
95
|
+
- - "<"
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '4.0'
|
|
98
|
+
type: :development
|
|
99
|
+
prerelease: false
|
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - ">="
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '2.0'
|
|
105
|
+
- - "<"
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '4.0'
|
|
108
|
+
- !ruby/object:Gem::Dependency
|
|
109
|
+
name: rackup
|
|
110
|
+
requirement: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - "~>"
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '2.0'
|
|
115
|
+
type: :development
|
|
116
|
+
prerelease: false
|
|
117
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
118
|
+
requirements:
|
|
119
|
+
- - "~>"
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '2.0'
|
|
122
|
+
- !ruby/object:Gem::Dependency
|
|
123
|
+
name: puma
|
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
|
125
|
+
requirements:
|
|
126
|
+
- - ">="
|
|
127
|
+
- !ruby/object:Gem::Version
|
|
128
|
+
version: '5.0'
|
|
129
|
+
- - "<"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '9.0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '5.0'
|
|
139
|
+
- - "<"
|
|
140
|
+
- !ruby/object:Gem::Version
|
|
141
|
+
version: '9.0'
|
|
142
|
+
description: |
|
|
143
|
+
axe-cuprite runs the axe-core accessibility engine against pages rendered in
|
|
144
|
+
Capybara system/feature tests and exposes the results as RSpec matchers
|
|
145
|
+
(be_axe_clean / be_accessible). Unlike Deque's official axe-core-capybara gem,
|
|
146
|
+
it never touches Selenium-specific driver internals: axe is driven entirely
|
|
147
|
+
through Capybara's driver-neutral JavaScript API, so it works with Cuprite
|
|
148
|
+
(the Ferrum/CDP headless-Chrome driver) and any other real-browser driver.
|
|
149
|
+
The headline use case is catching WCAG color-contrast failures in CI.
|
|
150
|
+
email:
|
|
151
|
+
- abdullah@guidedrails.com
|
|
152
|
+
executables: []
|
|
153
|
+
extensions: []
|
|
154
|
+
extra_rdoc_files: []
|
|
155
|
+
files:
|
|
156
|
+
- CHANGELOG.md
|
|
157
|
+
- LICENSE.txt
|
|
158
|
+
- README.md
|
|
159
|
+
- lib/axe-cuprite.rb
|
|
160
|
+
- lib/axe/cuprite.rb
|
|
161
|
+
- lib/axe/cuprite/configuration.rb
|
|
162
|
+
- lib/axe/cuprite/errors.rb
|
|
163
|
+
- lib/axe/cuprite/injector.rb
|
|
164
|
+
- lib/axe/cuprite/normalize.rb
|
|
165
|
+
- lib/axe/cuprite/results.rb
|
|
166
|
+
- lib/axe/cuprite/rspec.rb
|
|
167
|
+
- lib/axe/cuprite/rspec/matchers.rb
|
|
168
|
+
- lib/axe/cuprite/runner.rb
|
|
169
|
+
- lib/axe/cuprite/tasks/axe.rake
|
|
170
|
+
- lib/axe/cuprite/vendor/axe-core-LICENSE.txt
|
|
171
|
+
- lib/axe/cuprite/vendor/axe.min.js
|
|
172
|
+
- lib/axe/cuprite/version.rb
|
|
173
|
+
homepage: https://github.com/Guided-Rails/axe-cuprite
|
|
174
|
+
licenses:
|
|
175
|
+
- MIT
|
|
176
|
+
metadata:
|
|
177
|
+
source_code_uri: https://github.com/Guided-Rails/axe-cuprite
|
|
178
|
+
changelog_uri: https://github.com/Guided-Rails/axe-cuprite/blob/main/CHANGELOG.md
|
|
179
|
+
rubygems_mfa_required: 'true'
|
|
180
|
+
rdoc_options: []
|
|
181
|
+
require_paths:
|
|
182
|
+
- lib
|
|
183
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '3.0'
|
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
|
+
requirements:
|
|
190
|
+
- - ">="
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '0'
|
|
193
|
+
requirements: []
|
|
194
|
+
rubygems_version: 3.6.9
|
|
195
|
+
specification_version: 4
|
|
196
|
+
summary: Run axe-core accessibility tests in Capybara + Cuprite (CDP), no Selenium.
|
|
197
|
+
test_files: []
|