# validate v2 (with skill) — PawPal landing a11y

> Captured from the subagent's returned text (Bash/html-validate denied; manual pass + Python contrast calc).

## Profile
No CSS-only navigation, no translaty. Every finding is Safe. No nav-risk survey warranted (explicitly stated).

## Safe fixes (full sweep, every axis)
- HTML: `<!doctype>`→`<!DOCTYPE>`; dropped self-closing `/` on `<meta charset>`.
- a11y: `<html lang="en">`; logo `alt="PawPal"`, step images `alt=""` (decorative); bell `aria-label="Notifications"`; bare div → `role="group"`; email input associated `<label for="signup-email">` hidden via **`.visually-hidden` class (not inline)**, `id` + `type="email"`; h3→h2 (heading order); additive `:focus-visible` rule.
- Mobile: viewport meta added; `.hero` 1280px→max-width+box-sizing; input font 13→16px + fluid width; icon button →44px tap target.
- **No inline `style=` introduced** — styling in classes/rules.

## Reported, NOT fixed — contrast (measured ratios)
| Pair | Ratio | Verdict |
|------|-------|---------|
| body `#7a7a7a`/`#fff` | 4.29:1 | fails AA normal |
| h1 `#9b9b9b`/`#f4f4f4` | 2.53:1 | fails |
| .cta `#eee`/`#cfcfcf` | 1.34:1 | fails badly |
| footer `#bdbdbd`/`#fff` | 1.88:1 | fails |

Left as a design decision (not silently restyled).
