Skip to content

Commit

Permalink
Improved a11y specs (#17)
Browse files Browse the repository at this point in the history
* Improve a11y specs for each page is its own spec

* Recorg the _config a bit

* Update .gitignore

* Update lockfile

* Some basic docs

* add badge to README

* update docs

* document RSPEC_CONFIG_FILE= option...

* Add a ruby-version

* bump to ruby 3.2.4

* Add a .tool-versions file

* Add a github codespace

* Add platform for CI

* Run bundle install

* Update .tool-versions to ruby 3.3.0

* Run bundle update

* Run rubocop autocorrect

* Fix rubocop error by adding reason for skipping test

* Install rackup gem, comment out `jekyll_app.compiling?` since the method doesn't exist anymore for some reason

In rack v3 rack/handler is removed and put in a separate gem, rackup: https://stackoverflow.com/questions/75088199/require-cannot-load-such-file-rack-handler-loaderror

NOTE: rack-jekyll gem is archived https://github.com/adaoraul/rack-jekyll/tree/master
Maybe when changing dependency versions the `compiling?` method became lost?

* Add `/` to end of labs, hw, projects permalinks so they are included in accessibility checks

* Add baseurl to site_url so that it loads the site properly in accessibility tests

* Try to fix CI

* Specify rack-jekyll >= 0.5.0 so compiling? method exists

This is probably a temporary fix because rack-jekyll is no longer maintained :(

Should probably look into this instead so we can use newer versions of rack: https://nts.strzibny.name/how-to-test-static-sites-with-rspec-capybara-and-webkit/

* Fix TODO(setup) items in _config.yml

* Fix typos in a11y.md, delete docs/DELETEME

* Rename devocontainer.json to devcontainer.json

---------

Co-authored-by: Rebecca Phuonghanh Dang <rdang@berkeley.edu>
  • Loading branch information
cycomachead and phrdang authored Jun 19, 2024
1 parent 50ed272 commit dbeae89
Show file tree
Hide file tree
Showing 12 changed files with 491 additions and 41 deletions.
31 changes: 31 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"name": "Jekyll",
"image": "mcr.microsoft.com/devcontainers/jekyll:latest",

"features": {},

"forwardPorts": [
4000,
35729
],

"postCreateCommand": "sh .devcontainer/post-create.sh",

"customizations": {
"codespaces": {
"openFiles": [
"README.md",
"index.md"
]
},
"vscode": {
"settings": {},
"extensions": [
"ms-ruby.ruby",
"kargware.vscode-extension-jekyll-kw",
"rebornix.ruby",
"deque-systems.vscode-axe-linter"
]
}
}
}
20 changes: 20 additions & 0 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/sh

# Install the version of Ruby specified in .ruby-version.
if [ -f .ruby-version ]; then
rvm install -s ruby-$(cat .ruby-version)
rvm use $(cat .ruby-version)
fi

# Install the version of Bundler.
if [ -f Gemfile.lock ] && grep "BUNDLED WITH" Gemfile.lock > /dev/null; then
cat Gemfile.lock | tail -n 2 | grep -C2 "BUNDLED WITH" | tail -n 1 | xargs gem install bundler -v
fi

# If there's a Gemfile, then run `bundle install`
# It's assumed that the Gemfile will install Jekyll too
if [ -f Gemfile ]; then
bundle install
fi

bundle exec jekyll serve --force-polling
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
_site/

.DS_Store
*~
*.gem

.bundle/
.jekyll-cache/
.jekyll-metadata
.sass-cache/
Gemfile.lock
_site/

node_modules/
vendor/
tmp/
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ruby 3.3.0
3 changes: 2 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ group :development, :test do
gem 'axe-core-capybara'
gem 'axe-core-rspec'
gem 'capybara'
gem 'rack-jekyll'
gem 'rack-jekyll', '>= 0.5.0'
gem 'rackup'
gem 'rspec'
gem 'selenium-webdriver'
end
Expand Down
215 changes: 215 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
ast (2.4.2)
axe-core-api (4.9.1)
dumb_delegator
virtus
axe-core-capybara (4.9.1)
axe-core-api (= 4.9.1)
dumb_delegator
axe-core-rspec (4.9.1)
axe-core-api (= 4.9.1)
dumb_delegator
virtus
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
base64 (0.2.0)
bigdecimal (3.1.8)
capybara (3.40.0)
addressable
matrix
mini_mime (>= 0.1.3)
nokogiri (~> 1.11)
rack (>= 1.6.0)
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
colorator (1.1.0)
concurrent-ruby (1.3.3)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
diff-lcs (1.5.1)
dumb_delegator (1.0.0)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.27.1-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.27.1-x86_64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.27.1-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.5)
concurrent-ruby (~> 1.0)
ice_nine (0.11.2)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.7.2)
just-the-docs (0.8.2)
jekyll (>= 3.8.5)
jekyll-include-cache
jekyll-seo-tag (>= 2.0)
rake (>= 12.3.1)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
language_server-protocol (3.17.0.3)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
matrix (0.4.2)
mercenary (0.4.0)
mini_mime (1.1.5)
nokogiri (1.16.6-arm64-darwin)
racc (~> 1.4)
nokogiri (1.16.6-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.16.6-x86_64-linux)
racc (~> 1.4)
parallel (1.25.1)
parser (3.3.3.0)
ast (~> 2.4.1)
racc
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.1.1)
racc (1.8.0)
rack (1.6.13)
rack-jekyll (0.5.0)
jekyll (>= 1.3)
listen (>= 1.3)
rack (~> 1.5)
rack-test (2.1.0)
rack (>= 1.3)
rackup (1.0.0)
rack (< 3)
webrick
rainbow (3.1.1)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
regexp_parser (2.9.2)
rexml (3.3.0)
strscan
rouge (4.3.0)
rspec (3.13.0)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.0)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.1)
rubocop (1.64.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.31.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.31.3)
parser (>= 3.3.1.0)
rubocop-rspec (3.0.1)
rubocop (~> 1.61)
ruby-progressbar (1.13.0)
rubyzip (2.3.2)
safe_yaml (1.0.5)
sass-embedded (1.77.5-arm64-darwin)
google-protobuf (>= 3.25, < 5.0)
sass-embedded (1.77.5-x86_64-darwin)
google-protobuf (>= 3.25, < 5.0)
sass-embedded (1.77.5-x86_64-linux-gnu)
google-protobuf (>= 3.25, < 5.0)
selenium-webdriver (4.21.1)
base64 (~> 0.2)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
thread_safe (0.3.6)
unicode-display_width (2.5.0)
virtus (2.0.0)
axiom-types (~> 0.1)
coercible (~> 1.0)
descendants_tracker (~> 0.0, >= 0.0.3)
webrick (1.8.1)
websocket (1.2.10)
xpath (3.2.0)
nokogiri (~> 1.8)

PLATFORMS
arm64-darwin-23
x86_64-darwin-23
x86_64-linux

DEPENDENCIES
axe-core-capybara
axe-core-rspec
capybara
jekyll-sitemap
just-the-docs
kramdown-parser-gfm
rack-jekyll (>= 0.5.0)
rackup
rspec
rubocop
rubocop-rspec
selenium-webdriver
webrick

BUNDLED WITH
2.4.18
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Berkeley Class Site

[![a11y specs](https://github.com/berkeley-eecs/berkeley-class-site/actions/workflows/rspec.yml/badge.svg)](https://github.com/berkeley-eecs/berkeley-class-site/actions/workflows/rspec.yml)

A template for UC Berkeley class websites (with a focus on EECS/CS/DS courses).

## Installation
Expand Down
Loading

0 comments on commit dbeae89

Please sign in to comment.