{
  "url": "https://pornobrasil.com",
  "auditedAt": "2026-07-21T02:21:16.080Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete report-only audit across five representative paths.",
  "page": {
    "appType": "mpa",
    "framework": "WordPress",
    "notes": "Server-rendered Portuguese media catalogue. Audited homepage, category index, representative detail, search results, and 404 recovery. Account, checkout, upload/admin, and every taxonomy variant were not covered because they were absent from public navigation or duplicate sampled templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "robots-and-sitemap"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "custom-button-actions",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "coverage-plan.json",
      "caption": "Atomic 58-check evidence plan",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage at desktop viewport",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage at 360x800",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Homepage under prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/categories-mobile.png",
      "caption": "Category index at 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Representative detail at 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "Search results at 360x800",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "404 recovery at 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Homepage rendered DOM/CSS",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/categories-dom.json",
      "caption": "Category rendered DOM/CSS",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "Detail rendered DOM/CSS",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "Search rendered DOM/CSS",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/404-dom.json",
      "caption": "404 rendered DOM/CSS",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "Metadata, semantics, focus, media and modern-CSS probe",
      "findingIds": [
        "F03",
        "F05",
        "F06",
        "F07",
        "F11",
        "F13",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "Dark/reduced-motion probe",
      "findingIds": [
        "F01",
        "F02",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/detail-probe.json",
      "caption": "Detail metadata/player probe",
      "findingIds": [
        "F05",
        "F16"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Homepage mobile layout metrics",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/detail-layout-mobile.json",
      "caption": "Detail mobile layout metrics",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "Homepage performance trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact performance summary",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Homepage network archive",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact network summary",
      "findingIds": [
        "F02",
        "F09",
        "F18",
        "F19"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse report",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10",
        "F11",
        "F12",
        "F14",
        "F15"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "Baseline heap summary",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "Post-interaction heap summary",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "Raw/rendered discoverability comparison",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Browser-rendered view",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "No-JS crawler view",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header audit",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie audit",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party tracker audit",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client secret scan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image delivery audit",
      "findingIds": [
        "F15",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "Sitemap index",
      "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",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot or computed background under an emulated prefers-color-scheme: dark condition will reveal whether surfaces re-tint; the page CSS / a color-scheme declaration is corroborating evidence. The model chooses the method.",
      "evidence": "The preference probe matched a dark preference but reported colorScheme \"normal\"; light and dark captures are byte-identical (181,232 bytes).",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F01"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video, or an in-page probe of getAnimations()/computed animation under an emulated prefers-reduced-motion: reduce condition, can show whether motion stops. The model chooses.",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce and still counted 90 autoplay videos. HAR recorded 90 media requests and 14.85 MB of media transfer.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F02"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot under emulated prefers-contrast: more / forced-colors, or an axe/contrast probe, can show whether controls and text survive. The model chooses.",
      "evidence": "Lighthouse numeric colour-contrast audit passed; mobile screenshots show text and controls remain legible on the dark surface.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video of a route/state change shows whether it animates; the page source / ::view-transition usage corroborates. The model chooses.",
      "evidence": "DOM/CSS probe found no view-transition declarations across the listing and detail templates; links perform cross-document navigation.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F03"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "source/CSS inspection for animation-timeline: scroll()/view(); a long-task / scroll-handler probe can flag the main-thread anti-pattern. The model chooses.",
      "evidence": "DOM/CSS inspection found no scroll-linked animation and layout reported no long tasks; therefore no main-thread scroll-animation anti-pattern is present.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for scroll-snap / overscroll-behavior / physics-based easing vs custom pointermove listeners. The model chooses.",
      "evidence": "Representative pages use native scrolling and links; DOM inspection found no custom pointer gesture layer fighting platform behaviour.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video of scrolling, or CSS inspection for scroll-state container queries. The model chooses.",
      "evidence": "The mobile homepage is 15,483 px tall, while DOM/CSS inspection found no scroll-state query or progress indicator.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "CSS inspection for anchor-name / position-anchor / position-try on overlays; a screenshot of an open overlay near a viewport edge can show drift. The model chooses.",
      "evidence": "No tooltip, popover, or edge-positioned menu exists on the representative templates.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "No tooltip, popover, or edge-positioned menu exists on the representative templates."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for ::highlight / scroll-marker; a transition video can show whether attention is cued after navigation. The model chooses.",
      "evidence": "Mobile screenshots show a persistent, consistent header plus clearly labelled category/card destinations and the detail heading directly above the player.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot on load, or a DOM probe for full-viewport overlays present before interaction. The model chooses.",
      "evidence": "Initial-load screenshots on home, category, search, detail, and 404 paths show content immediately with no blocking interstitial.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/source inspection for popover / <dialog> / <details> vs custom overlay divs with manual dismiss handling. The model chooses.",
      "evidence": "The probe found a \"+\" button with no accessible name or aria-expanded and detail actions using href=\"#\"/\"#!\" rather than semantic disclosure primitives.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F05"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot plus layout metrics can show the proportion of the viewport given to chrome vs content. The model chooses.",
      "evidence": "Mobile screenshots devote the viewport primarily to category and media cards with only one compact header.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout metrics (scrollWidth vs innerWidth) and a screenshot at an emulated narrow mobile viewport reveal overflow. The model chooses.",
      "evidence": "Layout at 360x800 reported scrollWidth 360, clientWidth 360, and 0 px overflow on home and detail.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "CSS inspection for @container / container-type; a computed-style probe of the same component in a wide vs narrow container shows whether it adapts. The model chooses.",
      "evidence": "The rendered mobile grid adapts, but DOM/CSS inspection found no container queries despite the same cards appearing in home, category, search, and related-content containers.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "a focus probe (focus an element, read the computed outline) or an axe target-size check; a screenshot of a focused control corroborates. The model chooses.",
      "evidence": "Focused links reported outline-style none and no box shadow; Lighthouse failed target-size.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "screenshot the first viewport and key scrolled states; inspect heading structure, nav labels, button text, and visual hierarchy; a task walkthrough can show whether the next action is obvious. The model chooses.",
      "evidence": "The home H1 names the catalogue purpose; category cards and search are visible in the first mobile viewport.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "run the flow manually with screenshots/DOM snapshots at each step; compare expected vs actual path length; inspect form requirements, navigation continuity, and blockers. The model chooses.",
      "evidence": "Walkthrough from homepage listing to a detail page reached a loaded player with controls and related navigation.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "exercise network delay/failure, invalid input, empty data and success states; screenshot the state messaging and recovery controls; inspect whether browser history and focus remain sensible. The model chooses.",
      "evidence": "A real missing URL returned HTTP 404, displayed \"Page not found\", and provided a Return to Home link.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse reports LCP/CLS/TBT directly and the model may run it; layout metrics + a layout-shift observer + a long-task observer (the evidence primitives) give the same signal first-party. The model chooses.",
      "evidence": "Lighthouse measured LCP 3.6 s, Speed Index 7.9 s, and performance 0.82; the trace on a warm desktop-like run was faster at 665 ms, so the mobile result remains the conservative primary signal.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "the layout primitive's CLS observer captures shifts; a transition video of the first seconds shows content jumping. The model chooses.",
      "evidence": "Mobile layout observation reported CLS 0 on home and 0.000817 on detail, both in the good range.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "the layout primitive records long tasks; a heap summary shows the object population; Lighthouse reports TBT. The model chooses.",
      "evidence": "Trace reported zero long tasks and 0 ms total blocking time; Lighthouse TBT was 10 ms.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary can reveal cache headers, redirects, render-blocking candidates, weight offenders and dependency shape; a trace/Lighthouse insight report can corroborate LCP discovery, render-blocking, font-display and document latency. The model chooses.",
      "evidence": "HAR recorded 209 requests and 16,126,535 transferred bytes; 90 media requests contributed 14,850,041 bytes and Lighthouse estimated 14,518 KiB cache savings.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F09"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/code-coverage style evidence can flag unused JS/CSS, duplicated JavaScript and legacy code; a HAR summary shows third-party byte cost and request count. The model chooses.",
      "evidence": "Lighthouse estimated 133 KiB unused JavaScript and 11 KiB unused CSS.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F10"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core (injectable via the evaluate primitive) or Lighthouse's a11y audits enumerate these; a DOM probe of the accessibility-relevant attributes is a first-party alternative. The model chooses.",
      "evidence": "Lighthouse failed link-name; the search submit control is an icon glyph and the \"+\" disclosure has no aria-label.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F11"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe contrast rules, a Lighthouse contrast audit, or an in-page probe computing contrast ratios from computed colours. The model chooses.",
      "evidence": "Lighthouse failed link-in-text-block on multiple nodes, although its numeric colour-contrast audit passed.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F12"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe/Lighthouse structural audits; a focus-walk probe (tab through, read activeElement + computed outline) is a first-party alternative. The model chooses.",
      "evidence": "The focus walk reported outline-style none and no box shadow for navigation links and controls.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F13"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot of body and heading text, plus CSS inspection for text-wrap / text alignment / font fallback handling. The model chooses.",
      "evidence": "Mobile screenshots across four templates show readable 14-18 px text, coherent wrapping, and no clipping or overlap.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/axe target-size, meta-viewport and media-caption audits are useful signals; screenshots at narrow and zoomed conditions plus DOM/media inspection can corroborate. The model chooses.",
      "evidence": "Viewport content is \"maximum-scale=1.0, user-scalable=0\"; Lighthouse failed meta-viewport and target-size.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F14"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "capture Runtime/Log CDP events, or a probe that reads collected errors; Lighthouse reports this too. The model chooses.",
      "evidence": "Lighthouse errors-in-console audit passed with no logged browser errors.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM/source probe for doctype/charset/img dimensions; CSS inspection for repetition; Lighthouse best-practices audits cover the rest. The model chooses.",
      "evidence": "The image audit found 87 of 100 images without width/height, 60 without srcset, 58 oversized, and no modern-format images; Lighthouse also failed low-resolution image delivery.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F15"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DevTools inspector/deprecation signals can surface these; DOM/source probes can verify paste handlers and prompt timing. The model chooses.",
      "evidence": "Lighthouse passed deprecations, BFCache, notification-on-start, and geolocation-on-start audits.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM probe reads <title> and meta[name=description]; Lighthouse SEO audits cover the same ground. The model chooses.",
      "evidence": "DOM evidence for ?s=teste has a descriptive title but no meta description or canonical URL, while robots defaults to indexable behaviour.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F21"
      ],
      "artifacts": [
        "evidence/search-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for anchor hrefs, viewport meta, and robots; Lighthouse SEO audits corroborate. The model chooses.",
      "evidence": "Lighthouse passed crawlable anchors, robots, viewport presence, and crawlability; robots.txt links a sitemap index.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response status and headers, <link rel=canonical>, hreflang links, robots meta, robots.txt and sitemap.xml; Lighthouse SEO audits cover several of these. The model chooses.",
      "evidence": "DOM evidence for ?s=teste has a descriptive title but no meta description or canonical URL, while robots defaults to indexable behaviour.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F21"
      ],
      "artifacts": [
        "evidence/search-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "inspect JSON-LD/microdata and social preview tags against visible content; Lighthouse has a manual structured-data audit, and ad-hoc probes can parse schema.org blocks. The model chooses.",
      "evidence": "The detail probe found Article JSON-LD but no Open Graph/Twitter tags and no VideoObject; the visible primary entity is a video.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F16"
      ],
      "artifacts": [
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers / page protocol via an evaluate probe or the network layer; Lighthouse best-practices flags HTTPS and CSP issues. The model chooses.",
      "evidence": "HTTPS and HSTS are present, but the headers primitive found no CSP, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/headers.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "inspect network requests and third-party origins; a probe of analytics/beacon calls. The model chooses.",
      "evidence": "Tracker evidence found six third-party origins and Google Analytics/Tag Manager; HAR attributed 94 requests and 15,135,396 bytes to third parties.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "a probe for permission requests fired on load; source inspection for passkey / WebAuthn / navigator.credentials usage in auth flows. The model chooses.",
      "evidence": "Lighthouse confirmed no notification or geolocation prompt on load, and no authentication surface is present.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers and browser security state; Lighthouse/DevTools security audits can corroborate HSTS, clickjacking, Trusted Types, origin isolation and third-party cookie findings. The model chooses.",
      "evidence": "HTTPS and HSTS are present, but the headers primitive found no CSP, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/headers.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "load with scripting disabled or compare a no-JS fetch of the HTML against the rendered page; check for Baseline-aware fallbacks in source. The model chooses.",
      "evidence": "Discoverability comparison found 100% raw/rendered content coverage, no JS shell, and title/H1/description in server HTML.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "exercise menus near viewport edges with a screenshot; a probe of async/visibility behaviour. The model chooses.",
      "evidence": "Home, category, search, detail and 404 templates rendered complete content without clipped overlays or runtime errors.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "a probe for a service worker registration and a web app manifest; test behaviour offline. The model chooses.",
      "evidence": "This server-rendered media catalogue is a content site, not an installable application; offline playback is not a credible core task.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "This server-rendered media catalogue is a content site, not an installable application; offline playback is not a credible core task."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "simulate failed fetches/offline mode or inspect representative 404/500 routes; screenshots and DOM snapshots of error/loading/empty states show whether recovery is possible. The model chooses.",
      "evidence": "The tested 404 returns the correct status, explains the state, and offers a direct recovery link.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for <html lang>/dir and CSS inspection for logical vs physical properties. The model chooses.",
      "evidence": "All sampled DOM captures set html lang=\"pt-BR\" and screenshots show correct left-to-right reading order.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for Intl.* usage vs hand-rolled formatting; a probe of rendered dates/numbers under a different locale. The model chooses.",
      "evidence": "The sampled single-locale pages expose no user-facing dates, currencies, numbers, durations, or other locale-formatted data.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "The sampled single-locale pages expose no user-facing dates, currencies, numbers, durations, or other locale-formatted data."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for time-zone-aware date handling vs naive local Date math. The model chooses.",
      "evidence": "The sampled site exposes no event scheduling or time-zone-sensitive user flow.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "The sampled site exposes no event scheduling or time-zone-sensitive user flow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot of consent/upsell/cancel flows; source inspection for declarative button actions vs misleading controls. The model chooses.",
      "evidence": "Observed catalogue, search, detail, and 404 paths showed no consent nag, forced continuity, confirmshaming, or hidden pricing.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "exercise a form, submit invalid input, and observe timing and clarity of errors via a screenshot or a :user-invalid / aria-invalid probe. The model chooses.",
      "evidence": "The only form is optional search and has no required or constrained fields to validate.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "The only form is optional search and has no required or constrained fields to validate."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "source/DOM inspection for autocomplete attributes on form fields; a probe of autofill affordances. The model chooses.",
      "evidence": "The sole search field is a simple text query without identity, address, payment, or sign-in data requiring specialised autocomplete tokens.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "walkthrough checkout/subscription/auth/account flows when present; screenshot pricing, confirmation, cancellation and reauthentication states; inspect passkey/autocomplete support for sign-in and payment. The model chooses.",
      "evidence": "No checkout, subscription, authentication, or account-management flow is present in the audited public scope.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "No checkout, subscription, authentication, or account-management flow is present in the audited public scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "inspect transferred image bytes vs displayed size; source inspection for modern formats and resolution handling. The model chooses.",
      "evidence": "The images primitive found 58 oversized images, 60 without responsive sources, and 100 legacy-format images with zero modern-format images.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F20"
      ],
      "artifacts": [
        "evidence/images.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "a long-task / network probe for background fetches and processing while idle or backgrounded. The model chooses.",
      "evidence": "Ninety muted previews autoplay on load and account for 14.85 MB of media transfer before the user selects a video.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F19"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary shows third-party bytes, font/media weight and caching; screenshots/video reveal autoplay and decorative media; trace/layout evidence shows whether media/animation keeps work running. The model chooses.",
      "evidence": "Ninety muted previews autoplay on load and account for 14.85 MB of media transfer before the user selects a video.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "findingIds": [
        "F19"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for WebMCP / agentic-tool registration and agent-readable affordances. The model chooses.",
      "evidence": "The site exposes a public media catalogue but no transactional or productivity capability that warrants WebMCP tooling.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "The site exposes a public media catalogue but no transactional or productivity capability that warrants WebMCP tooling."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for built-in AI (language model / summariser) usage. The model chooses.",
      "evidence": "No summarisation, generation, or other inference task is part of the observed core experience.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ],
      "reason": "No summarisation, generation, or other inference task is part of the observed core experience."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "compare heap snapshots for retained growth - a baseline, then one taken after repeating the interaction with `--interact` about 10x (the memory-tracer methodology: baseline -> repeat -> post -> compare). Performance.getMetrics (JSHeapUsedSize, Nodes) across the same before/after window is corroboration. If Chrome DevTools MCP is available, follow its memory-leak-debugging skill: capture baseline, target, and final snapshots, then use memlab or the provided comparison workflow rather than reading",
      "evidence": "After ten repeated full-page scroll cycles, heap grew only 162,124 bytes (1.0%) and 84 nodes, with stable Object/Array/closure counts.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "a single `heap` summary's totals (nodeCount, totalSelfSizeBytes, constructor population) plus Performance.getMetrics (Nodes, JSHeapUsedSize) give the current footprint to judge against the page's purpose. Chrome DevTools MCP heap snapshots and memlab snapshot analysis can provide the same memory distribution when available. Read summaries or derived analysis, never raw snapshots unless a dedicated heap-analysis tool is doing the analysis. The model chooses.",
      "evidence": "Baseline heap was 15,637,603 bytes with 237,736 snapshot nodes, proportionate to the large server-rendered catalogue and media integrations.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "the `heap` summary by constructor (Detached* nodes) compared across a before/after pair shows a growing detached-DOM population; an `evaluate` probe can sample listener/timer counts (e.g. getEventListeners-style counting, or instrumenting addEventListener/setInterval) before and after the repeated interaction to spot growth. Chrome DevTools MCP heap snapshots plus the memory-leak-debugging skill's common-leak guidance can corroborate detached DOM, listeners, closures, globals, and unbounded cach",
      "evidence": "Before/after summaries kept Object, Array, and closure constructor counts unchanged and showed no Detached* constructor among leading retained objects.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "recovery"
      ]
    }
  ],
  "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"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21",
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F20",
        "F19"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable to this public catalogue surface."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage catalogue and main content-discovery entry point.",
      "url": "https://pornobrasil.com/",
      "conditions": [
        "desktop",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Category index archetype representing taxonomy navigation.",
      "url": "https://pornobrasil.com/categorias/",
      "conditions": [
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative video detail and playback journey.",
      "url": "https://pornobrasil.com/morena-da-bucetao-melissa-hot-fez-sexo-forte-e-levou-gozada-dentro/",
      "conditions": [
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search results and query-discovery archetype.",
      "url": "https://pornobrasil.com/?s=teste",
      "conditions": [
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "recovery",
      "description": "Unknown route used to evaluate HTTP/404 recovery.",
      "url": "https://pornobrasil.com/this-page-does-not-exist-web-uplift/",
      "conditions": [
        "360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "low",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "modern-web",
      "summary": "The fixed dark palette does not follow the user’s color-scheme preference.",
      "evidence": "The preference probe matched a dark preference but reported colorScheme \"normal\"; light and dark captures are byte-identical (181,232 bytes).",
      "suggestedFix": "Declare color-scheme and provide preference-driven light and dark tokens.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F02",
      "severity": "high",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web",
      "summary": "Ninety preview videos autoplay even when reduced motion is requested.",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce and still counted 90 autoplay videos. HAR recorded 90 media requests and 14.85 MB of media transfer.",
      "suggestedFix": "Use static posters by default, disable autoplay under reduced motion, and start previews only after explicit or tightly scoped interaction.",
      "effort": "medium",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "modern-web",
      "summary": "Full-page navigation swaps abruptly without View Transitions.",
      "evidence": "DOM/CSS probe found no view-transition declarations across the listing and detail templates; links perform cross-document navigation.",
      "suggestedFix": "Add opt-in cross-document View Transitions with a reduced-motion fallback.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "modern-web",
      "summary": "Long listing pages provide no scroll-position feedback.",
      "evidence": "The mobile homepage is 15,483 px tall, while DOM/CSS inspection found no scroll-state query or progress indicator.",
      "suggestedFix": "Add a lightweight scroll-state-aware header or progress/return affordance for long listings.",
      "effort": "small",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-dom.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F05",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web",
      "summary": "Disclosure and information controls use ad-hoc links/buttons without semantic state.",
      "evidence": "The probe found a \"+\" button with no accessible name or aria-expanded and detail actions using href=\"#\"/\"#!\" rather than semantic disclosure primitives.",
      "suggestedFix": "Use details/summary or declaratively controlled popovers and expose names plus expanded state.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-probe.json"
      ],
      "pathId": "detail",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F06",
      "severity": "low",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web",
      "summary": "Reusable card grids adapt only at the viewport level.",
      "evidence": "The rendered mobile grid adapts, but DOM/CSS inspection found no container queries despite the same cards appearing in home, category, search, and related-content containers.",
      "suggestedFix": "Give reusable grids a containment context and use size container queries for card layout decisions.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/search-mobile.png"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web",
      "summary": "Keyboard focus and touch target support are inadequate.",
      "evidence": "Focused links reported outline-style none and no box shadow; Lighthouse failed target-size.",
      "suggestedFix": "Add clear :focus-visible styles and enlarge or space interactive targets to at least the applicable WCAG target-size bar.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F08",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web",
      "summary": "Mobile LCP and visual completion are slow.",
      "evidence": "Lighthouse measured LCP 3.6 s, Speed Index 7.9 s, and performance 0.82; the trace on a warm desktop-like run was faster at 665 ms, so the mobile result remains the conservative primary signal.",
      "suggestedFix": "Prioritise the actual LCP asset, stop eager preview media, and defer below-fold work.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "modern-web",
      "summary": "The homepage eagerly transfers an excessive media payload.",
      "evidence": "HAR recorded 209 requests and 16,126,535 transferred bytes; 90 media requests contributed 14,850,041 bytes and Lighthouse estimated 14,518 KiB cache savings.",
      "suggestedFix": "Replace eager video previews with posters, lazy-load near the viewport, and set long-lived cache headers on immutable media.",
      "effort": "medium",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F10",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web",
      "summary": "Unused front-end code is shipped on the primary path.",
      "evidence": "Lighthouse estimated 133 KiB unused JavaScript and 11 KiB unused CSS.",
      "suggestedFix": "Remove unneeded WordPress/plugin assets per template and load optional dependencies conditionally.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web",
      "summary": "Some interactive elements lack accessible names.",
      "evidence": "Lighthouse failed link-name; the search submit control is an icon glyph and the \"+\" disclosure has no aria-label.",
      "suggestedFix": "Give every link and control a programmatic name and keep native semantics.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-probe.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F12",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web",
      "summary": "Links in text rely on colour alone.",
      "evidence": "Lighthouse failed link-in-text-block on multiple nodes, although its numeric colour-contrast audit passed.",
      "suggestedFix": "Add a non-colour cue such as an underline with suitable offset and thickness.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F13",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web",
      "summary": "Keyboard focus is visually suppressed.",
      "evidence": "The focus walk reported outline-style none and no box shadow for navigation links and controls.",
      "suggestedFix": "Define a consistent, high-contrast :focus-visible indicator that is not clipped.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web",
      "summary": "The viewport prevents user zoom and targets are undersized.",
      "evidence": "Viewport content is \"maximum-scale=1.0, user-scalable=0\"; Lighthouse failed meta-viewport and target-size.",
      "suggestedFix": "Remove maximum-scale/user-scalable restrictions and enlarge crowded targets.",
      "effort": "trivial",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F15",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web",
      "summary": "Image delivery markup is incomplete.",
      "evidence": "The image audit found 87 of 100 images without width/height, 60 without srcset, 58 oversized, and no modern-format images; Lighthouse also failed low-resolution image delivery.",
      "suggestedFix": "Emit intrinsic dimensions, responsive srcset/sizes, and appropriately encoded sources.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "modern-web",
      "summary": "Detail pages lack video-specific and social share metadata.",
      "evidence": "The detail probe found Article JSON-LD but no Open Graph/Twitter tags and no VideoObject; the visible primary entity is a video.",
      "suggestedFix": "Publish accurate VideoObject JSON-LD and Open Graph/Twitter metadata matching the visible detail page.",
      "effort": "small",
      "artifacts": [
        "evidence/detail-probe.json"
      ],
      "pathId": "detail",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F17",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web",
      "summary": "Important browser security headers are missing.",
      "evidence": "HTTPS and HSTS are present, but the headers primitive found no CSP, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy.",
      "suggestedFix": "Deploy a restrictive CSP (including frame-ancestors), nosniff, Referrer-Policy, and a minimal Permissions-Policy.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F18",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web",
      "summary": "The primary page exposes sensitive browsing activity to a broad third-party set.",
      "evidence": "Tracker evidence found six third-party origins and Google Analytics/Tag Manager; HAR attributed 94 requests and 15,135,396 bytes to third parties.",
      "suggestedFix": "Minimise analytics, obtain meaningful consent where required, proxy or defer external media, and document third-party data handling.",
      "effort": "large",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F19",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web",
      "summary": "Autoplay previews consume disproportionate network and media resources.",
      "evidence": "Ninety muted previews autoplay on load and account for 14.85 MB of media transfer before the user selects a video.",
      "suggestedFix": "Use still thumbnails and fetch a preview only on intent, stopping it when it leaves the viewport.",
      "effort": "medium",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F20",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "modern-web",
      "summary": "Images are not delivered at efficient resolutions or formats.",
      "evidence": "The images primitive found 58 oversized images, 60 without responsive sources, and 100 legacy-format images with zero modern-format images.",
      "suggestedFix": "Generate AVIF/WebP variants and responsive source sets sized to rendered cards.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json"
      ],
      "pathId": "home",
      "url": "https://pornobrasil.com/"
    },
    {
      "id": "F21",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "modern-web",
      "summary": "Search-result pages omit key indexing metadata.",
      "evidence": "DOM evidence for ?s=teste has a descriptive title but no meta description or canonical URL, while robots defaults to indexable behaviour.",
      "suggestedFix": "Add a useful search-results description and intentional canonical/noindex policy.",
      "effort": "small",
      "artifacts": [
        "evidence/search-dom.json"
      ],
      "pathId": "search",
      "url": "https://pornobrasil.com/?s=teste"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Stop eager autoplay previews and defer media",
      "priority": 1,
      "findingIds": [
        "F02",
        "F08",
        "F09",
        "F19"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Restore zoom, focus indicators, target sizing, and accessible names",
      "priority": 2,
      "findingIds": [
        "F07",
        "F11",
        "F13",
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy CSP and the missing defensive response headers",
      "priority": 3,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Minimise and govern third-party tracking/media disclosure",
      "priority": 4,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Modernise responsive image delivery",
      "priority": 5,
      "findingIds": [
        "F15",
        "F20"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Add video/social metadata and intentional search indexing signals",
      "priority": 6,
      "findingIds": [
        "F16",
        "F21"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Add preference-driven theming and semantic disclosures",
      "priority": 7,
      "findingIds": [
        "F01",
        "F05"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Trim unused template assets and introduce component queries",
      "priority": 8,
      "findingIds": [
        "F06",
        "F10"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add progressive navigation polish and long-page position cues",
      "priority": 9,
      "findingIds": [
        "F03",
        "F04"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add non-colour link affordances",
      "priority": 10,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-21T02-11-03-106Z"
}
