diff --git a/.gitea/workflows/a11y.yml b/.gitea/workflows/a11y.yml index 7834d30..7799d7d 100644 --- a/.gitea/workflows/a11y.yml +++ b/.gitea/workflows/a11y.yml @@ -9,19 +9,37 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - - name: Validate ARIA Attributes in game.js + + - name: Validate ARIA attributes in JS run: | - echo "Checking game.js for ARIA attributes..." - grep -q "aria-label" game.js || (echo "ERROR: aria-label missing from game.js" && exit 1) - grep -q "aria-valuenow" game.js || (echo "ERROR: aria-valuenow missing from game.js" && exit 1) - grep -q "aria-pressed" game.js || (echo "ERROR: aria-pressed missing from game.js" && exit 1) - - - name: Validate ARIA Roles in index.html + echo "Checking js/*.js for ARIA attributes..." + MISSING=0 + for attr in aria-label aria-pressed; do + if ! grep -rq "$attr" js/*.js; then + echo "ERROR: $attr missing from js/*.js" + MISSING=1 + fi + done + if [ "$MISSING" -eq 0 ]; then + echo "PASS: ARIA attributes present in JS" + fi + exit $MISSING + + - name: Validate ARIA roles in index.html run: | echo "Checking index.html for ARIA roles..." - grep -q "role=" index.html || (echo "ERROR: No ARIA roles found in index.html" && exit 1) - - - name: Syntax Check JS + grep -q 'role=' index.html || (echo "ERROR: No ARIA roles found in index.html" && exit 1) + grep -q 'aria-label' index.html || (echo "ERROR: No aria-label found in index.html" && exit 1) + echo "PASS: ARIA roles and labels present in index.html" + + - name: Syntax check JS run: | - node -c game.js + echo "Running node -c on js/*.js..." + FAIL=0 + for f in js/*.js; do + node -c "$f" || FAIL=1 + done + if [ "$FAIL" -eq 0 ]; then + echo "PASS: All JS files parse" + fi + exit $FAIL