lighthouse 13.3.0 → 13.4.0-dev.20260626

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/.agents/skills/lighthouse-verification/SKILL.md +23 -0
  2. package/cli/cli-flags.d.ts +8 -9
  3. package/cli/test/smokehouse/config/exclusions.js +2 -0
  4. package/cli/test/smokehouse/version-check.d.ts +1 -1
  5. package/core/audits/accessibility/accesskeys.js +1 -1
  6. package/core/audits/accessibility/aria-allowed-attr.js +1 -1
  7. package/core/audits/accessibility/aria-allowed-role.js +1 -1
  8. package/core/audits/accessibility/aria-command-name.js +1 -1
  9. package/core/audits/accessibility/aria-conditional-attr.js +1 -1
  10. package/core/audits/accessibility/aria-deprecated-role.js +1 -1
  11. package/core/audits/accessibility/aria-dialog-name.js +1 -1
  12. package/core/audits/accessibility/aria-hidden-body.js +1 -1
  13. package/core/audits/accessibility/aria-hidden-focus.js +1 -1
  14. package/core/audits/accessibility/aria-input-field-name.js +1 -1
  15. package/core/audits/accessibility/aria-meter-name.js +1 -1
  16. package/core/audits/accessibility/aria-progressbar-name.js +1 -1
  17. package/core/audits/accessibility/aria-prohibited-attr.js +1 -1
  18. package/core/audits/accessibility/aria-required-attr.js +1 -1
  19. package/core/audits/accessibility/aria-required-children.js +1 -1
  20. package/core/audits/accessibility/aria-required-parent.js +1 -1
  21. package/core/audits/accessibility/aria-roles.js +1 -1
  22. package/core/audits/accessibility/aria-text.js +1 -1
  23. package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
  24. package/core/audits/accessibility/aria-tooltip-name.js +1 -1
  25. package/core/audits/accessibility/aria-treeitem-name.js +1 -1
  26. package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
  27. package/core/audits/accessibility/aria-valid-attr.js +1 -1
  28. package/core/audits/accessibility/autocomplete-valid.js +1 -1
  29. package/core/audits/accessibility/button-name.js +1 -1
  30. package/core/audits/accessibility/bypass.js +1 -1
  31. package/core/audits/accessibility/color-contrast.js +1 -1
  32. package/core/audits/accessibility/definition-list.js +1 -1
  33. package/core/audits/accessibility/dlitem.js +1 -1
  34. package/core/audits/accessibility/document-title.js +1 -1
  35. package/core/audits/accessibility/duplicate-id-aria.js +1 -1
  36. package/core/audits/accessibility/empty-heading.js +1 -1
  37. package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
  38. package/core/audits/accessibility/frame-title.js +1 -1
  39. package/core/audits/accessibility/heading-order.js +1 -1
  40. package/core/audits/accessibility/html-has-lang.js +1 -1
  41. package/core/audits/accessibility/html-lang-valid.js +1 -1
  42. package/core/audits/accessibility/html-xml-lang-mismatch.js +1 -1
  43. package/core/audits/accessibility/identical-links-same-purpose.js +1 -1
  44. package/core/audits/accessibility/image-alt.js +1 -1
  45. package/core/audits/accessibility/image-redundant-alt.js +1 -1
  46. package/core/audits/accessibility/input-button-name.js +1 -1
  47. package/core/audits/accessibility/input-image-alt.js +1 -1
  48. package/core/audits/accessibility/label-content-name-mismatch.js +1 -1
  49. package/core/audits/accessibility/label.js +1 -1
  50. package/core/audits/accessibility/landmark-one-main.js +1 -1
  51. package/core/audits/accessibility/link-in-text-block.js +1 -1
  52. package/core/audits/accessibility/link-name.js +1 -1
  53. package/core/audits/accessibility/list.js +1 -1
  54. package/core/audits/accessibility/listitem.js +1 -1
  55. package/core/audits/accessibility/meta-refresh.js +1 -1
  56. package/core/audits/accessibility/meta-viewport.js +1 -1
  57. package/core/audits/accessibility/object-alt.js +1 -1
  58. package/core/audits/accessibility/presentation-role-conflict.js +1 -1
  59. package/core/audits/accessibility/select-name.js +1 -1
  60. package/core/audits/accessibility/skip-link.js +1 -1
  61. package/core/audits/accessibility/svg-img-alt.js +1 -1
  62. package/core/audits/accessibility/tabindex.js +1 -1
  63. package/core/audits/accessibility/table-duplicate-name.js +1 -1
  64. package/core/audits/accessibility/table-fake-caption.js +1 -1
  65. package/core/audits/accessibility/target-size.js +1 -1
  66. package/core/audits/accessibility/td-has-header.js +1 -1
  67. package/core/audits/accessibility/td-headers-attr.js +1 -1
  68. package/core/audits/accessibility/th-has-data-cells.js +1 -1
  69. package/core/audits/accessibility/valid-lang.js +1 -1
  70. package/core/audits/accessibility/video-caption.js +1 -1
  71. package/core/audits/agentic/llms-txt.d.ts +1 -0
  72. package/core/audits/agentic/llms-txt.js +14 -1
  73. package/core/audits/baseline.js +10 -12
  74. package/core/audits/dobetterweb/geolocation-on-start.js +2 -1
  75. package/core/audits/network-requests.js +2 -0
  76. package/core/audits/seo/canonical.js +19 -7
  77. package/core/audits/seo/robots-txt.d.ts +1 -0
  78. package/core/audits/seo/robots-txt.js +22 -8
  79. package/core/computed/js-bundles.d.ts +1 -1
  80. package/core/computed/load-simulator.d.ts +1 -1
  81. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  82. package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
  83. package/core/computed/metrics/interactive.d.ts +1 -1
  84. package/core/computed/metrics/lantern-metric.d.ts +6 -6
  85. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  86. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
  87. package/core/computed/metrics/max-potential-fid.d.ts +1 -1
  88. package/core/computed/metrics/speed-index.d.ts +1 -1
  89. package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
  90. package/core/computed/metrics/total-blocking-time.d.ts +1 -1
  91. package/core/computed/module-duplication.d.ts +1 -1
  92. package/core/computed/page-dependency-graph.d.ts +1 -1
  93. package/core/computed/unused-css.d.ts +1 -1
  94. package/core/config/agentic-browsing-config.d.ts +1 -0
  95. package/core/config/agentic-browsing-config.js +1 -0
  96. package/core/config/config-helpers.d.ts +1 -0
  97. package/core/config/config-helpers.js +1 -1
  98. package/core/config/config-plugin.d.ts +1 -0
  99. package/core/config/config-plugin.js +1 -0
  100. package/core/config/config.d.ts +1 -0
  101. package/core/config/config.js +1 -0
  102. package/core/config/constants.d.ts +1 -0
  103. package/core/config/constants.js +1 -0
  104. package/core/config/experimental-config.d.ts +1 -9
  105. package/core/config/experimental-config.js +2 -0
  106. package/core/config/filters.d.ts +1 -0
  107. package/core/config/filters.js +1 -0
  108. package/core/config/full-config.d.ts +1 -5
  109. package/core/config/full-config.js +2 -0
  110. package/core/config/lr-desktop-config.d.ts +1 -0
  111. package/core/config/lr-desktop-config.js +1 -0
  112. package/core/config/lr-mobile-config.d.ts +1 -5
  113. package/core/config/lr-mobile-config.js +2 -0
  114. package/core/config/perf-config.d.ts +1 -5
  115. package/core/config/perf-config.js +2 -0
  116. package/core/config/validation.d.ts +1 -0
  117. package/core/config/validation.js +1 -0
  118. package/core/gather/driver/execution-context.d.ts +23 -0
  119. package/core/gather/driver/execution-context.js +86 -1
  120. package/core/gather/driver/storage.js +13 -0
  121. package/core/gather/driver.d.ts +1 -1
  122. package/core/gather/gatherers/accessibility.js +1 -0
  123. package/core/gather/gatherers/agentic/llms-txt.js +5 -1
  124. package/core/gather/gatherers/seo/robots-txt.js +6 -1
  125. package/core/gather/gatherers/trace-elements.d.ts +4 -1
  126. package/core/gather/gatherers/trace-elements.js +24 -28
  127. package/core/gather/gatherers/webmcp-schema.js +9 -16
  128. package/core/gather/gatherers/webmcp.d.ts +5 -0
  129. package/core/gather/gatherers/webmcp.js +34 -27
  130. package/core/lib/baseline/web-features-data.json +1179 -0
  131. package/core/lib/baseline/web-features-metadata.json +1 -1
  132. package/core/lib/deprecations-strings.d.ts +113 -89
  133. package/core/lib/deprecations-strings.js +24 -0
  134. package/core/lib/script-helpers.js +13 -1
  135. package/core/scoring.d.ts +58 -58
  136. package/dist/report/bundle.esm.js +4 -7
  137. package/dist/report/flow.js +6 -9
  138. package/dist/report/standalone.js +20 -12
  139. package/flow-report/types/flow-report.d.ts +2 -2
  140. package/package.json +28 -28
  141. package/report/assets/styles.css +1 -4
  142. package/report/renderer/components.js +1 -1
  143. package/report/renderer/details-renderer.d.ts +6 -1
  144. package/report/renderer/details-renderer.js +11 -3
  145. package/report/renderer/explodey-gauge.js +9 -7
  146. package/report/renderer/i18n-formatter.d.ts +1 -1
  147. package/report/renderer/logger.js +18 -4
  148. package/report/renderer/text-encoding.js +1 -1
  149. package/report/types/html-renderer.d.ts +2 -2
  150. package/shared/localization/locales/ar-XB.json +290 -65
  151. package/shared/localization/locales/ar.json +290 -65
  152. package/shared/localization/locales/bg.json +290 -65
  153. package/shared/localization/locales/ca.json +295 -70
  154. package/shared/localization/locales/cs.json +290 -65
  155. package/shared/localization/locales/da.json +294 -69
  156. package/shared/localization/locales/de.json +295 -70
  157. package/shared/localization/locales/el.json +290 -65
  158. package/shared/localization/locales/en-GB.json +290 -65
  159. package/shared/localization/locales/en-US.json +86 -68
  160. package/shared/localization/locales/en-XA.json +253 -64
  161. package/shared/localization/locales/en-XL.json +86 -68
  162. package/shared/localization/locales/es-419.json +290 -65
  163. package/shared/localization/locales/es.json +298 -73
  164. package/shared/localization/locales/fi.json +290 -65
  165. package/shared/localization/locales/fil.json +290 -65
  166. package/shared/localization/locales/fr.json +294 -69
  167. package/shared/localization/locales/he.json +293 -68
  168. package/shared/localization/locales/hi.json +291 -66
  169. package/shared/localization/locales/hr.json +290 -65
  170. package/shared/localization/locales/hu.json +290 -65
  171. package/shared/localization/locales/id.json +290 -65
  172. package/shared/localization/locales/it.json +294 -69
  173. package/shared/localization/locales/ja.json +290 -65
  174. package/shared/localization/locales/ko.json +290 -65
  175. package/shared/localization/locales/lt.json +290 -65
  176. package/shared/localization/locales/lv.json +290 -65
  177. package/shared/localization/locales/nl.json +290 -65
  178. package/shared/localization/locales/no.json +290 -65
  179. package/shared/localization/locales/pl.json +290 -65
  180. package/shared/localization/locales/pt-PT.json +291 -66
  181. package/shared/localization/locales/pt.json +290 -65
  182. package/shared/localization/locales/ro.json +290 -65
  183. package/shared/localization/locales/ru.json +301 -76
  184. package/shared/localization/locales/sk.json +291 -66
  185. package/shared/localization/locales/sl.json +290 -65
  186. package/shared/localization/locales/sr-Latn.json +290 -65
  187. package/shared/localization/locales/sr.json +290 -65
  188. package/shared/localization/locales/sv.json +297 -72
  189. package/shared/localization/locales/ta.json +291 -66
  190. package/shared/localization/locales/te.json +293 -68
  191. package/shared/localization/locales/th.json +291 -66
  192. package/shared/localization/locales/tr.json +290 -65
  193. package/shared/localization/locales/uk.json +290 -65
  194. package/shared/localization/locales/vi.json +291 -66
  195. package/shared/localization/locales/zh-HK.json +292 -67
  196. package/shared/localization/locales/zh-TW.json +291 -66
  197. package/shared/localization/locales/zh.json +291 -66
  198. package/shared/types/shared.d.ts +1 -1
  199. package/tsconfig-base.json +2 -1
  200. package/tsconfig.json +2 -0
  201. package/types/artifacts.d.ts +1 -1
  202. package/types/internal/rxjs.d.ts +1 -1
  203. package/types/internal/smokehouse.d.ts +1 -1
  204. package/types.d.ts +2 -0
  205. package/types.js +11 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "core/audits/accessibility/accesskeys.js | description": {
3
- "message": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.11/accesskeys)."
3
+ "message": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.12/accesskeys)."
4
4
  },
