Max Potential First Input Delay
2,040 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Words
614
Action candidates
21
Images
20
HTML
1398 KB
Primary
Get started – free
Tailwind
Simulated mobile · Performance
2026-09-05 · Lab data, not field data.
Simulated mobile · Lab data, not field data
2026-09-05T04:03:08.356Z · Lighthouse 13.4.1
Results vary by server, network and environment, independently of taste/conversion scores. Diagnostics retain Lighthouse wording.
2,040 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. Learn more about this errors in console diagnostic audit
{
"type": "table",
"items": [
{
"source": "rendering",
"description": "Error: <svg> attribute width: Expected length, \"auto\".",
"sourceLocation": {
"url": "https://posthog.com/",
"line": 4,
"type": "source-location",
"column": 0,
"urlProvider": "network"
}
},
{
"source": "rendering",
"description": "Error: <svg> attribute width: Expected length, \"auto\".",
"sourceLocation": {
"url": "https://posthog.com/",
"line": 4,
"type": "source-location",
"column": 0,
"urlProvider": "network"
}
},
{
"source": "rendering",
"description": "Error: <svg> attribute width: Expected length, \"auto\".",
"sourceLocation": {
"url": "https://posthog.com/",
"line": 75,
"type": "source-location",
"column": 0,
"urlProvider": "network"
}
},
{
"source": "rendering",
"description": "Error: <svg> attribute width: Expected length, \"auto\".",
"sourceLocation": {
"url": "https://posthog.com/",
"line": 75,
"type": "source-location",
"column": 0,
"urlProvider": "network"
}
}
],
"headings": [
{
"key": "sourceLocation",
"label": "Source",
"valueType": "source-location"
},
{
"key": "description",
"label": "Description",
"valueType": "code"
}
]
}37.5 s
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
Image natural dimensions should be proportional to the display size and the pixel ratio to maximize image clarity. Learn how to provide responsive images.
{
"type": "table",
"items": [
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_180/v1/posthog.com/src/components/EU/images/ursula",
"node": {
"lhId": "1-130-IMG",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL,0,LI,0,DIV,2,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_180/v1/posthog…\" alt=\"Ursula von der Leyen, President of the European Commission\" class=\"\">",
"selector": "div.not-prose > div.absolute > div.inline-block > img",
"nodeLabel": "Ursula von der Leyen, President of the European Commission",
"boundingRect": {
"top": 433,
"left": 231,
"right": 411,
"width": 180,
"bottom": 514,
"height": 81
}
},
"actualSize": "180 x 81",
"actualPixels": 14580,
"expectedSize": "270 x 122",
"displayedSize": "180 x 81",
"expectedPixels": 32940
}
],
"headings": [
{
"key": "node",
"label": "",
"valueType": "node"
},
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "displayedSize",
"label": "Displayed size",
"valueType": "text"
},
{
"key": "actualSize",
"label": "Actual size",
"valueType": "text"
},
{
"key": "expectedSize",
"label": "Expected size",
"valueType": "text"
}
]
}9.3 s
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
{
"type": "table",
"items": [
{
"group": "scriptEvaluation",
"duration": 6380.695999999819,
"groupLabel": "Script Evaluation"
},
{
"group": "other",
"duration": 1411.167999999982,
"groupLabel": "Other"
},
{
"group": "scriptParseCompile",
"duration": 740.3079999999999,
"groupLabel": "Script Parsing & Compilation"
},
{
"group": "styleLayout",
"duration": 462.22400000000005,
"groupLabel": "Style & Layout"
},
{
"group": "paintCompositeRender",
"duration": 185.83999999999884,
"groupLabel": "Rendering"
},
{
"group": "garbageCollection",
"duration": 98.58000000000028,
"groupLabel": "Garbage Collection"
},
{
"group": "parseHTML",
"duration": 71.17600000000002,
"groupLabel": "Parse HTML & CSS"
}
],
"headings": [
{
"key": "groupLabel",
"label": "Category",
"valueType": "text"
},
{
"key": "duration",
"label": "Time Spent",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"duration"
]
}6.9 s
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.
{
"type": "table",
"items": [
{
"url": "https://us-assets.i.posthog.com/static/1/array.js",
"total": 4383.611999999984,
"scripting": 4315.403999999984,
"scriptParseCompile": 16.584
},
{
"url": "https://posthog.com/app-12f4ce35de710020c41a.js",
"total": 2286.0639999999776,
"scripting": 1483.015999999977,
"scriptParseCompile": 538.2639999999999
},
{
"url": "Unattributable",
"total": 1289.4479999999965,
"scripting": 393.73600000000323,
"scriptParseCompile": 0
},
{
"url": "https://posthog.com/",
"total": 741.8919999999999,
"scripting": 29.29599999999993,
"scriptParseCompile": 3.8640000000000003
},
{
"url": "https://us-assets.i.posthog.com/static/1.427.2/posthog-recorder.js",
"total": 371.87599999999975,
"scripting": 82.59599999999995,
"scriptParseCompile": 12.024
}
],
"summary": {
"wastedMs": 6874.783999999964
},
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "total",
"label": "Total CPU Time",
"valueType": "ms",
"granularity": 1
},
{
"key": "scripting",
"label": "Script Evaluation",
"valueType": "ms",
"granularity": 1
},
{
"key": "scriptParseCompile",
"label": "Script Parse",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"total"
]
}5 layout shifts found
These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing. Learn how to improve CLS
{
"type": "table",
"items": [
{
"node": {
"lhId": "page-6-OL",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL",
"type": "node",
"snippet": "<ol tabindex=\"-1\" class=\"fixed bottom-4 right-4 z-50 flex flex-col gap-2 sm:w-[390px] max-w-[calc(1…\" data-radix-toast-viewport=\"true\">",
"selector": "body.light > div#___gatsby > div > ol.fixed",
"nodeLabel": "Legally-required cookie banner\n\nPostHog.com doesn't use third-party cookies, on…",
"boundingRect": {
"top": 334,
"left": 16,
"right": 396,
"width": 380,
"bottom": 807,
"height": 473
}
},
"score": 0.2263343736226506,
"subItems": {
"type": "subitems",
"items": [
{
"cause": "Media element lacking an explicit size",
"extra": {
"lhId": "page-2-IMG",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL,0,LI,0,DIV,2,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_180/v1/posthog…\" alt=\"Ursula von der Leyen, President of the European Commission\" class=\"\">",
"selector": "div.not-prose > div.absolute > div.inline-block > img",
"nodeLabel": "Ursula von der Leyen, President of the European Commission",
"boundingRect": {
"top": 433,
"left": 231,
"right": 411,
"width": 180,
"bottom": 514,
"height": 81
}
}
}
]
}
},
{
"node": {
"lhId": "page-6-OL",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL",
"type": "node",
"snippet": "<ol tabindex=\"-1\" class=\"fixed bottom-4 right-4 z-50 flex flex-col gap-2 sm:w-[390px] max-w-[calc(1…\" data-radix-toast-viewport=\"true\">",
"selector": "body.light > div#___gatsby > div > ol.fixed",
"nodeLabel": "Legally-required cookie banner\n\nPostHog.com doesn't use third-party cookies, on…",
"boundingRect": {
"top": 334,
"left": 16,
"right": 396,
"width": 380,
"bottom": 807,
"height": 473
}
},
"score": 0.1014015832921796
},
{
"node": {
"lhId": "page-9-DIV",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,1,DIV",
"type": "node",
"snippet": "<div class=\"@container mb-4\">",
"selector": "div.@container/reader-content > div.reader-content-container > div.space-y-12 > div.@container",
"nodeLabel": "Ask PostHog anything\nFix bugs from Slack\nAutomatic improvements\nIan Vanagas: th…",
"boundingRect": {
"top": 821,
"left": 24,
"right": 388,
"width": 364,
"bottom": 1704,
"height": 882
}
},
"score": 0.04729384541610452,
"subItems": {
"type": "subitems",
"items": [
{
"cause": "Media element lacking an explicit size",
"extra": {
"lhId": "page-1-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/posthog_ai_light_f654818…\" alt=\"PostHog AI screenshot\" class=\"rounded shadow-2xl border border-primary\">",
"selector": "div.grid > div.flex > div.inline-block > img.rounded",
"nodeLabel": "PostHog AI screenshot",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
}
}
]
}
},
{
"node": {
"lhId": "page-8-DIV",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV",
"type": "node",
"snippet": "<div class=\"inline-block \">",
"selector": "div.@container > div.grid > div.flex > div.inline-block",
"nodeLabel": "PostHog AI screenshot",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"score": 0.00913443750005644,
"subItems": {
"type": "subitems",
"items": [
{
"cause": "Media element lacking an explicit size",
"extra": {
"lhId": "page-1-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/posthog_ai_light_f654818…\" alt=\"PostHog AI screenshot\" class=\"rounded shadow-2xl border border-primary\">",
"selector": "div.grid > div.flex > div.inline-block > img.rounded",
"nodeLabel": "PostHog AI screenshot",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
}
}
]
}
},
{
"node": {
"lhId": "page-4-ASIDE",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,1,ASIDE",
"type": "node",
"snippet": "<aside data-scheme=\"secondary\" class=\"flex items-center gap-0.5 py-1\">",
"selector": "div.z-50 > div#taskbar > div.mx-auto > aside.flex",
"nodeLabel": "Get started – free",
"boundingRect": {
"top": 8,
"left": 161,
"right": 396,
"width": 235,
"bottom": 48,
"height": 40
}
},
"score": 0.0001084705763230148,
"subItems": {
"type": "subitems",
"items": [
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-Medium-93eadd6a93e9cba289ce176c2443e545.woff2"
}
},
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-SemiBold-d86cd114131655b9b47995a1777e9d76.woff2"
}
},
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-ad20905153cad02fadd7da79ee771d57.woff2"
}
},
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-Bold-0418cc284def4ebc55a9d2895fd7cc39.woff2"
}
},
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-Medium-Italic-51c8f3a6b53a4b4e5f6a3d35048e7309.woff2"
}
},
{
"cause": "Web font loaded",
"extra": {
"type": "url",
"value": "https://posthog.com/static/RoundHog-SemiBold-Italic-fdcaa4d6eed2dd1d31952da0d05d8c82.woff2"
}
}
]
}
}
],
"headings": [
{
"key": "node",
"label": "Element",
"valueType": "node",
"subItemsHeading": {
"key": "extra"
}
},
{
"key": "score",
"label": "Layout shift score",
"valueType": "numeric",
"granularity": 0.001,
"subItemsHeading": {
"key": "cause",
"valueType": "text"
}
}
]
}Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
{
"type": "table",
"items": [
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/v1/posthog.com/src/components/Home/images/cloud-cd",
"node": {
"lhId": "1-128-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,8,DIV,2,DIV,1,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/v1/posthog.com/src/compo…\" alt=\"PostHog Web\" class=\"\">",
"selector": "div.relative > div.relative > div.inline-block > img",
"nodeLabel": "PostHog Web",
"boundingRect": {
"top": 6893,
"left": 49,
"right": 363,
"width": 314,
"bottom": 7201,
"height": 308
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/steve_hogs_17c7900b07",
"node": {
"lhId": "1-12-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,6,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/steve_hogs_17c7900b07\" class=\"\">",
"selector": "div.space-y-12 > div#why-posthog > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#why-posthog > div.inline-block > img",
"boundingRect": {
"top": 5059,
"left": 24,
"right": 324,
"width": 300,
"bottom": 5296,
"height": 237
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/night_hog_219fff00f3",
"node": {
"lhId": "1-13-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,7,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/night_hog_219fff00f3\" class=\"\">",
"selector": "div.space-y-12 > div#bedtime-reading > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#bedtime-reading > div.inline-block > img",
"boundingRect": {
"top": 5811,
"left": 14,
"right": 374,
"width": 360,
"bottom": 6079,
"height": 268
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/hogmillionaire_6a6c2c958d",
"node": {
"lhId": "1-11-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,5,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/hogmillionaire_6a6c2c958d\" class=\"\">",
"selector": "div.space-y-12 > div#pricing > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#pricing > div.inline-block > img",
"boundingRect": {
"top": 3992,
"left": 268,
"right": 388,
"width": 120,
"bottom": 4102,
"height": 110
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/v1/posthog.com/src/components/Home/images/g2-badge",
"node": {
"lhId": "1-129-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,8,DIV,2,DIV,1,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/v1/posthog.com/src/compo…\" alt=\"People on G2 think we're great\" class=\"\">",
"selector": "div.relative > div.absolute > div.inline-block > img",
"nodeLabel": "People on G2 think we're great",
"boundingRect": {
"top": 7147,
"left": 41,
"right": 131,
"width": 90,
"bottom": 7264,
"height": 117
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/haha_bizzniss_5bc44659ec",
"node": {
"lhId": "1-14-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,8,DIV,2,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/haha_bizzniss_5bc44659ec\" class=\"\">",
"selector": "div.absolute > div > div.inline-block > img",
"nodeLabel": "div.absolute > div > div.inline-block > img",
"boundingRect": {
"top": 6752,
"left": 252,
"right": 372,
"width": 120,
"bottom": 6887,
"height": 135
}
}
},
{
"url": "https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_180/v1/posthog.com/src/components/EU/images/ursula",
"node": {
"lhId": "1-130-IMG",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL,0,LI,0,DIV,2,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_180/v1/posthog…\" alt=\"Ursula von der Leyen, President of the European Commission\" class=\"\">",
"selector": "div.not-prose > div.absolute > div.inline-block > img",
"nodeLabel": "Ursula von der Leyen, President of the European Commission",
"boundingRect": {
"top": 433,
"left": 231,
"right": 411,
"width": 180,
"bottom": 514,
"height": 81
}
}
},
{
"url": "https://posthog.com/brand/posthog-logo.svg",
"node": {
"lhId": "1-126-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,3,DIV,2,DIV,1,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,0,DIV,9,DIV,0,DIV,0,SPAN,0,A,0,IMG",
"type": "node",
"snippet": "<img src=\"/brand/posthog-logo.svg\" alt=\"PostHog\" class=\"h-full w-auto object-contain dark:hidden max-h-10\">",
"selector": "div.w-auto > span > a.relative > img.h-full",
"nodeLabel": "PostHog",
"boundingRect": {
"top": 2567,
"left": 48,
"right": 179,
"width": 131,
"bottom": 2590,
"height": 23
}
}
}
],
"headings": [
{
"key": "node",
"label": "",
"valueType": "node"
},
{
"key": "url",
"label": "URL",
"valueType": "url"
}
]
}Source maps translate minified code to the original source code. This helps developers debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. Learn more about source maps.
{
"type": "table",
"items": [
{
"subItems": {
"type": "subitems",
"items": [
{
"error": "Large JavaScript file is missing a source map"
},
{
"error": "Error: Timed out fetching resource"
}
]
},
"scriptUrl": "https://posthog.com/app-12f4ce35de710020c41a.js",
"sourceMapUrl": "https://posthog.com/app-12f4ce35de710020c41a.js.map"
},
{
"subItems": {
"type": "subitems",
"items": [
{
"error": "Error: Timed out fetching resource"
}
]
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1/array.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1/array.js.map"
},
{
"subItems": {
"type": "subitems",
"items": [
{
"error": "Error: Timed out fetching resource"
}
]
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/surveys.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/surveys.js.map"
},
{
"subItems": {
"type": "subitems",
"items": [
{
"error": "Error: Timed out fetching resource"
}
]
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/posthog-recorder.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/posthog-recorder.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/web-vitals-with-attribution.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/web-vitals-with-attribution.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/logs.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/logs.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/exception-autocapture.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/exception-autocapture.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/dead-clicks-autocapture.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/dead-clicks-autocapture.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://us-assets.i.posthog.com/static/1.427.2/conversations.js",
"sourceMapUrl": "https://us-assets.i.posthog.com/static/1.427.2/conversations.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/webpack-runtime-018931131fe3f951f082.js",
"sourceMapUrl": "https://posthog.com/webpack-runtime-018931131fe3f951f082.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/f6c1ab35-0dbef59872206c5217aa.js",
"sourceMapUrl": "https://posthog.com/f6c1ab35-0dbef59872206c5217aa.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/ed1deae8-16c6f4d37d9504ae5abc.js",
"sourceMapUrl": "https://posthog.com/ed1deae8-16c6f4d37d9504ae5abc.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/ddc2d7df-6c0f12990a271afb7f65.js",
"sourceMapUrl": "https://posthog.com/ddc2d7df-6c0f12990a271afb7f65.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/component---src-pages-index-tsx-df04cd20f1c3ba0d8a06.js",
"sourceMapUrl": "https://posthog.com/component---src-pages-index-tsx-df04cd20f1c3ba0d8a06.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/c977122edc19ff50597980cdac58678ef6599b11-7987650d8ac1c8dc1182.js",
"sourceMapUrl": "https://posthog.com/c977122edc19ff50597980cdac58678ef6599b11-7987650d8ac1c8dc1182.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/becacf73-56a0f69e2f247daa185a.js",
"sourceMapUrl": "https://posthog.com/becacf73-56a0f69e2f247daa185a.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/aed920e9-55685e7506166bc4a1f7.js",
"sourceMapUrl": "https://posthog.com/aed920e9-55685e7506166bc4a1f7.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/9b206854-c7ca5ab2f81eeede8838.js",
"sourceMapUrl": "https://posthog.com/9b206854-c7ca5ab2f81eeede8838.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/97c8eb05-70e407f03e371625cd2c.js",
"sourceMapUrl": "https://posthog.com/97c8eb05-70e407f03e371625cd2c.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/9754-831b0d842f336221bd86.js",
"sourceMapUrl": "https://posthog.com/9754-831b0d842f336221bd86.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/507a0916-d6225b717e81e4c3bc38.js",
"sourceMapUrl": "https://posthog.com/507a0916-d6225b717e81e4c3bc38.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/4e5c9a1d4810c5f5c6325835bcfd7f436eb1af7e-bfcb94e3e9ac6cfe92a4.js",
"sourceMapUrl": "https://posthog.com/4e5c9a1d4810c5f5c6325835bcfd7f436eb1af7e-bfcb94e3e9ac6cfe92a4.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/36269b29-b8578072ecfbffd6fad9.js",
"sourceMapUrl": "https://posthog.com/36269b29-b8578072ecfbffd6fad9.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/2286-13d0fdb637a2f1726987.js",
"sourceMapUrl": "https://posthog.com/2286-13d0fdb637a2f1726987.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/1933-0a93947e28e08329be0c.js",
"sourceMapUrl": "https://posthog.com/1933-0a93947e28e08329be0c.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/17c50846-74c8dea247d819a32d77.js",
"sourceMapUrl": "https://posthog.com/17c50846-74c8dea247d819a32d77.js.map"
},
{
"subItems": {
"type": "subitems",
"items": []
},
"scriptUrl": "https://posthog.com/0f8f4022-6f8e6dc6039374c892bd.js",
"sourceMapUrl": "https://posthog.com/0f8f4022-6f8e6dc6039374c892bd.js.map"
}
],
"headings": [
{
"key": "scriptUrl",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "error"
}
},
{
"key": "sourceMapUrl",
"label": "Map URL",
"valueType": "url"
}
]
}When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. Learn how to make buttons more accessible.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-0-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,0,DIV,0,BUTTON",
"type": "node",
"snippet": "<button type=\"button\" role=\"menuitem\" id=\"radix-:RbklH1:\" aria-haspopup=\"menu\" aria-expanded=\"false\" data-state=\"closed\" class=\"group flex select-none items-center justify-between gap-0.5 rounded px-1.5…\" tabindex=\"-1\" data-orientation=\"horizontal\" data-radix-collection-item=\"\">",
"selector": "div#taskbar > div.mx-auto > div.flex > button#radix-:RbklH1:",
"nodeLabel": "div#taskbar > div.mx-auto > div.flex > button#radix-:RbklH1:",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 10,
"left": 10,
"right": 82,
"width": 72,
"bottom": 46,
"height": 36
}
}
},
{
"node": {
"lhId": "1-1-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,1,ASIDE,1,SPAN,0,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded border text-primary transition-color…\" state=\"[object Object]\">",
"selector": "aside.flex > span > div.w-auto > button.relative",
"nodeLabel": "aside.flex > span > div.w-auto > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 15,
"left": 292,
"right": 322,
"width": 30,
"bottom": 41,
"height": 26
}
}
},
{
"node": {
"lhId": "1-2-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,1,ASIDE,2,SPAN,0,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded border text-primary transition-color…\" state=\"[object Object]\">",
"selector": "aside.flex > span > div.w-auto > button.relative",
"nodeLabel": "aside.flex > span > div.w-auto > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 15,
"left": 324,
"right": 354,
"width": 30,
"bottom": 41,
"height": 26
}
}
},
{
"node": {
"lhId": "1-3-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,0,DIV,0,DIV,2,DIV,1,ASIDE,3,DIV,0,BUTTON",
"type": "node",
"snippet": "<button type=\"button\" role=\"menuitem\" id=\"radix-:R35klH1:\" aria-haspopup=\"menu\" aria-expanded=\"false\" data-state=\"closed\" class=\"group flex select-none items-center justify-between gap-0.5 rounded px-1.5…\" tabindex=\"-1\" data-orientation=\"horizontal\" data-radix-collection-item=\"\">",
"selector": "div.mx-auto > aside.flex > div.flex > button#radix-:R35klH1:",
"nodeLabel": "div.mx-auto > aside.flex > div.flex > button#radix-:R35klH1:",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 14,
"left": 356,
"right": 396,
"width": 40,
"bottom": 42,
"height": 28
}
}
},
{
"node": {
"lhId": "1-4-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,SPAN,0,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded-full border text-primary transition-…\" state=\"[object Object]\">",
"selector": "div.flex > span > div.w-auto > button.relative",
"nodeLabel": "div.flex > span > div.w-auto > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 54,
"left": 372,
"right": 398,
"width": 26,
"bottom": 80,
"height": 26
}
}
},
{
"node": {
"lhId": "1-5-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,3,DIV,2,DIV,1,DIV,1,DIV,0,DIV,0,DIV,1,DIV,0,SPAN,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded border text-primary transition-color…\" state=\"[object Object]\">",
"selector": "div > div.absolute > span > button.relative",
"nodeLabel": "div > div.absolute > span > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 1963,
"left": 189,
"right": 222,
"width": 33,
"bottom": 1999,
"height": 36
}
}
},
{
"node": {
"lhId": "1-6-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL,0,LI,1,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded border text-primary transition-color…\" state=\"[object Object]\" type=\"button\" data-radix-toast-announce-exclude=\"\" data-radix-toast-announce-alt=\"Close\">",
"selector": "ol.fixed > li.ToastRoot > div.w-auto > button.relative",
"nodeLabel": "ol.fixed > li.ToastRoot > div.w-auto > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 351,
"left": 353,
"right": 379,
"width": 26,
"bottom": 373,
"height": 22
}
}
},
{
"node": {
"lhId": "1-7-BUTTON",
"path": "1,HTML,1,BODY,9,DIV,2,DIV,1,OL,1,LI,1,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"relative items-center rounded rounded border text-primary transition-color…\" state=\"[object Object]\" type=\"button\" data-radix-toast-announce-exclude=\"\" data-radix-toast-announce-alt=\"Close\">",
"selector": "ol.fixed > li.ToastRoot > div.w-auto > button.relative",
"nodeLabel": "ol.fixed > li.ToastRoot > div.w-auto > button.relative",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 532,
"left": 361,
"right": 387,
"width": 26,
"bottom": 554,
"height": 22
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT",
"RGAAv4",
"RGAA-11.9.1"
],
"type": "debugdata",
"impact": "critical"
}
}Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-8-H3",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,2,DIV,0,DIV,0,DIV,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"!text-lg font-bold text-primary m-0 flex items-center gap-2\">",
"selector": "div.w-full > div.not-prose > div.p-4 > h3.!text-lg",
"nodeLabel": "Set up\nfor free",
"explanation": "Fix any of the following:\n Heading order invalid",
"boundingRect": {
"top": 527,
"left": 41,
"right": 371,
"width": 330,
"bottom": 555,
"height": 28
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.semantics",
"best-practice"
],
"type": "debugdata",
"impact": "moderate"
}
}Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-9-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,0,SPAN,0,DIV,0,DIV,3,DIV,5,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img height=\"1262\" loading=\"lazy\" draggable=\"false\" class=\"\" data-src=\"https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_1555/9000_hedg…\">",
"selector": "div.hidden > div.absolute > div.inline-block > img",
"nodeLabel": "div.hidden > div.absolute > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 727,
"left": 428,
"right": 428,
"width": 0,
"bottom": 727,
"height": 0
}
}
},
{
"node": {
"lhId": "1-10-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,0,SPAN,0,DIV,0,DIV,3,DIV,5,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img height=\"1262\" loading=\"lazy\" draggable=\"false\" class=\"\" data-src=\"https://res.cloudinary.com/dmukukwp6/image/upload/c_scale,w_1555/9000_hedg…\">",
"selector": "div.hidden > div.absolute > div.inline-block > img",
"nodeLabel": "div.hidden > div.absolute > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 727,
"left": 428,
"right": 428,
"width": 0,
"bottom": 727,
"height": 0
}
}
},
{
"node": {
"lhId": "1-11-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,5,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/hogmillionaire_6a6c2c958d\" class=\"\">",
"selector": "div.space-y-12 > div#pricing > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#pricing > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 3906,
"left": 268,
"right": 388,
"width": 120,
"bottom": 4016,
"height": 110
}
}
},
{
"node": {
"lhId": "1-12-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,6,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/steve_hogs_17c7900b07\" class=\"\">",
"selector": "div.space-y-12 > div#why-posthog > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#why-posthog > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 4973,
"left": 24,
"right": 324,
"width": 300,
"bottom": 5211,
"height": 237
}
}
},
{
"node": {
"lhId": "1-13-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,7,DIV,1,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/night_hog_219fff00f3\" class=\"\">",
"selector": "div.space-y-12 > div#bedtime-reading > div.inline-block > img",
"nodeLabel": "div.space-y-12 > div#bedtime-reading > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 5725,
"left": 14,
"right": 374,
"width": 360,
"bottom": 5993,
"height": 268
}
}
},
{
"node": {
"lhId": "1-14-IMG",
"path": "1,HTML,1,BODY,9,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,ARTICLE,0,DIV,0,DIV,0,DIV,8,DIV,2,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"https://res.cloudinary.com/dmukukwp6/image/upload/haha_bizzniss_5bc44659ec\" class=\"\">",
"selector": "div.absolute > div > div.inline-block > img",
"nodeLabel": "div.absolute > div > div.inline-block > img",
"explanation": "Fix any of the following:\n Element does not have an alt attribute\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 6666,
"left": 252,
"right": 372,
"width": 120,
"bottom": 6801,
"height": 135
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT",
"RGAAv4",
"RGAA-1.1.1"
],
"type": "debugdata",
"impact": "critical"
}
}{
"finalUrl": "https://posthog.com/",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.0.0 Safari/537.36",
"formFactor": "mobile",
"throttlingMethod": "simulate",
"throttling": {
"rttMs": 150,
"throughputKbps": 1638.4,
"requestLatencyMs": 562.5,
"uploadThroughputKbps": 675,
"cpuSlowdownMultiplier": 4,
"downloadThroughputKbps": 1474.5600000000002
},
"metrics": [
{
"id": "largest-contentful-paint",
"unit": "millisecond",
"value": 37436.33799999999
},
{
"id": "cumulative-layout-shift",
"unit": "unitless",
"value": 0.2263343736226506
},
{
"id": "total-blocking-time",
"unit": "millisecond",
"value": 3271
},
{
"id": "first-contentful-paint",
"unit": "millisecond",
"value": 2492.5629999999996
},
{
"id": "speed-index",
"unit": "millisecond",
"value": 12600.812232096716
}
]
}01 / WHAT WORKS
The grassy background, shortcuts, window borders and internal tabs form a coherent world.
The setup panel sits beside the proposition with practical onboarding information such as card requirements and the installer.
02 / NEXT STEPS
Multiple icon routes and two installation methods can compete for attention when compressed onto mobile.
Prioritize free setup on mobile, then explain AI installation; consolidate shortcuts into labeled navigation and keep overlays away from the main action.
03 / DESIGN LANGUAGE
Background
#eeefe9Text
#111827Accent
#eb9d2aBorder
#374151Parameters are element samples. Empty values are unknown, and individual samples are not site-wide rules.
04 / EVIDENCE
Values come from one capture. Fonts, radii and spacing are element samples, not a universal site-wide specification. Empty values are unknown. HTML bytes are source size, not compressed transfer size; script counts are DOM tags, not network requests.
Multiple icon routes and two installation methods can compete for attention when compressed onto mobile.
Prioritize free setup on mobile, then explain AI installation; consolidate shortcuts into labeled navigation and keep overlays away from the main action.
desktop.png: multiple icon rails and setup choices; mobile.png: narrow central window
Without nosniff, browsers may interpret a file as a different type than you sent. It is a one-line header.
Set X-Content-Type-Options: nosniff.
x-content-type-options missing
The default referrer can leak internal paths and query strings to third parties.
Set Referrer-Policy: strict-origin-when-cross-origin.
referrer-policy missing

