Files
timmy-config/deploy/gitea-a11y/README.md
Timmy Step35 66ec525d10
Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 30s
PR Checklist / pr-checklist (pull_request) Failing after 4m33s
Smoke Test / smoke (pull_request) Failing after 19s
Validate Config / YAML Lint (pull_request) Failing after 13s
Validate Config / JSON Validate (pull_request) Successful in 12s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 53s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Shell Script Lint (pull_request) Failing after 1m5s
Validate Config / Cron Syntax Check (pull_request) Successful in 14s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 16s
Validate Config / Playbook Schema Validation (pull_request) Successful in 29s
Architecture Lint / Lint Repository (pull_request) Failing after 23s
docs(a11y): mark R1 password visibility toggle resolved (#551)
The fix is present on main (deploy/gitea-a11y/custom/templates/user/auth/signin_inner.tmpl).
Marking R1 as ✓ resolved in README table to close tracking.

Closes #551
2026-04-30 19:43:06 -04:00

65 lines
2.1 KiB
Markdown

# Gitea Accessibility Fixes
Custom template overrides for WCAG 2.1 AA compliance on the Timmy Foundation Forge.
Applied fixes identified by the accessibility audit (#492):
| Fix | Issue | WCAG | Description |
|-----|-------|------|-------------|
| R1 | #551 ✓ | Best Practice | Password visibility toggle (eye icon) on sign-in page — resolved |
| R2 | #552 | 3.3.1 | `aria-required="true"` on required form fields |
| R3 | #553 | 4.1.2 | `aria-label` on star/fork count links ("2 stars", "0 forks") |
| R4 | #554 | 1.3.1 | `<time datetime="...">` elements for relative timestamps |
## Structure
```
deploy/gitea-a11y/
├── deploy-gitea-a11y.sh # Deployment script
├── README.md
└── custom/
├── public/
│ ├── css/
│ └── js/
└── templates/
├── custom/
│ └── time_relative.tmpl # R4: <time> helper
├── repo/
│ └── list_a11y.tmpl # R3: aria-label on counts
└── user/auth/
└── signin_inner.tmpl # R1+R2: password toggle + aria-required
```
## Deploy
```bash
bash deploy/gitea-a11y/deploy-gitea-a11y.sh
# or to a specific host:
bash deploy/gitea-a11y/deploy-gitea-a11y.sh root@my-gitea-host.com
```
## Template Overrides
Gitea supports custom template overrides by placing files in `custom/templates/`.
The templates here override the default Gitea templates with a11y improvements.
### R1: Password Visibility Toggle
Adds an eye icon (👁) button next to the password field that toggles between
`type="password"` and `type="text"`. Updates `aria-label` dynamically.
### R2: aria-required
Adds `aria-required="true"` to the username and password inputs, which
properly communicates required state to screen readers.
### R3: Star/Fork aria-label
Wraps star and fork count links with `aria-label="2 stars"` so screen
readers announce the meaning, not just the number.
### R4: `<time>` Elements
Wraps relative timestamps ("2 minutes ago") in `<time datetime="2026-04-13T17:00:00Z">`
providing both human-readable text and machine-readable ISO 8601 dates.