lighthouse 10.4.0 → 11.0.0

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 (288) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/cli/cli-flags.d.ts +1 -6
  3. package/cli/cli-flags.js +0 -5
  4. package/cli/run.js +3 -10
  5. package/cli/sentry-prompt.js +4 -2
  6. package/cli/test/smokehouse/core-tests.js +0 -2
  7. package/cli/test/smokehouse/frontends/smokehouse-bin.js +24 -14
  8. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +1 -2
  9. package/cli/test/smokehouse/lighthouse-runners/bundle.js +12 -21
  10. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -3
  11. package/cli/test/smokehouse/lighthouse-runners/cli.js +3 -7
  12. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +1 -5
  13. package/cli/test/smokehouse/lighthouse-runners/devtools.js +1 -12
  14. package/cli/test/smokehouse/readme.md +0 -2
  15. package/cli/test/smokehouse/report-assert.d.ts +1 -3
  16. package/cli/test/smokehouse/report-assert.js +2 -19
  17. package/cli/test/smokehouse/smokehouse.js +3 -32
  18. package/core/audits/accessibility/aria-allowed-role.d.ts +10 -0
  19. package/core/audits/accessibility/aria-allowed-role.js +46 -0
  20. package/core/audits/accessibility/image-redundant-alt.d.ts +10 -0
  21. package/core/audits/accessibility/image-redundant-alt.js +45 -0
  22. package/core/audits/accessibility/label-content-name-mismatch.d.ts +10 -0
  23. package/core/audits/accessibility/label-content-name-mismatch.js +44 -0
  24. package/core/audits/accessibility/skip-link.d.ts +10 -0
  25. package/core/audits/accessibility/skip-link.js +43 -0
  26. package/core/audits/accessibility/table-duplicate-name.d.ts +10 -0
  27. package/core/audits/accessibility/table-duplicate-name.js +44 -0
  28. package/core/audits/accessibility/target-size.js +1 -1
  29. package/core/audits/byte-efficiency/duplicated-javascript.js +2 -2
  30. package/core/audits/byte-efficiency/render-blocking-resources.js +1 -0
  31. package/core/audits/dobetterweb/uses-http2.d.ts +18 -1
  32. package/core/audits/dobetterweb/uses-http2.js +62 -16
  33. package/core/audits/installable-manifest.d.ts +1 -5
  34. package/core/audits/installable-manifest.js +2 -7
  35. package/core/audits/largest-contentful-paint-element.d.ts +0 -6
  36. package/core/audits/largest-contentful-paint-element.js +13 -15
  37. package/core/audits/metrics/{experimental-interaction-to-next-paint.d.ts → interaction-to-next-paint.d.ts} +3 -3
  38. package/core/audits/metrics/{experimental-interaction-to-next-paint.js → interaction-to-next-paint.js} +3 -3
  39. package/core/audits/uses-rel-preconnect.js +23 -8
  40. package/core/audits/work-during-interaction.js +2 -2
  41. package/core/computed/processed-navigation.d.ts +1 -1
  42. package/core/config/config-helpers.d.ts +3 -3
  43. package/core/config/config-helpers.js +5 -12
  44. package/core/config/config.js +1 -7
  45. package/core/config/constants.d.ts +0 -2
  46. package/core/config/constants.js +2 -18
  47. package/core/config/default-config.js +59 -53
  48. package/core/config/filters.js +1 -1
  49. package/core/config/validation.d.ts +7 -12
  50. package/core/config/validation.js +16 -26
  51. package/core/gather/base-artifacts.d.ts +4 -4
  52. package/core/gather/base-artifacts.js +2 -6
  53. package/core/gather/base-gatherer.d.ts +12 -37
  54. package/core/gather/base-gatherer.js +7 -54
  55. package/core/gather/driver/dom.d.ts +4 -4
  56. package/core/gather/driver/dom.js +2 -2
  57. package/core/gather/driver/environment.d.ts +4 -4
  58. package/core/gather/driver/environment.js +2 -2
  59. package/core/gather/driver/execution-context.d.ts +12 -3
  60. package/core/gather/driver/execution-context.js +34 -3
  61. package/core/gather/driver/navigation.d.ts +2 -2
  62. package/core/gather/driver/navigation.js +2 -5
  63. package/core/gather/driver/network-monitor.d.ts +7 -6
  64. package/core/gather/driver/network-monitor.js +4 -4
  65. package/core/gather/driver/network.d.ts +2 -2
  66. package/core/gather/driver/network.js +1 -1
  67. package/core/gather/driver/prepare.d.ts +10 -10
  68. package/core/gather/driver/prepare.js +10 -10
  69. package/core/gather/driver/service-workers.d.ts +4 -4
  70. package/core/gather/driver/service-workers.js +2 -2
  71. package/core/gather/driver/storage.d.ts +6 -6
  72. package/core/gather/driver/storage.js +3 -3
  73. package/core/gather/driver/target-manager.d.ts +6 -5
  74. package/core/gather/driver/target-manager.js +3 -3
  75. package/core/gather/driver/wait-for-condition.d.ts +14 -14
  76. package/core/gather/driver/wait-for-condition.js +8 -8
  77. package/core/gather/driver.d.ts +9 -6
  78. package/core/gather/driver.js +14 -4
  79. package/core/gather/fetcher.d.ts +3 -3
  80. package/core/gather/fetcher.js +1 -1
  81. package/core/gather/gatherers/accessibility.d.ts +4 -4
  82. package/core/gather/gatherers/accessibility.js +8 -3
  83. package/core/gather/gatherers/anchor-elements.d.ts +4 -4
  84. package/core/gather/gatherers/anchor-elements.js +4 -4
  85. package/core/gather/gatherers/bf-cache-failures.d.ts +8 -14
  86. package/core/gather/gatherers/bf-cache-failures.js +5 -14
  87. package/core/gather/gatherers/cache-contents.d.ts +4 -4
  88. package/core/gather/gatherers/cache-contents.js +3 -3
  89. package/core/gather/gatherers/console-messages.d.ts +6 -6
  90. package/core/gather/gatherers/console-messages.js +4 -4
  91. package/core/gather/gatherers/css-usage.d.ts +14 -14
  92. package/core/gather/gatherers/css-usage.js +9 -9
  93. package/core/gather/gatherers/devtools-log-compat.d.ts +5 -5
  94. package/core/gather/gatherers/devtools-log-compat.js +4 -4
  95. package/core/gather/gatherers/devtools-log.d.ts +6 -6
  96. package/core/gather/gatherers/devtools-log.js +4 -4
  97. package/core/gather/gatherers/dobetterweb/doctype.d.ts +4 -4
  98. package/core/gather/gatherers/dobetterweb/doctype.js +3 -3
  99. package/core/gather/gatherers/dobetterweb/domstats.d.ts +4 -4
  100. package/core/gather/gatherers/dobetterweb/domstats.js +3 -3
  101. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +10 -22
  102. package/core/gather/gatherers/dobetterweb/optimized-images.js +10 -27
  103. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +6 -12
  104. package/core/gather/gatherers/dobetterweb/response-compression.js +14 -21
  105. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +8 -14
  106. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +5 -14
  107. package/core/gather/gatherers/full-page-screenshot.d.ts +10 -10
  108. package/core/gather/gatherers/full-page-screenshot.js +7 -10
  109. package/core/gather/gatherers/global-listeners.d.ts +4 -4
  110. package/core/gather/gatherers/global-listeners.js +3 -3
  111. package/core/gather/gatherers/iframe-elements.d.ts +4 -4
  112. package/core/gather/gatherers/iframe-elements.js +3 -3
  113. package/core/gather/gatherers/image-elements.d.ts +10 -10
  114. package/core/gather/gatherers/image-elements.js +6 -6
  115. package/core/gather/gatherers/inputs.d.ts +4 -4
  116. package/core/gather/gatherers/inputs.js +3 -3
  117. package/core/gather/gatherers/inspector-issues.d.ts +8 -19
  118. package/core/gather/gatherers/inspector-issues.js +9 -26
  119. package/core/gather/gatherers/installability-errors.d.ts +6 -6
  120. package/core/gather/gatherers/installability-errors.js +4 -4
  121. package/core/gather/gatherers/js-usage.d.ts +6 -6
  122. package/core/gather/gatherers/js-usage.js +4 -4
  123. package/core/gather/gatherers/link-elements.d.ts +8 -20
  124. package/core/gather/gatherers/link-elements.js +7 -24
  125. package/core/gather/gatherers/main-document-content.d.ts +4 -16
  126. package/core/gather/gatherers/main-document-content.js +5 -23
  127. package/core/gather/gatherers/meta-elements.d.ts +4 -4
  128. package/core/gather/gatherers/meta-elements.js +3 -3
  129. package/core/gather/gatherers/network-user-agent.d.ts +5 -5
  130. package/core/gather/gatherers/network-user-agent.js +4 -4
  131. package/core/gather/gatherers/script-elements.d.ts +6 -11
  132. package/core/gather/gatherers/script-elements.js +4 -13
  133. package/core/gather/gatherers/scripts.d.ts +7 -6
  134. package/core/gather/gatherers/scripts.js +7 -9
  135. package/core/gather/gatherers/seo/embedded-content.d.ts +4 -4
  136. package/core/gather/gatherers/seo/embedded-content.js +3 -3
  137. package/core/gather/gatherers/seo/font-size.d.ts +6 -6
  138. package/core/gather/gatherers/seo/font-size.js +5 -5
  139. package/core/gather/gatherers/seo/robots-txt.d.ts +4 -4
  140. package/core/gather/gatherers/seo/robots-txt.js +3 -3
  141. package/core/gather/gatherers/seo/tap-targets.d.ts +8 -8
  142. package/core/gather/gatherers/seo/tap-targets.js +5 -5
  143. package/core/gather/gatherers/service-worker.d.ts +4 -10
  144. package/core/gather/gatherers/service-worker.js +3 -15
  145. package/core/gather/gatherers/source-maps.d.ts +11 -23
  146. package/core/gather/gatherers/source-maps.js +22 -53
  147. package/core/gather/gatherers/stacks.d.ts +7 -7
  148. package/core/gather/gatherers/stacks.js +6 -6
  149. package/core/gather/gatherers/trace-compat.d.ts +5 -5
  150. package/core/gather/gatherers/trace-compat.js +4 -4
  151. package/core/gather/gatherers/trace-elements.d.ts +13 -25
  152. package/core/gather/gatherers/trace-elements.js +19 -32
  153. package/core/gather/gatherers/trace.d.ts +8 -8
  154. package/core/gather/gatherers/trace.js +5 -5
  155. package/core/gather/gatherers/viewport-dimensions.d.ts +4 -4
  156. package/core/gather/gatherers/viewport-dimensions.js +3 -3
  157. package/core/gather/gatherers/web-app-manifest.d.ts +8 -8
  158. package/core/gather/gatherers/web-app-manifest.js +5 -5
  159. package/core/gather/navigation-runner.d.ts +9 -9
  160. package/core/gather/navigation-runner.js +14 -8
  161. package/core/gather/runner-helpers.d.ts +3 -3
  162. package/core/gather/runner-helpers.js +12 -4
  163. package/core/gather/session.d.ts +2 -2
  164. package/core/gather/session.js +1 -1
  165. package/core/gather/snapshot-runner.d.ts +2 -2
  166. package/core/gather/snapshot-runner.js +1 -1
  167. package/core/gather/timespan-runner.d.ts +2 -2
  168. package/core/gather/timespan-runner.js +1 -1
  169. package/core/index.cjs +0 -7
  170. package/core/index.d.ts +0 -15
  171. package/core/index.js +2 -40
  172. package/core/lib/asset-saver.js +14 -4
  173. package/core/lib/axe.js +1 -1
  174. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +28 -12
  175. package/core/lib/dependency-graph/simulator/network-analyzer.js +128 -100
  176. package/core/lib/emulation.d.ts +14 -14
  177. package/core/lib/emulation.js +7 -7
  178. package/core/lib/navigation-error.js +5 -0
  179. package/core/lib/network-recorder.d.ts +2 -1
  180. package/core/lib/network-recorder.js +1 -0
  181. package/core/lib/network-request.js +12 -3
  182. package/core/lib/page-functions.d.ts +10 -2
  183. package/core/lib/page-functions.js +85 -8
  184. package/core/lib/sentry.js +9 -2
  185. package/core/lib/stack-packs.js +4 -0
  186. package/core/runner.d.ts +8 -30
  187. package/core/runner.js +8 -39
  188. package/core/user-flow.d.ts +4 -4
  189. package/core/user-flow.js +2 -2
  190. package/dist/report/bundle.esm.js +2221 -5832
  191. package/dist/report/flow.js +2631 -235
  192. package/dist/report/standalone.js +2586 -234
  193. package/flow-report/src/i18n/i18n.d.ts +2 -2
  194. package/package.json +17 -24
  195. package/readme.md +3 -1
  196. package/report/assets/templates.html +3 -1
  197. package/report/renderer/category-renderer.d.ts +3 -2
  198. package/report/renderer/category-renderer.js +8 -4
  199. package/report/renderer/components.js +11 -5
  200. package/report/renderer/pwa-category-renderer.js +1 -1
  201. package/report/renderer/report-ui-features.js +9 -6
  202. package/report/renderer/report-utils.d.ts +1 -1
  203. package/report/renderer/report-utils.js +2 -2
  204. package/report/renderer/topbar-features.js +3 -0
  205. package/shared/localization/locales/ar-XB.json +185 -44
  206. package/shared/localization/locales/ar.json +185 -44
  207. package/shared/localization/locales/bg.json +185 -44
  208. package/shared/localization/locales/ca.json +190 -49
  209. package/shared/localization/locales/cs.json +185 -44
  210. package/shared/localization/locales/da.json +185 -44
  211. package/shared/localization/locales/de.json +185 -44
  212. package/shared/localization/locales/el.json +185 -44
  213. package/shared/localization/locales/en-GB.json +185 -44
  214. package/shared/localization/locales/en-US.json +99 -45
  215. package/shared/localization/locales/en-XA.json +185 -44
  216. package/shared/localization/locales/en-XL.json +99 -45
  217. package/shared/localization/locales/es-419.json +185 -44
  218. package/shared/localization/locales/es.json +185 -44
  219. package/shared/localization/locales/fi.json +185 -44
  220. package/shared/localization/locales/fil.json +185 -44
  221. package/shared/localization/locales/fr.json +185 -44
  222. package/shared/localization/locales/he.json +186 -45
  223. package/shared/localization/locales/hi.json +185 -44
  224. package/shared/localization/locales/hr.json +185 -44
  225. package/shared/localization/locales/hu.json +185 -44
  226. package/shared/localization/locales/id.json +185 -44
  227. package/shared/localization/locales/it.json +185 -44
  228. package/shared/localization/locales/ja.json +185 -44
  229. package/shared/localization/locales/ko.json +185 -44
  230. package/shared/localization/locales/lt.json +185 -44
  231. package/shared/localization/locales/lv.json +185 -44
  232. package/shared/localization/locales/nl.json +185 -44
  233. package/shared/localization/locales/no.json +185 -44
  234. package/shared/localization/locales/pl.json +185 -44
  235. package/shared/localization/locales/pt-PT.json +185 -44
  236. package/shared/localization/locales/pt.json +190 -49
  237. package/shared/localization/locales/ro.json +185 -44
  238. package/shared/localization/locales/ru.json +185 -44
  239. package/shared/localization/locales/sk.json +185 -44
  240. package/shared/localization/locales/sl.json +185 -44
  241. package/shared/localization/locales/sr-Latn.json +185 -44
  242. package/shared/localization/locales/sr.json +185 -44
  243. package/shared/localization/locales/sv.json +185 -44
  244. package/shared/localization/locales/ta.json +185 -44
  245. package/shared/localization/locales/te.json +185 -44
  246. package/shared/localization/locales/th.json +185 -44
  247. package/shared/localization/locales/tr.json +185 -44
  248. package/shared/localization/locales/uk.json +185 -44
  249. package/shared/localization/locales/vi.json +185 -44
  250. package/shared/localization/locales/zh-HK.json +185 -44
  251. package/shared/localization/locales/zh-TW.json +185 -44
  252. package/shared/localization/locales/zh.json +185 -44
  253. package/third-party/esbuild-plugins-polyfills/LICENSE +3 -0
  254. package/third-party/esbuild-plugins-polyfills/README.md +7 -0
  255. package/third-party/esbuild-plugins-polyfills/esbuild-polyfills.d.ts +9 -0
  256. package/third-party/esbuild-plugins-polyfills/esbuild-polyfills.js +129 -0
  257. package/tsconfig.json +2 -1
  258. package/types/artifacts.d.ts +16 -45
  259. package/types/config.d.ts +10 -52
  260. package/types/externs.d.ts +0 -2
  261. package/types/gatherer.d.ts +24 -47
  262. package/types/internal/rxjs.d.ts +26 -0
  263. package/types/internal/smokehouse.d.ts +1 -3
  264. package/types/lh.d.ts +0 -2
  265. package/types/lhr/settings.d.ts +1 -1
  266. package/core/audits/metrics/first-contentful-paint-3g.d.ts +0 -15
  267. package/core/audits/metrics/first-contentful-paint-3g.js +0 -69
  268. package/core/audits/resource-summary.d.ts +0 -16
  269. package/core/audits/resource-summary.js +0 -104
  270. package/core/audits/service-worker.d.ts +0 -46
  271. package/core/audits/service-worker.js +0 -182
  272. package/core/gather/gatherers/gatherer.d.ts +0 -46
  273. package/core/gather/gatherers/gatherer.js +0 -58
  274. package/core/legacy/config/config.d.ts +0 -107
  275. package/core/legacy/config/config.js +0 -566
  276. package/core/legacy/config/legacy-default-config.d.ts +0 -4
  277. package/core/legacy/config/legacy-default-config.js +0 -87
  278. package/core/legacy/gather/connections/connection.d.ts +0 -77
  279. package/core/legacy/gather/connections/connection.js +0 -196
  280. package/core/legacy/gather/connections/cri.d.ts +0 -27
  281. package/core/legacy/gather/connections/cri.js +0 -162
  282. package/core/legacy/gather/connections/raw.d.ts +0 -20
  283. package/core/legacy/gather/connections/raw.js +0 -57
  284. package/core/legacy/gather/driver.d.ts +0 -216
  285. package/core/legacy/gather/driver.js +0 -480
  286. package/core/legacy/gather/gather-runner.d.ts +0 -166
  287. package/core/legacy/gather/gather-runner.js +0 -590
  288. package/types/internal/lighthouse-logger.d.ts +0 -34
@@ -17,6 +17,15 @@
17
17
  "core/audits/accessibility/aria-allowed-attr.js | title": {
18
18
  "message": "`[aria-*]` attributes match their roles"
19
19
  },
20
+ "core/audits/accessibility/aria-allowed-role.js | description": {
21
+ "message": "ARIA `role`s enable assistive technologies to know the role of each element on the web page. If the `role` values are misspelled, not existing ARIA `role` values, or abstract roles, then the purpose of the element will not be communicated to users of assistive technologies. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.7/aria-allowed-roles)."
22
+ },
23
+ "core/audits/accessibility/aria-allowed-role.js | failureTitle": {
24
+ "message": "Values assigned to `role=\"\"` are not valid ARIA roles."
25
+ },
26
+ "core/audits/accessibility/aria-allowed-role.js | title": {
27
+ "message": "Values assigned to `role=\"\"` are valid ARIA roles."
28
+ },
20
29
  "core/audits/accessibility/aria-command-name.js | description": {
21
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.7/aria-command-name)."
22
31
  },
@@ -26,6 +35,15 @@
26
35
  "core/audits/accessibility/aria-command-name.js | title": {
27
36
  "message": "`button`, `link` and `menuitem` elements have accessible names"
28
37
  },
38
+ "core/audits/accessibility/aria-dialog-name.js | description": {
39
+ "message": "ARIA dialogue elements without accessible names may prevent screen reader users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.7/aria-dialog-name)."
40
+ },
41
+ "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
42
+ "message": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` do not have accessible names."
43
+ },
44
+ "core/audits/accessibility/aria-dialog-name.js | title": {
45
+ "message": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` have accessible names."
46
+ },
29
47
  "core/audits/accessibility/aria-hidden-body.js | description": {
30
48
  "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.7/aria-hidden-body)."
31
49
  },
@@ -107,6 +125,15 @@
107
125
  "core/audits/accessibility/aria-roles.js | title": {
108
126
  "message": "`[role]` values are valid"
109
127
  },
128
+ "core/audits/accessibility/aria-text.js | description": {
129
+ "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.7/aria-text)."
130
+ },
131
+ "core/audits/accessibility/aria-text.js | failureTitle": {
132
+ "message": "Elements with the `role=text` attribute do have focusable descendents."
133
+ },
134
+ "core/audits/accessibility/aria-text.js | title": {
135
+ "message": "Elements with the `role=text` attribute do not have focusable descendents."
136
+ },
110
137
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
111
138
  "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.7/aria-toggle-field-name)."
112
139
  },
@@ -227,6 +254,15 @@
227
254
  "core/audits/accessibility/duplicate-id-aria.js | title": {
228
255
  "message": "ARIA IDs are unique"
229
256
  },
257
+ "core/audits/accessibility/empty-heading.js | description": {
258
+ "message": "A heading with no content or inaccessible text prevents screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.7/empty-heading)."
259
+ },
260
+ "core/audits/accessibility/empty-heading.js | failureTitle": {
261
+ "message": "Heading elements do not contain content."
262
+ },
263
+ "core/audits/accessibility/empty-heading.js | title": {
264
+ "message": "All heading elements contain content."
265
+ },
230
266
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
231
267
  "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.7/form-field-multiple-labels)."
232
268
  },
@@ -281,6 +317,15 @@
281
317
  "core/audits/accessibility/html-xml-lang-mismatch.js | title": {
282
318
  "message": "`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute."
283
319
  },
320
+ "core/audits/accessibility/identical-links-same-purpose.js | description": {
321
+ "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.7/identical-links-same-purpose)."
322
+ },
323
+ "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
324
+ "message": "Identical links do not have the same purpose."
325
+ },
326
+ "core/audits/accessibility/identical-links-same-purpose.js | title": {
327
+ "message": "Identical links have the same purpose."
328
+ },
284
329
  "core/audits/accessibility/image-alt.js | description": {
285
330
  "message": "Informative elements should aim for short, descriptive alternative text. Decorative elements can be ignored with an empty alt attribute. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.7/image-alt)."
286
331
  },
@@ -290,6 +335,15 @@
290
335
  "core/audits/accessibility/image-alt.js | title": {
291
336
  "message": "Image elements have `[alt]` attributes"
292
337
  },
338
+ "core/audits/accessibility/image-redundant-alt.js | description": {
339
+ "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.7/image-redundant-alt)."
340
+ },
341
+ "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
342
+ "message": "Image elements have `[alt]` attributes that are redundant text."
343
+ },
344
+ "core/audits/accessibility/image-redundant-alt.js | title": {
345
+ "message": "Image elements do not have `[alt]` attributes that are redundant text."
346
+ },
293
347
  "core/audits/accessibility/input-button-name.js | description": {
294
348
  "message": "Adding discernable and accessible text to input buttons may help screen reader users to understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.7/input-button-name)."
295
349
  },
