Skip to content

iPad touch fixes and automated iPad/WebKit acceptance pass - #279

Merged
dknauss merged 2 commits into
mainfrom
claude/project-thread-3p03if
Nov 2, 2026
Merged

dknauss merged 2 commits into
mainfrom
claude/project-thread-3p03if

Conversation

@dknauss

@dknauss dknauss commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Requested by Dan · project thread

Summary

Automated half of the v1.11 iPad, touch and VoiceOver acceptance pass, plus three iPad fixes it turned up.

  • iPad Safari zoomed the page on focus. At 783px and wider (every iPad except the mini upright) the rename field was 13px and dialog fields 14px. iPadOS zooms below 16px, throwing the toolbar and dialogs off screen as the keyboard opens. Touch screens (pointer: coarse) now get 16px fields at every width.
  • Toolbar buttons were 36px tall on iPads. Now 44px tall on touch screens. Width stays 40px so a 1024px iPad's toolbar keeps one row (44px wide wrapped one button onto a second row).
  • Width edge handle was 8px wide. On touch screens the hit area is 24px, reaching over the page rather than the menu rows; the painted strip is unchanged. A drag now starts from where the pointer lands instead of jumping the edge to it (also removes a 4px jump with a mouse).
  • New tests/e2e/ipad-acceptance.spec.ts: the checklist's iPad items at iPad mini portrait, iPad Air portrait and landscape with touch input, a mobile viewport and axe inside each dialog.
  • .planning/milestones/v1.11-ACCEPTANCE.md: automated results per item and a 7-step hardware script for what still needs a real iPad and VoiceOver.

Type of change

  • Bug fix
  • Feature
  • Documentation
  • Tooling / CI
  • Release / packaging

Verification

  • composer test:unit (no PHP changes)
  • composer lint
  • composer analyse:phpstan
  • npm run test:js
  • npm run check:doc-links
  • npm run test:php (CI)
  • npm run test:e2e: locally on WP 7.1.3 + SQLite, 273 passed. One fail is sandbox-only (shared-slug console check saw blocked gravatar requests); the cross-site import test was skipped (needs the second wp-env site).
  • bash bin/build.sh

Also ran the checklist flows in real WebKit (WebKitGTK 2.52 via WebDriver): 25 of 25 pass, including axe, WebKit's computed accessible names and roles, and the live-region text (one "Saved" per save; refused separator move speaks its reason).

Notes

  • Related: v1.11 acceptance (.planning/milestones/v1.11-ACCEPTANCE.md).
  • On the desktop layout (783px+), the Icons and Visibility popovers have no Close button by design and close on a tap outside. The hardware script asks Dan to check that VoiceOver's two-finger scrub closes them on iPad.

Generated by Claude Code

- Touch screens (pointer: coarse) get 16px text fields at every width, so
  iPadOS Safari no longer zooms the page when the rename field or a dialog
  field takes focus at 783px and wider.
- Toolbar buttons are 44px tall on touch screens at desktop widths (width
  stays 40px so a 1024px iPad keeps one row).
- The width edge handle's hit area is 24px on touch screens, reaching over
  the page, and a drag starts from where the pointer lands.
- New tests/e2e/ipad-acceptance.spec.ts runs the v1.11 iPad checklist at
  iPad mini/Air portrait and Air landscape with touch input and axe.
- v1.11-ACCEPTANCE.md records the automated results and a short hardware
  script for the remaining real-device and VoiceOver checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPtg9zUtukG2RUBsLEZJ8E
@dknauss dknauss self-assigned this Nov 2, 2026
…sories

GHSA-3g3m-2fjr-6pw4 (glob 9-14.0.1) and GHSA-g3hv-75wg-m249 (minimatch
< 11.0.1) reach the tree only through @wordpress/env > rimraf 5 > glob 10,
and fail the npm audit gate on main as well as here. rimraf 5 imports only
glob() and globSync(), which glob 14 keeps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPtg9zUtukG2RUBsLEZJ8E

dknauss commented Nov 2, 2026

Copy link
Copy Markdown
Owner Author

Dependency metadata + audits failed on two npm advisories published today, not on this PR's changes: GHSA-3g3m-2fjr-6pw4 (glob 9.0.0–14.0.1) and GHSA-g3hv-75wg-m249 (minimatch < 11.0.1). Both reach the tree only through @wordpress/env > rimraf 5 > glob 10, and the same lockfile is on main, so main fails this gate too.

1938097 ports the fix into this PR: it overrides glob to ^14.0.3, which brings in minimatch 11. rimraf 5 imports only glob() and globSync(), and glob 14 keeps both. I checked rimraf locally in both plain and glob mode, and npm run audit:npm reports no vulnerabilities. The override is documented in bin/audit-npm.mjs.


Generated by Claude Code

@dknauss
dknauss marked this pull request as ready for review November 2, 2026 20:59
@dknauss
dknauss merged commit 9921cb0 into main Nov 2, 2026
16 of 17 checks passed
@dknauss
dknauss deleted the claude/project-thread-3p03if branch November 2, 2026 20:59
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-02T21:00:50.460817Z 1938097 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants