diff --git a/apps/pwa/e2e/layout.spec.ts b/apps/pwa/e2e/layout.spec.ts new file mode 100644 index 0000000..063eb6f --- /dev/null +++ b/apps/pwa/e2e/layout.spec.ts @@ -0,0 +1,261 @@ +/** + * layout.spec.ts — TEST-01 + * + * Cross-route structural quality-bar assertions (UI-SPEC Rules 1-4): + * Rule 1: Touch-target minimum ≥44×44px (FAB ≥56×56px) + * Rule 2: No horizontal overflow (scrollWidth ≤ clientWidth) + * Rule 3: Critical elements visible and in-viewport on initial load + * Rule 4: Accessible names on all interactive elements (role+name locators) + * + * Runs on both device profiles automatically (playwright.config.ts matrix): + * iphone: iPhone 14 / WebKit / 390×844 + * pixel: Pixel 7 / Chromium / 412×915 + * + * STRICT-MODE NOTE: + * On mobile viewports (≤767px), AppNav renders PhoneNav as a
element + * (NOT a nav landmark) — it does NOT expose a navigation landmark. BottomTabBar + * renders the sole