5
5
  "core/audits/accessibility/accesskeys.js | failureTitle": {
6
6
  "message": "`[accesskey]` values are not unique"
@@ -9,7 +9,7 @@
9
9
  "message": "`[accesskey]` values are unique"
10
10
  },
11
11
  "core/audits/accessibility/aria-allowed-attr.js | description": {
12
- "message": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)."
12
+ "message": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.12/aria-allowed-attr)."
13
13
  },
14
14
  "core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
15
15
  "message": "`[aria-*]` attributes do not match their roles"
@@ -18,7 +18,7 @@
18
18
  "message": "`[aria-*]` attributes match their roles"
19
19
  },
20
20
  "core/audits/accessibility/aria-allowed-role.js | description": {
21
- "message": "Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)."
21
+ "message": "Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.12/aria-allowed-role)."
22
22
  },
23
23
  "core/audits/accessibility/aria-allowed-role.js | failureTitle": {
24
24
  "message": "Uses ARIA roles on incompatible elements"
@@ -27,7 +27,7 @@
27
27
  "message": "Uses ARIA roles only on compatible elements"
28
28
  },
29
29
  "core/audits/accessibility/aria-command-name.js | description": {
30
- "message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)."
30
+ "message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.12/aria-command-name)."
31
31
  },
32
32
  "core/audits/accessibility/aria-command-name.js | failureTitle": {
33
33
  "message": "`button`, `link`, and `menuitem` elements do not have accessible names."
@@ -36,7 +36,7 @@
36
36
  "message": "`button`, `link`, and `menuitem` elements have accessible names"
37
37
  },
38
38
  "core/audits/accessibility/aria-conditional-attr.js | description": {
39
- "message": "Some ARIA attributes are only allowed on an element under certain conditions. [Learn more about conditional ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)."
39
+ "message": "Some ARIA attributes are only allowed on an element under certain conditions. [Learn more about conditional ARIA attributes](https://dequeuniversity.com/rules/axe/4.12/aria-conditional-attr)."
40
40
  },
41
41
  "core/audits/accessibility/aria-conditional-attr.js | failureTitle": {
42
42
  "message": "ARIA attributes are not used as specified for the element's role"
@@ -45,7 +45,7 @@
45
45
  "message": "ARIA attributes are used as specified for the element's role"
46
46
  },
47
47
  "core/audits/accessibility/aria-deprecated-role.js | description": {
48
- "message": "Deprecated ARIA roles may not be processed correctly by assistive technology. [Learn more about deprecated ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)."
48
+ "message": "Deprecated ARIA roles may not be processed correctly by assistive technology. [Learn more about deprecated ARIA roles](https://dequeuniversity.com/rules/axe/4.12/aria-deprecated-role)."
49
49
  },
50
50
  "core/audits/accessibility/aria-deprecated-role.js | failureTitle": {
51
51
  "message": "Deprecated ARIA roles were used"
@@ -54,7 +54,7 @@
54
54
  "message": "Deprecated ARIA roles were not used"
55
55
  },
56
56
  "core/audits/accessibility/aria-dialog-name.js | description": {
57
- "message": "ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."
57
+ "message": "ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.12/aria-dialog-name)."
58
58
  },
59
59
  "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
60
60
  "message": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` do not have accessible names."
@@ -63,7 +63,7 @@
63
63
  "message": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` have accessible names."
64
64
  },
65
65
  "core/audits/accessibility/aria-hidden-body.js | description": {
66
- "message": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document `<body>`. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)."
66
+ "message": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document `<body>`. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.12/aria-hidden-body)."
67
67
  },
68
68
  "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
69
69
  "message": "`[aria-hidden=\"true\"]` is present on the document `<body>`"
@@ -72,7 +72,7 @@
72
72
  "message": "`[aria-hidden=\"true\"]` is not present on the document `<body>`"
73
73
  },
74
74
  "core/audits/accessibility/aria-hidden-focus.js | description": {
75
- "message": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus)."
75
+ "message": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.12/aria-hidden-focus)."
76
76
  },
77
77
  "core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
78
78
  "message": "`[aria-hidden=\"true\"]` elements contain focusable descendents"
@@ -81,7 +81,7 @@
81
81
  "message": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents"
82
82
  },
83
83
  "core/audits/accessibility/aria-input-field-name.js | description": {
84
- "message": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name)."
84
+ "message": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.12/aria-input-field-name)."
85
85
  },
86
86
  "core/audits/accessibility/aria-input-field-name.js | failureTitle": {
87
87
  "message": "ARIA input fields do not have accessible names"
@@ -90,7 +90,7 @@
90
90
  "message": "ARIA input fields have accessible names"
91
91
  },
92
92
  "core/audits/accessibility/aria-meter-name.js | description": {
93
- "message": "When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)."
93
+ "message": "When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.12/aria-meter-name)."
94
94
  },
95
95
  "core/audits/accessibility/aria-meter-name.js | failureTitle": {
96
96
  "message": "ARIA `meter` elements do not have accessible names."
@@ -99,7 +99,7 @@
99
99
  "message": "ARIA `meter` elements have accessible names"
100
100
  },
101
101
  "core/audits/accessibility/aria-progressbar-name.js | description": {
102
- "message": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)."
102
+ "message": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.12/aria-progressbar-name)."
103
103
  },
104
104
  "core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
105
105
  "message": "ARIA `progressbar` elements do not have accessible names."
@@ -108,7 +108,7 @@
108
108
  "message": "ARIA `progressbar` elements have accessible names"
109
109
  },
110
110
  "core/audits/accessibility/aria-prohibited-attr.js | description": {
111
- "message": "Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. [Learn more about prohibited ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)."
111
+ "message": "Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. [Learn more about prohibited ARIA roles](https://dequeuniversity.com/rules/axe/4.12/aria-prohibited-attr)."
112
112
  },
113
113
  "core/audits/accessibility/aria-prohibited-attr.js | failureTitle": {
114
114
  "message": "Elements use prohibited ARIA attributes"
@@ -117,7 +117,7 @@
117
117
  "message": "Elements use only permitted ARIA attributes"
118
118
  },
119
119
  "core/audits/accessibility/aria-required-attr.js | description": {
120
- "message": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)."
120
+ "message": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.12/aria-required-attr)."
121
121
  },
122
122
  "core/audits/accessibility/aria-required-attr.js | failureTitle": {
123
123
  "message": "`[role]`s do not have all required `[aria-*]` attributes"
@@ -126,7 +126,7 @@
126
126
  "message": "`[role]`s have all required `[aria-*]` attributes"
127
127
  },
128
128
  "core/audits/accessibility/aria-required-children.js | description": {
129
- "message": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)."
129
+ "message": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.12/aria-required-children)."
130
130
  },
131
131
  "core/audits/accessibility/aria-required-children.js | failureTitle": {
132
132
  "message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children."
@@ -135,7 +135,7 @@
135
135
  "message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children."
136
136
  },
137
137
  "core/audits/accessibility/aria-required-parent.js | description": {
138
- "message": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)."
138
+ "message": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.12/aria-required-parent)."
139
139
  },
140
140
  "core/audits/accessibility/aria-required-parent.js | failureTitle": {
141
141
  "message": "`[role]`s are not contained by their required parent element"
@@ -144,7 +144,7 @@
144
144
  "message": "`[role]`s are contained by their required parent element"
145
145
  },
146
146
  "core/audits/accessibility/aria-roles.js | description": {
147
- "message": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-roles)."
147
+ "message": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.12/aria-roles)."
148
148
  },
149
149
  "core/audits/accessibility/aria-roles.js | failureTitle": {
150
150
  "message": "`[role]` values are not valid"
@@ -153,7 +153,7 @@
153
153
  "message": "`[role]` values are valid"
154
154
  },
155
155
  "core/audits/accessibility/aria-text.js | description": {
156
- "message": "Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.11/aria-text)."
156
+ "message": "Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.12/aria-text)."
157
157
  },
158
158
  "core/audits/accessibility/aria-text.js | failureTitle": {
159
159
  "message": "Elements with the `role=text` attribute do have focusable descendents."
@@ -162,7 +162,7 @@
162
162
  "message": "Elements with the `role=text` attribute do not have focusable descendents."
163
163
  },
164
164
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
165
- "message": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)."
165
+ "message": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.12/aria-toggle-field-name)."
166
166
  },
167
167
  "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
168
168
  "message": "ARIA toggle fields do not have accessible names"
@@ -171,7 +171,7 @@
171
171
  "message": "ARIA toggle fields have accessible names"
172
172
  },
173
173
  "core/audits/accessibility/aria-tooltip-name.js | description": {
174
- "message": "When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)."
174
+ "message": "When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.12/aria-tooltip-name)."
175
175
  },
176
176
  "core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
177
177
  "message": "ARIA `tooltip` elements do not have accessible names."
@@ -180,7 +180,7 @@
180
180
  "message": "ARIA `tooltip` elements have accessible names"
181
181
  },
182
182
  "core/audits/accessibility/aria-treeitem-name.js | description": {
183
- "message": "When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)."
183
+ "message": "When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.12/aria-treeitem-name)."
184
184
  },
185
185
  "core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
186
186
  "message": "ARIA `treeitem` elements do not have accessible names."
@@ -189,7 +189,7 @@
189
189
  "message": "ARIA `treeitem` elements have accessible names"
190
190
  },
191
191
  "core/audits/accessibility/aria-valid-attr-value.js | description": {
192
- "message": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)."
192
+ "message": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.12/aria-valid-attr-value)."
193
193
  },
194
194
  "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
195
195
  "message": "`[aria-*]` attributes do not have valid values"
@@ -198,7 +198,7 @@
198
198
  "message": "`[aria-*]` attributes have valid values"
199
199
  },
200
200
  "core/audits/accessibility/aria-valid-attr.js | description": {
201
- "message": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)."
201
+ "message": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.12/aria-valid-attr)."
202
202
  },
203
203
  "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
204
204
  "message": "`[aria-*]` attributes are not valid or misspelled"
@@ -207,7 +207,7 @@
207
207
  "message": "`[aria-*]` attributes are valid and not misspelled"
208
208
  },
209
209
  "core/audits/accessibility/autocomplete-valid.js | description": {
210
- "message": "The `autocomplete` attribute values must be valid and correctly applied for screen readers to function correctly. [Learn more about valid autocomplete values](https://dequeuniversity.com/rules/axe/4.11/autocomplete-valid)."
210
+ "message": "The `autocomplete` attribute values must be valid and correctly applied for screen readers to function correctly. [Learn more about valid autocomplete values](https://dequeuniversity.com/rules/axe/4.12/autocomplete-valid)."
211
211
  },
212
212
  "core/audits/accessibility/autocomplete-valid.js | failureTitle": {
213
213
  "message": "`autocomplete` attributes are not used correctly"
@@ -219,7 +219,7 @@
219
219
  "message": "Failing Elements"
220
220
  },
221
221
  "core/audits/accessibility/button-name.js | description": {
222
- "message": "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](https://dequeuniversity.com/rules/axe/4.11/button-name)."
222
+ "message": "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](https://dequeuniversity.com/rules/axe/4.12/button-name)."
223
223
  },
224
224
  "core/audits/accessibility/button-name.js | failureTitle": {
225
225
  "message": "Buttons do not have an accessible name"
@@ -228,7 +228,7 @@
228
228
  "message": "Buttons have an accessible name"
229
229
  },
230
230
  "core/audits/accessibility/bypass.js | description": {
231
- "message": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.11/bypass)."
231
+ "message": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.12/bypass)."
232
232
  },
233
233
  "core/audits/accessibility/bypass.js | failureTitle": {
234
234
  "message": "The page does not contain a heading, skip link, or landmark region"
@@ -237,7 +237,7 @@
237
237
  "message": "The page contains a heading, skip link, or landmark region"
238
238
  },
239
239
  "core/audits/accessibility/color-contrast.js | description": {
240
- "message": "Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.11/color-contrast)."
240
+ "message": "Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.12/color-contrast)."
241
241
  },
242
242
  "core/audits/accessibility/color-contrast.js | failureTitle": {
243
243
  "message": "Background and foreground colors do not have a sufficient contrast ratio."
@@ -246,7 +246,7 @@
246
246
  "message": "Background and foreground colors have a sufficient contrast ratio"
247
247
  },
248
248
  "core/audits/accessibility/definition-list.js | description": {
249
- "message": "When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/definition-list)."
249
+ "message": "When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.12/definition-list)."
250
250
  },
251
251
  "core/audits/accessibility/definition-list.js | failureTitle": {
252
252
  "message": "`<dl>`'s do not contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements."
@@ -255,7 +255,7 @@
255
255
  "message": "`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements."
256
256
  },
257
257
  "core/audits/accessibility/dlitem.js | description": {
258
- "message": "Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/dlitem)."
258
+ "message": "Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.12/dlitem)."
259
259
  },
260
260
  "core/audits/accessibility/dlitem.js | failureTitle": {
261
261
  "message": "Definition list items are not wrapped in `<dl>` elements"
@@ -264,7 +264,7 @@
264
264
  "message": "Definition list items are wrapped in `<dl>` elements"
265
265
  },
266
266
  "core/audits/accessibility/document-title.js | description": {
267
- "message": "The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more about document titles](https://dequeuniversity.com/rules/axe/4.11/document-title)."
267
+ "message": "The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more about document titles](https://dequeuniversity.com/rules/axe/4.12/document-title)."
268
268
  },
269
269
  "core/audits/accessibility/document-title.js | failureTitle": {
270
270
  "message": "Document doesn't have a `<title>` element"
@@ -273,7 +273,7 @@
273
273
  "message": "Document has a `<title>` element"
274
274
  },
275
275
  "core/audits/accessibility/duplicate-id-aria.js | description": {
276
- "message": "The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)."
276
+ "message": "The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.12/duplicate-id-aria)."
277
277
  },
278
278
  "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
279
279
  "message": "ARIA IDs are not unique"
@@ -282,7 +282,7 @@
282
282
  "message": "ARIA IDs are unique"
283
283
  },
284
284
  "core/audits/accessibility/empty-heading.js | description": {
285
- "message": "A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."
285
+ "message": "A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.12/empty-heading)."
286
286
  },
287
287
  "core/audits/accessibility/empty-heading.js | failureTitle": {
288
288
  "message": "Heading elements do not contain content."
@@ -291,7 +291,7 @@
291
291
  "message": "All heading elements contain content."
292
292
  },
293
293
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
294
- "message": "Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)."
294
+ "message": "Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.12/form-field-multiple-labels)."
295
295
  },
296
296
  "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
297
297
  "message": "Form fields have multiple labels"
@@ -300,7 +300,7 @@
300
300
  "message": "No form fields have multiple labels"
301
301
  },
302
302
  "core/audits/accessibility/frame-title.js | description": {
303
- "message": "Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.11/frame-title)."
303
+ "message": "Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.12/frame-title)."
304
304
  },
305
305
  "core/audits/accessibility/frame-title.js | failureTitle": {
306
306
  "message": "`<frame>` or `<iframe>` elements do not have a title"
@@ -309,7 +309,7 @@
309
309
  "message": "`<frame>` or `<iframe>` elements have a title"
310
310
  },
311
311
  "core/audits/accessibility/heading-order.js | description": {
312
- "message": "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](https://dequeuniversity.com/rules/axe/4.11/heading-order)."
312
+ "message": "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](https://dequeuniversity.com/rules/axe/4.12/heading-order)."
313
313
  },
314
314
  "core/audits/accessibility/heading-order.js | failureTitle": {
315
315
  "message": "Heading elements are not in a sequentially-descending order"
@@ -318,7 +318,7 @@
318
318
  "message": "Heading elements appear in a sequentially-descending order"
319
319
  },
320
320
  "core/audits/accessibility/html-has-lang.js | description": {
321
- "message": "If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)."
321
+ "message": "If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.12/html-has-lang)."
322
322
  },
323
323
  "core/audits/accessibility/html-has-lang.js | failureTitle": {
324
324
  "message": "`<html>` element does not have a `[lang]` attribute"
@@ -327,7 +327,7 @@
327
327
  "message": "`<html>` element has a `[lang]` attribute"
328
328
  },
329
329
  "core/audits/accessibility/html-lang-valid.js | description": {
330
- "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)."
330
+ "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.12/html-lang-valid)."
331
331
  },
332
332
  "core/audits/accessibility/html-lang-valid.js | failureTitle": {
333
333
  "message": "`<html>` element does not have a valid value for its `[lang]` attribute."
@@ -336,7 +336,7 @@
336
336
  "message": "`<html>` element has a valid value for its `[lang]` attribute"
337
337
  },
338
338
  "core/audits/accessibility/html-xml-lang-mismatch.js | description": {
339
- "message": "If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)."
339
+ "message": "If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.12/html-xml-lang-mismatch)."
340
340
  },
341
341
  "core/audits/accessibility/html-xml-lang-mismatch.js | failureTitle": {
342
342
  "message": "`<html>` element does not have an `[xml:lang]` attribute with the same base language as the `[lang]` attribute."
@@ -345,7 +345,7 @@
345
345
  "message": "`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute."
346
346
  },
347
347
  "core/audits/accessibility/identical-links-same-purpose.js | description": {
348
- "message": "Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."
348
+ "message": "Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.12/identical-links-same-purpose)."
349
349
  },
350
350
  "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
351
351
  "message": "Identical links do not have the same purpose."
@@ -354,7 +354,7 @@
354
354
  "message": "Identical links have the same purpose."
355
355
  },
356
356
  "core/audits/accessibility/image-alt.js | description": {
357
- "message": "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](https://dequeuniversity.com/rules/axe/4.11/image-alt)."
357
+ "message": "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](https://dequeuniversity.com/rules/axe/4.12/image-alt)."
358
358
  },
359
359
  "core/audits/accessibility/image-alt.js | failureTitle": {
360
360
  "message": "Image elements do not have `[alt]` attributes"
@@ -363,7 +363,7 @@
363
363
  "message": "Image elements have `[alt]` attributes"
364
364
  },
365
365
  "core/audits/accessibility/image-redundant-alt.js | description": {
366
- "message": "Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)."
366
+ "message": "Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.12/image-redundant-alt)."
367
367
  },
368
368
  "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
369
369
  "message": "Image elements have `[alt]` attributes that are redundant text."
@@ -372,7 +372,7 @@
372
372
  "message": "Image elements do not have `[alt]` attributes that are redundant text."
373
373
  },
374
374
  "core/audits/accessibility/input-button-name.js | description": {
375
- "message": "Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.11/input-button-name)."
375
+ "message": "Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.12/input-button-name)."
376
376
  },
377
377
  "core/audits/accessibility/input-button-name.js | failureTitle": {
378
378
  "message": "Input buttons do not have discernible text."
@@ -381,7 +381,7 @@
381
381
  "message": "Input buttons have discernible text."
382
382
  },
383
383
  "core/audits/accessibility/input-image-alt.js | description": {
384
- "message": "When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)."
384
+ "message": "When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.12/input-image-alt)."
385
385
  },
386
386
  "core/audits/accessibility/input-image-alt.js | failureTitle": {
387
387
  "message": "`<input type=\"image\">` elements do not have `[alt]` text"
@@ -390,7 +390,7 @@
390
390
  "message": "`<input type=\"image\">` elements have `[alt]` text"
391
391
  },
392
392
  "core/audits/accessibility/label-content-name-mismatch.js | description": {
393
- "message": "Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. [Learn more about accessible names](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)."
393
+ "message": "Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. [Learn more about accessible names](https://dequeuniversity.com/rules/axe/4.12/label-content-name-mismatch)."
394
394
  },
395
395
  "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
396
396
  "message": "Elements with visible text labels do not have matching accessible names."
@@ -399,7 +399,7 @@
399
399
  "message": "Elements with visible text labels have matching accessible names."
400
400
  },
401
401
  "core/audits/accessibility/label.js | description": {
402
- "message": "Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.11/label)."
402
+ "message": "Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.12/label)."
403
403
  },
404
404
  "core/audits/accessibility/label.js | failureTitle": {
405
405
  "message": "Form elements do not have associated labels"
@@ -408,7 +408,7 @@
408
408
  "message": "Form elements have associated labels"
409
409
  },
410
410
  "core/audits/accessibility/landmark-one-main.js | description": {
411
- "message": "One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."
411
+ "message": "One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.12/landmark-one-main)."
412
412
  },
413
413
  "core/audits/accessibility/landmark-one-main.js | failureTitle": {
414
414
  "message": "Document does not have a main landmark."
@@ -417,7 +417,7 @@
417
417
  "message": "Document has a main landmark."
418
418
  },
419
419
  "core/audits/accessibility/link-in-text-block.js | description": {
420
- "message": "Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. [Learn how to make links distinguishable](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."
420
+ "message": "Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. [Learn how to make links distinguishable](https://dequeuniversity.com/rules/axe/4.12/link-in-text-block)."
421
421
  },
422
422
  "core/audits/accessibility/link-in-text-block.js | failureTitle": {
423
423
  "message": "Links rely on color to be distinguishable."
@@ -426,7 +426,7 @@
426
426
  "message": "Links are distinguishable without relying on color."
427
427
  },
428
428
  "core/audits/accessibility/link-name.js | description": {
429
- "message": "Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. [Learn how to make links accessible](https://dequeuniversity.com/rules/axe/4.11/link-name)."
429
+ "message": "Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. [Learn how to make links accessible](https://dequeuniversity.com/rules/axe/4.12/link-name)."
430
430
  },
431
431
  "core/audits/accessibility/link-name.js | failureTitle": {
432
432
  "message": "Links do not have a discernible name"
@@ -435,7 +435,7 @@
435
435
  "message": "Links have a discernible name"
436
436
  },
437
437
  "core/audits/accessibility/list.js | description": {
438
- "message": "Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/list)."
438
+ "message": "Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.12/list)."
439
439
  },
440
440
  "core/audits/accessibility/list.js | failureTitle": {
441
441
  "message": "Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)."
@@ -444,7 +444,7 @@
444
444
  "message": "Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)."
445
445
  },
446
446
  "core/audits/accessibility/listitem.js | description": {
447
- "message": "Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/listitem)."
447
+ "message": "Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.12/listitem)."
448
448
  },
449
449
  "core/audits/accessibility/listitem.js | failureTitle": {
450
450
  "message": "List items (`<li>`) are not contained within `<ul>`, `<ol>` or `<menu>` parent elements."
@@ -453,7 +453,7 @@
453
453
  "message": "List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements"
454
454
  },
455
455
  "core/audits/accessibility/meta-refresh.js | description": {
456
- "message": "Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)."
456
+ "message": "Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.12/meta-refresh)."
457
457
  },
