Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 26s
PR Checklist / pr-checklist (pull_request) Failing after 2m28s
Smoke Test / smoke (pull_request) Failing after 33s
Validate Config / YAML Lint (pull_request) Failing after 14s
Validate Config / JSON Validate (pull_request) Successful in 14s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 43s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Shell Script Lint (pull_request) Failing after 36s
Validate Config / Cron Syntax Check (pull_request) Successful in 7s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 11s
Validate Config / Playbook Schema Validation (pull_request) Successful in 30s
Architecture Lint / Lint Repository (pull_request) Failing after 28s
Add R5 skip navigation link template and supporting CSS to meet WCAG 2.4.1 Bypass Blocks (A).
- New template: deploy/gitea-a11y/custom/templates/custom/skip_link.tmpl
Provides a "Skip to main content" anchor as the first focusable element.
- Updated deploy/gitea-a11y/custom/public/css/a11y-fixes.css (V5):
Styles for .skip-link, visually hidden off-screen until focus.
- Updated README.md with R5 documentation and activation instructions.
- deploy-gitea-a11y.sh: include R5 in deployed fixes list.
Usage: Insert `{{template "custom/skip_link" .}}` immediately after <body> in custom/header.tmpl.
Targets #545. Part of STEP35 FREE BURN — Gitea-first a11y V1.
60 lines
2.0 KiB
Bash
60 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# deploy-gitea-a11y.sh — Deploy Gitea a11y fixes to the Forge VPS.
|
|
#
|
|
# Applies custom template overrides for WCAG 2.1 AA compliance fixes
|
|
# identified by the accessibility audit (#492).
|
|
#
|
|
# Fixes:
|
|
# R1: Password visibility toggle on sign-in (#551)
|
|
# R2: aria-required on required fields (#552)
|
|
# R3: aria-label on star/fork counts (#553)
|
|
# R4: <time> elements for relative timestamps (#554)
|
|
# R5: Skip navigation link for keyboard users (#545)
|
|
#
|
|
# Usage:
|
|
# bash deploy/gitea-a11y/deploy-gitea-a11y.sh [ssh-host]
|
|
#
|
|
# Prerequisites:
|
|
# - SSH access to the Gitea host
|
|
# - Gitea installed with custom/ directory writable
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
GITEA_HOST="${1:-root@forge.alexanderwhitestone.com}"
|
|
GITEA_CUSTOM="/var/lib/gitea/custom"
|
|
TEMPLATES_DIR="${SCRIPT_DIR}/custom/templates"
|
|
PUBLIC_DIR="${SCRIPT_DIR}/custom/public"
|
|
|
|
echo "=== Deploying Gitea a11y fixes to ${GITEA_HOST} ==="
|
|
|
|
# Upload templates
|
|
echo " [1/4] Uploading template overrides..."
|
|
rsync -avz --relative "${TEMPLATES_DIR}/" "${GITEA_HOST}:${GITEA_CUSTOM}/templates/"
|
|
|
|
# Upload public assets (if any)
|
|
if [ -d "${PUBLIC_DIR}" ] && [ "$(ls -A ${PUBLIC_DIR} 2>/dev/null)" ]; then
|
|
echo " [2/4] Uploading public assets..."
|
|
rsync -avz --relative "${PUBLIC_DIR}/" "${GITEA_HOST}:${GITEA_CUSTOM}/public/"
|
|
else
|
|
echo " [2/4] No public assets to upload"
|
|
fi
|
|
|
|
# Set permissions
|
|
echo " [3/4] Setting permissions..."
|
|
ssh "${GITEA_HOST}" "chown -R gitea:gitea ${GITEA_CUSTOM}/templates/ ${GITEA_CUSTOM}/public/ 2>/dev/null || true"
|
|
|
|
# Restart Gitea to pick up template changes
|
|
echo " [4/4] Restarting Gitea..."
|
|
ssh "${GITEA_HOST}" "systemctl restart gitea"
|
|
|
|
echo ""
|
|
echo "=== Deployed ==="
|
|
echo " R1: Password toggle on /user/sign_in"
|
|
echo " R2: aria-required on required fields"
|
|
echo " R3: aria-label on star/fork counts"
|
|
echo " R4: <time> elements on timestamps"
|
|
echo " R5: Skip navigation link (WCAG 2.4.1)"
|
|
echo ""
|
|
echo "Verify at: https://forge.alexanderwhitestone.com/user/sign_in"
|