Compare commits
1 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
a25077dea7 |
|
|
@ -46,6 +46,66 @@ sequence would have implied more.
|
||||||
|
|
||||||
## Entries
|
## Entries
|
||||||
|
|
||||||
|
### 2026-08-18 — Batch 11 closed without a line of code, and a browser found what twenty issues had not
|
||||||
|
|
||||||
|
Batch 11's four issues were all viewport claims. **All four were false**, and
|
||||||
|
this time they were disproved by rendering the site rather than by reading it.
|
||||||
|
|
||||||
|
| # | claim | measured |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 195 | dropdowns clip on constrained viewports | **no clipping ancestor exists** — walked every ancestor, all `overflow: visible`. At 768px the Industries dropdown ends 95px clear of the edge |
|
||||||
|
| 196 | logo overlaps nav at 320px | text ends x=252, burger starts x=264 — a **12px gap**. No truncation, no horizontal scroll |
|
||||||
|
| 197 | no image fallbacks, users see broken placeholders | every image 200, **zero broken** after a full scroll, CLS 0.008 against a 0.1 threshold, LCP 220ms |
|
||||||
|
| 198 | click handler misses nested children | `e.target.closest('a')` **already is** delegation; the listener is on `document` |
|
||||||
|
|
||||||
|
#196 also conflated two unrelated elements — `w-[85vw] max-w-[300px]` is the
|
||||||
|
mobile Sheet panel, not the header.
|
||||||
|
|
||||||
|
**Running total across Batches 10 and 11: three of ten were real.** Seven
|
||||||
|
misstated their own evidence, and two of those would have made the site worse
|
||||||
|
if actioned.
|
||||||
|
|
||||||
|
**So I built the thing that should have existed first.** `scripts/qa-browser.mjs`
|
||||||
|
drives real Chromium at real viewports and measures horizontal scroll, broken
|
||||||
|
images, elements past the right edge, CLS and LCP.
|
||||||
|
|
||||||
|
**On its first production run it found two defects none of the twenty had
|
||||||
|
noticed**, and both were real:
|
||||||
|
|
||||||
|
- **#214 (P1)** — at exactly 768px, iPad portrait, the header's *Request
|
||||||
|
Consultation* CTA measured x 676-778 against a 768px viewport. Ten pixels
|
||||||
|
sliced off, invisible because `overflow-x: hidden` suppresses the scrollbar,
|
||||||
|
and unreachable because the burger menu is already hidden at that width. The
|
||||||
|
primary conversion action, cut off on one of the most common tablet viewports
|
||||||
|
there is.
|
||||||
|
- **#215 (P2)** — Google's reCAPTCHA iframe is a fixed 304px. At 320px it ran
|
||||||
|
25px past the edge, clipping the branding and the privacy links.
|
||||||
|
|
||||||
|
Both fixed, released as **v0.9.5**, deployed, and verified live: the CTA now
|
||||||
|
636-752 at 768px, the widget 41-299 at 320px, and `qa-browser.mjs` reports
|
||||||
|
nothing across five pages at five viewports.
|
||||||
|
|
||||||
|
**The tool lied to me twice before I trusted it**, which is the part worth
|
||||||
|
keeping. It reported a healthy lazy-loaded badge as broken at three viewports —
|
||||||
|
a coarse scroll outrunning the intersection observer — and its own argument
|
||||||
|
parser swallowed `320` as a path when `--paths` preceded `--viewports`. Both
|
||||||
|
found and fixed by checking its output against reality before believing it. A
|
||||||
|
checker that cries wolf is how the next real finding gets ignored, and this one
|
||||||
|
nearly started its life doing exactly that.
|
||||||
|
|
||||||
|
- **Closed:** #195, #196, #197, #198 (no change required, each with the
|
||||||
|
measurement), **Batch 11 milestone**; then #214, #215 and the new **Batch 16**
|
||||||
|
milestone, both fixed and shipped. Two releases and two deploys today, no
|
||||||
|
rollbacks.
|
||||||
|
- **Next action:** Batch 12 — the eleven content and SEO issues (#199–#209).
|
||||||
|
These are copy judgements measured against `docs/design/REDESIGN_REVIEW.md`,
|
||||||
|
not measurable claims, so the browser tool does not help. Expect the same hit
|
||||||
|
rate and read each against the positioning document before rewriting anything.
|
||||||
|
- **Blockers:** none on the work. Six issues wait on the site owner (#68, #110,
|
||||||
|
#162, #213 in Batch 13; #69, #70 in Batch 14). **#211 is still the real
|
||||||
|
exposure**: the lead database has one backup copy, on one workstation, with no
|
||||||
|
schedule — four dumps taken today, all in the same place.
|
||||||
|
|
||||||
### 2026-08-18 — v0.9.4 released and deployed. Production is on a number
|
### 2026-08-18 — v0.9.4 released and deployed. Production is on a number
|
||||||
|
|
||||||
The first release and the first deploy this project has ever made through a
|
The first release and the first deploy this project has ever made through a
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue