lighthouse 10.4.0 → 11.0.0-dev.20230804

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 +19 -25
  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": "Các thuộc tính `[aria-*]` khớp với vai trò tương ứng"
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": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách giúp các phần tử lệnh dễ tiếp cận hơn](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": "Các phần tử `button`, `link` và `menuitem` có tên dễ đọc"
28
37
  },
38
+ "core/audits/accessibility/aria-dialog-name.js | description": {
39
+ "message": "Các phần tử hộp thoại của ARIA không có tên thành phần hỗ trợ tiếp cận có thể khiến người dùng trình đọc màn hình không phân biệt được mục đích của các phần tử này. [Tìm hiểu cách giúp các phần tử hộp thoại của ARIA dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.7/aria-dialog-name)."
40
+ },
41
+ "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
42
+ "message": "Các phần tử có `role=\"dialog\"` hoặc `role=\"alertdialog\"` không có tên thành phần hỗ trợ tiếp cận."
43
+ },
44
+ "core/audits/accessibility/aria-dialog-name.js | title": {
45
+ "message": "Các phần tử có `role=\"dialog\"` hoặc `role=\"alertdialog\"` có tên thành phần hỗ trợ tiếp cận."
46
+ },
29
47
  "core/audits/accessibility/aria-hidden-body.js | description": {
30
48
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sẽ hoạt động không nhất quán khi đặt `aria-hidden=\"true\"` trên tài liệu `<body>`. [Tìm hiểu ảnh hưởng của `aria-hidden` đối với phần nội dung của tài liệu](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": "Các giá trị của `[role]` là hợp lệ"
109
127
  },
128
+ "core/audits/accessibility/aria-text.js | description": {
129
+ "message": "Nếu bạn thêm `role=text` quanh một nút văn bản được phân tách bằng thẻ đánh dấu, VoiceOver có thể coi nút đó là một cụm từ, nhưng con cháu có thể làm tâm điểm của phần tử này sẽ không được công bố. [Tìm hiểu thêm về thuộc tính `role=text`](https://dequeuniversity.com/rules/axe/4.7/aria-text)."
130
+ },
131
+ "core/audits/accessibility/aria-text.js | failureTitle": {
132
+ "message": "Các phần tử có thuộc tính `role=text` có con cháu có thể làm tâm điểm."
133
+ },
134
+ "core/audits/accessibility/aria-text.js | title": {
135
+ "message": "Các phần tử có thuộc tính `role=text` không có con cháu có thể làm tâm điểm."
136
+ },
110
137
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
111
138
  "message": "Khi một trường chuyển đổi không có tên thành phần hỗ trợ tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm về trường chuyển đổi](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": "Mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) là duy nhất"
229
256
  },
257
+ "core/audits/accessibility/empty-heading.js | description": {
258
+ "message": "Tiêu đề không có nội dung hoặc có văn bản khó đọc sẽ khiến người dùng trình đọc màn hình không thể truy cập thông tin trên cấu trúc của trang. [Tìm hiểu thêm về tiêu đề](https://dequeuniversity.com/rules/axe/4.7/empty-heading)."
259
+ },
260
+ "core/audits/accessibility/empty-heading.js | failureTitle": {
261
+ "message": "Phần tử tiêu đề không chứa nội dung."
262
+ },
263
+ "core/audits/accessibility/empty-heading.js | title": {
264
+ "message": "Tất cả phần tử tiêu đề đều chứa nội dung."
265
+ },
230
266
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
231
267
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sử dụng nhãn đầu tiên, nhãn cuối cùng hoặc tất cả các nhãn có thể thông báo nhầm các trường biểu mẫu có nhiều nhãn. [Tìm hiểu cách sử dụng nhãn của biểu mẫu](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": "Phần tử `<html>` sở hữu thuộc tính `[xml:lang]` có cùng ngôn ngữ cơ sở như thuộc tính `[lang]`."
283
319
  },
320
+ "core/audits/accessibility/identical-links-same-purpose.js | description": {
321
+ "message": "Các đường liên kết có cùng một đích đến phải có cùng nội dung mô tả để giúp người dùng hiểu mục đích của đường liên kết và quyết định có nên truy cập hay không. [Tìm hiểu thêm về các đường liên kết giống hệt nhau](https://dequeuniversity.com/rules/axe/4.7/identical-links-same-purpose)."
322
+ },
323
+ "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
324
+ "message": "Các đường liên kết giống hệt nhau không có cùng mục đích."
325
+ },
326
+ "core/audits/accessibility/identical-links-same-purpose.js | title": {
327
+ "message": "Các đường liên kết giống hệt nhau có cùng mục đích."
328
+ },
284
329
  "core/audits/accessibility/image-alt.js | description": {
285
330
  "message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Có thể bỏ qua phần tử trang trí bằng một thuộc tính alt trống. [Tìm hiểu thêm về thuộc tính `alt`](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": "Các phần tử hình ảnh có thuộc tính `[alt]`"
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": "Bạn nên thêm văn bản rõ ràng và dễ đọc vào các nút nhập để giúp người dùng trình đọc màn hình hiểu mục đích của nút nhập. [Tìm hiểu thêm về các nút nhập](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": "Các thành phần `<input type=\"image\">` có văn bản `[alt]`"
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": "Các nhãn đảm bảo rằng những công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, thông báo các biện pháp kiểm soát biểu mẫu đúng cách. [Tìm hiểu thêm về nhãn phần tử biểu mẫu](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": "Các phần tử biểu mẫu có nhãn liên quan"
319
382
  },
383
+ "core/audits/accessibility/landmark-one-main.js | description": {
384
+ "message": "Điểm mốc chính giúp người dùng trình đọc màn hình dễ dàng thao tác trên trang web. [Tìm hiểu thêm về điểm mốc](https://dequeuniversity.com/rules/axe/4.7/landmark-one-main)."
385
+ },
386
+ "core/audits/accessibility/landmark-one-main.js | failureTitle": {
387
+ "message": "Tài liệu không có điểm mốc chính."
388
+ },
389
+ "core/audits/accessibility/landmark-one-main.js | title": {
390
+ "message": "Tài liệu có một điểm mốc chính."
391
+ },
392
+ "core/audits/accessibility/link-in-text-block.js | description": {
393
+ "message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. Văn bản liên kết rõ ràng sẽ giúp người dùng có thị lực kém dễ đọc hơn. [Tìm hiểu cách giúp các đường liên kết dễ phân biệt](https://dequeuniversity.com/rules/axe/4.7/link-in-text-block)."
394
+ },
395
+ "core/audits/accessibility/link-in-text-block.js | failureTitle": {
396
+ "message": "Bạn cần dựa vào màu sắc để phân biệt các đường liên kết."
397
+ },
398
+ "core/audits/accessibility/link-in-text-block.js | title": {
399
+ "message": "Bạn có thể phân biệt được các đường liên kết mà không cần dựa vào màu sắc."
400
+ },
320
401
  "core/audits/accessibility/link-name.js | description": {
321
402
  "message": "Văn bản liên kết (và văn bản thay thế cho hình ảnh, khi dùng làm phần tử liên kết) có thể thấy rõ, là duy nhất và có thể lấy tiêu điểm sẽ cải thiện trải nghiệm khám phá cho người dùng trình đọc màn hình. [Tìm hiểu cách giúp các phần tử liên kết trở nên dễ tiếp cận](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": "Các thành phần `<object>` có văn bản thay thế"
373
454
  },
455
+ "core/audits/accessibility/select-name.js | description": {
456
+ "message": "Các phần tử biểu mẫu không có nhãn hữu ích có thể khiến người dùng trình đọc màn hình cảm thấy khó chịu. [Tìm hiểu thêm về phần tử `select`](https://dequeuniversity.com/rules/axe/4.7/select-name)."
457
+ },
458
+ "core/audits/accessibility/select-name.js | failureTitle": {
459
+ "message": "Các phần tử lựa chọn không có phần tử nhãn đi kèm."
460
+ },
461
+ "core/audits/accessibility/select-name.js | title": {
462
+ "message": "Các phần tử lựa chọn có phần tử nhãn liên kết."
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": "Giá trị lớn hơn 0 ngụ ý thứ tự điều hướng rõ ràng. Mặc dù hợp lệ về mặt kỹ thuật nhưng điều này thường tạo ra trải nghiệm khó chịu cho những người dùng bị lệ thuộc vào công nghệ hỗ trợ. [Tìm hiểu thêm về thuộc tính `tabindex`](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": "Không phần tử nào có giá trị `[tabindex]` lớn hơn 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": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các bảng cần sử dụng phần tử chú thích thực tế thay vì các ô có thuộc tính `[colspan]` để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về chú thích](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": "Bảng sử dụng `<caption>` thay vì các ô có thuộc tính `[colspan]` để biểu thị chú thích."
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": "Đích chạm có kích thước hoặc khoảng giãn cách chưa phù hợp."
505
+ },
506
+ "core/audits/accessibility/target-size.js | title": {
507
+ "message": "Đích chạm có kích thước và khoảng giãn cách phù hợp."
508
+ },
392
509
  "core/audits/accessibility/td-has-header.js | description": {
393
510
  "message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các phần tử `<td>` trong bảng lớn (chiều rộng và chiều cao từ 3 ô trở lên) cần có tiêu đề bảng liên kết để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về tiêu đề bảng](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": "Trang không có URL <link> của tệp kê khai"
940
1057
  },
941
- "core/audits/installable-manifest.js | no-matching-service-worker": {
942
- "message": "Không phát hiện thấy trình chạy dịch vụ phù hợp. Bạn có thể cần tải lại trang hoặc kiểm tra để đảm bảo rằng phạm vi của trình chạy dịch vụ cho trang hiện tại có bao gồm phạm vi và URL bắt đầu của tệp kê khai."
943
- },
944
1058
  "core/audits/installable-manifest.js | no-url-for-service-worker": {
945
1059
  "message": "Không thể kiểm tra trình chạy dịch vụ nếu không có trường \"start_url\" trong tệp kê khai"
946
1060
  },
@@ -969,7 +1083,7 @@
969
1083
  "message": "Chỉ hỗ trợ prefer_related_applications cho các kênh Chính thức và Thử nghiệm của Chrome trên Android."
970
1084
  },
971
1085
  "core/audits/installable-manifest.js | protocol-timeout": {
972
- "message": "Lighthouse không xác định được trình chạy dịch vụ hay không. Vui lòng thử lại bằng một phiên bản Chrome mới hơn."
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": "Lược đồ URL kê khai ({scheme}) không được hỗ trợ trên Android."
@@ -1112,15 +1226,15 @@
1112
1226
  "core/audits/metrics/cumulative-layout-shift.js | description": {
1113
1227
  "message": "Điểm số tổng hợp về mức thay đổi bố cục đo lường mức độ dịch chuyển của các phần tử hiển thị trong khung nhìn. [Tìm hiểu thêm về chỉ số Điểm số tổng hợp về mức thay đổi bố cục](https://web.dev/cls/)."
1114
1228
  },
1115
- "core/audits/metrics/experimental-interaction-to-next-paint.js | description": {
1116
- "message": "Hoạt động tương tác với thời gian hiển thị tiếp theo đo lường khả năng phản hồi của trang, thời gian trang cần để phản hồi hoạt động đầu vào của người dùng một cách rõ ràng. [Tìm hiểu thêm về chỉ số Hoạt động tương tác với thời gian hiển thị tiếp theo](https://web.dev/inp/)."
1117
- },
1118
1229
  "core/audits/metrics/first-contentful-paint.js | description": {
1119
1230
  "message": "Chỉ số Hiển thị nội dung đầu tiên đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh đầu tiên. [Tìm hiểu thêm về chỉ số Hiển thị nội dung đầu tiên](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": "Chỉ số Hiển thị nội dung đầu tiên đo lường thời điểm hiển thị nội dung chính của trang. [Tìm hiểu thêm về chỉ số Hiển thị nội dung đầu tiên](https://developer.chrome.com/docs/lighthouse/performance/first-meaningful-paint/)."
1123
1234
  },
1235
+ "core/audits/metrics/interaction-to-next-paint.js | description": {
1236
+ "message": "Hoạt động tương tác với thời gian hiển thị tiếp theo đo lường khả năng phản hồi của trang, thời gian trang cần để phản hồi hoạt động đầu vào của người dùng một cách rõ ràng. [Tìm hiểu thêm về chỉ số Hoạt động tương tác với thời gian hiển thị tiếp theo](https://web.dev/inp/)."
1237
+ },
1124
1238
  "core/audits/metrics/interactive.js | description": {
1125
1239
  "message": "Thời điểm tương tác là khoảng thời gian mà trang cần để trở nên hoàn toàn tương tác. [Tìm hiểu thêm về chỉ số Thời điểm tương tác](https://developer.chrome.com/docs/lighthouse/performance/interactive/)."
1126
1240
  },
@@ -1214,15 +1328,6 @@
1214
1328
  "core/audits/redirects.js | title": {
1215
1329
  "message": "Tránh chuyển hướng trang nhiều lần"
1216
1330
  },
1217
- "core/audits/resource-summary.js | description": {
1218
- "message": "Để thiết lập ngân sách cho số lượng và quy mô của tài nguyên trang, hãy thêm tệp budget.json. [Tìm hiểu thêm về ngân sách hiệu suất](https://web.dev/use-lighthouse-for-performance-budgets/)."
1219
- },
1220
- "core/audits/resource-summary.js | displayValue": {
1221
- "message": "{requestCount,plural, =1{1 yêu cầu • {byteCount, number, bytes} KiB}other{# yêu cầu • {byteCount, number, bytes} KiB}}"
1222
- },
1223
- "core/audits/resource-summary.js | title": {
1224
- "message": "Giảm số lượng yêu cầu và chuyển những tài nguyên có kích thước nhỏ"
1225
- },
1226
1331
  "core/audits/seo/canonical.js | description": {
1227
1332
  "message": "Đường liên kết chính tắc đề xuất URL nào nên hiển thị trong kết quả tìm kiếm. [Tìm hiểu thêm về đường liên kết chính tắc](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": "Thời gian phản hồi ban đầu của máy chủ là ngắn"
1414
1519
  },
1415
- "core/audits/service-worker.js | description": {
1416
- "message": "Trình chạy dịch vụ là công nghệ cho phép ứng dụng của bạn dùng nhiều tính năng của Ứng dụng web tiến bộ, chẳng hạn như hoạt động khi không có mạng, thêm vào màn hình chính và thông báo đẩy. [Tìm hiểu thêm về Trình chạy dịch vụ](https://developer.chrome.com/docs/lighthouse/pwa/service-worker/)."
1417
- },
1418
- "core/audits/service-worker.js | explanationBadManifest": {
1419
- "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì tệp kê khai không thể phân tích cú pháp thành tệp JSON hợp lệ"
1420
- },
1421
- "core/audits/service-worker.js | explanationBadStartUrl": {
1422
- "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, `start_url` ({startUrl}) không thuộc phạm vi của trình chạy dịch vụ này ({scopeUrl})"
1423
- },
1424
- "core/audits/service-worker.js | explanationNoManifest": {
1425
- "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì không tìm nạp được tệp kê khai."
1426
- },
1427
- "core/audits/service-worker.js | explanationOutOfScope": {
1428
- "message": "Nguồn gốc này có một hoặc nhiều trình chạy dịch vụ. Tuy nhiên, trang ({pageUrl}) không thuộc phạm vi của các trình chạy dịch vụ này."
1429
- },
1430
- "core/audits/service-worker.js | failureTitle": {
1431
- "message": "Không đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1432
- },
1433
- "core/audits/service-worker.js | title": {
1434
- "message": "Đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1435
- },
1436
1520
  "core/audits/splash-screen.js | description": {
1437
1521
  "message": "Màn hình chờ có giao diện giúp đảm bảo người dùng có trải nghiệm chất lượng cao khi chạy ứng dụng từ màn hình chính. [Tìm hiểu thêm về màn hình chờ](https://developer.chrome.com/docs/lighthouse/pwa/splash-screen/)."
1438
1522
  },
@@ -1623,7 +1707,7 @@
1623
1707
  "message": "Những phương pháp hay nhất"
1624
1708
  },
1625
1709
  "core/config/default-config.js | a11yCategoryDescription": {
1626
- "message": "Các hoạt động kiểm tra này giúp xác định cơ hội [cải thiện khả năng hỗ trợ tiếp cận của ứng dụng web](https://developer.chrome.com/docs/lighthouse/accessibility/). Các hoạt động này chỉ thể tự động phát hiện một phần vấn đề liên quan đến khả năng hỗ trợ tiếp cận, do đó, bạn nên kiểm tra cả theo cách thủ công."
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": "Các mục này nằm trong vùng không thể sử dụng công cụ kiểm tra tự động. Tìm hiểu thêm trong hướng dẫn của chúng tôi về cách [đánh giá khả năng hỗ trợ tiếp cận](https://web.dev/how-to-review/)."
@@ -2769,7 +2853,7 @@
2769
2853
  "message": "Cài đặt [một mô-đun Drupal](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) có thể tải từng phần hình ảnh. Những mô-đun như vậy cung cấp khả năng trì hoãn mọi hình ảnh ngoài màn hình nhằm cải thiện hiệu suất."
2770
2854
  },
2771
2855
  "node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
2772
- "message": "Hãy cân nhắc sử dụng một mô-đun cùng dòng với CSS JavaScript quan trọng, hoặc khả năng tải không đồng bộ các tài sản qua JavaScript, chẳng hạn như mô-đun [Tổng hợp CSS/JavaScript nâng cao](https://www.drupal.org/project/advagg). Hãy lưu ý rằng những tùy chọn tối ưu hóa mà mô-đun này cung cấp có thể làm hỏng trang web của bạn. Do đó, bạn có thể phải thay đổi mã."
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": "Giao diện, mô-đun và thông số máy chủ đều tác động đến thời gian phản hồi của máy chủ. Hãy cân nhắc tìm một giao diện tối ưu hóa hơn, lựa chọn cẩn thận mô-đun tối ưu hóa và/hoặc nâng cấp máy chủ. Các máy chủ lưu trữ nên tận dụng tính năng lưu mã vận hành PHP vào bộ nhớ đệm, tính năng lưu vào bộ nhớ đệm để giảm thiểu số lần truy vấn cơ sở dữ liệu, chẳng hạn như Redis hoặc Memcached, cũng như tận dụng logic của ứng dụng được tối ưu hóa để tải trang nhanh hơn."
@@ -2778,10 +2862,10 @@
2778
2862
  "message": "Hãy cân nhắc sử dụng [Kiểu hình ảnh thích ứng](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) để giảm kích thước của hình ảnh tải trên trang. Nếu bạn đang sử dụng Views để hiển thị nhiều mục nội dung trên một trang, hãy cân nhắc triển khai quá trình phân trang để giới hạn số mục nội dung hiển thị trên trang cụ thể."
2779
2863
  },
2780
2864
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
2781
- "message": "Đảm bảo bạn đã bật tùy chọn \"Aggregate CSS files\" (Tổng hợp các tệp CSS) trên trang \"Administration » Configuration » Development\" (Quản trị > Cấu hình > Phát triển). Bạn cũng thể định cấu hình những tùy chọn tổng hợp nâng cao hơn thông qua các [mô-đun bổ sung](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) để tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các kiểu CSS."
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": "Đảm bảo bạn đã bật tùy chọn \"Aggregate JavaScript files\" (Tổng hợp các tệp JavaScript) trên trang \"Administration » Configuration » Development\" (Quản trị > Cấu hình > Phát triển). Bạn cũng thể định cấu hình những tùy chọn tổng hợp nâng cao hơn thông qua các [mô-đun bổ sung](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) để tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các tài sản JavaScript."
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": "Hãy cân nhắc xóa các quy tắc CSS không dùng đến và chỉ đính kèm các thư viện Drupal cần thiết vào trang hoặc thành phần liên quan trên trang. Truy cập vào [đường liên kết đến tài liệu về Drupal](https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-module#library) để biết thông tin chi tiết. Để xác định các thư viện đã đính kèm đang thêm CSS không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/mô-đun gây ra tình trạng này từ URL của tệp định kiểu khi tính năng tổng hợp CSS bị tắt trên trang web Drupal. Hãy chú ý đến những giao diện/mô-đun có nhiều tệp định kiểu trong danh sách. Những giao diện/mô-đun này có nhiều màu đỏ trong phạm vi của mã. Mỗi giao diện/mô-đun chỉ nên thêm một tệp định kiểu vào hàng đợi nếu tệp định kiểu đó thực sự được sử dụng trên trang."
@@ -2981,6 +3065,48 @@
2981
3065
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-text-compression": {
2982
3066
  "message": "Hãy bật tính năng nén trên máy chủ Next.js của bạn. [Tìm hiểu thêm](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": "Sử dụng thành phần `nuxt/image` và thiết lập `format=\"webp\"`. [Tìm hiểu thêm](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": "Sử dụng Trình phân tích tài nguyên React DevTools, công cụ dùng API Trình phân tích tài nguyên để đo lường hiệu suất hiển thị của các thành phần. [Tìm hiểu thêm.](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": "Đưa video vào `VideoBoxes`, tuỳ chỉnh video bằng `Video Masks` hoặc thêm `Transparent Videos`. [Tìm hiểu thêm](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": "Tải hình ảnh lên bằng cách sử dụng `Wix Media Manager` để đảm bảo hình ảnh tự động được phân phát dưới dạng WebP. Tìm hiểu [các giải pháp khác giúp bạn tối ưu hoá](https://support.wix.com/en/article/site-performance-optimizing-your-media) nội dung nghe nhìn trên trang web."
3196
+ },
3197
+ "node_modules/lighthouse-stack-packs/packs/wix.js | render-blocking-resources": {
3198
+ "message": "Khi bạn [thêm mã của bên thứ ba](https://support.wix.com/en/article/site-performance-using-third-party-code-on-your-site) vào thẻ `Custom Code` trên trang tổng quan của trang web, hãy đảm bảo mã đó được trì hoãn đến cuối nội dung mã hoặc tải ở cuối nội dung mã. Nếu có thể, hãy sử dụng [nội dung tích hợp](https://support.wix.com/en/article/about-marketing-integrations) của Wix để nhúng các công cụ tiếp thị vào trang web của bạn. "
3199
+ },
3200
+ "node_modules/lighthouse-stack-packs/packs/wix.js | server-response-time": {
3201
+ "message": "Wix sử dụng CDN và chức năng lưu vào bộ nhớ đệm để phân phát phản hồi nhanh nhất có thể cho hầu hết khách truy cập. Bạn có thể [bật chức năng lưu vào bộ nhớ đệm theo cách thủ công](https://support.wix.com/en/article/site-performance-caching-pages-to-optimize-loading-speed) cho trang web của mình, đặc biệt là khi sử dụng `Velo`."
3202
+ },
3203
+ "node_modules/lighthouse-stack-packs/packs/wix.js | unused-javascript": {
3204
+ "message": "Xem lại mã của bên thứ ba (nếu có) mà bạn đã thêm vào thẻ `Custom Code` trên trang tổng quan của trang web và chỉ giữ lại các dịch vụ cần thiết cho trang web của bạn. [Tìm hiểu thêm](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": "Hãy cân nhắc tải ảnh GIF lên một dịch vụ để có thể nhúng ảnh đó ở dạng video HTML5."
3067
3208
  },
@@ -3167,6 +3308,9 @@
3167
3308
  "report/renderer/report-utils.js | dropdownSaveJSON": {
3168
3309
  "message": "Lưu dưới dạng 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": "Mở trong trình xem"
3172
3316
  },
@@ -3287,9 +3431,6 @@
3287
3431
  "report/renderer/report-utils.js | varianceDisclaimer": {
3288
3432
  "message": "Các giá trị chỉ là ước tính và có thể thay đổi. [Điểm hiệu quả được tính](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) trực tiếp từ những chỉ số này."
3289
3433
  },
3290
- "report/renderer/report-utils.js | viewOriginalTraceLabel": {
3291
- "message": "Xem dấu vết gốc"
3292
- },
3293
3434
  "report/renderer/report-utils.js | viewTraceLabel": {
3294
3435
  "message": "Xem dấu vết"
3295
3436
  },