Skip to content

Commit 54be49e

Browse files
FeminismIsAwesomeIan Norris
andauthored
Feat: add accessability compliance automation (#26)
* Feat: add accessability compliance automation * bundle update * rubocop plus add lesson assertions --------- Co-authored-by: Ian Norris <iannorris@MacBook-Air-4.local>
1 parent 7a7f0c9 commit 54be49e

5 files changed

Lines changed: 116 additions & 47 deletions

File tree

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ group :test do
6363
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
6464
gem "capybara"
6565
gem "selenium-webdriver"
66+
gem "axe-core-capybara"
6667
end
6768

6869
gem "tailwindcss-rails", "~> 4.4"

Gemfile.lock

Lines changed: 78 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
action_text-trix (2.1.18)
4+
action_text-trix (2.1.19)
55
railties
66
actioncable (8.1.3)
77
actionpack (= 8.1.3)
@@ -78,6 +78,17 @@ GEM
7878
addressable (2.9.0)
7979
public_suffix (>= 2.0.2, < 8.0)
8080
ast (2.4.3)
81+
axe-core-api (4.11.3)
82+
dumb_delegator
83+
ostruct
84+
virtus
85+
axe-core-capybara (4.11.3)
86+
axe-core-api (= 4.11.3)
87+
dumb_delegator
88+
axiom-types (0.1.1)
89+
descendants_tracker (~> 0.0.4)
90+
ice_nine (~> 0.11.0)
91+
thread_safe (~> 0.3, >= 0.3.1)
8192
base64 (0.3.0)
8293
bcrypt (3.1.22)
8394
bcrypt_pbkdf (1.1.2)
@@ -100,17 +111,22 @@ GEM
100111
rack-test (>= 0.6.3)
101112
regexp_parser (>= 1.5, < 3.0)
102113
xpath (~> 3.2)
114+
coercible (1.0.0)
115+
descendants_tracker (~> 0.0.1)
103116
concurrent-ruby (1.3.6)
104117
connection_pool (3.0.2)
105118
crass (1.0.6)
106119
date (3.5.1)
107120
debug (1.11.1)
108121
irb (~> 1.10)
109122
reline (>= 0.3.8)
123+
descendants_tracker (0.0.4)
124+
thread_safe (~> 0.3, >= 0.3.1)
110125
dotenv (3.2.0)
111126
drb (2.2.3)
127+
dumb_delegator (1.1.0)
112128
ed25519 (1.4.0)
113-
erb (6.0.3)
129+
erb (6.0.4)
114130
erubi (1.13.1)
115131
et-orbi (1.4.0)
116132
tzinfo
@@ -130,6 +146,7 @@ GEM
130146
activesupport (>= 6.1)
131147
i18n (1.14.8)
132148
concurrent-ruby (~> 1.0)
149+
ice_nine (0.11.2)
133150
image_processing (1.14.0)
134151
mini_magick (>= 4.9.5, < 6)
135152
ruby-vips (>= 2.0.17, < 3)
@@ -138,15 +155,15 @@ GEM
138155
activesupport (>= 6.0.0)
139156
railties (>= 6.0.0)
140157
io-console (0.8.2)
141-
irb (1.17.0)
158+
irb (1.18.0)
142159
pp (>= 0.6.0)
143160
prism (>= 1.3.0)
144161
rdoc (>= 4.0.0)
145162
reline (>= 0.4.2)
146163
jbuilder (2.14.1)
147164
actionview (>= 7.0.0)
148165
activesupport (>= 7.0.0)
149-
json (2.19.3)
166+
json (2.19.5)
150167
kamal (2.11.0)
151168
activesupport (>= 7.0)
152169
base64 (~> 0.2)
@@ -175,11 +192,11 @@ GEM
175192
mini_magick (5.3.1)
176193
logger
177194
mini_mime (1.1.5)
178-
minitest (6.0.4)
195+
minitest (6.0.6)
179196
drb (~> 2.0)
180197
prism (~> 1.5)
181198
msgpack (1.8.0)
182-
net-imap (0.6.3)
199+
net-imap (0.6.4)
183200
date
184201
net-protocol
185202
net-pop (0.1.2)
@@ -194,22 +211,22 @@ GEM
194211
net-protocol
195212
net-ssh (7.3.2)
196213
nio4r (2.7.5)
197-
nokogiri (1.19.2-aarch64-linux-gnu)
214+
nokogiri (1.19.3-aarch64-linux-gnu)
198215
racc (~> 1.4)
199-
nokogiri (1.19.2-aarch64-linux-musl)
216+
nokogiri (1.19.3-aarch64-linux-musl)
200217
racc (~> 1.4)
201-
nokogiri (1.19.2-arm-linux-gnu)
218+
nokogiri (1.19.3-arm-linux-gnu)
202219
racc (~> 1.4)
203-
nokogiri (1.19.2-arm-linux-musl)
220+
nokogiri (1.19.3-arm-linux-musl)
204221
racc (~> 1.4)
205-
nokogiri (1.19.2-arm64-darwin)
222+
nokogiri (1.19.3-arm64-darwin)
206223
racc (~> 1.4)
207-
nokogiri (1.19.2-x86_64-linux-gnu)
224+
nokogiri (1.19.3-x86_64-linux-gnu)
208225
racc (~> 1.4)
209-
nokogiri (1.19.2-x86_64-linux-musl)
226+
nokogiri (1.19.3-x86_64-linux-musl)
210227
racc (~> 1.4)
211228
ostruct (0.6.3)
212-
parallel (2.0.1)
229+
parallel (2.1.0)
213230
parser (3.3.11.1)
214231
ast (~> 2.4.1)
215232
racc
@@ -295,7 +312,7 @@ GEM
295312
lint_roller (~> 1.1)
296313
rubocop (>= 1.75.0, < 2.0)
297314
rubocop-ast (>= 1.47.1, < 2.0)
298-
rubocop-rails (2.34.3)
315+
rubocop-rails (2.35.0)
299316
activesupport (>= 4.2.0)
300317
lint_roller (~> 1.1)
301318
rack (>= 1.1)
@@ -309,9 +326,9 @@ GEM
309326
ruby-vips (2.3.0)
310327
ffi (~> 1.12)
311328
logger
312-
rubyzip (3.2.2)
329+
rubyzip (3.3.0)
313330
securerandom (0.4.1)
314-
selenium-webdriver (4.43.0)
331+
selenium-webdriver (4.44.0)
315332
base64 (~> 0.2)
316333
logger (~> 1.4)
317334
rexml (~> 3.2, >= 3.2.5)
@@ -353,13 +370,14 @@ GEM
353370
tailwindcss-rails (4.4.0)
354371
railties (>= 7.0.0)
355372
tailwindcss-ruby (~> 4.0)
356-
tailwindcss-ruby (4.2.2)
357-
tailwindcss-ruby (4.2.2-aarch64-linux-gnu)
358-
tailwindcss-ruby (4.2.2-aarch64-linux-musl)
359-
tailwindcss-ruby (4.2.2-arm64-darwin)
360-
tailwindcss-ruby (4.2.2-x86_64-linux-gnu)
361-
tailwindcss-ruby (4.2.2-x86_64-linux-musl)
373+
tailwindcss-ruby (4.3.0)
374+
tailwindcss-ruby (4.3.0-aarch64-linux-gnu)
375+
tailwindcss-ruby (4.3.0-aarch64-linux-musl)
376+
tailwindcss-ruby (4.3.0-arm64-darwin)
377+
tailwindcss-ruby (4.3.0-x86_64-linux-gnu)
378+
tailwindcss-ruby (4.3.0-x86_64-linux-musl)
362379
thor (1.5.0)
380+
thread_safe (0.3.6)
363381
thruster (0.1.20)
364382
thruster (0.1.20-aarch64-linux)
365383
thruster (0.1.20-arm64-darwin)
@@ -376,6 +394,10 @@ GEM
376394
unicode-emoji (4.2.0)
377395
uri (1.1.1)
378396
useragent (0.16.11)
397+
virtus (2.0.0)
398+
axiom-types (~> 0.1)
399+
coercible (~> 1.0)
400+
descendants_tracker (~> 0.0, >= 0.0.3)
379401
web-console (4.3.0)
380402
actionview (>= 8.0.0)
381403
bindex (>= 0.4.0)
@@ -401,6 +423,7 @@ PLATFORMS
401423
x86_64-linux-musl
402424

403425
DEPENDENCIES
426+
axe-core-capybara
404427
bcrypt (~> 3.1.7)
405428
bootsnap
406429
brakeman
@@ -429,7 +452,7 @@ DEPENDENCIES
429452
web-console
430453

431454
CHECKSUMS
432-
action_text-trix (2.1.18) sha256=3fdb83f8bff4145d098be283cdd47ac41caf5110bfa6df4695ed7127d7fb3642
455+
action_text-trix (2.1.19) sha256=7012f59421009cf284aa651294896414d653a61a2417c9b8714c8476d2f74009
433456
actioncable (8.1.3) sha256=e5bc7f75e44e6a22de29c4f43176927c3a9ce4824464b74ed18d8226e75a80f0
434457
actionmailbox (8.1.3) sha256=df7da474eaa0e70df4ed5a6fef66eb3b3b0f2dbf7f14518deee8d77f1b4aae59
435458
actionmailer (8.1.3) sha256=831f724891bb70d0aaa4d76581a6321124b6a752cb655c9346aae5479318448d
@@ -443,6 +466,9 @@ CHECKSUMS
443466
activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e
444467
addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
445468
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
469+
axe-core-api (4.11.3) sha256=f5f6e802743644a50e2d8ef24c22aefbb6df49dd169024ff0144b47f37e652ba
470+
axe-core-capybara (4.11.3) sha256=8e03f07ace2af0a492990cb374387e605bbd27ec0a834291a09833fbef86fbc9
471+
axiom-types (0.1.1) sha256=c1ff113f3de516fa195b2db7e0a9a95fd1b08475a502ff660d04507a09980383
446472
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
447473
bcrypt (3.1.22) sha256=1f0072e88c2d705d94aff7f2c5cb02eb3f1ec4b8368671e19112527489f29032
448474
bcrypt_pbkdf (1.1.2) sha256=c2414c23ce66869b3eb9f643d6a3374d8322dfb5078125c82792304c10b94cf6
@@ -453,15 +479,18 @@ CHECKSUMS
453479
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
454480
bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9
455481
capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef
482+
coercible (1.0.0) sha256=5081ad24352cc8435ce5472bc2faa30260c7ea7f2102cc6a9f167c4d9bffaadc
456483
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
457484
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
458485
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
459486
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
460487
debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
488+
descendants_tracker (0.0.4) sha256=e9c41dd4cfbb85829a9301ea7e7c48c2a03b26f09319db230e6479ccdc780897
461489
dotenv (3.2.0) sha256=e375b83121ea7ca4ce20f214740076129ab8514cd81378161f11c03853fe619d
462490
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
491+
dumb_delegator (1.1.0) sha256=1ad255e5b095a2206a574c62b40c678f3d5c9151f1b3d0bae1b0463f7e40188e
463492
ed25519 (1.4.0) sha256=16e97f5198689a154247169f3453ef4cfd3f7a47481fde0ae33206cdfdcac506
464-
erb (6.0.3) sha256=e43685a8a0a0ea6a924871b2162e8953ef73147ce46b75b36d1f6774fd286e91
493+
erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9
465494
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
466495
et-orbi (1.4.0) sha256=6c7e3c90779821f9e3b324c5e96fda9767f72995d6ae435b96678a4f3e2de8bc
467496
faker (3.8.0) sha256=c147b308df73a90f27a4fc84f18d4c22ef0ad9c2a64b2b61c86fd0ca71753efc
@@ -475,12 +504,13 @@ CHECKSUMS
475504
fugit (1.12.1) sha256=5898f478ede9b415f0804e42b8f3fd53f814bd85eebffceebdbc34e1107aaf68
476505
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
477506
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
507+
ice_nine (0.11.2) sha256=5d506a7d2723d5592dc121b9928e4931742730131f22a1a37649df1c1e2e63db
478508
image_processing (1.14.0) sha256=754cc169c9c262980889bec6bfd325ed1dafad34f85242b5a07b60af004742fb
479509
importmap-rails (2.2.3) sha256=7101be2a4dc97cf1558fb8f573a718404c5f6bcfe94f304bf1f39e444feeb16a
480510
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
481-
irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
511+
irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
482512
jbuilder (2.14.1) sha256=4eb26376ff60ef100cb4fd6fd7533cd271f9998327e86adf20fd8c0e69fabb42
483-
json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646
513+
json (2.19.5) sha256=218a18553e4801d579ca7e0f5bc72bafd776d7397238a1fb4e74db5b0a812c59
484514
kamal (2.11.0) sha256=1408864425e0dec7e0a14d712a3b13f614e9f3a425b7661d3f9d287a51d7dd75
485515
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
486516
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
@@ -491,25 +521,25 @@ CHECKSUMS
491521
matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b
492522
mini_magick (5.3.1) sha256=29395dfd76badcabb6403ee5aff6f681e867074f8f28ce08d78661e9e4a351c4
493523
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
494-
minitest (6.0.4) sha256=df1304664589d40f46089247fdc451f866b0ce0d7cae1457a15fc1eb7d48dca1
524+
minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
495525
msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732
496-
net-imap (0.6.3) sha256=9bab75f876596d09ee7bf911a291da478e0cd6badc54dfb82874855ccc82f2ad
526+
net-imap (0.6.4) sha256=9a5598c67a3022c284d98430ef1d4948e7dbdb62596f61081ea8ca933270a02b
497527
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
498528
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
499529
net-scp (4.1.0) sha256=a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d
500530
net-sftp (4.0.0) sha256=65bb91c859c2f93b09826757af11b69af931a3a9155050f50d1b06d384526364
501531
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
502532
net-ssh (7.3.2) sha256=65029e213c380e20e5fd92ece663934ab0a0fe888e0cd7cc6a5b664074362dd4
503533
nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
504-
nokogiri (1.19.2-aarch64-linux-gnu) sha256=c34d5c8208025587554608e98fd88ab125b29c80f9352b821964e9a5d5cfbd19
505-
nokogiri (1.19.2-aarch64-linux-musl) sha256=7f6b4b0202d507326841a4f790294bf75098aef50c7173443812e3ac5cb06515
506-
nokogiri (1.19.2-arm-linux-gnu) sha256=b7fa1139016f3dc850bda1260988f0d749934a939d04ef2da13bec060d7d5081
507-
nokogiri (1.19.2-arm-linux-musl) sha256=61114d44f6742ff72194a1b3020967201e2eb982814778d130f6471c11f9828c
508-
nokogiri (1.19.2-arm64-darwin) sha256=58d8ea2e31a967b843b70487a44c14c8ba1866daa1b9da9be9dbdf1b43dee205
509-
nokogiri (1.19.2-x86_64-linux-gnu) sha256=fa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f
510-
nokogiri (1.19.2-x86_64-linux-musl) sha256=93128448e61a9383a30baef041bf1f5817e22f297a1d400521e90294445069a8
534+
nokogiri (1.19.3-aarch64-linux-gnu) sha256=46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639
535+
nokogiri (1.19.3-aarch64-linux-musl) sha256=8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7
536+
nokogiri (1.19.3-arm-linux-gnu) sha256=3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f
537+
nokogiri (1.19.3-arm-linux-musl) sha256=9ce1cb6346bb9c67b1550eb537aa183ead91e4b6eadb2f36ade02d8dd2a79fb6
538+
nokogiri (1.19.3-arm64-darwin) sha256=71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42
539+
nokogiri (1.19.3-x86_64-linux-gnu) sha256=2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976
540+
nokogiri (1.19.3-x86_64-linux-musl) sha256=248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f
511541
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
512-
parallel (2.0.1) sha256=337782d3e39f4121e67563bf91dd8ece67f48923d90698614773a0ec9a5b2c7d
542+
parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
513543
parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
514544
pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
515545
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
@@ -537,13 +567,13 @@ CHECKSUMS
537567
rubocop (1.86.1) sha256=44415f3f01d01a21e01132248d2fd0867572475b566ca188a0a42133a08d4531
538568
rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035
539569
rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
540-
rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2
570+
rubocop-rails (2.35.0) sha256=a5d9f0f6c6d9b73d9ddd181c4c0b6d2e00dd17107480828d31c7b369ebfcd49c
541571
rubocop-rails-omakase (1.1.0) sha256=2af73ac8ee5852de2919abbd2618af9c15c19b512c4cfc1f9a5d3b6ef009109d
542572
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
543573
ruby-vips (2.3.0) sha256=e685ec02c13969912debbd98019e50492e12989282da5f37d05f5471442f5374
544-
rubyzip (3.2.2) sha256=c0ed99385f0625415c8f05bcae33fe649ed2952894a95ff8b08f26ca57ea5b3c
574+
rubyzip (3.3.0) sha256=a372fc67892a4f8c0bc8ec906b720353d8e48807a64b2e63adf99b1e3583a034
545575
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
546-
selenium-webdriver (4.43.0) sha256=a634377b964b701c6ac0a009ce3a08fa34ec1e1e7fe9a6d57e3088d14529a65c
576+
selenium-webdriver (4.44.0) sha256=6f1df072529af369589c46f0e01132952aabb250cfd683c274d74dc1eb5d8477
547577
solid_cable (3.0.12) sha256=a168a54731a455d5627af48d8441ea3b554b8c1f6e6cd6074109de493e6b0460
548578
solid_cache (1.0.10) sha256=bc05a2fb3ac78a6f43cbb5946679cf9db67dd30d22939ededc385cb93e120d41
549579
solid_queue (1.4.0) sha256=e6a18d196f0b27cb6e3c77c5b31258b05fb634f8ed64fb1866ed164047216c2a
@@ -558,13 +588,14 @@ CHECKSUMS
558588
stimulus-rails (1.3.4) sha256=765676ffa1f33af64ce026d26b48e8ffb2e0b94e0f50e9119e11d6107d67cb06
559589
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
560590
tailwindcss-rails (4.4.0) sha256=efa2961351a52acebe616e645a81a30bb4f27fde46cc06ce7688d1cd1131e916
561-
tailwindcss-ruby (4.2.2) sha256=ce66da7b01fb6ef1ad6485b4b8c3476fac959f3324894fd26ec7c67ab3996d30
562-
tailwindcss-ruby (4.2.2-aarch64-linux-gnu) sha256=8656621046bb54c9c368cd1d2f03f7bfaf6046a4fe7060c574b9958043f1deeb
563-
tailwindcss-ruby (4.2.2-aarch64-linux-musl) sha256=3dbaa653a5e9cddbb6bc73598a566d7172a91724463000cd594624dfe5b0eaec
564-
tailwindcss-ruby (4.2.2-arm64-darwin) sha256=2d66feba0c1ffca5b79246bd881bfb9a6b2298d57c4bc83ee3a8c3233df79d41
565-
tailwindcss-ruby (4.2.2-x86_64-linux-gnu) sha256=7f5e7cdd697ff25600d684cedb4df4a56736633c231ee03c7148992c62fd228f
566-
tailwindcss-ruby (4.2.2-x86_64-linux-musl) sha256=676b802dafc677983d471f3acf2dddbddea4e978ea0300bfa21ebd6ab167d6a8
591+
tailwindcss-ruby (4.3.0) sha256=4fd3219d97419d2b4f8c0f52c8a73972e55e29a0e0da38fb5fe8a16bf1a68b51
592+
tailwindcss-ruby (4.3.0-aarch64-linux-gnu) sha256=e43b94aba29785bba71b5868bab29b63ae48911fee038b2b5e9e5148baca3886
593+
tailwindcss-ruby (4.3.0-aarch64-linux-musl) sha256=ae2aff1e8482a9ba8723b57fbfa50cbf009788587ca9763f00489f3c5639e6ef
594+
tailwindcss-ruby (4.3.0-arm64-darwin) sha256=828f49ddb3f19f67b36a1c5cb5c25175f7c93619a2ecf66e95d74408db9b73fd
595+
tailwindcss-ruby (4.3.0-x86_64-linux-gnu) sha256=0d1b0f491990c735d2f7bf5dbaedf33ddc635fd800b7244b39b30b25a8616cb2
596+
tailwindcss-ruby (4.3.0-x86_64-linux-musl) sha256=71e83a3f5f40e1cd7c28e7e6328a9c899cb2c0c98f6b42f29de968fff221ef75
567597
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
598+
thread_safe (0.3.6) sha256=9ed7072821b51c57e8d6b7011a8e282e25aeea3a4065eab326e43f66f063b05a
568599
thruster (0.1.20) sha256=c05f2fbcae527bbe093a6e6d84fb12d9d680617e7c162325d9b97e8e9d4b5201
569600
thruster (0.1.20-aarch64-linux) sha256=754f1701061235235165dde31e7a3bc87ec88066a02981ff4241fcda0d76d397
570601
thruster (0.1.20-arm64-darwin) sha256=630cf8c273f562063b92ea5ccd7a721d7ba6130cc422c823727f4744f6d0770e
@@ -577,6 +608,7 @@ CHECKSUMS
577608
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
578609
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
579610
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
611+
virtus (2.0.0) sha256=8841dae4eb7fcc097320ba5ea516bf1839e5d056c61ee27138aa4bddd6e3d1c2
580612
web-console (4.3.0) sha256=e13b71301cdfc2093f155b5aa3a622db80b4672d1f2f713119cc7ec7ac6a6da4
581613
websocket (1.2.11) sha256=b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737
582614
websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962

app/views/layouts/application.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html>
2+
<html lang="en">
33
<head>
44
<title><%= content_for(:title) || "Endsideout" %></title>
55
<meta name="viewport" content="width=device-width,initial-scale=1">
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require "test_helper"
2+
require "axe-capybara"
3+
require "axe/matchers/be_axe_clean"
4+
5+
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
6+
driven_by :selenium, using: :headless_firefox, screen_size: [ 1400, 1400 ]
7+
8+
def assert_accessible
9+
matcher = Axe::Matchers::BeAxeClean.new
10+
audit = matcher.audit(page)
11+
assert audit.passed?, audit.failure_message
12+
end
13+
end
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
require "application_system_test_case"
2+
3+
class StudentAccessibilityTest < ApplicationSystemTestCase
4+
test "student can login from classroom roster and home page is accessible" do
5+
student = students(:ada)
6+
classroom = classrooms(:one)
7+
8+
# Visit classroom roster
9+
visit classroom_roster_path(uuid: classroom.uuid)
10+
11+
# Check accessibility of the roster page
12+
assert_accessible
13+
14+
# Login as student by clicking their name
15+
click_on student.full_name
16+
17+
# Verify we are on the student home page
18+
assert_selector "h1", text: "Welcome to EndsideOut"
19+
20+
# Check accessibility of the home page
21+
assert_accessible
22+
end
23+
end

0 commit comments

Comments
 (0)