{
  "url": "https://beauty.hotpepper.jp",
  "auditedAt": "2026-07-19T04:32:09.138Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete report across seven representative paths. Real reservation submission was intentionally not performed; the flow was inspected through its coupon/menu entry and four-step structure.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered legacy MPA with jQuery and extensive third-party tags",
    "notes": "Public Japanese salon search and booking marketplace. Not covered: authenticated account internals, actual payment/booking submission, every salon/category, and destructive account actions."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "heap-summary",
    "lighthouse",
    "robots.txt",
    "sitemap.xml",
    "modern-web-guidance@0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "anchor-positioning-tab-underline",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "touch target size hover fallback pointer input focus-visible",
    "direct user attention primary action visual hierarchy task success",
    "forms",
    "accessible-error-announcement",
    "identify-inp-causes",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "color contrast WCAG text legibility",
    "move-dom-element-without-losing-state",
    "improve-text-layout-and-legibility",
    "avoid console errors uncaught exceptions",
    "css",
    "html",
    "page title meta description seo",
    "crawlable links viewport meta robots descriptive link text",
    "canonical hreflang http status robots sitemap noindex seo indexing",
    "structured data schema.org json-ld open graph social preview metadata",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "offline fallback service worker web app manifest installable pwa",
    "persistent-toast-notifications",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "custom-button-actions",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "memory leak retained heap growth under repeated interaction long single-page-app session",
    "bounded memory footprint javascript heap size page weight proportionate allocations",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "dom",
      "path": "evidence/404-probe.json",
      "caption": "404 probe",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/accessibility-platform-probe.json",
      "caption": "accessibility platform probe",
      "findingIds": [
        "F10",
        "F17",
        "F23"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/booking-desktop.png",
      "caption": "booking desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/booking-links.json",
      "caption": "booking links",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/booking-probe.json",
      "caption": "booking probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/capabilities.json",
      "caption": "capabilities",
      "findingIds": [
        "F32"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-consulted.tar.gz",
      "caption": "guidance consulted.tar",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": [
        "F33"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "findingIds": [
        "F25",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F15",
        "F21",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-links-forms.json",
      "caption": "home links forms",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F04",
        "F19"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F08",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F13",
        "F30",
        "F31"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "findingIds": [
        "F26"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F11",
        "F14",
        "F16",
        "F20",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-desktop.png",
      "caption": "listing desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-mobile.png",
      "caption": "listing mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/listing-probe.json",
      "caption": "listing probe",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/login-desktop.png",
      "caption": "login desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/login-invalid.json",
      "caption": "login invalid",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "login mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/login-probe.json",
      "caption": "login probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/metadata-i18n.json",
      "caption": "metadata i18n",
      "findingIds": [
        "F24",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-css.json",
      "caption": "preferences css",
      "findingIds": [
        "F02",
        "F03"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/resource-dom-confirmation.json",
      "caption": "resource dom confirmation",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/salon-desktop.png",
      "caption": "salon desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/salon-mobile.png",
      "caption": "salon mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/salon-probe.json",
      "caption": "salon probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/style-desktop.png",
      "caption": "style desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/style-mobile.png",
      "caption": "style mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/style-probe.json",
      "caption": "style probe",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The dark-mode screenshot is pixel-identical to the light capture; the probe reports colorScheme \"normal\", light foreground colours, and no prefers-color-scheme CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() returned no active animations, so no nonessential motion remained.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The CSS preference probe found no forced-colors or prefers-contrast rules; Lighthouse also found two ordinary-state controls at only 3.42:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-css.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "DOM/CSS inspection across the MPA templates found no view-transition-name or @view-transition usage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-css.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "No scroll-linked animation, parallax, scrollytelling, carousel slide effect, or reveal animation was present to implement.",
      "reason": "No scroll-linked animation, parallax, scrollytelling, carousel slide effect, or reveal animation was present to implement."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "No swipe, pull, drag, or other gesture-driven control was present on the representative paths.",
      "reason": "No swipe, pull, drag, or other gesture-driven control was present on the representative paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The homepage is 4,570 CSS px tall, while CSS inspection found no scroll-state container query, progress indicator, or responsive sticky-header treatment.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "No tooltip, attached popover, or edge-sensitive context menu was found on the tested paths.",
      "reason": "No tooltip, attached popover, or edge-sensitive context menu was found on the tested paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Breadcrumbs on listing/detail pages, explicit four-step booking progress, and repeated labelled reservation links preserve location and next action.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The desktop and mobile first-load screenshots show a gender-selection panel covering the search interface before user interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The overlay is visible in screenshots, but the DOM probe found no dialog or role=dialog element.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The first viewport devotes both side rails to animated campaign creative, adds a centered overlay, dense tab chrome, and a right account rail around a narrow content column.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "At a 360x800 viewport the layout reports no viewport meta and a 1,311px layout viewport; the screenshot shows the entire desktop page shrunk to unreadable size.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "CSS inspection found no @container rules, and every representative mobile screenshot shows desktop components uniformly scaled rather than reorganised.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-mobile.png"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The objective probe measured 495 of 511 visible controls below 44px in at least one dimension; many links are 11-18px tall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Each representative page has a descriptive Japanese h1/title; salon pages repeat an explicit 空席確認・予約する action.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "The salon CTA reaches a clearly priced coupon-selection page with a visible STEP1–STEP4 booking sequence and labelled controls, without an account wall at entry.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "A deliberately invalid route produced a specific not-found title, explanation, top-page recovery link, and alternate service links.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse measured LCP 35.5s, TBT 960ms, Speed Index 9.9s, and performance 0.37; the separate trace measured LCP 1.93s under a lighter run, showing condition sensitivity but not negating the throttled result.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Layout observation reported CLS 0 with no shifts in its window; Lighthouse measured CLS 0.068, within the good range.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse measured 960ms TBT; the trace also recorded two long tasks, while the page loads 94 scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The HAR identified two VeryHigh parser stylesheets, several parser-inserted classic scripts, 353 requests, missing cache headers, and a 2.14s document request. DOM confirmation shows the core CSS in head.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse estimates 1,327 KiB unused JavaScript; the HAR transfers 3.34MB of scripts and shows repeated tag destinations and duplicated vendor loads.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The image primitive reports 71 images without alt and the DOM probe found 29 empty anchors without text, aria-label, or image alt.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse found two controls at 3.42:1 (#fff on #d36985), below the required 4.5:1 for their text size.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The probe found zero main/nav/header/footer/role landmarks and multiple empty headings; Lighthouse found a skipped heading level.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The 360px screenshots show desktop text compressed to only a few pixels because the page is scaled instead of reflowed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "No viewport meta is present; at 360px Chrome creates a 1,311px layout viewport and scales it to 0.275, preventing usable reflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse captured four CORS/network console errors from Yahoo analytics during load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse’s mobile document reported quirks-mode/no doctype, while the desktop probe found HTML doctype, indicating variant inconsistency; 42 images lack dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Lighthouse recorded a deprecated Attribution Reporting API warning and failed third-party integrations; 28 javascript: links replace normal platform controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Homepage, listing, salon, style, booking, and login probes all returned specific titles; the homepage has a detailed meta description.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The probe counted 28 javascript: links; Lighthouse listed 11 uncrawlable anchors, and no viewport meta exists.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Public pages return 200, expose self-canonicals, robots allows public templates, and sitemap.xml is a current sitemap index.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The metadata probe found no Open Graph, Twitter card, or JSON-LD on the homepage, although salon/detail templates do expose JSON-LD.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/metadata-i18n.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The page is HTTPS, but CSP, HSTS, nosniff, frame protection, Referrer-Policy and Permissions-Policy are absent; 44 cookies were flagged insecure and HPB_SESSION_ID is SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The tracker probe saw 55 third-party origins and eight known tracker domains; 337/353 HAR requests and 4.54MB/4.66MB transferred were classified third-party.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "No permission request calls were found on load; Recruit login uses username/current-password webauthn autocomplete and a passkey availability field.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The headers primitive found no HSTS, clickjacking defense, Referrer-Policy, Permissions-Policy, or CSP frame-ancestors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Discoverability measured 93% raw/rendered content overlap, with title, h1 and description present without JavaScript.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "MPA links and forms retained stable server-rendered state across tested listing, detail, style, booking and login paths; no clipped transient menu was observed.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "This multi-page marketplace booking service depends on live inventory and is not presented as an installable app; offline booking would be misleading.",
      "reason": "This multi-page marketplace booking service depends on live inventory and is not presented as an installable app; offline booking would be misleading."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "The tested 404 state explains the error and offers direct recovery links to top and service categories.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The homepage correctly declares lang=ja, but the CSS probe found zero logical-property rules versus 25 physical left/right/width/height rules; the Recruit login redirect declares en-GB for Japanese copy.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/metadata-i18n.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Representative pages render Japanese dates and yen prices with Japanese labels consistently across listing and booking templates.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "The audited Japanese salon flow exposes local calendar dates only and no cross-zone event or stored time representation.",
      "reason": "The audited Japanese salon flow exposes local calendar dates only and no cross-zone event or stored time representation."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Prices, coupon conditions, membership links and booking commitments are stated directly; no preselected paid option or confirmshaming was observed.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Search and booking controls use native form elements and labels; no premature validation or blaming language appeared in the tested states.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Recruit sign-in uses autocomplete=\"username webauthn\" and \"current-password webauthn\", supporting password managers and passkeys.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Salon/detail/booking pages show price and conditions before selection, a four-step confirmation flow, and passkey-aware sign-in fields.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Of 100 images, 86 use legacy formats, none use modern formats, 59 below-fold images are not lazy, and 35 lack srcset.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The page makes 353 requests, including 94 scripts and 70 fetches, with repeated analytics destinations and failed beacon traffic on first load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "Third parties account for 4.54MB of 4.66MB transferred; Google Tag Manager alone contributes 2.31MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The page is 93% visible without JS, but the capability probe found no WebMCP registration; agents must infer actions from hundreds of links and forms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/capabilities.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "confidence": "medium",
      "status": "not-applicable",
      "method": "Recon and feature/surface inspection across representative templates.",
      "evidence": "No summarisation, freeform generation, or other task was observed where local model inference is necessary to complete the booking journey.",
      "reason": "No summarisation, freeform generation, or other task was observed where local model inference is necessary to complete the booking journey."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "After ten scroll/modal-close attempts, heap self size increased only 0.33% (49,896,605 to 50,063,435 bytes); no unbounded retained growth was observed.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "confidence": "high",
      "status": "issues",
      "method": "Objective browser evidence and guidance-backed inspection across representative paths.",
      "evidence": "The baseline heap contains 886,774 nodes and 49.9MB self size before meaningful interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "confidence": "high",
      "status": "pass",
      "method": "Direct DOM, screenshot, Lighthouse, network, form, or interaction inspection as appropriate to this check.",
      "evidence": "Native-node count decreased slightly and no Detached* constructor appeared among heap summary leaders; the comparison showed no direct detached-DOM growth signal.",
      "pathIds": [
        "home",
        "listing",
        "salon-detail"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16",
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F29",
        "F30",
        "F31"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F33"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Public homepage and search entry template; tested desktop, mobile, preferences, accessibility, performance, network, security, discoverability and memory.",
      "url": "https://beauty.hotpepper.jp/",
      "conditions": [
        "desktop 1280x900",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "crawler/no JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "listing",
      "description": "Representative regional salon listing/search template and availability filters.",
      "url": "https://beauty.hotpepper.jp/svcSA/macAT/",
      "conditions": [
        "desktop 1280x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "salon-detail",
      "description": "Representative salon detail and primary reservation CTA.",
      "url": "https://beauty.hotpepper.jp/slnH000796317/",
      "conditions": [
        "desktop 1280x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "style-detail",
      "description": "Representative visual content/entity detail template.",
      "url": "https://beauty.hotpepper.jp/slnH000796317/style/L270487079.html",
      "conditions": [
        "desktop 1280x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "booking",
      "description": "Primary booking journey entry through coupon/menu selection and visible four-step flow; stopped before making a real reservation.",
      "url": "https://beauty.hotpepper.jp/CSP/bt/reserve/?storeId=H000796317",
      "conditions": [
        "desktop 1280x900"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Account/sign-in handoff to Recruit ID, including labels, autocomplete and invalid empty submission inspection.",
      "url": "https://beauty.hotpepper.jp/CSP/login/",
      "conditions": [
        "desktop 1280x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "error-404",
      "description": "Representative invalid route to assess recovery.",
      "url": "https://beauty.hotpepper.jp/definitely-not-a-real-route-web-uplift",
      "conditions": [
        "default"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "high",
      "confidence": "high",
      "summary": "Dark preference is ignored",
      "evidence": "The dark-mode screenshot is pixel-identical to the light capture; the probe reports colorScheme \"normal\", light foreground colours, and no prefers-color-scheme CSS.",
      "suggestedFix": "Declare color-scheme and use prefers-color-scheme or light-dark() for all surfaces.",
      "effort": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-dark.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "summary": "Contrast preferences are unsupported",
      "evidence": "The CSS preference probe found no forced-colors or prefers-contrast rules; Lighthouse also found two ordinary-state controls at only 3.42:1.",
      "suggestedFix": "Add forced-colors/prefers-contrast adaptations and verify controls retain visible boundaries and text.",
      "effort": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/preferences-css.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "summary": "Route and state changes are abrupt",
      "evidence": "DOM/CSS inspection across the MPA templates found no view-transition-name or @view-transition usage.",
      "suggestedFix": "Add cross-document View Transitions for compatible navigations with a no-motion fallback.",
      "effort": "medium",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/preferences-css.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "summary": "Long pages provide no scroll-state-aware chrome",
      "evidence": "The homepage is 4,570 CSS px tall, while CSS inspection found no scroll-state container query, progress indicator, or responsive sticky-header treatment.",
      "suggestedFix": "Use scroll-state queries or a lightweight progress/condensed-header treatment on long result and detail pages.",
      "effort": "medium",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "summary": "A large modal obscures the primary content on arrival",
      "evidence": "The desktop and mobile first-load screenshots show a gender-selection panel covering the search interface before user interaction.",
      "suggestedFix": "Defer the preference prompt until contextually useful, keep the page usable, and provide clear light-dismiss.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F06",
      "severity": "medium",
      "confidence": "high",
      "summary": "The blocking overlay is not a semantic dialog",
      "evidence": "The overlay is visible in screenshots, but the DOM probe found no dialog or role=dialog element.",
      "suggestedFix": "Implement the modal with <dialog>, labelled semantics, focus management, Escape handling, and platform close behaviour.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F07",
      "severity": "medium",
      "confidence": "high",
      "summary": "Advertising and dense chrome crowd the content",
      "evidence": "The first viewport devotes both side rails to animated campaign creative, adds a centered overlay, dense tab chrome, and a right account rail around a narrow content column.",
      "suggestedFix": "Remove or defer nonessential campaign chrome and prioritise the search and booking content.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F08",
      "severity": "critical",
      "confidence": "high",
      "summary": "Mobile receives a scaled desktop page",
      "evidence": "At a 360x800 viewport the layout reports no viewport meta and a 1,311px layout viewport; the screenshot shows the entire desktop page shrunk to unreadable size.",
      "suggestedFix": "Add a correct viewport meta tag and rebuild templates with intrinsic, fluid layouts that reflow at narrow widths.",
      "effort": "large",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F09",
      "severity": "medium",
      "confidence": "high",
      "summary": "Components do not respond to available container space",
      "evidence": "CSS inspection found no @container rules, and every representative mobile screenshot shows desktop components uniformly scaled rather than reorganised.",
      "suggestedFix": "Add container queries to reused search cards, navigation, sidebars, and salon cards.",
      "effort": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/listing-mobile.png"
      ],
      "pathId": "listing",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "Most controls are smaller than touch guidance",
      "evidence": "The objective probe measured 495 of 511 visible controls below 44px in at least one dimension; many links are 11-18px tall.",
      "suggestedFix": "Increase hit areas to at least 44x44 CSS px, preserve visible focus, and avoid hover-only interactions.",
      "effort": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F11",
      "severity": "critical",
      "confidence": "high",
      "summary": "Measured mobile load performance is poor",
      "evidence": "Lighthouse measured LCP 35.5s, TBT 960ms, Speed Index 9.9s, and performance 0.37; the separate trace measured LCP 1.93s under a lighter run, showing condition sensitivity but not negating the throttled result.",
      "suggestedFix": "Prioritise the LCP resource, remove tag overhead, and establish CWV budgets with field monitoring.",
      "effort": "large",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "summary": "JavaScript blocks the main thread under mobile conditions",
      "evidence": "Lighthouse measured 960ms TBT; the trace also recorded two long tasks, while the page loads 94 scripts.",
      "suggestedFix": "Break up long tasks and defer nonessential analytics and advertising scripts until consent or idle.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F13",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical delivery is burdened by parser-blocking resources and weak caching",
      "evidence": "The HAR identified two VeryHigh parser stylesheets, several parser-inserted classic scripts, 353 requests, missing cache headers, and a 2.14s document request. DOM confirmation shows the core CSS in head.",
      "suggestedFix": "Defer classic scripts, reduce critical CSS, add durable caching, and remove avoidable dependency chains.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "summary": "The page ships large unused and duplicated script payloads",
      "evidence": "Lighthouse estimates 1,327 KiB unused JavaScript; the HAR transfers 3.34MB of scripts and shows repeated tag destinations and duplicated vendor loads.",
      "suggestedFix": "Audit tag-manager destinations, remove duplicate pixels, and conditionally load code only when needed.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "summary": "Many image links lack a programmatic name",
      "evidence": "The image primitive reports 71 images without alt and the DOM probe found 29 empty anchors without text, aria-label, or image alt.",
      "suggestedFix": "Give meaningful linked images concise alt text, mark decorative images empty-alt, and name every control.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F16",
      "severity": "high",
      "confidence": "high",
      "summary": "Key app-install controls fail text contrast",
      "evidence": "Lighthouse found two controls at 3.42:1 (#fff on #d36985), below the required 4.5:1 for their text size.",
      "suggestedFix": "Darken the pink surface or change text colour and verify all states with automated and visual contrast tests.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F17",
      "severity": "high",
      "confidence": "high",
      "summary": "Semantic structure is weak despite visible browser focus",
      "evidence": "The probe found zero main/nav/header/footer/role landmarks and multiple empty headings; Lighthouse found a skipped heading level.",
      "suggestedFix": "Add semantic landmarks, remove empty headings, and enforce a logical heading hierarchy while retaining the visible focus outline.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F18",
      "severity": "critical",
      "confidence": "high",
      "summary": "Text is unreadable at a common mobile viewport",
      "evidence": "The 360px screenshots show desktop text compressed to only a few pixels because the page is scaled instead of reflowed.",
      "suggestedFix": "Use a real mobile viewport, responsive type sizing, and comfortable line lengths.",
      "effort": "large",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F19",
      "severity": "critical",
      "confidence": "high",
      "summary": "The page does not reflow for mobile or zoom",
      "evidence": "No viewport meta is present; at 360px Chrome creates a 1,311px layout viewport and scales it to 0.275, preventing usable reflow.",
      "suggestedFix": "Add width=device-width, initial-scale=1 without disabling zoom, then test reflow at 320 CSS px and 400% zoom.",
      "effort": "large",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F20",
      "severity": "medium",
      "confidence": "high",
      "summary": "Third-party analytics generate console errors",
      "evidence": "Lighthouse captured four CORS/network console errors from Yahoo analytics during load.",
      "suggestedFix": "Remove or correct failing analytics calls and monitor production console errors.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F21",
      "severity": "medium",
      "confidence": "high",
      "summary": "Document and image asset hygiene is inconsistent",
      "evidence": "Lighthouse’s mobile document reported quirks-mode/no doctype, while the desktop probe found HTML doctype, indicating variant inconsistency; 42 images lack dimensions.",
      "suggestedFix": "Serve a consistent standards-mode doctype and reserve image space with width/height or aspect-ratio.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F22",
      "severity": "medium",
      "confidence": "high",
      "summary": "Deprecated and redundant integrations reduce platform hygiene",
      "evidence": "Lighthouse recorded a deprecated Attribution Reporting API warning and failed third-party integrations; 28 javascript: links replace normal platform controls.",
      "suggestedFix": "Remove deprecated integrations and replace javascript: anchors with buttons or real links.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F23",
      "severity": "high",
      "confidence": "high",
      "summary": "Many controls are uncrawlable and the page lacks mobile viewport metadata",
      "evidence": "The probe counted 28 javascript: links; Lighthouse listed 11 uncrawlable anchors, and no viewport meta exists.",
      "suggestedFix": "Use buttons for actions, real href URLs for navigation, and add a mobile viewport meta tag.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/accessibility-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F24",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage lacks share and organization metadata",
      "evidence": "The metadata probe found no Open Graph, Twitter card, or JSON-LD on the homepage, although salon/detail templates do expose JSON-LD.",
      "suggestedFix": "Add accurate Organization/WebSite structured data and Open Graph/Twitter metadata to index templates.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/metadata-i18n.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F25",
      "severity": "critical",
      "confidence": "high",
      "summary": "Transport hardening and cookie policy are unsafe",
      "evidence": "The page is HTTPS, but CSP, HSTS, nosniff, frame protection, Referrer-Policy and Permissions-Policy are absent; 44 cookies were flagged insecure and HPB_SESSION_ID is SameSite=None.",
      "suggestedFix": "Set HSTS, a strict CSP, nosniff, frame-ancestors, Referrer-Policy and Permissions-Policy; mark every HTTPS cookie Secure and tighten SameSite.",
      "effort": "large",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F26",
      "severity": "critical",
      "confidence": "high",
      "summary": "Tracking is exceptionally broad on first load",
      "evidence": "The tracker probe saw 55 third-party origins and eight known tracker domains; 337/353 HAR requests and 4.54MB/4.66MB transferred were classified third-party.",
      "suggestedFix": "Gate nonessential tracking on informed consent, consolidate vendors, minimise identifiers, and batch essential analytics.",
      "effort": "large",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-trackers.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F27",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defensive policies are absent",
      "evidence": "The headers primitive found no HSTS, clickjacking defense, Referrer-Policy, Permissions-Policy, or CSP frame-ancestors.",
      "suggestedFix": "Deploy the missing defense headers and verify framing, referrer, permissions, and XSS protections.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F28",
      "severity": "medium",
      "confidence": "high",
      "summary": "Layout CSS is not writing-mode resilient",
      "evidence": "The homepage correctly declares lang=ja, but the CSS probe found zero logical-property rules versus 25 physical left/right/width/height rules; the Recruit login redirect declares en-GB for Japanese copy.",
      "suggestedFix": "Use logical CSS properties and correct the login document language to Japanese.",
      "effort": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/metadata-i18n.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F29",
      "severity": "high",
      "confidence": "high",
      "summary": "Image delivery uses legacy, eager, nonresponsive assets",
      "evidence": "Of 100 images, 86 use legacy formats, none use modern formats, 59 below-fold images are not lazy, and 35 lack srcset.",
      "suggestedFix": "Generate AVIF/WebP variants, responsive srcset/sizes, intrinsic dimensions, and lazy-load below-fold imagery.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F30",
      "severity": "high",
      "confidence": "high",
      "summary": "Background marketing work dominates the load",
      "evidence": "The page makes 353 requests, including 94 scripts and 70 fetches, with repeated analytics destinations and failed beacon traffic on first load.",
      "suggestedFix": "Remove duplicate pixels and defer or batch nonessential background requests.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F31",
      "severity": "critical",
      "confidence": "high",
      "summary": "Third-party scripts consume nearly the entire transfer budget",
      "evidence": "Third parties account for 4.54MB of 4.66MB transferred; Google Tag Manager alone contributes 2.31MB.",
      "suggestedFix": "Set a strict third-party byte/request budget and load vendors only after consent and demonstrated value.",
      "effort": "large",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F32",
      "severity": "low",
      "confidence": "high",
      "summary": "The booking service exposes no structured agent capability",
      "evidence": "The page is 93% visible without JS, but the capability probe found no WebMCP registration; agents must infer actions from hundreds of links and forms.",
      "suggestedFix": "Expose narrowly scoped, confirmable search and booking tools through WebMCP/agentic forms.",
      "effort": "medium",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "webmcp",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/capabilities.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    },
    {
      "id": "F33",
      "severity": "medium",
      "confidence": "high",
      "summary": "The static homepage has a disproportionately large heap footprint",
      "evidence": "The baseline heap contains 886,774 nodes and 49.9MB self size before meaningful interaction.",
      "suggestedFix": "Reduce third-party runtimes and duplicated libraries, then set heap/node budgets for the homepage.",
      "effort": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/heap-baseline.json"
      ],
      "pathId": "home",
      "url": "https://beauty.hotpepper.jp"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Deliver a real responsive mobile layout",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F18",
        "F19"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Remove or consent-gate the third-party tracking stack",
      "priority": 2,
      "findingIds": [
        "F26",
        "F30",
        "F31",
        "F12",
        "F13",
        "F14"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy security headers and secure cookie defaults",
      "priority": 3,
      "findingIds": [
        "F25",
        "F27"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Replace the arrival modal with a deferred semantic dialog",
      "priority": 4,
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Repair semantic structure, names, contrast and landmarks",
      "priority": 5,
      "findingIds": [
        "F15",
        "F16",
        "F17"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Modernise and reserve image delivery",
      "priority": 6,
      "findingIds": [
        "F21",
        "F29"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Repair crawlable controls and page metadata",
      "priority": 7,
      "findingIds": [
        "F23",
        "F24"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Reduce baseline heap and duplicated runtime code",
      "priority": 8,
      "findingIds": [
        "F33"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1200,
    "pathCount": 7,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-19T04-32-09-138Z"
}