@@ -308,6 +362,15 @@
308
362
  "core/audits/accessibility/input-image-alt.js | title": {
309
363
  "message": "`<input type=\"image\">` elements have `[alt]` text"
310
364
  },
365
+ "core/audits/accessibility/label-content-name-mismatch.js | description": {
366
+ "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.7/label-content-name-mismatch)."
367
+ },
368
+ "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
369
+ "message": "Elements with visible text labels do not have matching accessible names."
370
+ },
371
+ "core/audits/accessibility/label-content-name-mismatch.js | title": {
372
+ "message": "Elements with visible text labels have matching accessible names."
373
+ },
311
374
  "core/audits/accessibility/label.js | description": {
312
375
  "message": "Labels ensure that form controls are announced properly by assistive technologies, such as screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.7/label)."
313
376
  },
@@ -317,6 +380,24 @@
317
380
  "core/audits/accessibility/label.js | title": {
318
381
  "message": "Form elements have associated labels"
319
382
  },
383
+ "core/audits/accessibility/landmark-one-main.js | description": {
384
+ "message": "One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.7/landmark-one-main)."
385
+ },
386
+ "core/audits/accessibility/landmark-one-main.js | failureTitle": {
387
+ "message": "Document does not have a main landmark."
388
+ },
389
+ "core/audits/accessibility/landmark-one-main.js | title": {
390
+ "message": "Document has a main landmark."
391
+ },
392
+ "core/audits/accessibility/link-in-text-block.js | description": {
393
+ "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.7/link-in-text-block)."
394
+ },
395
+ "core/audits/accessibility/link-in-text-block.js | failureTitle": {
396
+ "message": "Links rely on colour to be distinguishable."
397
+ },
398
+ "core/audits/accessibility/link-in-text-block.js | title": {
399
+ "message": "Links are distinguishable without relying on colour."
400
+ },
320
401
  "core/audits/accessibility/link-name.js | description": {
321
402
  "message": "Link text (and alternative 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.7/link-name)."
322
403
  },
@@ -371,6 +452,24 @@
371
452
  "core/audits/accessibility/object-alt.js | title": {
372
453
  "message": "`<object>` elements have alternative text"
373
454
  },
455
+ "core/audits/accessibility/select-name.js | description": {
456
+ "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.7/select-name)."
457
+ },
458
+ "core/audits/accessibility/select-name.js | failureTitle": {
459
+ "message": "Select elements do not have associated label elements."
460
+ },
461
+ "core/audits/accessibility/select-name.js | title": {
462
+ "message": "Select elements have associated label elements."
463
+ },
464
+ "core/audits/accessibility/skip-link.js | description": {
465
+ "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.7/skip-link)."
466
+ },
467
+ "core/audits/accessibility/skip-link.js | failureTitle": {
468
+ "message": "Skip links are not focusable."
469
+ },
470
+ "core/audits/accessibility/skip-link.js | title": {
471
+ "message": "Skip links are focusable."
472
+ },
374
473
  "core/audits/accessibility/tabindex.js | description": {
375
474
  "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.7/tabindex)."
376
475
  },
@@ -380,6 +479,15 @@
380
479
  "core/audits/accessibility/tabindex.js | title": {
381
480
  "message": "No element has a `[tabindex]` value greater than 0"
382
481
  },
482
+ "core/audits/accessibility/table-duplicate-name.js | description": {
483
+ "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.7/table-duplicate-name)."
484
+ },
485
+ "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
486
+ "message": "Tables have the same content in the summary attribute and `<caption>.`"
487
+ },
488
+ "core/audits/accessibility/table-duplicate-name.js | title": {
489
+ "message": "Tables have different content in the summary attribute and `<caption>`."
490
+ },
383
491
  "core/audits/accessibility/table-fake-caption.js | description": {
384
492
  "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.7/table-fake-caption)."
385
493
  },
@@ -389,6 +497,15 @@
389
497
  "core/audits/accessibility/table-fake-caption.js | title": {
390
498
  "message": "Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption."
391
499
  },
500
+ "core/audits/accessibility/target-size.js | description": {
501
+ "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.7/target-size)."
502
+ },
503
+ "core/audits/accessibility/target-size.js | failureTitle": {
504
+ "message": "Touch targets do not have sufficient size or spacing."
505
+ },
506
+ "core/audits/accessibility/target-size.js | title": {
507
+ "message": "Touch targets have sufficient size and spacing."
508
+ },
392
509
  "core/audits/accessibility/td-has-header.js | description": {
393
510
  "message": "Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (three 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.7/td-has-header)."
394
511
  },
@@ -938,9 +1055,6 @@
938
1055
  "core/audits/installable-manifest.js | no-manifest": {
939
1056
  "message": "Page has no manifest <link> URL"
940
1057
  },
941
- "core/audits/installable-manifest.js | no-matching-service-worker": {
942
- "message": "No matching service worker detected. You may need to reload the page, or check that the scope of the service worker for the current page encloses the scope and start URL from the manifest."
943
- },
944
1058
  "core/audits/installable-manifest.js | no-url-for-service-worker": {
945
1059
  "message": "Could not check service worker without a 'start_url' field in the manifest"
946
1060
  },
@@ -969,7 +1083,7 @@
969
1083
  "message": "prefer_related_applications is only supported on Chrome Beta and Stable channels on Android."
970
1084
  },
971
1085
  "core/audits/installable-manifest.js | protocol-timeout": {
972
- "message": "Lighthouse could not determine if there was a service worker. Please try with a newer version of Chrome."
1086
+ "message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
973
1087
  },
974
1088
  "core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
975
1089
  "message": "The manifest URL scheme ({scheme}) is not supported on Android."
@@ -1112,15 +1226,15 @@
1112
1226
  "core/audits/metrics/cumulative-layout-shift.js | description": {
1113
1227
  "message": "Cumulative layout shift measures the movement of visible elements within the viewport. [Learn more about the cumulative layout shift metric](https://web.dev/cls/)."
1114
1228
  },
1115
- "core/audits/metrics/experimental-interaction-to-next-paint.js | description": {
1116
- "message": "Interaction to Next Paint measures page responsiveness, how long it takes the page to visibly respond to user input. [Learn more about the Interaction to Next Paint metric](https://web.dev/inp/)."
1117
- },
1118
1229
  "core/audits/metrics/first-contentful-paint.js | description": {
1119
1230
  "message": "First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/)."
1120
1231
  },
1121
1232
  "core/audits/metrics/first-meaningful-paint.js | description": {
1122
1233
  "message": "First Meaningful Paint measures when the primary content of a page is visible. [Learn more about the First Meaningful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-meaningful-paint/)."
1123
1234
  },
1235
+ "core/audits/metrics/interaction-to-next-paint.js | description": {
1236
+ "message": "Interaction to Next Paint measures page responsiveness, how long it takes the page to visibly respond to user input. [Learn more about the Interaction to Next Paint metric](https://web.dev/inp/)."
1237
+ },
1124
1238
  "core/audits/metrics/interactive.js | description": {
1125
1239
  "message": "Time to Interactive is the amount of time that it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/interactive/)."
1126
1240
  },
@@ -1214,15 +1328,6 @@
1214
1328
  "core/audits/redirects.js | title": {
1215
1329
  "message": "Avoid multiple page redirects"
1216
1330
  },
1217
- "core/audits/resource-summary.js | description": {
1218
- "message": "To set budgets for the quantity and size of page resources, add a budget.json file. [Learn more about performance budgets](https://web.dev/use-lighthouse-for-performance-budgets/)."
1219
- },
1220
- "core/audits/resource-summary.js | displayValue": {
1221
- "message": "{requestCount,plural, =1{1 request • {byteCount, number, bytes} KiB}other{# requests • {byteCount, number, bytes} KiB}}"
1222
- },
1223
- "core/audits/resource-summary.js | title": {
1224
- "message": "Keep request counts low and transfer sizes small"
1225
- },
1226
1331
  "core/audits/seo/canonical.js | description": {
1227
1332
  "message": "Canonical links suggest which URL to show in search results. [Learn more about canonical links](https://developer.chrome.com/docs/lighthouse/seo/canonical/)."
1228
1333
  },
@@ -1412,27 +1517,6 @@
1412
1517
  "core/audits/server-response-time.js | title": {
1413
1518
  "message": "Initial server response time was short"
1414
1519
  },
1415
- "core/audits/service-worker.js | description": {
1416
- "message": "The service worker is the technology that enables your app to use many progressive web app features, such as offline, add to home screen and push notifications. [Learn more about service workers](https://developer.chrome.com/docs/lighthouse/pwa/service-worker/)."
1417
- },
1418
- "core/audits/service-worker.js | explanationBadManifest": {
1419
- "message": "This page is controlled by a service worker, however no `start_url` was found because manifest failed to parse as valid JSON"
1420
- },
1421
- "core/audits/service-worker.js | explanationBadStartUrl": {
1422
- "message": "This page is controlled by a service worker, however the `start_url` ({startUrl}) is not in the service worker's scope ({scopeUrl})"
1423
- },
1424
- "core/audits/service-worker.js | explanationNoManifest": {
1425
- "message": "This page is controlled by a service worker, however no `start_url` was found because no manifest was fetched."
1426
- },
1427
- "core/audits/service-worker.js | explanationOutOfScope": {
1428
- "message": "This origin has one or more service workers, however the page ({pageUrl}) is not in scope."
1429
- },
1430
- "core/audits/service-worker.js | failureTitle": {
1431
- "message": "Does not register a service worker that controls page and `start_url`"
1432
- },
1433
- "core/audits/service-worker.js | title": {
1434
- "message": "Registers a service worker that controls page and `start_url`"
1435
- },
1436
1520
  "core/audits/splash-screen.js | description": {
1437
1521
  "message": "A themed splash screen ensures a high-quality experience when users launch your app from their home screens. [Learn more about splash screens](https://developer.chrome.com/docs/lighthouse/pwa/splash-screen/)."
1438
1522
  },
