a11y_agent 0.0.5.pre.alpha.4 → 0.0.12

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.
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a11y_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.pre.alpha.4
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Cundiff
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-08-18 00:00:00.000000000 Z
10
+ date: 2025-01-04 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: axe-core-api
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '4.9'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '4.9'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: diffy
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +37,20 @@ dependencies:
24
37
  - - "~>"
25
38
  - !ruby/object:Gem::Version
26
39
  version: '3.4'
40
+ - !ruby/object:Gem::Dependency
41
+ name: dotenv
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.1'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
27
54
  - !ruby/object:Gem::Dependency
28
55
  name: rainbow
29
56
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +65,20 @@ dependencies:
38
65
  - - "~>"
39
66
  - !ruby/object:Gem::Version
40
67
  version: '3.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: selenium-webdriver
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '4.23'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '4.23'
41
82
  - !ruby/object:Gem::Dependency
42
83
  name: sublayer
43
84
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +109,20 @@ dependencies:
68
109
  version: '0.23'
69
110
  - !ruby/object:Gem::Dependency
70
111
  name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '13.2'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '13.2'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rubocop
71
126
  requirement: !ruby/object:Gem::Requirement
72
127
  requirements:
73
128
  - - ">="
@@ -92,12 +147,10 @@ files:
92
147
  - LICENSE
93
148
  - README.md
94
149
  - Rakefile
95
- - fixtures/sample.tsx
96
150
  - lib/a11y_agent/version.rb
97
151
  - lib/agents/a11y_agent.rb
98
- - lib/bin/axe.ts
152
+ - lib/generators/confirmable_fix_generator.rb
99
153
  - lib/generators/fix_a11y_generator.rb
100
- - lib/generators/hydrate_document_generator.rb
101
154
  - lib/tasks/release.rake
102
155
  - package.json
103
156
  - trigger.txt
@@ -109,7 +162,6 @@ metadata:
109
162
  allowed_push_host: https://rubygems.org
110
163
  homepage_uri: https://github.com/accesslint/a11y-agent
111
164
  source_code_uri: https://github.com/accesslint/a11y-agent
112
- post_install_message:
113
165
  rdoc_options: []
114
166
  require_paths:
115
167
  - lib
@@ -124,8 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
176
  - !ruby/object:Gem::Version
125
177
  version: '0'
126
178
  requirements: []
127
- rubygems_version: 3.5.11
128
- signing_key:
179
+ rubygems_version: 3.6.2
129
180
  specification_version: 4
130
181
  summary: AI agent that fixes accessibility issues
131
182
  test_files: []
data/fixtures/sample.tsx DELETED
@@ -1,100 +0,0 @@
1
- import React from "react";
2
-
3
- const AccessibilityViolations = () => {
4
- return (
5
- <div>
6
- <html>
7
- <head>
8
- <title>Accessibility Violations</title>
9
- </head>
10
- <body>
11
- <div>
12
- <p>Here is an emoji not wrapped in a span: 😀</p>
13
-
14
- <img src="image.jpg" alt="image" />
15
-
16
- <a href="https://example.com">Click here</a>
17
-
18
- <a href="#"></a>
19
-
20
- <a href="invalid-url">Invalid Link</a>
21
-
22
- <div aria-activedescendant="some-id"></div>
23
-
24
- <div aria-bogus="true"></div>
25
-
26
- <div aria-hidden="false"></div>
27
-
28
- <div role="invalidRole"></div>
29
-
30
- <input type="text" autoComplete="off" />
31
-
32
- <div onClick={() => alert("Clicked!")}></div>
33
-
34
- <input type="text" />
35
-
36
- <h1></h1>
37
-
38
- <iframe src="some-video.mp4"></iframe>
39
-
40
- <img src="photo.jpg" alt="photo" />
41
-
42
- <div onClick={() => alert("Clicked!")} tabIndex={-1}></div>
43
-
44
- <label>Username</label>
45
- <input type="text" id="username" />
46
-
47
- <label htmlFor="username">Username</label>
48
- <input type="text" id="username" />
49
-
50
- <audio controls>
51
- <source src="audio.mp3" type="audio/mp3" />
52
- </audio>
53
-
54
- <div onMouseOver={() => {}}></div>
55
-
56
- <div accessKey="s"></div>
57
-
58
- <div aria-hidden="true" tabIndex={0}></div>
59
-
60
- <input type="text" autoFocus />
61
-
62
- <marquee>Scrolling text</marquee>
63
-
64
- <div role="button" onClick={() => {}}></div>
65
-
66
- <div onClick={() => {}}></div>
67
-
68
- <div role="link"></div>
69
-
70
- <div tabIndex={1}></div>
71
-
72
- <select onChange={() => {}}>
73
- <option>Option 1</option>
74
- <option>Option 2</option>
75
- </select>
76
-
77
- <div role="banner"></div>
78
-
79
- <button role="button">Click me</button>
80
-
81
- <table>
82
- <tr>
83
- <th>Header</th>
84
- <th>Another Header</th>
85
- </tr>
86
- <tr>
87
- <td>Data</td>
88
- <td>More Data</td>
89
- </tr>
90
- </table>
91
-
92
- <div tabIndex={5}></div>
93
- </div>
94
- </body>
95
- </html>
96
- </div>
97
- );
98
- };
99
-
100
- export default AccessibilityViolations;
data/lib/bin/axe.ts DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { readFileSync } from "node:fs";
4
- import axe from "axe-core"
5
- import { JSDOM } from "jsdom";
6
-
7
- const markup = readFileSync(process.argv[2], "utf8");
8
- const { window: { document } } = new JSDOM(markup);
9
-
10
- const config = {
11
- rules: {
12
- 'color-contrast': { enabled: false },
13
- 'region': { enabled: false },
14
- }
15
- };
16
-
17
- axe.run(document.body, config).then((results) => {
18
- console.log(JSON.stringify(results.violations));
19
- });
@@ -1,27 +0,0 @@
1
- class HydrateDocumentGenerator < Sublayer::Generators::Base
2
- llm_output_adapter type: :single_string,
3
- name: 'hydrate_web_document_with_fake_variables',
4
- description: 'Given a web document template, generate a new file with fake data interpolated into the template.'
5
-
6
- def initialize(contents:, extension: '')
7
- @contents = contents
8
- @extension = extension
9
- end
10
-
11
- def generate
12
- super
13
- end
14
-
15
- def prompt
16
- <<~PROMPT
17
- Given the following #{@extension} template contents, generate a new file by
18
- replacing any undefined variables with fake data. Only replace undefined variables,
19
- do not generate new markup.
20
-
21
- #{@extension} code:
22
- #{@contents}
23
-
24
- Return the contents with the fake data interpolated.
25
- PROMPT
26
- end
27
- end