{
  "schemaVersion": 1,
  "type": "resource",
  "id": "circle-loaders",
  "evaluation": {
    "reviewedOn": "2026-10-19",
    "status": "checked",
    "modes": [
      "http",
      "browser"
    ],
    "summary": "Selecting 2× halved the observed animation-duration samples from 2400 to 1200 milliseconds. The page’s counted CSS animations stopped when reduced motion was requested.",
    "reportUrl": "/design-evaluations/resource-circle-loaders.json",
    "identity": {
      "target": "https://circleloaders.dominikakissi.com/",
      "version": "Unversioned public page checked 2026-10-19",
      "integrity": "sha256:3b09e853844c06d334fc70702550f490a04c0ffc49f6851eb6b5806aaca7a2da"
    },
    "environment": [
      "Chromium 155.0.8059.82 on Windows; fresh temporary profile and fresh account-free contexts.",
      "Public HTTPS GET/HEAD requests only; telemetry/auth routes and WebSockets blocked. No account storage or credential environment variables."
    ],
    "tests": [
      {
        "name": "Public document and DOM",
        "mode": "browser",
        "method": "Fresh Chromium GET, then inspect rendered controls after hydration delay",
        "result": "pass",
        "observation": "HTTP 200; 55 captured button labels; 0 inputs; 0 canvases."
      },
      {
        "name": "Loader speed control",
        "mode": "browser",
        "method": "Activate 2x playback and inspect CSS animation durations",
        "result": "pass",
        "observation": "Duration samples [2400,2400,2400,2400,2400,2400,2400,2400] -> [1200,1200,1200,1200,1200,1200,1200,1200]."
      }
    ],
    "security": {
      "scope": "Passive inspection of the public response headers, requested hosts and the named browser sample. No active exploitation, authenticated permissions test or complete security audit.",
      "findings": [
        {
          "level": "caution",
          "basis": "observed",
          "title": "Motion behavior is only part of a loading state",
          "detail": "The sampled speed control and media preference changed animation behavior. They do not provide application completion, timeout, failure or accessible status semantics."
        }
      ],
      "limits": [
        "No authenticated workspace, private content, production backend permissions or data-retention verification.",
        "No downloaded SVG integration, screen-reader announcements, complete collection or frame-rate test."
      ]
    },
    "practicalCaveats": [
      "Pair the visual loader with useful status text, bounded waiting and a way to recover from failure.",
      "Pin and recheck the selected version or sample before adoption; the observations apply only to the scope and date shown."
    ],
    "limits": [
      "No downloaded SVG integration, screen-reader announcements, complete collection or frame-rate test.",
      "Fresh-browser restrictions can affect external assets and hydration. Initial failed selectors and limited probes remain in the evidence; they are not blanket product failures."
    ],
    "sources": [
      {
        "label": "Primary public resource",
        "url": "https://circleloaders.dominikakissi.com/"
      }
    ]
  }
}
