mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-11-23 21:02:09 +00:00
Use Equal Access to checl whole site
This commit is contained in:
parent
a3aa0fbaaf
commit
2f8e5d8a4d
4 changed files with 79 additions and 4 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -11,3 +11,4 @@ public/
|
||||||
public_*/
|
public_*/
|
||||||
.hugo_build.lock
|
.hugo_build.lock
|
||||||
csv/webrings.csv
|
csv/webrings.csv
|
||||||
|
results/
|
||||||
|
|
11
Makefile
11
Makefile
|
@ -43,8 +43,13 @@ lint-css: $(CSS_DIR)/*.css
|
||||||
pnpm -s dlx stylelint --config linter-configs/stylelintrc.json --di --rd --rdd $(CSS_DIR)/*.css
|
pnpm -s dlx stylelint --config linter-configs/stylelintrc.json --di --rd --rdd $(CSS_DIR)/*.css
|
||||||
@#csslint --quiet $(CSS_DIR)
|
@#csslint --quiet $(CSS_DIR)
|
||||||
|
|
||||||
.PHONY: lint-html
|
.PHONY: validate-json
|
||||||
lint-html:
|
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
|
$(VNU) --stdout --format json --skip-non-html --also-check-svg $(OUTPUT_DIR) | sh scripts/filter-vnu.sh
|
||||||
|
|
||||||
.PHONY: hint
|
.PHONY: hint
|
||||||
|
@ -53,7 +58,7 @@ hint: hugo .hintrc-local
|
||||||
rm .hintrc-local
|
rm .hintrc-local
|
||||||
|
|
||||||
.PHONY: lint-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
|
# dev server, includes future and draft posts
|
||||||
.PHONY: serve
|
.PHONY: serve
|
||||||
|
|
|
@ -19,12 +19,16 @@ hint-online:
|
||||||
hint --config linter-configs/hintrc -f codeframe $(URL)
|
hint --config linter-configs/hintrc -f codeframe $(URL)
|
||||||
lighthouse:
|
lighthouse:
|
||||||
mkdir -p $(CHROME_PROFILE)
|
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)
|
rm -rf $(CHROME_PROFILE)
|
||||||
redbot:
|
redbot:
|
||||||
redbot_cli -a $(URL)
|
redbot_cli -a $(URL)
|
||||||
axe:
|
axe:
|
||||||
axe $(URLS) --chrome-options $(CHROME_FLAGS_COMMA) --chromedriver-path=$(CHROMEDRIVER_PATH) --show-errors
|
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
|
all: lighthouse hint-online
|
||||||
|
|
||||||
|
|
65
scripts/bin/check-whole-site
Executable file
65
scripts/bin/check-whole-site
Executable 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
|
Loading…
Reference in a new issue