PostHog automatically diagnoses problems, fixes bugs, and generates pull requests – all without you having to prompt it.
05 / MAKE IT HAPPEN
Use the improvement prompt for this page, or the design prompt to borrow its visual language. “Recreate” includes references and implementation steps. Paste either into your coding assistant.
Improve the current project using the 2026-09-05T03:28:48.916Z snapshot of https://posthog.com. First identify changes since capture; do not revert newer behavior to the old snapshot.
Design baseline
Outer icon rails hold product, documentation and company routes. A central application window explains the value, with a separate panel for free setup and AI installation; tabs demonstrate questions, Slack and improvements. Mobile compresses the desktop into a reading window. Adapt window chrome and functional grouping rather than reproducing every decorative window.
{
"colors": [
{
"role": "bg",
"hex": "#eeefe9"
},
{
"role": "ink",
"hex": "#111827"
},
{
"role": "accent",
"hex": "#eb9d2a"
},
{
"role": "line",
"hex": "#374151"
}
],
"fonts": {
"body": "RoundHog",
"display": "RoundHog",
"stack": [
"RoundHog"
]
},
"radius": {
"button": "8px",
"card": "0px",
"field": ""
},
"space": {
"section": "0px",
"card": "0px"
},
"type": {
"h1": "36px",
"body": "16px",
"weight": "800",
"lineHeight": "24px",
"letterSpacing": "-0.9px"
}
}
Values come from one capture. Fonts, radii and spacing are element samples, not a universal site-wide specification. Empty values are unknown. HTML bytes are source size, not compressed transfer size; script counts are DOM tags, not network requests.
Actions
1. Keep one clear mobile primary action
Prioritize free setup on mobile, then explain AI installation; consolidate shortcuts into labeled navigation and keep overlays away from the main action.
Evidence: desktop.png: multiple icon rails and setup choices; mobile.png: narrow central window
2. No X-Content-Type-Options
Set X-Content-Type-Options: nosniff.
Evidence: x-content-type-options missing
3. No Referrer-Policy
Set Referrer-Policy: strict-origin-when-cross-origin.
Evidence: referrer-policy missing
Acceptance
- Check text, layout and the main action “Get started – free” at 1440×900 and 390×844.
- Preserve branding, authentication and business behavior. A screenshot does not prove broken interaction.
- Change only evidence-backed issues. Validate security headers against existing resources and authentication in report-only mode where supported.
- Compare before/after screenshots and run relevant functional tests. Do not claim untested behavior passed.