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.
@@ -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
@@ -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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Convenience entry point so `require "axe-cuprite"` works.
4
+ # The canonical require path is "axe/cuprite".
5
+ require "axe/cuprite"
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: []