{
  "url": "https://www.pornpics.com",
  "auditedAt": "2026-07-26T10:32:13.966Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete report-mode audit. Representative public templates, search, login validation, localization and 404 recovery were covered. Authenticated favorites/profile/upload, sign-up completion, voting/comments, age-verification completion and external affiliate destinations were not covered because they require accounts, identity data, side effects or leave the first-party site.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered multi-page site with jQuery-enhanced interactions",
    "notes": "Public image catalogue with homepage taxonomy, category listings, gallery details, search-to-category routing, authentication, 16 localized homepages, a manifest and extensive XML sitemaps."
  },
  "evidenceUsed": [
    "screenshot",
    "transition-video",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Lighthouse"
  ],
  "guidanceConsulted": [
    "accessibility",
    "accessible-error-announcement",
    "adapt-scrollbar-to-contrast-preferences",
    "agentic-forms",
    "agentic-javascript-tools",
    "anchor-positioning-tab-underline",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "animated-select-picker",
    "apply-webgl-shaders",
    "autofill-address-form",
    "autofill-highlight-inputs",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "batch-analytics-events",
    "brand-consistent-forms",
    "branded-select-styling",
    "break-up-long-tasks",
    "calculate-event-differentials",
    "calculate-total-foreground-time",
    "calculate-with-intrinsic-sizes",
    "capture-location-agnostic-data",
    "carousel-slide-effects",
    "carousel-snap-highlights",
    "child-state-based-styling",
    "complex-shapes",
    "component-specific-light-dark-theme",
    "conditional-async-dependencies",
    "consistent-cross-document-transitions",
    "content-based-styling",
    "coordinate-global-events",
    "cross-document-transitions",
    "css",
    "css-layout",
    "custom-select-picker-layouts",
    "customize-scrollbar-color-and-thickness",
    "dark-mode",
    "declarative-dialog-popover-control",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "design-token-reactivity",
    "detect-initial-visibility-state",
    "directional-navigation-transitions",
    "dynamic-sibling-animations",
    "dynamic-sibling-styling",
    "efficient-background-processing",
    "export-html-media-from-canvas",
    "expose-canvas-content-to-browser-features",
    "faster-spa-view-transitions",
    "flicker-free-client-side-ab-testing",
    "fluid-scaling",
    "form-fields-automatically-fit-contents",
    "format-human-readable-durations",
    "forms",
    "full-session-analytics",
    "group-element-transitions",
    "highlight-text-ranges",
    "html",
    "identify-heavy-scripts",
    "identify-inp-causes",
    "improve-next-page-load-performance",
    "improve-text-layout-and-legibility",
    "individual-transform-properties",
    "interactions-in-complex-layouts",
    "interactive-content-in-3d-scenes",
    "interactive-content-reveal",
    "interest-triggered-action-previews",
    "interest-triggered-tooltips",
    "language-detection",
    "language-model",
    "light-dismiss-a-dialog",
    "manage-recurring-intervals",
    "model-partial-time-concepts",
    "move-dom-element-without-losing-state",
    "navigation-drawer",
    "optimize-image-priority",
    "optimize-preload-priority",
    "optimize-script-priority",
    "overflow-clipping-control",
    "parallax-scroll-effects",
    "passkey-authentication",
    "passkey-conditional-create",
    "passkey-management",
    "passkey-reauthentication",
    "passkey-registration",
    "passkeys",
    "performance",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "persistent-top-layer-ui",
    "physics-based-easing",
    "platform-controls-dismiss-dialog",
    "position-aware-tooltips",
    "precise-text-alignment",
    "prevent-text-wrapping",
    "privacy",
    "pull-to-reveal",
    "reduce-style-repetition",
    "required-field-feedback",
    "resilient-context-menus-and-nested-dropdowns",
    "resolution-optimized-pseudo-elements",
    "rich-media-picker",
    "same-document-transitions",
    "schedule-tasks-by-priority",
    "scroll-entry-exit-effects",
    "scroll-position-aware-elements",
    "scroll-progress-indicator",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "scrollability-affordance-hints",
    "scrollytelling",
    "search-hidden-content",
    "security",
    "select-menu-interaction",
    "sequence-distributed-events",
    "shaped-cutouts",
    "shrinking-header-on-scroll",
    "size-aware-styling",
    "soft-edge-content-fade",
    "stabilize-reactive-state",
    "stack-drill-down",
    "style-parent-with-has",
    "summarizer",
    "support-global-calendar-systems",
    "swipe-to-remove",
    "translator",
    "validate-input-after-interaction",
    "visually-stable-font-fallbacks",
    "visually-stable-mixed-fonts",
    "visually-texture-content",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "404 mobile",
      "condition": "mobile 360x800"
    },
    {
      "type": "other",
      "path": "evidence/404-recon.json",
      "caption": "404 recon"
    },
    {
      "type": "screenshot",
      "path": "evidence/category-mobile.png",
      "caption": "category mobile",
      "condition": "mobile 360x800"
    },
    {
      "type": "other",
      "path": "evidence/category-recon.json",
      "caption": "category recon"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F020"
      ]
    },
    {
      "type": "other",
      "path": "evidence/css-feature-probe.json",
      "caption": "css feature probe",
      "findingIds": [
        "F001",
        "F002",
        "F003",
        "F006",
        "F023"
      ]
    },
    {
      "type": "other",
      "path": "evidence/detail-images.json",
      "caption": "detail images",
      "findingIds": [
        "F016",
        "F024"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "detail mobile",
      "condition": "mobile 360x800"
    },
    {
      "type": "other",
      "path": "evidence/detail-recon.json",
      "caption": "detail recon",
      "findingIds": [
        "F018",
        "F019"
      ]
    },
    {
      "type": "other",
      "path": "evidence/es-recon.json",
      "caption": "es recon",
      "findingIds": [
        "F018",
        "F023"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F020",
        "F022"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.heapsnapshot",
      "caption": "heap post scroll"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced.png",
      "caption": "home dark reduced",
      "condition": "prefers-color-scheme: dark; prefers-reduced-motion: reduce",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F001",
        "F004",
        "F006"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F005"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast",
      "condition": "prefers-contrast: more; forced-colors: active"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F009",
        "F024"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-desktop.json",
      "caption": "home layout desktop"
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "condition": "mobile 360x800",
      "findingIds": [
        "F003"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-links-assets.json",
      "caption": "home links assets"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "mobile 360x800",
      "findingIds": [
        "F003",
        "F004",
        "F006",
        "F007"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-platform-a11y.json",
      "caption": "home platform a11y",
      "findingIds": [
        "F004",
        "F005",
        "F007",
        "F013",
        "F014"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "findingIds": [
        "F002",
        "F014",
        "F018"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F009",
        "F010",
        "F024"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F009"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home-summary.json",
      "caption": "lighthouse home summary",
      "findingIds": [
        "F008",
        "F009",
        "F010",
        "F011",
        "F012",
        "F014",
        "F015",
        "F016",
        "F017"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F008",
        "F010",
        "F011",
        "F012",
        "F015",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-blank-submit.json",
      "caption": "login blank submit"
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "login mobile",
      "condition": "mobile 360x800",
      "findingIds": [
        "F021"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-recon.json",
      "caption": "login recon",
      "findingIds": [
        "F021"
      ]
    },
    {
      "type": "other",
      "path": "evidence/manifest.json",
      "caption": "manifest"
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics"
    },
    {
      "type": "video",
      "path": "evidence/menu-interaction.mp4",
      "caption": "menu interaction"
    },
    {
      "type": "other",
      "path": "evidence/robots.json",
      "caption": "robots",
      "findingIds": [
        "F018"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-recon.json",
      "caption": "search recon"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "other",
      "path": "evidence/sitemap.json",
      "caption": "sitemap"
    },
    {
      "type": "other",
      "path": "evidence/sitemapindex.json",
      "caption": "sitemapindex",
      "findingIds": [
        "F018"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers"
    }
  ],
  "config": {
    "loaded": false
  },
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004",
        "F005"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008",
        "F009",
        "F010"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F011",
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015",
        "F016",
        "F017"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F018",
        "F019"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F020",
        "F021",
        "F022"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No developer intent or agent-facing transaction surface was declared; this emerging capability is optional here. Public content is nevertheless exposed in semantic raw HTML and crawlable links. The audited browse, gallery and sign-in tasks have no clear need for on-device language-model or summarisation features."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/category discovery template and primary browse entry; tested desktop, mobile, dark/reduced-motion, forced-colors, performance, network, accessibility and memory conditions.",
      "url": "https://www.pornpics.com/",
      "conditions": [
        "desktop 1440x900",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "forced-colors: active",
        "Lighthouse mobile throttling",
        "10 repeated full-page scroll cycles"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Representative category/listing template, selected because it is the main route from homepage taxonomy into galleries.",
      "url": "https://www.pornpics.com/amateur/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative gallery/detail template, selected from the category page to cover content viewing, metadata, image delivery and actions.",
      "url": "https://www.pornpics.com/galleries/redheaded-girl-strips-to-her-running-shoes-while-hiking-in-the-wilderness-24871931/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Primary search journey using the homepage query form; the query resolved to a matching category route.",
      "url": "https://www.pornpics.com/?q=amateur",
      "conditions": [
        "rendered search submission equivalent"
      ],
      "result": "pass"
    },
    {
      "id": "login",
      "description": "Authentication form template, including a blank submit to exercise validation and recovery without using credentials.",
      "url": "https://www.pornpics.com/login/",
      "conditions": [
        "mobile 360x800",
        "blank form submission"
      ],
      "result": "issues"
    },
    {
      "id": "localized",
      "description": "Spanish localized homepage, selected to check translated content, lang metadata and CSS internationalisation readiness.",
      "url": "https://www.pornpics.com/es/",
      "conditions": [
        "default viewport"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP error/recovery surface using a nonexistent route.",
      "url": "https://www.pornpics.com/this-route-does-not-exist-audit/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The manual theme control does not follow the operating-system color preference.",
      "evidence": "The dark/reduced-motion screenshot remains the same light surface as the default screenshot; computed color-scheme is normal and the stylesheet probe found zero prefers-color-scheme rules.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark-reduced.png",
        "evidence/css-feature-probe.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and drive surface/text tokens from prefers-color-scheme or light-dark(), while keeping the manual override as an explicit user choice.",
      "effort": "small"
    },
    {
      "id": "F002",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Route and major state changes use abrupt document swaps rather than View Transitions.",
      "evidence": "The CSS feature probe found zero view-transition rules and recon found no authored View Transition rules on homepage, category, or detail templates.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/css-feature-probe.json"
      ],
      "suggestedFix": "Add progressive cross-document View Transitions for same-origin navigation and same-document transitions for major state changes, with reduced-motion handling.",
      "effort": "medium"
    },
    {
      "id": "F003",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Very long listing pages provide no scroll-state-aware navigation or progress cue.",
      "evidence": "Mobile layout measured 108,770 CSS px of content, while CSS inspection found no scroll-state queries, scroll timelines, or progress treatment; the header does not remain as responsive chrome during the long browse.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/css-feature-probe.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Use a compact sticky header and/or progress affordance that reacts declaratively to scroll state without obscuring content.",
      "effort": "medium"
    },
    {
      "id": "F004",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "A fixed consent banner obscures content in the first viewport on every tested public template.",
      "evidence": "Desktop and mobile screenshots show the cookie notice fixed over the lower content; the DOM probe measured it as a full-width fixed overlay.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-platform-a11y.json"
      ],
      "suggestedFix": "Reduce the banner footprint, preserve equal Accept/Reject choices, and move detailed preferences into a light-dismissible secondary surface.",
      "effort": "small"
    },
    {
      "id": "F005",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "The fixed consent surface is an ad-hoc div rather than an explicit semantic overlay/banner primitive.",
      "evidence": "DOM recon found no dialog or popover elements; the fixed cookie surface is a div with custom behavior.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-a11y.json"
      ],
      "suggestedFix": "Use an appropriately labelled semantic region for the non-modal banner and a native dialog/popover for detailed preferences, preserving keyboard focus and Escape/light-dismiss behavior.",
      "effort": "medium"
    },
    {
      "id": "F006",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Responsive behavior is entirely viewport-based rather than component-aware.",
      "evidence": "The live stylesheet probe found zero @container rules despite reusable cards, headers, forms and grid components appearing in different widths.",
      "artifacts": [
        "evidence/css-feature-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Introduce container-type on reusable layout components and size/content container queries where component behavior currently depends on page-wide breakpoints.",
      "effort": "medium"
    },
    {
      "id": "F007",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Keyboard focus is not visibly exposed on key controls and some targets are too small.",
      "evidence": "Programmatic focus showed outline:none and no box shadow on the search input, search button and menu button; the probe also found a 22px-wide random control and many 19px-tall links.",
      "artifacts": [
        "evidence/home-platform-a11y.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Provide a strong :focus-visible treatment and increase compact interactive hit areas to at least 24 CSS px, preferably 44px for primary touch controls.",
      "effort": "small"
    },
    {
      "id": "F008",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Mobile LCP misses the good Core Web Vitals range under standard Lighthouse throttling.",
      "evidence": "Lighthouse measured LCP 5.6s, FCP 3.1s and Speed Index 5.3s (performance 0.70); an unthrottled trace was better at 1.893s, so the slow-network/mobile path is the failure condition.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritise the first content image, reduce its render delay, remove critical-path CSS delay, and validate under repeatable mobile throttling until LCP is under 2.5s.",
      "effort": "medium"
    },
    {
      "id": "F009",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical CSS and unoptimised images delay meaningful content.",
      "evidence": "Lighthouse identified 890ms estimated render-blocking savings and a 1,729ms LCP element render delay; HAR recorded 978KB initial transfer with 503KB images, while image delivery showed about 360KB potential savings.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Inline or split critical CSS, defer non-critical CSS, add fetchpriority=high to the LCP image, and serve responsive AVIF/WebP variants.",
      "effort": "medium"
    },
    {
      "id": "F010",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage ships substantial unused JavaScript and CSS.",
      "evidence": "Lighthouse estimated 224KiB unused JavaScript and 28KiB unused CSS; the main bundle was 57.6% unused, Google Identity 75.0%, jQuery 68.5%, and one secondary stylesheet 97.0%.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Split bundles by route/feature, load identity code only when authentication is requested, remove obsolete jQuery dependencies, and purge or split unused CSS.",
      "effort": "medium"
    },
    {
      "id": "F011",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some image links in the age-information surface have no accessible name.",
      "evidence": "Lighthouse accessibility found two linked certification images with no alt text; both parent links therefore have no discernible name.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "suggestedFix": "Give informative linked images concise alt text or label the links directly; use empty alt only when the link has another accessible name.",
      "effort": "trivial"
    },
    {
      "id": "F012",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Several text/link combinations fail WCAG contrast minimums.",
      "evidence": "Lighthouse found footer text at 2.92:1 and multiple pink links on the age-information background at 3.63:1, below the required 4.5:1 for normal text.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "suggestedFix": "Adjust foreground or background tokens to meet at least 4.5:1 for normal text and verify all theme/high-contrast states.",
      "effort": "small"
    },
    {
      "id": "F013",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Visible keyboard focus is missing on primary controls.",
      "evidence": "The focus-walk probe reported outline:none and no compensating box-shadow for the search input, search button and menu button, making keyboard location unclear.",
      "artifacts": [
        "evidence/home-platform-a11y.json"
      ],
      "suggestedFix": "Apply a consistent, high-contrast :focus-visible ring to every interactive element and test the complete tab order on desktop and mobile layouts.",
      "effort": "small"
    },
    {
      "id": "F014",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The viewport scale and compact targets weaken zoom/touch usability.",
      "evidence": "The viewport is initial-scale=0.8, Lighthouse flagged mobile viewport optimisation, and the target probe found controls/links below 24px in one dimension.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-platform-a11y.json"
      ],
      "suggestedFix": "Use initial-scale=1, keep user scaling unrestricted, and enlarge compact hit areas without harming reflow.",
      "effort": "small"
    },
    {
      "id": "F015",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The homepage logs an identity-provider error for signed-out visitors.",
      "evidence": "Lighthouse recorded the console error “Not signed in with the identity provider.” during an ordinary anonymous load.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "suggestedFix": "Only initialise the identity provider when needed and handle the signed-out state without logging an error.",
      "effort": "small"
    },
    {
      "id": "F016",
      "pathId": "detail",
      "url": "https://www.pornpics.com/galleries/redheaded-girl-strips-to-her-running-shoes-while-hiking-in-the-wilderness-24871931/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "low",
      "confidence": "high",
      "summary": "A small set of certification images lacks explicit dimensions.",
      "evidence": "Lighthouse and the detail image audit found the ASACP and RTA images without width/height attributes, even though the main content imagery reserves space correctly.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/detail-images.json"
      ],
      "suggestedFix": "Add intrinsic width and height attributes (or an equivalent aspect-ratio reservation) to every image.",
      "effort": "trivial"
    },
    {
      "id": "F017",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The large first-party JavaScript bundle has no valid production source map.",
      "evidence": "Lighthouse reported that pornpics.js, a roughly 233KB transferred first-party bundle, is missing a source map.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "suggestedFix": "Publish a correctly referenced source map for the production bundle, or provide secure authenticated maps to monitoring/debug tooling.",
      "effort": "small"
    },
    {
      "id": "F018",
      "pathId": "detail",
      "url": "https://www.pornpics.com/galleries/redheaded-girl-strips-to-her-running-shoes-while-hiking-in-the-wilderness-24871931/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Indexing signals are incomplete and inconsistent across public templates.",
      "evidence": "Homepage recon found no canonical URL or hreflang links; the Spanish page also had no hreflang, while the representative public gallery sends noindex,follow despite being reachable from category pages. Robots points to a working multilingual sitemap index.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/es-recon.json",
        "evidence/detail-recon.json",
        "evidence/robots.json",
        "evidence/sitemapindex.json"
      ],
      "suggestedFix": "Add self-referencing canonicals and reciprocal hreflang clusters; review gallery noindex policy and align it deliberately with the multilingual/image sitemaps.",
      "effort": "medium"
    },
    {
      "id": "F019",
      "pathId": "detail",
      "url": "https://www.pornpics.com/galleries/redheaded-girl-strips-to-her-running-shoes-while-hiking-in-the-wilderness-24871931/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Gallery detail pages expose neither structured entity data nor social preview metadata.",
      "evidence": "The representative gallery has a descriptive title/H1 but no JSON-LD and no Open Graph properties.",
      "artifacts": [
        "evidence/detail-recon.json"
      ],
      "suggestedFix": "Add accurate schema.org ImageGallery/ImageObject or CreativeWork JSON-LD and Open Graph/Twitter metadata that matches the visible page.",
      "effort": "small"
    },
    {
      "id": "F020",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "A permissive CSP and insecure cookies weaken an otherwise HTTPS/HSTS transport posture.",
      "evidence": "Headers show CSP default-src * data: blob: unsafe-inline unsafe-eval; cookies reported all five first-party cookies without Secure, including g_state with SameSite=None.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Replace the wildcard CSP with explicit origins and nonces/hashes, remove unsafe-eval/unsafe-inline where possible, and mark HTTPS-only cookies Secure with the narrowest suitable SameSite policy.",
      "effort": "medium"
    },
    {
      "id": "F021",
      "pathId": "login",
      "url": "https://www.pornpics.com/login/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "passkeys",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Authentication offers password and federated login but no phishing-resistant passkey path.",
      "evidence": "Login recon shows username/password fields and Google sign-in with correct autocomplete tokens, but no WebAuthn/passkey capability was exposed; no permission prompts fired on load.",
      "artifacts": [
        "evidence/login-recon.json",
        "evidence/login-mobile.png"
      ],
      "suggestedFix": "Add passkey registration and conditional authentication as a progressive option, retaining recovery and existing sign-in methods.",
      "effort": "large"
    },
    {
      "id": "F022",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Several browser-enforced defenses are absent or too weak.",
      "evidence": "Headers include HSTS but omit X-Content-Type-Options and Permissions-Policy; clickjacking protection relies on a broad frame-ancestors allowlist, and Referrer-Policy remains no-referrer-when-downgrade.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add nosniff and a least-privilege Permissions-Policy, tighten frame-ancestors, use strict-origin-when-cross-origin or stricter referrer policy, and evaluate Trusted Types for the script-heavy surface.",
      "effort": "medium"
    },
    {
      "id": "F023",
      "pathId": "localized",
      "url": "https://www.pornpics.com/es/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "built-in-ai",
      "severity": "medium",
      "confidence": "high",
      "summary": "Localized pages set lang correctly but the shared CSS is not writing-mode resilient.",
      "evidence": "The Spanish page correctly uses lang=es and translated content, but stylesheet inspection found zero logical box properties versus 246 physical margin/padding/border declarations and 60 left/right declarations.",
      "artifacts": [
        "evidence/es-recon.json",
        "evidence/css-feature-probe.json"
      ],
      "suggestedFix": "Replace physical directional properties with logical inline/block equivalents and test RTL/writing-mode variants; add dir where language context requires it.",
      "effort": "medium"
    },
    {
      "id": "F024",
      "pathId": "home",
      "url": "https://www.pornpics.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The image-heavy experience sends legacy, non-responsive assets at avoidable cost.",
      "evidence": "Homepage image audit found 96 legacy-format images, 97 without srcset, 93 below-fold images without native lazy loading and four oversized; the detail template had 21 legacy images, 23 without srcset and nine oversized.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Generate AVIF/WebP variants, supply width-based srcset/sizes, preserve dimensions, prioritise only above-fold content, and lazy-load below-fold images with native loading.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Modernise responsive image delivery and LCP prioritisation",
      "priority": 1,
      "findingIds": [
        "F008",
        "F009",
        "F016",
        "F024"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Harden CSP, cookies and browser security policies",
      "priority": 2,
      "findingIds": [
        "F020",
        "F022"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Restore accessible names, contrast, focus and touch/zoom behavior",
      "priority": 3,
      "findingIds": [
        "F007",
        "F011",
        "F012",
        "F013",
        "F014"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Split unused JavaScript/CSS and defer identity code",
      "priority": 4,
      "findingIds": [
        "F010",
        "F015"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Add canonical, hreflang, structured data and share metadata",
      "priority": 5,
      "findingIds": [
        "F018",
        "F019"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Respect the system theme while preserving the manual override",
      "priority": 6,
      "findingIds": [
        "F001"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Reduce and semantically rebuild the consent surface",
      "priority": 7,
      "findingIds": [
        "F004",
        "F005"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Adopt component and scroll-state responsive patterns",
      "priority": 8,
      "findingIds": [
        "F003",
        "F006"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Make localized layout CSS writing-mode resilient",
      "priority": 9,
      "findingIds": [
        "F023"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Add progressive route/state transitions",
      "priority": 10,
      "findingIds": [
        "F002"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Add passkey authentication as a progressive option",
      "priority": 11,
      "findingIds": [
        "F021"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T012",
      "title": "Complete production asset hygiene",
      "priority": 12,
      "findingIds": [
        "F017"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 3600,
    "pathCount": 7,
    "auditPasses": 1
  },
  "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",
      "status": "issues",
      "confidence": "high",
      "method": "Paired screenshots, computed styles and live stylesheet probe",
      "evidence": "System dark emulation did not retint the light surface; no prefers-color-scheme CSS exists.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark-reduced.png",
        "evidence/css-feature-probe.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "getAnimations under reduced-motion plus stylesheet probe",
      "evidence": "No running page animations were present and the stylesheet has no motion rules, so reduced-motion users receive a static experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/home-platform-a11y.json",
        "evidence/css-feature-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Forced-colors screenshot inspection",
      "evidence": "Forced-colors/high-contrast emulation retained visible text, controls and borders throughout the first mobile viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and stylesheet inspection",
      "evidence": "No authored View Transition rules were found for route/state changes.",
      "pathIds": [
        "home",
        "category",
        "detail"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/css-feature-probe.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "No parallax, scrollytelling or scroll-linked reveal feature exists on the representative pages, so there is no scroll-linked animation implementation to evaluate.",
      "reason": "No parallax, scrollytelling or scroll-linked reveal feature exists on the representative pages, so there is no scroll-linked animation implementation to evaluate."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "Interaction video and stylesheet feature inspection",
      "evidence": "Browsing uses native links and scrolling; no custom pointer-driven gestures or scroll handlers that fight platform behavior were observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/menu-interaction.mp4",
        "evidence/css-feature-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Mobile layout metrics plus stylesheet inspection",
      "evidence": "A 108,770px mobile listing has no reactive sticky chrome or progress cue.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/css-feature-probe.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "No tooltip, attached popover, context menu or edge-positioned overlay requiring CSS anchor positioning appears in the representative browse/login/detail flows.",
      "reason": "No tooltip, attached popover, context menu or edge-positioned overlay requiring CSS anchor positioning appears in the representative browse/login/detail flows."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "Screenshots and heading/navigation DOM inspection",
      "evidence": "Each navigation destination exposes a specific H1 and active contextual taxonomy; the 404 provides a clear return link.",
      "pathIds": [
        "category",
        "detail",
        "not-found"
      ],
      "artifacts": [
        "evidence/category-recon.json",
        "evidence/detail-recon.json",
        "evidence/404-recon.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Load screenshots and fixed-overlay geometry probe",
      "evidence": "The cookie notice is fixed over lower first-viewport content on desktop and mobile.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-platform-a11y.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered DOM and semantic element inspection",
      "evidence": "The consent overlay is a custom fixed div; no dialog or popover primitive is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-a11y.json"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Desktop and mobile visual inspection",
      "evidence": "Outside the compact global header/nav and consent notice, the gallery grid dedicates nearly all visible space to the primary content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Mobile layout metrics and screenshot",
      "evidence": "At the narrow viewport, layout reported scrollWidth=clientWidth=450 and zero horizontal overflow; the mobile screenshot shows a single-column adaptive layout.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Live stylesheet inspection",
      "evidence": "No container queries were found in the shared stylesheets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-feature-probe.json"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus and target geometry probe",
      "evidence": "Primary focused controls have no visible focus style and some hit targets are below 24px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-a11y.json"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "First-viewport screenshots and heading recon",
      "evidence": "Homepage, category and detail templates each use a direct H1 and put the browse/view content immediately below the header.",
      "pathIds": [
        "home",
        "category",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/category-mobile.png",
        "evidence/detail-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Cross-page navigation and search recon",
      "evidence": "The representative journey completed from homepage taxonomy to category listing to gallery detail; search also resolved a query to the matching category.",
      "pathIds": [
        "home",
        "category",
        "detail",
        "search"
      ],
      "artifacts": [
        "evidence/home-links-assets.json",
        "evidence/category-recon.json",
        "evidence/detail-recon.json",
        "evidence/search-recon.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid-form and 404 state exercise",
      "evidence": "Blank login submission exposes field-specific required messages and aria-invalid; the 404 clearly states failure and links back to the main page.",
      "pathIds": [
        "login",
        "not-found"
      ],
      "artifacts": [
        "evidence/login-blank-submit.json",
        "evidence/404-mobile.png",
        "evidence/404-recon.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse plus independent DevTools trace",
      "evidence": "Standard Lighthouse throttling measured LCP 5.6s and FCP 3.1s, outside good ranges.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout-shift observers and image audit",
      "evidence": "Layout observers measured CLS 0 on mobile and 0.000011 on desktop; the principal images reserve dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-layout-desktop.json",
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Trace and Lighthouse performance metrics",
      "evidence": "Trace recorded one 55.9ms long task and only 5.9ms total blocking time; Lighthouse TBT was 67ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-home-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary, DOM script confirmation, Lighthouse insights and image audit",
      "evidence": "Critical CSS, delayed LCP rendering and oversized legacy images add avoidable delivery cost.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-platform-a11y.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse code coverage diagnostics",
      "evidence": "Lighthouse estimated 224KiB unused JS and 28KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audit",
      "evidence": "Two linked certification images have no alt and their links have no discernible name.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/axe-derived contrast audit",
      "evidence": "Observed text combinations measured 2.92:1 and 3.63:1, below 4.5:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus walk and computed outline probe",
      "evidence": "Search and menu controls lose visible focus indication.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-a11y.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Multi-viewport visual inspection",
      "evidence": "Headings, controls and body copy are readable without clipping in desktop/mobile screenshots; page-specific H1 text remains visible on listing/detail/login templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/login-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Viewport metadata, Lighthouse viewport insight and target geometry",
      "evidence": "initial-scale=0.8 and sub-24px targets weaken mobile/zoom usability.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/home-platform-a11y.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse console event audit",
      "evidence": "Anonymous load logs an identity-provider signed-out error.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM document probe plus Lighthouse/detail image audit",
      "evidence": "Document doctype/charset are valid, but certification images lack explicit dimensions.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-a11y.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/detail-images.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices diagnostics",
      "evidence": "Large first-party bundle lacks a valid source map.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered and raw DOM metadata inspection",
      "evidence": "Homepage, category and detail all expose descriptive titles; homepage and detail expose relevant descriptions.",
      "pathIds": [
        "home",
        "category",
        "detail"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/category-recon.json",
        "evidence/detail-recon.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "DOM links/viewport, robots and discoverability primitive",
      "evidence": "Links use real href values, viewport metadata exists, robots allows primary public paths, and raw HTML retains 90% of rendered content.",
      "pathIds": [
        "home",
        "category",
        "detail"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/robots.json",
        "evidence/home-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Metadata probes, robots and sitemap index inspection",
      "evidence": "No canonical/hreflang signals were found and the public detail template is noindex,follow.",
      "pathIds": [
        "home",
        "localized",
        "detail"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/es-recon.json",
        "evidence/detail-recon.json",
        "evidence/robots.json",
        "evidence/sitemapindex.json"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Detail DOM metadata inspection",
      "evidence": "The gallery detail page has no JSON-LD or Open Graph metadata.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-recon.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Security headers and cookie primitives",
      "evidence": "HTTPS/HSTS are present, but CSP is wildcard/unsafe and every observed cookie lacks Secure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "medium",
      "method": "Tracker, secret and HAR origin inspection",
      "evidence": "No known tracker origins or exposed secrets were found; the only external runtime origin was Google Identity for an offered sign-in path.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/secrets.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Login form and API-affordance inspection",
      "evidence": "No permission prompt occurred, but authentication exposes password/federated sign-in only and no passkey path.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-recon.json",
        "evidence/login-mobile.png"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Security header primitive",
      "evidence": "nosniff and Permissions-Policy are missing; frame/referrer/CSP policies are broad.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability no-JS fetch and crawler screenshot",
      "evidence": "Raw HTML retained 90% of rendered content, including title, H1 and description; the page is not a JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-rendered.png",
        "evidence/home-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Recorded interaction and screenshots",
      "evidence": "The mobile menu interaction completed without clipping/crash, standard links remained usable, and no runtime blank state appeared.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/menu-interaction.mp4",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "This is a public media/content website rather than an app whose core browsing flow is expected to work offline; a standalone manifest exists, but offline installation is not required for the audited task.",
      "reason": "This is a public media/content website rather than an app whose core browsing flow is expected to work offline; a standalone manifest exists, but offline installation is not required for the audited task."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "medium",
      "method": "404 route exercise",
      "evidence": "The representative missing route renders a clear 404 explanation and a direct return to the main page instead of a blank shell or spinner.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-mobile.png",
        "evidence/404-recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Localized DOM plus shared stylesheet analysis",
      "evidence": "Spanish content and lang are correct, but CSS relies entirely on physical directional properties.",
      "pathIds": [
        "localized"
      ],
      "artifacts": [
        "evidence/es-recon.json",
        "evidence/css-feature-probe.json"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "The representative templates do not present dates, prices, currencies, localized numeric inputs, durations or calendar data requiring locale-aware formatting.",
      "reason": "The representative templates do not present dates, prices, currencies, localized numeric inputs, durations or calendar data requiring locale-aware formatting."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "The representative browse, gallery and sign-in templates expose no events, schedules, timestamps or recurring time concepts.",
      "reason": "The representative browse, gallery and sign-in templates expose no events, schedules, timestamps or recurring time concepts."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile screenshots and flow inspection",
      "evidence": "The consent banner gives Reject All and Accept All equal visual prominence, provides Manage, and the sampled browse/login flows did not force continuity or hide cancellation.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/login-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Blank form submission exercise",
      "evidence": "Submitting blank login fields produces concise field-specific messages and sets aria-invalid without navigation or lost context.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-blank-submit.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Login form DOM inspection",
      "evidence": "Visible sign-in fields use username and current-password autocomplete tokens and expose programmatic labels via aria-label.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-recon.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "medium",
      "method": "Login screenshot and DOM inspection",
      "evidence": "The sampled account entry exposes recovery, sign-up and federated sign-in alongside the standard login; no subscription/checkout commitment was part of the audited first-party flow.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-mobile.png",
        "evidence/login-recon.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Homepage/detail image audits and HAR totals",
      "evidence": "Legacy formats, absent responsive sources and avoidable eager/oversized imagery dominate this media-heavy site.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "medium",
      "method": "HAR, trace and tracker primitives",
      "evidence": "Initial load used 28 requests and trace showed 5.9ms blocking time with no ongoing media; no known tracker or continuous background workload was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/trackers.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR weight offenders and image audit",
      "evidence": "For an image grid the media is useful, but non-responsive legacy images create avoidable transfer cost and the initial page still downloads a 99KB identity script before login is requested.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "No developer intent or agent-facing transaction surface was declared; this emerging capability is optional here. Public content is nevertheless exposed in semantic raw HTML and crawlable links.",
      "reason": "No developer intent or agent-facing transaction surface was declared; this emerging capability is optional here. Public content is nevertheless exposed in semantic raw HTML and crawlable links."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon",
      "evidence": "The audited browse, gallery and sign-in tasks have no clear need for on-device language-model or summarisation features.",
      "reason": "The audited browse, gallery and sign-in tasks have no clear need for on-device language-model or summarisation features."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline/post heap summaries and same-session metrics",
      "evidence": "After 10 full-page scroll cycles, DOM element count was unchanged; heap snapshot size rose about 4.8% while lazy content was exercised, and closure count slightly decreased, providing no evidence of unbounded retained growth in this window.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap summary and DOM/heap metrics",
      "evidence": "Baseline heap self-size was about 10.1MB with 158,828 heap nodes, proportionate to a long image grid; rendered DOM contained 1,161 elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Before/after heap constructor comparison and DOM metrics",
      "evidence": "No Detached constructor appeared among the dominant heap constructors, rendered DOM count stayed unchanged after repetition, and closure count fell from 6,207 to 6,198.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "agent": "pi",
  "runId": "2026-07-26T10-32-13-966Z"
}