@@ -1623,7 +1707,7 @@
1623
1707
  "message": "Best practices"
1624
1708
  },
1625
1709
  "core/config/default-config.js | a11yCategoryDescription": {
1626
- "message": "These checks highlight opportunities to [improve the accessibility of your web app](https://developer.chrome.com/docs/lighthouse/accessibility/). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged."
1710
+ "message": "These checks highlight opportunities to [improve the accessibility of your web app](https://developer.chrome.com/docs/lighthouse/accessibility/). Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so [manual testing](https://web.dev/how-to-review/) is also encouraged."
1627
1711
  },
1628
1712
  "core/config/default-config.js | a11yCategoryManualDescription": {
1629
1713
  "message": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://web.dev/how-to-review/)."
@@ -2769,7 +2853,7 @@
2769
2853
  "message": "Install [a Drupal module](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A67&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=%22lazy+load%22&solrsort=iss_project_release_usage+desc&op=Search) that can lazy load images. Such modules provide the ability to defer any offscreen images to improve performance."
2770
2854
  },
2771
2855
  "node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
2772
- "message": "Consider using a module to inline critical CSS and JavaScript, or potentially load assets asynchronously via JavaScript such as the [Advanced CSS/JS Aggregation](https://www.drupal.org/project/advagg) module. Beware that optimisations provided by this module may break your site, so you will likely need to make code changes."
2856
+ "message": "Consider using a module to inline critical CSS and JavaScript, and use the defer attribute for non-critical CSS or JavaScript."
2773
2857
  },
2774
2858
  "node_modules/lighthouse-stack-packs/packs/drupal.js | server-response-time": {
2775
2859
  "message": "Themes, modules and server specifications all contribute to server response time. Consider finding a more optimised theme, carefully selecting an optimisation module and/or upgrading your server. Your hosting servers should make use of PHP opcode caching, memory-caching to reduce database query times such as Redis or Memcached, as well as optimised application logic to prepare pages faster."
@@ -2778,10 +2862,10 @@
2778
2862
  "message": "Consider using [Responsive Image Styles](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) to reduce the size of images loaded on your page. If you are using Views to show multiple content items on a page, consider implementing pagination to limit the number of content items shown on a given page."
2779
2863
  },
2780
2864
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
2781
- "message": "Ensure you have enabled 'Aggregate CSS files' in the 'Administration » Configuration » Development' page. You can also configure more advanced aggregation options through [additional modules](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=css+aggregation&solrsort=iss_project_release_usage+desc&op=Search) to speed up your site by concatenating, minifying and compressing your CSS styles."
2865
+ "message": "Ensure you have enabled \"Aggregate CSS files\" in the \"Administration » Configuration » Development\" page. Ensure your Drupal site is running at least Drupal 10.1 for improved asset aggregation support."
2782
2866
  },
2783
2867
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-javascript": {
2784
- "message": "Ensure that you have enabled 'Aggregate JavaScript files' in the 'Administration » Configuration » Development' page. You can also configure more advanced aggregation options through [additional modules](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=javascript+aggregation&solrsort=iss_project_release_usage+desc&op=Search) to speed up your site by concatenating, minifying and compressing your JavaScript assets."
2868
+ "message": "Ensure you have enabled \"Aggregate JavaScript files\" in the \"Administration » Configuration » Development\" page. Ensure your Drupal site is running at least Drupal 10.1 for improved asset aggregation support."
2785
2869
  },
2786
2870
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-css-rules": {
2787
2871
  "message": "Consider removing unused CSS rules and only attach the needed Drupal libraries to the relevant page or component in a page. See the [Drupal documentation link](https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-module#library) for details. To identify attached libraries that are adding extraneous CSS, try running [code coverage](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) in Chrome DevTools. You can identify the theme/module responsible from the URL of the stylesheet when CSS aggregation is disabled in your Drupal site. Look out for themes/modules that have many stylesheets in the list which have a lot of red in code coverage. A theme/module should only enqueue a stylesheet if it is actually used on the page."
@@ -2981,6 +3065,48 @@
2981
3065
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-text-compression": {
2982
3066
  "message": "Enable compression on your Next.js server. [Learn more](https://nextjs.org/docs/api-reference/next.config.js/compression)."
2983
3067
  },
