feat: Add custom metric for UCP well-known file parsing#194
Merged
Conversation
Contributor
Author
|
I can see that the test captured the new UCP logic. |
tunetheweb
approved these changes
Feb 26, 2026
Member
tunetheweb
left a comment
There was a problem hiding this comment.
LGTM with a couple of minor nits
Co-authored-by: Barry Pollard <barrypollard@google.com>
Co-authored-by: Barry Pollard <barrypollard@google.com>
https://almanac.httparchive.org/en/2022/Changed custom metrics values: {
"_a11y": {
"tables": {
"total": 0,
"total_with_caption": 0,
"total_with_presentational": 0,
"total_with_figcaption": 0
},
"file_extension_alts": {
"total_elements_with_alt": 5,
"total_elements_with_non_empty_alt": 0,
"total_with_file_extension": 0,
"file_extensions": {}
},
"title_and_alt": {
"total_alt": 5,
"total_title": 5,
"total_both": 0,
"total_alt_same_as_title": 0
},
"th_with_scope_attribute": {
"total_th": 0,
"total_with_scope": 0,
"scopes": {}
},
"td_with_headers_attribute": {
"total_tds": 0,
"total_with_headers": 0
},
"total_anchors_with_role_button": 0,
"total_role_tab_with_selected_and_controls": 0,
"placeholder_but_no_label": {
"total_placeholder": 4,
"total_no_label": 0
},
"divs_or_spans_as_button_or_link": {
"total_role_button": 0,
"total_role_link": 0,
"total_either": 0
},
"screen_reader_classes": true,
"form_control_a11y_tree": {
"__error": {
"stack": "TypeError: Cannot read properties of undefined (reading 'value')\n at addControlToStats (<anonymous>:202:28)\n at <anonymous>:246:1\n at captureAndLogError (<anonymous>:30:8)\n at wptCustomMetric (<anonymous>:195:25)\n at <anonymous>:318:7",
"message": "Cannot read properties of undefined (reading 'value')"
}
},
"fieldset_radio_checkbox": {
"total_radio": 0,
"total_checkbox": 0,
"total_radio_in_fieldset": 0,
"total_checkbox_in_fieldset": 0,
"fieldsets": []
},
"required_form_controls": []
},
"_almanac": {
"01.12": 0,
"01.13": 0,
"link-nodes": {
"total": 29,
"nodes": [
{
"tagName": "link",
"rel": "stylesheet",
"href": "/static/css/normalize.css?v=3a712a3381a95c0a7b7c6ed3aa03b911"
},
{
"tagName": "link",
"rel": "stylesheet",
"href": "/static/css/almanac.css?v=f1b659664e1ffbc5e1f3feca4080486d"
},
{
"tagName": "link",
"rel": "stylesheet",
"href": "/static/css/index.css?v=10da3c5123c1a99e20252d43085e83d5"
},
{
"tagName": "link",
"rel": "preload",
"href": "/static/fonts/Poppins-Light.woff2",
"as": "font",
"type": "font/woff2",
"crossorigin": ""
},
{
"tagName": "link",
"rel": "preload",
"href": "/static/fonts/Lato-Regular.woff2",
"as": "font",
"type": "font/woff2",
"crossorigin": ""
},
{
"tagName": "link",
"rel": "preload",
"href": "/static/fonts/Poppins-Bold.woff2",
"as": "font",
"type": "font/woff2",
"crossorigin": ""
},
{
"tagName": "link",
"rel": "preload",
"href": "/static/fonts/Lato-Black.woff2",
"as": "font",
"type": "font/woff2",
"crossorigin": ""
},
{
"tagName": "link",
"rel": "preload",
"href": "/static/fonts/Lato-Bold.woff2",
"as": "font",
"type": "font/woff2",
"crossorigin": ""
},
{
"tagName": "link",
"rel": "shortcut icon",
"href": "/static/images/favicon.ico"
},
{
"tagName": "link",
"rel": "apple-touch-icon",
"href": "/static/images/apple-touch-icon.png"
},
{
"tagName": "link",
"rel": "webmention",
"href": "https://webmention.io/almanac.httparchive.org/webmention"
},
{
"tagName": "link",
"rel": "pingback",
"href": "https://webmention.io/almanac.httparchive.org/xmlrpc"
},
{
"tagName": "link",
"rel": "me",
"href": "mailto:team@httparchive.org"
},
{
"tagName": "link",
"rel": "canonical",
"href": "https://almanac.httparchive.org/en/2022/"
},
{
"tagName": "link",
"rel": "alternate",
"type": "application/rss+xml",
"title": "Web Almanac by HTTP Archive RSS (en)",
"href": "/en/rss.xml"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/en/2022/",
"hreflang": "en"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/es/2022/",
"hreflang": "es"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/fr/2022/",
"hreflang": "fr"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/hi/2022/",
"hreflang": "hi"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/it/2022/",
"hreflang": "it"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/ja/2022/",
"hreflang": "ja"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/nl/2022/",
"hreflang": "nl"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/pt/2022/",
"hreflang": "pt"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/ru/2022/",
"hreflang": "ru"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/tr/2022/",
"hreflang": "tr"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/uk/2022/",
"hreflang": "uk"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/zh-CN/2022/",
"hreflang": "zh-CN"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/zh-TW/2022/",
"hreflang": "zh-TW"
},
{
"tagName": "link",
"rel": "alternate",
"href": "https://almanac.httparchive.org/en/2022/",
"hreflang": "x-default"
}
],
"attribute_usage_count": {
"rel": 29,
"href": 29,
"as": 5,
"type": 6,
"crossorigin": 5,
"title": 1,
"hreflang": 14
}
},
"priority-hints": {
"total": 1,
"nodes": [
{
"tagName": "img",
"src": "/static/images/home-hero.png",
"alt": "",
"width": "820",
"height": "562",
"fetchpriority": "high"
}
],
"attribute_usage_count": {
"src": 1,
"alt": 1,
"width": 1,
"height": 1,
"fetchpriority": 1
}
},
"meta-nodes": {
"total": 16,
"nodes": [
{
"tagName": "meta",
"charset": "UTF-8"
},
{
"tagName": "meta",
"name": "viewport",
"content": "width=device-width, initial-scale=1"
},
{
"tagName": "meta",
"name": "description",
"content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
},
{
"tagName": "meta",
"property": "og:title",
"content": "The 2022 Web Almanac"
},
{
"tagName": "meta",
"property": "og:url",
"content": "https://almanac.httparchive.org/en/2022/"
},
{
"tagName": "meta",
"property": "og:image",
"content": "https://almanac.httparchive.org/static/images/home-hero-2022.png"
},
{
"tagName": "meta",
"property": "og:image:height",
"content": "600"
},
{
"tagName": "meta",
"property": "og:image:width",
"content": "1200"
},
{
"tagName": "meta",
"property": "og:type",
"content": "article"
},
{
"tagName": "meta",
"property": "og:description",
"content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
},
{
"tagName": "meta",
"name": "twitter:card",
"content": "summary_large_image"
},
{
"tagName": "meta",
"name": "twitter:site",
"content": "@HTTPArchive"
},
{
"tagName": "meta",
"name": "twitter:title",
"content": "The 2022 Web Almanac"
},
{
"tagName": "meta",
"name": "twitter:image",
"content": "https://almanac.httparchive.org/static/images/home-hero-2022.png"
},
{
"tagName": "meta",
"name": "twitter:image:alt",
"content": "The 2022 Web Almanac"
},
{
"tagName": "meta",
"name": "twitter:description",
"content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
}
],
"attribute_usage_count": {
"charset": 1,
"name": 8,
"content": 15,
"property": 7
}
},
"10.5": [
"WebPage",
"ImageObject",
"Organization",
"Person",
"schema.org/Article",
"EntryPoint",
"SearchAction",
"schema.org/WebSite",
"ListItem",
"schema.org/BreadcrumbList"
],
"seo-anchor-elements": {
"internal": 118,
"external": 17,
"hash": 1,
"navigateHash": 0,
"earlyHash": 1
},
"seo-titles": {
"titleWords": 15,
"titleElements": 6
},
"seo-words": {
"wordsCount": 372,
"wordElements": 37
},
"input_elements": {
"total": 10,
"nodes": [
{
"tagName": "input",
"id": "header-search-box",
"type": "search",
"name": "q",
"placeholder": "Search",
"aria-label": "Search"
},
{
"tagName": "input",
"id": "mobile-search-box",
"type": "search",
"name": "q",
"placeholder": "Search",
"aria-label": "Search"
},
{
"tagName": "select",
"id": "table-of-contents-switcher-mobile"
},
{
"tagName": "select",
"id": "year-switcher-mobile"
},
{
"tagName": "select",
"id": "language-switcher-mobile"
},
{
"tagName": "input",
"id": "footer-search-box",
"type": "search",
"name": "q",
"placeholder": "Search",
"aria-label": "Search"
},
{
"tagName": "input",
"id": "mobile-footer-search-box",
"type": "search",
"name": "q",
"placeholder": "Search",
"aria-label": "Search"
},
{
"tagName": "select",
"id": "table-of-contents-switcher-mobile-footer"
},
{
"tagName": "select",
"id": "year-switcher-mobile-footer"
},
{
"tagName": "select",
"id": "language-switcher-mobile-footer"
}
],
"attribute_usage_count": {
"id": 10,
"class": 4,
"type": 4,
"name": 4,
"placeholder": 4,
"title": 4,
"aria-label": 4,
"data-label": 2
}
},
"link_protocols_used": {
"https": 135
},
"06.47": 0,
"08.39": {
"link": 0,
"script": 0
},
"09.27": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"icon_only_clickables": 0,
"inline_svg_stats": {
"total": 18,
"content_lengths": [
11691,
250,
232,
240,
252,
252,
249,
77,
250,
246,
232,
235,
235,
232,
210,
222,
222,
219
],
"attribute_usage_count": {
"xmlns": 1,
"width": 17,
"height": 17,
"display": 1,
"role": 16,
"aria-labelledby": 4,
"viewbox": 1
}
},
"images": {
"pictures": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"imgs": {
"total": 5,
"nodes": [
{
"tagName": "img"
},
{
"tagName": "img",
"loading": "lazy"
},
{
"tagName": "img",
"loading": "lazy"
},
{
"tagName": "img",
"loading": "lazy"
},
{
"tagName": "img",
"loading": "lazy"
}
],
"attribute_usage_count": {
"src": 5,
"alt": 5,
"width": 5,
"height": 5,
"fetchpriority": 1,
"id": 3,
"class": 4,
"loading": 4
}
},
"sources": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"total_with_srcset": 0,
"total_with_sizes": 0,
"total_pictures_with_img": 0,
"sizes_values": [],
"loading_values": [
"lazy",
"lazy",
"lazy",
"lazy"
],
"alt_lengths": [
0,
0,
0,
0,
0
]
},
"videos": {
"total": 0,
"nodes": [],
"attribute_usage_count": {},
"total_with_track": 0,
"tracks": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
}
},
"audios": {
"total": 0,
"nodes": [],
"attribute_usage_count": {},
"total_with_track": 0,
"tracks": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
}
},
"iframes": {
"iframes": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"loading_values": []
},
"scripts": {
"total": 13,
"nodes": [
{
"tagName": "script",
"type": "text/javascript",
"async": "",
"src": "https://www.google-analytics.com/plugins/ua/linkid.js",
"nonce": ""
},
{
"tagName": "script",
"type": "text/javascript",
"async": "",
"src": "https://www.google-analytics.com/analytics.js",
"nonce": ""
},
{
"tagName": "script",
"type": "text/javascript",
"async": "",
"src": "https://www.googletagmanager.com/gtag/js?id=UA-22381566-3&cx=c>m=4e62o1",
"nonce": ""
},
{
"tagName": "script",
"nonce": ""
},
{
"tagName": "script",
"type": "application/ld+json"
},
{
"tagName": "script",
"type": "application/ld+json"
},
{
"tagName": "script",
"type": "application/ld+json"
},
{
"tagName": "script",
"nonce": ""
},
{
"tagName": "script",
"async": "",
"src": "/static/js/almanac.js?v=fa418742db0ee3ef3f6f493962cd0dc7",
"nonce": ""
},
{
"tagName": "script",
"async": "",
"src": "https://www.googletagmanager.com/gtag/js?id=G-PQ5N2MZG5M",
"nonce": ""
},
{
"tagName": "script",
"defer": "",
"src": "/static/js/web-vitals.js?v=e7b8ecda99703fdc7c6a33b6a3d07cc6",
"nonce": ""
},
{
"tagName": "script",
"defer": "",
"src": "/static/js/send-web-vitals.js?v=67574c23a511f3149c90c88735c5a6f3",
"nonce": ""
},
{
"tagName": "script",
"type": "speculationrules",
"nonce": ""
}
],
"attribute_usage_count": {
"type": 7,
"async": 5,
"src": 7,
"nonce": 10,
"defer": 2
}
},
"nodes_using_role": {
"total": 16,
"usage_and_count": {
"img": 16
}
},
"headings_order": [
1,
2,
2,
3,
2,
2
],
"shortcuts_stats": {
"total_with_aria_shortcut": 0,
"total_with_accesskey": 0,
"aria_shortcut_values": [],
"accesskey_values": []
},
"attributes_used_on_elements": {
"lang": 51,
"charset": 1,
"name": 12,
"content": 15,
"rel": 33,
"href": 166,
"as": 5,
"type": 30,
"crossorigin": 5,
"async": 5,
"src": 12,
"nonce": 10,
"property": 7,
"title": 5,
"hreflang": 15,
"class": 199,
"xmlns": 2,
"width": 22,
"height": 22,
"display": 1,
"id": 57,
"viewBox": 14,
"d": 17,
"fill": 17,
"fill-rule": 1,
"clip-rule": 1,
"cx": 2,
"cy": 2,
"r": 1,
"stroke-width": 3,
"stroke-miterlimit": 3,
"stroke": 3,
"rx": 1,
"ry": 1,
"aria-label": 14,
"aria-expanded": 9,
"action": 4,
"for": 10,
"placeholder": 4,
"role": 16,
"aria-labelledby": 17,
"xmlns:xlink": 16,
"xlink:href": 16,
"data-event": 4,
"data-label": 4,
"data-open-text": 1,
"data-close-text": 1,
"selected": 6,
"disabled": 2,
"value": 98,
"x": 1,
"y": 1,
"alt": 5,
"fetchpriority": 1,
"aria-hidden": 1,
"loading": 4,
"defer": 2
},
"body_node": {
"tagName": "body",
"class": "year-2022"
},
"html_node": {
"tagName": "html",
"lang": "en"
},
"document_title": {
"value": "The 2022 Web Almanac",
"length": 20
},
"length_of_h1s": [
11
]
},
"_doctype": "html",
"_fugu-apis": {
"Device Memory": [
"https://almanac.httparchive.org/static/js/send-web-vitals.js?v=67574c23a511f3149c90c88735c5a6f3"
]
},
"_lib-detector-version": "6.1.0",
"_markup": {
"favicon": true,
"rel_alternate_mobile": false,
"compatMode": "CSS1Compat",
"noscripts": {
"iframe_googletagmanager_count": 0,
"total": 0
},
"buttons": {
"types": {
"button": 9,
"submit": 4
},
"total": 13
},
"form": {
"target": {},
"method": {},
"elements": [
{
"tagNames": {
"label": 1,
"input": 1,
"button": 1
},
"types": {
"search": 1,
"submit": 1
},
"total": 3
},
{
"tagNames": {
"label": 1,
"input": 1,
"button": 1
},
"types": {
"search": 1,
"submit": 1
},
"total": 3
},
{
"tagNames": {
"label": 1,
"input": 1,
"button": 1
},
"types": {
"search": 1,
"submit": 1
},
"total": 3
},
{
"tagNames": {
"label": 1,
"input": 1,
"button": 1
},
"types": {
"search": 1,
"submit": 1
},
"total": 3
}
],
"total": 4
},
"dirs": {
"html_dir": null,
"body_nodes_dir": {
"values": {},
"total": 0
}
},
"inputs": {
"types": {
"search": 4
},
"total": 4
},
"audios": {
"autoplay": {},
"total": 0
},
"classes": {
"unique_names_total": 77,
"references_total": 249
},
"ids": {
"ids_total": 57,
"duplicate_ids_total": 0,
"unique_ids_total": 57
},
"images": {
"picture": {
"total": 0
},
"source": {
"total": 0,
"src_total": 0,
"srcset_total": 0,
"media_total": 0,
"type_total": 0
},
"img": {
"total": 5,
"src_total": 5,
"srcset_total": 0,
"alt": {
"missing": 0,
"blank": 5,
"present": 0
},
"loading": {
"auto": 0,
"lazy": 4,
"eager": 0,
"invalid": 0,
"missing": 1,
"blank": 0
},
"dimensions": {
"missing_width": 0,
"missing_height": 0
}
}
},
"iframes": {
"total": 0,
"loading": {
"auto": 0,
"lazy": 0,
"eager": 0,
"invalid": 0,
"missing": 0,
"blank": 0
}
},
"amp": {
"html_amp_attribute_present": false,
"html_amp_emoji_attribute_present": false,
"amp_page": false,
"rel_amphtml": null
},
"data_nosnippet": {
"valid": 0,
"wrong_tag_type": 0
},
"obsolete_elements": {},
"svgs": {
"svg_element_total": 18,
"svg_img_total": 0,
"svg_object_total": 0,
"svg_embed_total": 0,
"svg_iframe_total": 0,
"svg_total": 18
},
"app": {
"app_id_present": false,
"meta_theme_color": null
},
"anchors": {
"hrefs_without_special_scheme": []
},
"dom-shape": {
"bodyNodesCount": 622,
"bodyLeafNodesCount": 346,
"depth": {
"mean": 7.80635838150289,
"median": 9,
"mode": 9,
"stddev": 2.449505088363983,
"skew": -0.48729909734310434,
"range": {
"min": 1,
"max": 13
}
},
"bodyNonLeafNodesCount": 276,
"branchFactor": {
"mean": 5.445652173913044,
"median": 3,
"mode": 3,
"stddev": 8.701196149365996,
"skew": 0.28107080129336515,
"range": {
"min": 1,
"max": 71
}
},
"branchFactorByDepth": [
{
"depth": 0,
"count": 1,
"mean": 33,
"stddev": 0,
"skew": null,
"median": 33,
"mode": 33,
"range": {
"min": 33,
"max": 33
}
},
{
"depth": 1,
"count": 6,
"mean": 12,
"stddev": 18.502252115170556,
"skew": 0.4864272707980575,
"median": 3,
"mode": 3,
"range": {
"min": 1,
"max": 53
}
},
{
"depth": 2,
"count": 20,
"mean": 4.5,
"stddev": 3.5142566781611158,
"skew": 0.42683279491835413,
"median": 3,
"mode": 3,
"range": {
"min": 3,
"max": 19
}
},
{
"depth": 3,
"count": 14,
"mean": 6.285714285714286,
"stddev": 3.260774917289522,
"skew": 1.007648294978144,
"median": 5,
"mode": 3,
"range": {
"min": 3,
"max": 11
}
},
{
"depth": 4,
"count": 20,
"mean": 5.55,
"stddev": 3.0244834269673224,
"skew": 0.8431191843418062,
"median": 5,
"mode": 3,
"range": {
"min": 3,
"max": 13
}
},
{
"depth": 5,
"count": 29,
"mean": 4.275862068965517,
"stddev": 3.0160096007820525,
"skew": 0.4230298433515216,
"median": 3,
"mode": 3,
"range": {
"min": 1,
"max": 15
}
},
{
"depth": 6,
"count": 27,
"mean": 3.7037037037037037,
"stddev": 1.5108205966200843,
"skew": -0.8580080912295552,
"median": 4,
"mode": 5,
"range": {
"min": 1,
"max": 7
}
},
{
"depth": 7,
"count": 20,
"mean": 14,
"stddev": 18.606450494385005,
"skew": 0.48370321909146463,
"median": 5,
"mode": 5,
"range": {
"min": 3,
"max": 71
}
},
{
"depth": 8,
"count": 65,
"mean": 6.015384615384615,
"stddev": 11.567184761799627,
"skew": 0.26068439965987716,
"median": 3,
"mode": 3,
"range": {
"min": 3,
"max": 71
}
},
{
"depth": 9,
"count": 59,
"mean": 3.135593220338983,
"stddev": 0.812145664454979,
"skew": 0.16695677422593652,
"median": 3,
"mode": 3,
"range": {
"min": 1,
"max": 7
}
},
{
"depth": 10,
"count": 7,
"mean": 3.5714285714285716,
"stddev": 1.761261143705422,
"skew": 0.32444284226152514,
"median": 3,
"mode": 3,
"range": {
"min": 1,
"max": 7
}
},
{
"depth": 11,
"count": 5,
"mean": 3.4,
"stddev": 0.8,
"skew": 0.4999999999999999,
"median": 3,
"mode": 3,
"range": {
"min": 3,
"max": 5
}
},
{
"depth": 12,
"count": 4,
"mean": 5,
"stddev": 0,
"skew": null,
"median": 5,
"mode": 5,
"range": {
"min": 5,
"max": 5
}
}
]
}
},
"_meta_viewport": "width=device-width, initial-scale=1",
"_robots_txt": {
"redirected": false,
"status": 200,
"size": 76,
"size_kib": 0.07421875,
"over_google_limit": false,
"comment_count": 0,
"record_counts": {
"by_type": {
"sitemap": 1,
"user_agent": 1,
"allow": 1,
"disallow": 0,
"crawl_delay": 0,
"noindex": 0,
"other": 0
},
"by_useragent": {
"*": {
"allow": 1,
"disallow": 0,
"crawl_delay": 0,
"noindex": 0,
"other": 0
}
}
}
},
"_third-parties": [
{
"name": "Workbox",
"version": null
}
],
"_well-known": {
"/.well-known/assetlinks.json": {
"found": false
},
"/.well-known/apple-app-site-association": {
"found": false
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": false
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": false
},
"/.well-known/ucp": {
"found": false
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {}
}
},
"/.well-known/security.txt": {
"found": false,
"data": {
"status": 404,
"redirected": true,
"url": "https://almanac.httparchive.org/.well-known/security.txt/",
"content_type": "text/html; charset=utf-8"
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": true,
"url": "https://almanac.httparchive.org/.well-known/change-password/"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://almanac.httparchive.org/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
}https://business-store.devChanged custom metrics values: {
"_a11y": {
"tables": {
"total": 0,
"total_with_caption": 0,
"total_with_presentational": 0,
"total_with_figcaption": 0
},
"file_extension_alts": {
"total_elements_with_alt": 21,
"total_elements_with_non_empty_alt": 21,
"total_with_file_extension": 0,
"file_extensions": {}
},
"title_and_alt": {
"total_alt": 21,
"total_title": 0,
"total_both": 0,
"total_alt_same_as_title": 0
},
"th_with_scope_attribute": {
"total_th": 0,
"total_with_scope": 0,
"scopes": {}
},
"td_with_headers_attribute": {
"total_tds": 0,
"total_with_headers": 0
},
"total_anchors_with_role_button": 0,
"total_role_tab_with_selected_and_controls": 0,
"placeholder_but_no_label": {
"total_placeholder": 0,
"total_no_label": 0
},
"divs_or_spans_as_button_or_link": {
"total_role_button": 0,
"total_role_link": 0,
"total_either": 0
},
"screen_reader_classes": false,
"form_control_a11y_tree": [],
"fieldset_radio_checkbox": {
"total_radio": 0,
"total_checkbox": 0,
"total_radio_in_fieldset": 0,
"total_checkbox_in_fieldset": 0,
"fieldsets": []
},
"required_form_controls": []
},
"_almanac": {
"01.12": 0,
"01.13": 0,
"link-nodes": {
"total": 3,
"nodes": [
{
"tagName": "link",
"rel": "stylesheet",
"href": "/static/css/styles.css"
},
{
"tagName": "link",
"rel": "canonical",
"href": "https://business-store.dev"
},
{
"tagName": "link",
"rel": "shortcut icon",
"href": "/static/images/logo.png"
}
],
"attribute_usage_count": {
"rel": 3,
"href": 3
}
},
"priority-hints": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"meta-nodes": {
"total": 3,
"nodes": [
{
"tagName": "meta",
"charset": "UTF-8"
},
{
"tagName": "meta",
"name": "viewport",
"content": "width=device-width, initial-scale=1.0"
},
{
"tagName": "meta",
"name": "google-site-verification",
"content": "n5Q1oDMuy8PlmUozhPpVEm0w0noBHnGsY_48hDtgQKM"
}
],
"attribute_usage_count": {
"charset": 1,
"name": 2,
"content": 2
}
},
"10.5": [
"schema.org/Organization"
],
"seo-anchor-elements": {
"internal": 29,
"external": 0,
"hash": 0,
"navigateHash": 0,
"earlyHash": 0
},
"seo-titles": {
"titleWords": 62,
"titleElements": 20
},
"seo-words": {
"wordsCount": 415,
"wordElements": 30
},
"input_elements": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"link_protocols_used": {
"https": 29
},
"06.47": 0,
"08.39": {
"link": 0,
"script": 0
},
"09.27": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"icon_only_clickables": 0,
"inline_svg_stats": {
"total": 0,
"content_lengths": [],
"attribute_usage_count": {}
},
"images": {
"pictures": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"imgs": {
"total": 21,
"nodes": [
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
},
{
"tagName": "img"
}
],
"attribute_usage_count": {
"src": 21,
"alt": 21,
"style": 1
}
},
"sources": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"total_with_srcset": 0,
"total_with_sizes": 0,
"total_pictures_with_img": 0,
"sizes_values": [],
"loading_values": [],
"alt_lengths": [
23,
18,
15,
15,
12,
14,
13,
14,
17,
27,
27,
26,
26,
26,
26,
26,
26,
26,
26,
21,
21
]
},
"videos": {
"total": 0,
"nodes": [],
"attribute_usage_count": {},
"total_with_track": 0,
"tracks": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
}
},
"audios": {
"total": 0,
"nodes": [],
"attribute_usage_count": {},
"total_with_track": 0,
"tracks": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
}
},
"iframes": {
"iframes": {
"total": 0,
"nodes": [],
"attribute_usage_count": {}
},
"loading_values": []
},
"scripts": {
"total": 1,
"nodes": [
{
"tagName": "script",
"type": "application/ld+json"
}
],
"attribute_usage_count": {
"type": 1
}
},
"nodes_using_role": {
"total": 0,
"usage_and_count": {}
},
"headings_order": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3
],
"shortcuts_stats": {
"total_with_aria_shortcut": 0,
"total_with_accesskey": 0,
"aria_shortcut_values": [],
"accesskey_values": []
},
"attributes_used_on_elements": {
"lang": 1,
"charset": 1,
"name": 2,
"content": 2,
"rel": 3,
"href": 32,
"class": 56,
"src": 21,
"alt": 21,
"style": 1,
"type": 1
},
"body_node": {
"tagName": "body"
},
"html_node": {
"tagName": "html",
"lang": "en"
},
"document_title": {
"value": "Our Products",
"length": 12
},
"length_of_h1s": []
},
"_doctype": "html",
"_fugu-apis": [],
"_lib-detector-version": "6.1.0",
"_markup": {
"favicon": true,
"rel_alternate_mobile": false,
"compatMode": "CSS1Compat",
"noscripts": {
"iframe_googletagmanager_count": 0,
"total": 0
},
"buttons": {
"types": {},
"total": 0
},
"form": {
"target": {},
"method": {},
"elements": [],
"total": 0
},
"dirs": {
"html_dir": null,
"body_nodes_dir": {
"values": {},
"total": 0
}
},
"inputs": {
"types": {},
"total": 0
},
"audios": {
"autoplay": {},
"total": 0
},
"classes": {
"unique_names_total": 8,
"references_total": 56
},
"ids": {
"ids_total": 0,
"duplicate_ids_total": 0,
"unique_ids_total": 0
},
"images": {
"picture": {
"total": 0
},
"source": {
"total": 0,
"src_total": 0,
"srcset_total": 0,
"media_total": 0,
"type_total": 0
},
"img": {
"total": 21,
"src_total": 21,
"srcset_total": 0,
"alt": {
"missing": 0,
"blank": 0,
"present": 21
},
"loading": {
"auto": 0,
"lazy": 0,
"eager": 0,
"invalid": 0,
"missing": 21,
"blank": 0
},
"dimensions": {
"missing_width": 21,
"missing_height": 21
}
}
},
"iframes": {
"total": 0,
"loading": {
"auto": 0,
"lazy": 0,
"eager": 0,
"invalid": 0,
"missing": 0,
"blank": 0
}
},
"amp": {
"html_amp_attribute_present": false,
"html_amp_emoji_attribute_present": false,
"amp_page": false,
"rel_amphtml": null
},
"data_nosnippet": {
"valid": 0,
"wrong_tag_type": 0
},
"obsolete_elements": {},
"svgs": {
"svg_element_total": 0,
"svg_img_total": 0,
"svg_object_total": 0,
"svg_embed_total": 0,
"svg_iframe_total": 0,
"svg_total": 0
},
"app": {
"app_id_present": false,
"meta_theme_color": null
},
"anchors": {
"hrefs_without_special_scheme": []
},
"dom-shape": {
"bodyNodesCount": 188,
"bodyLeafNodesCount": 122,
"depth": {
"mean": 5.098360655737705,
"median": 5,
"mode": 5,
"stddev": 0.7725817487179121,
"skew": 0.12731423684410437,
"range": {
"min": 2,
"max": 6
}
},
"bodyNonLeafNodesCount": 66,
"branchFactor": {
"mean": 6.636363636363637,
"median": 5,
"mode": 3,
"stddev": 5.655880189347494,
"skew": 0.6429350542489402,
"range": {
"min": 3,
"max": 41
}
},
"branchFactorByDepth": [
{
"depth": 0,
"count": 1,
"mean": 5,
"stddev": 0,
"skew": null,
"median": 5,
"mode": 5,
"range": {
"min": 5,
"max": 5
}
},
{
"depth": 1,
"count": 2,
"mean": 5,
"stddev": 2,
"skew": 1,
"median": 5,
"mode": 3,
"range": {
"min": 3,
"max": 7
}
},
{
"depth": 2,
"count": 3,
"mean": 20.333333333333332,
"stddev": 15.69146972791976,
"skew": 1.104634150521427,
"median": 17,
"mode": 3,
"range": {
"min": 3,
"max": 41
}
},
{
"depth": 3,
"count": 21,
"mean": 3,
"stddev": 0,
"skew": null,
"median": 3,
"mode": 3,
"range": {
"min": 3,
"max": 3
}
},
{
"depth": 4,
"count": 20,
"mean": 11,
"stddev": 0,
"skew": null,
"median": 11,
"mode": 11,
"range": {
"min": 11,
"max": 11
}
},
{
"depth": 5,
"count": 20,
"mean": 4.2,
"stddev": 0.9797958971132715,
"skew": -0.8164965809277256,
"median": 5,
"mode": 5,
"range": {
"min": 3,
"max": 5
}
}
]
}
},
"_meta_viewport": "width=device-width, initial-scale=1.0",
"_robots_txt": {
"redirected": false,
"status": 200,
"size": 71,
"size_kib": 0.0693359375,
"over_google_limit": false,
"comment_count": 0,
"record_counts": {
"by_type": {
"sitemap": 0,
"user_agent": 2,
"allow": 0,
"disallow": 2,
"crawl_delay": 0,
"noindex": 0,
"other": 0
},
"by_useragent": {
"googlebot": {
"allow": 0,
"disallow": 1,
"crawl_delay": 0,
"noindex": 0,
"other": 0
},
"googlebot-image": {
"allow": 0,
"disallow": 1,
"crawl_delay": 0,
"noindex": 0,
"other": 0
}
}
}
},
"_third-parties": [
{
"name": "Workbox",
"version": null
}
],
"_well-known": {
"/.well-known/assetlinks.json": {
"found": false
},
"/.well-known/apple-app-site-association": {
"found": false
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": false
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": false
},
"/.well-known/ucp": {
"found": true,
"data": {
"has_ucp": true,
"version": "2026-01-11",
"has_payment_handlers": true,
"signing_keys_count": 0
}
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {}
}
},
"/.well-known/security.txt": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://business-store.dev/.well-known/security.txt",
"content_type": "application/json"
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://business-store.dev/.well-known/change-password"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://business-store.dev/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
}https://www.mozilla.orgCannot display changed custom metrics due to comment size limits, view test JSON instead. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for tracking and analyzing a critical file related to the Universal Commerce Protocol (UCP):
/.well-known/ucpThis file is central to the Universal Commerce Protocol (UCP) and allows businesses to publish their accepted payment handlers and available services to agents. The changes ensure this file is fetched, parsed, and included in the HTTP Archive's custom metrics for analysis of this standard's adoption.
Changes
/.well-known/ucpto track its presence and extract key metadata cleanly without overloading the payload, such as the UCP profile version, whether payment handlers exist, and the signing keys count.Example Output
UCP Profile (
/.well-known/ucp){ "/.well-known/ucp": { "found": true, "data": { "has_ucp": true, "version": "2026-01-11", "has_payment_handlers": true, "signing_keys_count": 0 } } }Test websites: