1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-12-24 01:42:10 +00:00

Use Equal Access to checl whole site

This commit is contained in:
Rohan Kumar 2022-06-15 19:43:01 -07:00
parent a3aa0fbaaf
commit 2f8e5d8a4d
No known key found for this signature in database
GPG key ID: 1E892DB2A5F84479
4 changed files with 79 additions and 4 deletions

1
.gitignore vendored
View file

@ -11,3 +11,4 @@ public/
public_*/
.hugo_build.lock
csv/webrings.csv
results/

View file

@ -43,8 +43,13 @@ lint-css: $(CSS_DIR)/*.css
pnpm -s dlx stylelint --config linter-configs/stylelintrc.json --di --rd --rdd $(CSS_DIR)/*.css
@#csslint --quiet $(CSS_DIR)
.PHONY: lint-html
lint-html:
.PHONY: validate-json
validate-json:
jq -reM '""' $(OUTPUT_DIR)/manifest.min.*.webmanifest 1>/dev/null
jq -reM '""' $(OUTPUT_DIR)/webfinger.json 1>/dev/null
.PHONY: validate-html
validate-html:
$(VNU) --stdout --format json --skip-non-html --also-check-svg $(OUTPUT_DIR) | sh scripts/filter-vnu.sh
.PHONY: hint
@ -53,7 +58,7 @@ hint: hugo .hintrc-local
rm .hintrc-local
.PHONY: lint-local
lint-local: lint-css lint-html
lint-local: validate-html validate-json lint-css
# dev server, includes future and draft posts
.PHONY: serve

View file

@ -19,12 +19,16 @@ hint-online:
hint --config linter-configs/hintrc -f codeframe $(URL)
lighthouse:
mkdir -p $(CHROME_PROFILE)
CHROME_PATH=$(CHROME_PATH) CHROME_PROFILE=$(CHROME_PROFILE) JS_FLAGS='' lighthouse $(URL) $(LIGHTHOUSE_ARGS)
CHROME_PATH=$(CHROME_PATH) CHROME_PROFILE=$(CHROME_PROFILE) JS_FLAGS='' lighthouse $(URLS) $(LIGHTHOUSE_ARGS)
rm -rf $(CHROME_PROFILE)
redbot:
redbot_cli -a $(URL)
axe:
axe $(URLS) --chrome-options $(CHROME_FLAGS_COMMA) --chromedriver-path=$(CHROMEDRIVER_PATH) --show-errors
equal-access:
@echo $(URLS) | tr ' ' '\n' >urls.txt
achecker --reportLevels violation,recommendation,potentialrecommendation urls.txt
rm urls.txt
all: lighthouse hint-online

65
scripts/bin/check-whole-site Executable file
View file

@ -0,0 +1,65 @@
#!/usr/bin/env dash
set -e -u
# the name of this program
progname="$(basename "${0}")"
help_text="Usage:
Validate the site's markup, CSS, and accessibility.
Uses xmllint to to check well-formedness and the Nu HTML Checker to
check (X)HTML5 and CSS validity on every markup file (inc. HTML, XHTML,
SVG). (xmllint is only relevant if you're using XML syntax).
Lints source CSS files with stylelint.
Uses both axe-core and the IBM Equal Access Checker to test
accessibility on every page in the sitemap.
Options:
-h Print this help and exit
-b Base URL of site
"
# TODO: add the following:
# - check broken internal links
# - check broken webring links
# - validate JSON (web app manifest, webfinger)
usage() {
printf '%s' "${help_text}"
}
# when the user passess bad args, send a msg to stderr and exit
# usage: bad_option <option> <reason>
bad_option() {
echo "${progname}: option ${1}: ${2}" >&2
usage >&2
exit 1
}
base_url='http://localhost:8089/'
while getopts "hb" flags; do
case ${flags} in
h)
usage
exit 0
;;
b)
base_url="$1"
shift
;;
*)
bad_option "${flags}" 'invalid option'
exit 1
;;
esac
done
make -j1 HUGO_FLAGS=-DF HUGO_BASEURL="$base_url" clean hugo xhtmlize lint-html
make -j2 -f Makefile.online lint-css axe equal-access URLS="$(curl "$base_url/sitemap.xml" | htmlq loc -t | rg -v '/search/$' | tr '\n' ' ')"
# vi:ft=sh