3068
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | dom-size": {
3069
+ "message": "Contact your account manager to enable [`HTML Lazy Load`](https://support.nitropack.io/hc/en-us/articles/17144942904337). Configuring it will prioritize and optimize your page rendering performance."
3070
+ },
3071
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | font-display": {
3072
+ "message": "Use the [`Override Font Rendering Behavior`](https://support.nitropack.io/hc/en-us/articles/16547358865041) option in NitroPack to set a desired value for the CSS font-display rule."
3073
+ },
3074
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | modern-image-formats": {
3075
+ "message": "Use [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/16547237162513) to automatically convert your images to WebP."
3076
+ },
3077
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | offscreen-images": {
3078
+ "message": "Defer offscreen images by enabling [`Automatic Image Lazy Loading`](https://support.nitropack.io/hc/en-us/articles/12457493524369-NitroPack-Lazy-Loading-Feature-for-Images)."
3079
+ },
3080
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | render-blocking-resources": {
3081
+ "message": "Enable [`Remove render-blocking resources`](https://support.nitropack.io/hc/en-us/articles/13820893500049-How-to-Deal-with-Render-Blocking-Resources-in-NitroPack) in NitroPack for faster initial load times."
3082
+ },
3083
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | server-response-time": {
3084
+ "message": "Improve server response time and optimize perceived performance by activating [`Instant Load`](https://support.nitropack.io/hc/en-us/articles/16547340617361)."
3085
+ },
3086
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-css": {
3087
+ "message": "Enable [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) in your Caching settings to reduce the size of your CSS, HTML, and JavaScript files for faster load times."
3088
+ },
3089
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-javascript": {
3090
+ "message": "Enable [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) in your Caching settings to reduce the size of your JS, HTML, and CSS files for faster load times."
3091
+ },
3092
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-css-rules": {
3093
+ "message": "Enable [`Reduce Unused CSS`](https://support.nitropack.io/hc/en-us/articles/360020418457-Reduce-Unused-CSS) to remove CSS rules that are not applicable to this page."
3094
+ },
3095
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-javascript": {
3096
+ "message": "Configure [`Delayed Scripts`](https://support.nitropack.io/hc/en-us/articles/1500002600942-Delayed-Scripts) in NitroPack to delay loading of scripts until they are needed."
3097
+ },
3098
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-long-cache-ttl": {
3099
+ "message": "Go to the [`Improve Server Response Time`](https://support.nitropack.io/hc/en-us/articles/1500002321821-Improve-Server-Response-Time) feature in the `Caching` menu and adjust your page cache expiration time to improve loading times and user experience."
3100
+ },
3101
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-optimized-images": {
3102
+ "message": "Automatically compress, optimize, and convert your images into WebP by enabling the [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/14177271695121-How-to-serve-images-in-next-gen-formats-using-NitroPack) setting."
3103
+ },
3104
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-responsive-images": {
3105
+ "message": "Enable [`Adaptive Image Sizing`](https://support.nitropack.io/hc/en-us/articles/10123833029905-How-to-Enable-Adaptive-Image-Sizing-For-Your-Site) to preemptively optimize your images and make them match the dimensions of the containers they’re displayed in across all devices."
3106
+ },
3107
+ "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-text-compression": {
3108
+ "message": "Use [`Gzip compression`](https://support.nitropack.io/hc/en-us/articles/13229297479313-Enabling-GZIP-compression) in NitroPack to reduce the size of the files that are sent to the browser."
3109
+ },
2984
3110
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | modern-image-formats": {
2985
3111
  "message": "Use the `nuxt/image` component and set `format=\"webp\"`. [Learn more](https://image.nuxtjs.org/components/nuxt-img#format)."
2986
3112
  },
@@ -3062,6 +3188,21 @@
3062
3188
  "node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
3063
3189
  "message": "Use the React DevTools Profiler, which makes use of the Profiler API, to measure the rendering performance of your components. [Learn more.](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)"
3064
3190
  },
3191
+ "node_modules/lighthouse-stack-packs/packs/wix.js | efficient-animated-content": {
3192
+ "message": "Place videos inside `VideoBoxes`, customise them using `Video Masks` or add `Transparent Videos`. [Learn more](https://support.wix.com/en/article/wix-video-about-wix-video)."
3193
+ },
3194
+ "node_modules/lighthouse-stack-packs/packs/wix.js | modern-image-formats": {
3195
+ "message": "Upload images using `Wix Media Manager` to ensure they are automatically served as WebP. Find [more ways to optimise](https://support.wix.com/en/article/site-performance-optimizing-your-media) your site's media."
3196
+ },
3197
+ "node_modules/lighthouse-stack-packs/packs/wix.js | render-blocking-resources": {
3198
+ "message": "When [adding third-party code](https://support.wix.com/en/article/site-performance-using-third-party-code-on-your-site) in the `Custom Code` tab of your site's dashboard, make sure it's deferred or loaded at the end of the code body. Where possible, use Wix’s [integrations](https://support.wix.com/en/article/about-marketing-integrations) to embed marketing tools on your site. "
3199
+ },
3200
+ "node_modules/lighthouse-stack-packs/packs/wix.js | server-response-time": {
3201
+ "message": "Wix utilizes CDNs and caching to serve responses as fast as possible for most visitors. Consider [manually enabling caching](https://support.wix.com/en/article/site-performance-caching-pages-to-optimize-loading-speed) for your site, especially if using `Velo`."
3202
+ },
3203
+ "node_modules/lighthouse-stack-packs/packs/wix.js | unused-javascript": {
3204
+ "message": "Review any third-party code you've added to your site in the `Custom Code` tab of your site's dashboard and only keep the services that are necessary to your site. [Find out more](https://support.wix.com/en/article/site-performance-removing-unused-javascript)."
3205
+ },
3065
3206
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | efficient-animated-content": {
3066
3207
  "message": "Consider uploading your GIF to a service that will make it available to embed as an HTML5 video."
3067
3208
  },
@@ -3167,6 +3308,9 @@
3167
3308
  "report/renderer/report-utils.js | dropdownSaveJSON": {
3168
3309
  "message": "Save as JSON"
3169
3310
  },
3311
+ "report/renderer/report-utils.js | dropdownViewUnthrottledTrace": {
3312
+ "message": "View Unthrottled Trace"
3313
+ },
3170
3314
  "report/renderer/report-utils.js | dropdownViewer": {
3171
3315
  "message": "Open in Viewer"
3172
3316
  },
@@ -3287,9 +3431,6 @@
3287
3431
  "report/renderer/report-utils.js | varianceDisclaimer": {
3288
3432
  "message": "Values are estimated and may vary. The [performance score is calculated](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) directly from these metrics."
3289
3433
  },
3290
- "report/renderer/report-utils.js | viewOriginalTraceLabel": {
3291
- "message": "View original trace"
3292
- },
3293
3434
  "report/renderer/report-utils.js | viewTraceLabel": {
3294
3435
  "message": "View trace"
3295
3436
  },