458
458
  "core/audits/accessibility/meta-refresh.js | failureTitle": {
459
459
  "message": "The document uses `<meta http-equiv=\"refresh\">`"
@@ -462,7 +462,7 @@
462
462
  "message": "The document does not use `<meta http-equiv=\"refresh\">`"
463
463
  },
464
464
  "core/audits/accessibility/meta-viewport.js | description": {
465
- "message": "Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more about the viewport meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)."
465
+ "message": "Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more about the viewport meta tag](https://dequeuniversity.com/rules/axe/4.12/meta-viewport)."
466
466
  },
467
467
  "core/audits/accessibility/meta-viewport.js | failureTitle": {
468
468
  "message": "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
@@ -471,7 +471,7 @@
471
471
  "message": "`[user-scalable=\"no\"]` is not used in the `<meta name=\"viewport\">` element and the `[maximum-scale]` attribute is not less than 5."
472
472
  },
473
473
  "core/audits/accessibility/object-alt.js | description": {
474
- "message": "Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.11/object-alt)."
474
+ "message": "Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.12/object-alt)."
475
475
  },
476
476
  "core/audits/accessibility/object-alt.js | failureTitle": {
477
477
  "message": "`<object>` elements do not have alternate text"
@@ -480,7 +480,7 @@
480
480
  "message": "`<object>` elements have alternate text"
481
481
  },
482
482
  "core/audits/accessibility/presentation-role-conflict.js | description": {
483
- "message": "There are certain cases where the semantic role of an element with `role=\"none\"` or `role=\"presentation\"` does not resolve to none or presentation. To ensure the element remains removed from the accessibility tree, you should not add any global ARIA attributes to the element or make it focusable. [Learn more about presentation role conflict](https://dequeuniversity.com/rules/axe/4.11/presentation-role-conflict)."
483
+ "message": "There are certain cases where the semantic role of an element with `role=\"none\"` or `role=\"presentation\"` does not resolve to none or presentation. To ensure the element remains removed from the accessibility tree, you should not add any global ARIA attributes to the element or make it focusable. [Learn more about presentation role conflict](https://dequeuniversity.com/rules/axe/4.12/presentation-role-conflict)."
484
484
  },
485
485
  "core/audits/accessibility/presentation-role-conflict.js | failureTitle": {
486
486
  "message": "Elements with `role=\"none\"` or `role=\"presentation\"` have conflicts"
@@ -489,7 +489,7 @@
489
489
  "message": "Elements with `role=\"none\"` or `role=\"presentation\"` do not have conflicts"
490
490
  },
491
491
  "core/audits/accessibility/select-name.js | description": {
492
- "message": "Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.11/select-name)."
492
+ "message": "Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.12/select-name)."
493
493
  },
494
494
  "core/audits/accessibility/select-name.js | failureTitle": {
495
495
  "message": "Select elements do not have associated label elements."
@@ -498,7 +498,7 @@
498
498
  "message": "Select elements have associated label elements."
499
499
  },
500
500
  "core/audits/accessibility/skip-link.js | description": {
501
- "message": "Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.11/skip-link)."
501
+ "message": "Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.12/skip-link)."
502
502
  },
503
503
  "core/audits/accessibility/skip-link.js | failureTitle": {
504
504
  "message": "Skip links are not focusable."
@@ -507,7 +507,7 @@
507
507
  "message": "Skip links are focusable."
508
508
  },
509
509
  "core/audits/accessibility/svg-img-alt.js | description": {
510
- "message": "Ensures SVG elements with an `img`, `graphics-document` or `graphics-symbol` role have an accessible text alternative. [Learn more about SVG alt text](https://dequeuniversity.com/rules/axe/4.11/svg-img-alt)."
510
+ "message": "Ensures SVG elements with an `img`, `graphics-document` or `graphics-symbol` role have an accessible text alternative. [Learn more about SVG alt text](https://dequeuniversity.com/rules/axe/4.12/svg-img-alt)."
511
511
  },
512
512
  "core/audits/accessibility/svg-img-alt.js | failureTitle": {
513
513
  "message": "SVG elements with an `img` role do not have an accessible text alternative"
@@ -516,7 +516,7 @@
516
516
  "message": "SVG elements with an `img` role have an accessible text alternative"
517
517
  },
518
518
  "core/audits/accessibility/tabindex.js | description": {
519
- "message": "A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more about the `tabindex` attribute](https://dequeuniversity.com/rules/axe/4.11/tabindex)."
519
+ "message": "A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more about the `tabindex` attribute](https://dequeuniversity.com/rules/axe/4.12/tabindex)."
520
520
  },
521
521
  "core/audits/accessibility/tabindex.js | failureTitle": {
522
522
  "message": "Some elements have a `[tabindex]` value greater than 0"
@@ -525,7 +525,7 @@
525
525
  "message": "No element has a `[tabindex]` value greater than 0"
526
526
  },
527
527
  "core/audits/accessibility/table-duplicate-name.js | description": {
528
- "message": "The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)."
528
+ "message": "The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.12/table-duplicate-name)."
529
529
  },
530
530
  "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
531
531
  "message": "Tables have the same content in the summary attribute and `<caption>.`"
@@ -534,7 +534,7 @@
534
534
  "message": "Tables have different content in the summary attribute and `<caption>`."
535
535
  },
536
536
  "core/audits/accessibility/table-fake-caption.js | description": {
537
- "message": "Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)."
537
+ "message": "Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.12/table-fake-caption)."
538
538
  },
539
539
  "core/audits/accessibility/table-fake-caption.js | failureTitle": {
540
540
  "message": "Tables do not use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption."
@@ -543,7 +543,7 @@
543
543
  "message": "Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption."
544
544
  },
545
545
  "core/audits/accessibility/target-size.js | description": {
546
- "message": "Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. [Learn more about touch targets](https://dequeuniversity.com/rules/axe/4.11/target-size)."
546
+ "message": "Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. [Learn more about touch targets](https://dequeuniversity.com/rules/axe/4.12/target-size)."
547
547
  },
548
548
  "core/audits/accessibility/target-size.js | failureTitle": {
549
549
  "message": "Touch targets do not have sufficient size or spacing."
@@ -552,7 +552,7 @@
552
552
  "message": "Touch targets have sufficient size and spacing."
553
553
  },
554
554
  "core/audits/accessibility/td-has-header.js | description": {
555
- "message": "Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/td-has-header)."
555
+ "message": "Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.12/td-has-header)."
556
556
  },
557
557
  "core/audits/accessibility/td-has-header.js | failureTitle": {
558
558
  "message": "`<td>` elements in a large `<table>` do not have table headers."
@@ -561,7 +561,7 @@
561
561
  "message": "`<td>` elements in a large `<table>` have one or more table headers."
562
562
  },
563
563
  "core/audits/accessibility/td-headers-attr.js | description": {
564
- "message": "Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)."
564
+ "message": "Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.12/td-headers-attr)."
565
565
  },
566
566
  "core/audits/accessibility/td-headers-attr.js | failureTitle": {
567
567
  "message": "Cells in a `<table>` element that use the `[headers]` attribute refer to an element `id` not found within the same table."
@@ -570,7 +570,7 @@
570
570
  "message": "Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table."
571
571
  },
572
572
  "core/audits/accessibility/th-has-data-cells.js | description": {
573
- "message": "Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)."
573
+ "message": "Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.12/th-has-data-cells)."
574
574
  },
575
575
  "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
576
576
  "message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` do not have data cells they describe."
@@ -579,7 +579,7 @@
579
579
  "message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` have data cells they describe."
580
580
  },
581
581
  "core/audits/accessibility/valid-lang.js | description": {
582
- "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/valid-lang)."
582
+ "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.12/valid-lang)."
583
583
  },
584
584
  "core/audits/accessibility/valid-lang.js | failureTitle": {
585
585
  "message": "`[lang]` attributes do not have a valid value"
@@ -588,7 +588,7 @@
588
588
  "message": "`[lang]` attributes have a valid value"
589
589
  },
590
590
  "core/audits/accessibility/video-caption.js | description": {
591
- "message": "When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.11/video-caption)."
591
+ "message": "When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.12/video-caption)."
592
592
  },
593
593
  "core/audits/accessibility/video-caption.js | failureTitle": {
594
594
  "message": "`<video>` elements do not contain a `<track>` element with `[kind=\"captions\"]`."
@@ -626,6 +626,9 @@
626
626
  "core/audits/agentic/llms-txt.js | explanation": {
627
627
  "message": "Fetch of llms.txt failed"
628
628
  },
629
+ "core/audits/agentic/llms-txt.js | explanationWithError": {
630
+ "message": "Fetch of llms.txt failed: {error}"
631
+ },
629
632
  "core/audits/agentic/llms-txt.js | failureTitle": {
630
633
  "message": "llms.txt does not follow recommendations"
631
634
  },
@@ -855,7 +858,7 @@
855
858
  "message": "Page has the HTML doctype"
856
859
  },
857
860
  "core/audits/dobetterweb/geolocation-on-start.js | description": {
858
- "message": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. [Learn more about the geolocation permission](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)."
861
+ "message": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. [Learn more about the geolocation permission](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/). Also consider using the [`<geolocation>` element](https://developer.chrome.com/blog/geolocation-html-element)."
859
862
  },
860
863
  "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
861
864
  "message": "Requests the geolocation permission on page load"
@@ -1263,7 +1266,10 @@
1263
1266
  "message": "{itemCount, plural,\n =1 {1 error found}\n other {# errors found}\n }"
1264
1267
  },
1265
1268
  "core/audits/seo/robots-txt.js | explanation": {
1266
- "message": "Lighthouse was unable to download a robots.txt file"
1269
+ "message": "Fetch of robots.txt failed"
1270
+ },
1271
+ "core/audits/seo/robots-txt.js | explanationWithError": {
1272
+ "message": "Fetch of robots.txt failed: {error}"
1267
1273
  },
1268
1274
  "core/audits/seo/robots-txt.js | failureTitle": {
1269
1275
  "message": "robots.txt is not valid"
@@ -2177,6 +2183,9 @@
2177
2183
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoSupportsFullscreen": {
2178
2184
  "message": "HTMLVideoElement.webkitSupportsFullscreen is deprecated. Please use Document.fullscreenEnabled instead."
2179
2185
  },
2186
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PreventSvgFilterPaint": {
2187
+ "message": "SVG filters cannot be applied to cross-origin iframes, restricted iframes (e.g., sandboxed), or plugins."
2188
+ },
2180
2189
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpFalse": {
2181
2190
  "message": "The constraint DtlsSrtpKeyAgreement is removed. You have specified a false value for this constraint, which is interpreted as an attempt to use the removed SDES key negotiation method. This functionality is removed; use a service that supports DTLS key negotiation instead."
2182
2191
  },
@@ -2387,6 +2396,9 @@
2387
2396
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | description": {
2388
2397
  "message": "Remove large, [duplicate JavaScript modules](https://developer.chrome.com/docs/performance/insights/duplicated-javascript) from bundles to reduce unnecessary bytes consumed by network activity."
2389
2398
  },
2399
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | noDuplicatedJavaScript": {
2400
+ "message": "No duplicated JavaScript found"
2401
+ },
2390
2402
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | title": {
2391
2403
  "message": "Duplicated JavaScript"
2392
2404
  },
@@ -2396,6 +2408,9 @@
2396
2408
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | fontColumn": {
2397
2409
  "message": "Font"
2398
2410
  },
2411
+ "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | noFonts": {
2412
+ "message": "No fonts with suboptimal font-display found"
2413
+ },
2399
2414
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
2400
2415
  "message": "Font display"
2401
2416
  },
@@ -2546,6 +2561,9 @@
2546
2561
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
2547
2562
  "message": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)"
2548
2563
  },
2564
+ "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | noLegacyJavaScript": {
2565
+ "message": "No legacy JavaScript found"
2566
+ },
2549
2567
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
2550
2568
  "message": "Legacy JavaScript"
2551
2569
  },