lighthouse 13.3.0 → 13.4.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 (199) hide show
  1. package/cli/cli-flags.d.ts +8 -9
  2. package/cli/test/smokehouse/config/exclusions.js +2 -0
  3. package/cli/test/smokehouse/version-check.d.ts +1 -1
  4. package/core/audits/accessibility/accesskeys.js +1 -1
  5. package/core/audits/accessibility/aria-allowed-attr.js +1 -1
  6. package/core/audits/accessibility/aria-allowed-role.js +1 -1
  7. package/core/audits/accessibility/aria-command-name.js +1 -1
  8. package/core/audits/accessibility/aria-conditional-attr.js +1 -1
  9. package/core/audits/accessibility/aria-deprecated-role.js +1 -1
  10. package/core/audits/accessibility/aria-dialog-name.js +1 -1
  11. package/core/audits/accessibility/aria-hidden-body.js +1 -1
  12. package/core/audits/accessibility/aria-hidden-focus.js +1 -1
  13. package/core/audits/accessibility/aria-input-field-name.js +1 -1
  14. package/core/audits/accessibility/aria-meter-name.js +1 -1
  15. package/core/audits/accessibility/aria-progressbar-name.js +1 -1
  16. package/core/audits/accessibility/aria-prohibited-attr.js +1 -1
  17. package/core/audits/accessibility/aria-required-attr.js +1 -1
  18. package/core/audits/accessibility/aria-required-children.js +1 -1
  19. package/core/audits/accessibility/aria-required-parent.js +1 -1
  20. package/core/audits/accessibility/aria-roles.js +1 -1
  21. package/core/audits/accessibility/aria-text.js +1 -1
  22. package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
  23. package/core/audits/accessibility/aria-tooltip-name.js +1 -1
  24. package/core/audits/accessibility/aria-treeitem-name.js +1 -1
  25. package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
  26. package/core/audits/accessibility/aria-valid-attr.js +1 -1
  27. package/core/audits/accessibility/autocomplete-valid.js +1 -1
  28. package/core/audits/accessibility/button-name.js +1 -1
  29. package/core/audits/accessibility/bypass.js +1 -1
  30. package/core/audits/accessibility/color-contrast.js +1 -1
  31. package/core/audits/accessibility/definition-list.js +1 -1
  32. package/core/audits/accessibility/dlitem.js +1 -1
  33. package/core/audits/accessibility/document-title.js +1 -1
  34. package/core/audits/accessibility/duplicate-id-aria.js +1 -1
  35. package/core/audits/accessibility/empty-heading.js +1 -1
  36. package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
  37. package/core/audits/accessibility/frame-title.js +1 -1
  38. package/core/audits/accessibility/heading-order.js +1 -1
  39. package/core/audits/accessibility/html-has-lang.js +1 -1
  40. package/core/audits/accessibility/html-lang-valid.js +1 -1
  41. package/core/audits/accessibility/html-xml-lang-mismatch.js +1 -1
  42. package/core/audits/accessibility/identical-links-same-purpose.js +1 -1
  43. package/core/audits/accessibility/image-alt.js +1 -1
  44. package/core/audits/accessibility/image-redundant-alt.js +1 -1
  45. package/core/audits/accessibility/input-button-name.js +1 -1
  46. package/core/audits/accessibility/input-image-alt.js +1 -1
  47. package/core/audits/accessibility/label-content-name-mismatch.js +1 -1
  48. package/core/audits/accessibility/label.js +1 -1
  49. package/core/audits/accessibility/landmark-one-main.js +1 -1
  50. package/core/audits/accessibility/link-in-text-block.js +1 -1
  51. package/core/audits/accessibility/link-name.js +1 -1
  52. package/core/audits/accessibility/list.js +1 -1
  53. package/core/audits/accessibility/listitem.js +1 -1
  54. package/core/audits/accessibility/meta-refresh.js +1 -1
  55. package/core/audits/accessibility/meta-viewport.js +1 -1
  56. package/core/audits/accessibility/object-alt.js +1 -1
  57. package/core/audits/accessibility/presentation-role-conflict.js +1 -1
  58. package/core/audits/accessibility/select-name.js +1 -1
  59. package/core/audits/accessibility/skip-link.js +1 -1
  60. package/core/audits/accessibility/svg-img-alt.js +1 -1
  61. package/core/audits/accessibility/tabindex.js +1 -1
  62. package/core/audits/accessibility/table-duplicate-name.js +1 -1
  63. package/core/audits/accessibility/table-fake-caption.js +1 -1
  64. package/core/audits/accessibility/target-size.js +1 -1
  65. package/core/audits/accessibility/td-has-header.js +1 -1
  66. package/core/audits/accessibility/td-headers-attr.js +1 -1
  67. package/core/audits/accessibility/th-has-data-cells.js +1 -1
  68. package/core/audits/accessibility/valid-lang.js +1 -1
  69. package/core/audits/accessibility/video-caption.js +1 -1
  70. package/core/audits/agentic/llms-txt.js +1 -1
  71. package/core/audits/baseline.js +10 -12
  72. package/core/audits/dobetterweb/geolocation-on-start.js +2 -1
  73. package/core/audits/network-requests.js +2 -0
  74. package/core/audits/seo/canonical.js +19 -7
  75. package/core/computed/js-bundles.d.ts +1 -1
  76. package/core/computed/load-simulator.d.ts +1 -1
  77. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  78. package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
  79. package/core/computed/metrics/interactive.d.ts +1 -1
  80. package/core/computed/metrics/lantern-metric.d.ts +6 -6
  81. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  82. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
  83. package/core/computed/metrics/max-potential-fid.d.ts +1 -1
  84. package/core/computed/metrics/speed-index.d.ts +1 -1
  85. package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
  86. package/core/computed/metrics/total-blocking-time.d.ts +1 -1
  87. package/core/computed/module-duplication.d.ts +1 -1
  88. package/core/computed/page-dependency-graph.d.ts +1 -1
  89. package/core/computed/unused-css.d.ts +1 -1
  90. package/core/config/agentic-browsing-config.d.ts +1 -0
  91. package/core/config/agentic-browsing-config.js +1 -0
  92. package/core/config/config-helpers.d.ts +1 -0
  93. package/core/config/config-helpers.js +1 -1
  94. package/core/config/config-plugin.d.ts +1 -0
  95. package/core/config/config-plugin.js +1 -0
  96. package/core/config/config.d.ts +1 -0
  97. package/core/config/config.js +1 -0
  98. package/core/config/constants.d.ts +1 -0
  99. package/core/config/constants.js +1 -0
  100. package/core/config/experimental-config.d.ts +1 -9
  101. package/core/config/experimental-config.js +2 -0
  102. package/core/config/filters.d.ts +1 -0
  103. package/core/config/filters.js +1 -0
  104. package/core/config/full-config.d.ts +1 -5
  105. package/core/config/full-config.js +2 -0
  106. package/core/config/lr-desktop-config.d.ts +1 -0
  107. package/core/config/lr-desktop-config.js +1 -0
  108. package/core/config/lr-mobile-config.d.ts +1 -5
  109. package/core/config/lr-mobile-config.js +2 -0
  110. package/core/config/perf-config.d.ts +1 -5
  111. package/core/config/perf-config.js +2 -0
  112. package/core/config/validation.d.ts +1 -0
  113. package/core/config/validation.js +1 -0
  114. package/core/gather/driver/execution-context.d.ts +23 -0
  115. package/core/gather/driver/execution-context.js +86 -1
  116. package/core/gather/driver/storage.js +13 -0
  117. package/core/gather/driver.d.ts +1 -1
  118. package/core/gather/gatherers/accessibility.js +1 -0
  119. package/core/gather/gatherers/trace-elements.d.ts +4 -1
  120. package/core/gather/gatherers/trace-elements.js +24 -28
  121. package/core/gather/gatherers/webmcp-schema.js +9 -16
  122. package/core/gather/gatherers/webmcp.d.ts +5 -0
  123. package/core/gather/gatherers/webmcp.js +34 -27
  124. package/core/lib/baseline/web-features-data.json +1177 -0
  125. package/core/lib/baseline/web-features-metadata.json +1 -1
  126. package/core/lib/deprecations-strings.d.ts +21 -5
  127. package/core/lib/deprecations-strings.js +16 -0
  128. package/core/lib/script-helpers.js +13 -1
  129. package/core/scoring.d.ts +58 -58
  130. package/dist/report/bundle.esm.js +4 -7
  131. package/dist/report/flow.js +6 -9
  132. package/dist/report/standalone.js +20 -12
  133. package/flow-report/types/flow-report.d.ts +2 -2
  134. package/package.json +20 -23
  135. package/report/assets/styles.css +1 -4
  136. package/report/renderer/components.js +1 -1
  137. package/report/renderer/details-renderer.d.ts +6 -1
  138. package/report/renderer/details-renderer.js +11 -3
  139. package/report/renderer/explodey-gauge.js +9 -7
  140. package/report/renderer/i18n-formatter.d.ts +1 -1
  141. package/report/renderer/logger.js +18 -4
  142. package/report/renderer/text-encoding.js +1 -1
  143. package/report/types/html-renderer.d.ts +2 -2
  144. package/shared/localization/locales/ar-XB.json +290 -65
  145. package/shared/localization/locales/ar.json +290 -65
  146. package/shared/localization/locales/bg.json +290 -65
  147. package/shared/localization/locales/ca.json +295 -70
  148. package/shared/localization/locales/cs.json +290 -65
  149. package/shared/localization/locales/da.json +294 -69
  150. package/shared/localization/locales/de.json +295 -70
  151. package/shared/localization/locales/el.json +290 -65
  152. package/shared/localization/locales/en-GB.json +290 -65
  153. package/shared/localization/locales/en-US.json +79 -67
  154. package/shared/localization/locales/en-XA.json +253 -64
  155. package/shared/localization/locales/en-XL.json +79 -67
  156. package/shared/localization/locales/es-419.json +290 -65
  157. package/shared/localization/locales/es.json +298 -73
  158. package/shared/localization/locales/fi.json +290 -65
  159. package/shared/localization/locales/fil.json +290 -65
  160. package/shared/localization/locales/fr.json +294 -69
  161. package/shared/localization/locales/he.json +293 -68
  162. package/shared/localization/locales/hi.json +291 -66
  163. package/shared/localization/locales/hr.json +290 -65
  164. package/shared/localization/locales/hu.json +290 -65
  165. package/shared/localization/locales/id.json +290 -65
  166. package/shared/localization/locales/it.json +294 -69
  167. package/shared/localization/locales/ja.json +290 -65
  168. package/shared/localization/locales/ko.json +290 -65
  169. package/shared/localization/locales/lt.json +290 -65
  170. package/shared/localization/locales/lv.json +290 -65
  171. package/shared/localization/locales/nl.json +290 -65
  172. package/shared/localization/locales/no.json +290 -65
  173. package/shared/localization/locales/pl.json +290 -65
  174. package/shared/localization/locales/pt-PT.json +291 -66
  175. package/shared/localization/locales/pt.json +290 -65
  176. package/shared/localization/locales/ro.json +290 -65
  177. package/shared/localization/locales/ru.json +301 -76
  178. package/shared/localization/locales/sk.json +291 -66
  179. package/shared/localization/locales/sl.json +290 -65
  180. package/shared/localization/locales/sr-Latn.json +290 -65
  181. package/shared/localization/locales/sr.json +290 -65
  182. package/shared/localization/locales/sv.json +297 -72
  183. package/shared/localization/locales/ta.json +291 -66
  184. package/shared/localization/locales/te.json +293 -68
  185. package/shared/localization/locales/th.json +291 -66
  186. package/shared/localization/locales/tr.json +290 -65
  187. package/shared/localization/locales/uk.json +290 -65
  188. package/shared/localization/locales/vi.json +291 -66
  189. package/shared/localization/locales/zh-HK.json +292 -67
  190. package/shared/localization/locales/zh-TW.json +291 -66
  191. package/shared/localization/locales/zh.json +291 -66
  192. package/shared/types/shared.d.ts +1 -1
  193. package/tsconfig-base.json +2 -1
  194. package/tsconfig.json +2 -0
  195. package/types/artifacts.d.ts +1 -1
  196. package/types/internal/rxjs.d.ts +1 -1
  197. package/types/internal/smokehouse.d.ts +1 -1
  198. package/types.d.ts +2 -0
  199. package/types.js +11 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "core/audits/accessibility/accesskeys.js | description": {
3
- "message": "快捷键可让用户快速转到页面的某个部分。为确保正确进行导航,每个快捷键都必须是独一无二的。[详细了解快捷键](https://dequeuniversity.com/rules/axe/4.11/accesskeys)。"
3
+ "message": "快捷键可让用户快速转到页面的某个部分。为确保正确进行导航,每个快捷键都必须是独一无二的。[详细了解快捷键](https://dequeuniversity.com/rules/axe/4.12/accesskeys)。"
4
4
  },
5
5
  "core/audits/accessibility/accesskeys.js | failureTitle": {
6
6
  "message": "`[accesskey]` 的值重复"
@@ -9,7 +9,7 @@
9
9
  "message": "“`[accesskey]`”值是独一无二的"
10
10
  },
11
11
  "core/audits/accessibility/aria-allowed-attr.js | description": {
12
- "message": "每个 ARIA“`role`”都支持一部分特定的“`aria-*`”属性。如果这些项不匹配,会导致“`aria-*`”属性无效。[了解如何将 ARIA 属性与其角色进行匹配](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)。"
12
+ "message": "每个 ARIA“`role`”都支持一部分特定的“`aria-*`”属性。如果这些项不匹配,会导致“`aria-*`”属性无效。[了解如何将 ARIA 属性与其角色进行匹配](https://dequeuniversity.com/rules/axe/4.12/aria-allowed-attr)。"
13
13
  },
14
14
  "core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
15
15
  "message": "`[aria-*]` 属性与其角色不匹配"
@@ -18,7 +18,7 @@
18
18
  "message": "`[aria-*]` 属性与其角色匹配"
19
19
  },
20
20
  "core/audits/accessibility/aria-allowed-role.js | description": {
21
- "message": "许多 HTML 元素只能设置特定的 ARIA 角色。在禁止使用 ARIA 角色的位置使用 ARIA 角色可能会干扰网页的无障碍功能。[详细了解 ARIA 角色](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)。"
21
+ "message": "许多 HTML 元素只能设置特定的 ARIA 角色。在禁止使用 ARIA 角色的位置使用 ARIA 角色可能会干扰网页的无障碍功能。[详细了解 ARIA 角色](https://dequeuniversity.com/rules/axe/4.12/aria-allowed-role)。"
22
22
  },
23
23
  "core/audits/accessibility/aria-allowed-role.js | failureTitle": {
24
24
  "message": "有不兼容的元素使用了 ARIA 角色"
@@ -27,7 +27,7 @@
27
27
  "message": "使用 ARIA 角色的元素均为兼容元素"
28
28
  },
29
29
  "core/audits/accessibility/aria-command-name.js | description": {
30
- "message": "如果某个元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何让命令元素更便于使用](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)。"
30
+ "message": "如果某个元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何让命令元素更便于使用](https://dequeuniversity.com/rules/axe/4.12/aria-command-name)。"
31
31
  },
32
32
  "core/audits/accessibility/aria-command-name.js | failureTitle": {
33
33
  "message": "`button`、`link` 和 `menuitem` 元素缺少可供访问的名称。"
@@ -36,7 +36,7 @@
36
36
  "message": "`button`、`link` 和 `menuitem` 元素都有可供访问的名称"
37
37
  },
38
38
  "core/audits/accessibility/aria-conditional-attr.js | description": {
39
- "message": "只能在特定条件下使用元素的某些 ARIA 属性。[详细了解条件性 ARIA 属性](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)。"
39
+ "message": "只能在特定条件下使用元素的某些 ARIA 属性。[详细了解条件性 ARIA 属性](https://dequeuniversity.com/rules/axe/4.12/aria-conditional-attr)。"
40
40
  },
41
41
  "core/audits/accessibility/aria-conditional-attr.js | failureTitle": {
42
42
  "message": "未按照指定方式在元素角色中使用 ARIA 属性"
@@ -45,7 +45,7 @@
45
45
  "message": "按照指定方式在元素角色中使用了 ARIA 属性"
46
46
  },
47
47
  "core/audits/accessibility/aria-deprecated-role.js | description": {
48
- "message": "辅助技术可能无法正确处理已弃用的 ARIA 角色。[详细了解已弃用的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)。"
48
+ "message": "辅助技术可能无法正确处理已弃用的 ARIA 角色。[详细了解已弃用的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.12/aria-deprecated-role)。"
49
49
  },
50
50
  "core/audits/accessibility/aria-deprecated-role.js | failureTitle": {
51
51
  "message": "使用了已弃用的 ARIA 角色"
@@ -54,7 +54,7 @@
54
54
  "message": "未使用已弃用的 ARIA 角色"
55
55
  },
56
56
  "core/audits/accessibility/aria-dialog-name.js | description": {
57
- "message": "如果 ARIA 对话框元素缺少无障碍名称,可能会妨碍屏幕阅读器用户理解这些元素的用途。[了解如何让 ARIA 对话框元素更符合无障碍需求](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)。"
57
+ "message": "如果 ARIA 对话框元素缺少无障碍名称,可能会妨碍屏幕阅读器用户理解这些元素的用途。[了解如何让 ARIA 对话框元素更符合无障碍需求](https://dequeuniversity.com/rules/axe/4.12/aria-dialog-name)。"
58
58
  },
59
59
  "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
60
60
  "message": "具有 `role=\"dialog\"` 或 `role=\"alertdialog\"` 的元素缺少无障碍名称。"
@@ -63,7 +63,7 @@
63
63
  "message": "具有 `role=\"dialog\"` 或 `role=\"alertdialog\"` 的元素均有无障碍名称。"
64
64
  },
65
65
  "core/audits/accessibility/aria-hidden-body.js | description": {
66
- "message": "在文档 `<body>` 上设置 `aria-hidden=\"true\"` 后,辅助技术(如屏幕阅读器)的工作方式不一致。[了解 `aria-hidden` 对文档正文的影响](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)。"
66
+ "message": "在文档 `<body>` 上设置 `aria-hidden=\"true\"` 后,辅助技术(如屏幕阅读器)的工作方式不一致。[了解 `aria-hidden` 对文档正文的影响](https://dequeuniversity.com/rules/axe/4.12/aria-hidden-body)。"
67
67
  },
68
68
  "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
69
69
  "message": "文档 `<body>` 中有 `[aria-hidden=\"true\"]`"
@@ -72,7 +72,7 @@
72
72
  "message": "文档 `<body>` 中没有 `[aria-hidden=\"true\"]`"
73
73
  },
74
74
  "core/audits/accessibility/aria-hidden-focus.js | description": {
75
- "message": "有一个 `[aria-hidden=\"true\"]` 元素包含可聚焦的下级元素,导致这些交互式元素都无法被辅助技术(如屏幕阅读器)用户使用。[了解 `aria-hidden` 如何影响可聚焦的元素](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus)。"
75
+ "message": "有一个 `[aria-hidden=\"true\"]` 元素包含可聚焦的下级元素,导致这些交互式元素都无法被辅助技术(如屏幕阅读器)用户使用。[了解 `aria-hidden` 如何影响可聚焦的元素](https://dequeuniversity.com/rules/axe/4.12/aria-hidden-focus)。"
76
76
  },
77
77
  "core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
78
78
  "message": "`[aria-hidden=\"true\"]` 元素包含可聚焦的下级元素"
@@ -81,7 +81,7 @@
81
81
  "message": "`[aria-hidden=\"true\"]` 元素都不含可聚焦的下级元素"
82
82
  },
83
83
  "core/audits/accessibility/aria-input-field-name.js | description": {
84
- "message": "如果某个输入字段没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解输入字段标签](https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name)。"
84
+ "message": "如果某个输入字段没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解输入字段标签](https://dequeuniversity.com/rules/axe/4.12/aria-input-field-name)。"
85
85
  },
86
86
  "core/audits/accessibility/aria-input-field-name.js | failureTitle": {
87
87
  "message": "ARIA 输入字段缺少可供访问的名称"
@@ -90,7 +90,7 @@
90
90
  "message": "ARIA 输入字段都有可供访问的名称"
91
91
  },
92
92
  "core/audits/accessibility/aria-meter-name.js | description": {
93
- "message": "如果某个 meter 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `meter` 元素命名](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)。"
93
+ "message": "如果某个 meter 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `meter` 元素命名](https://dequeuniversity.com/rules/axe/4.12/aria-meter-name)。"
94
94
  },
95
95
  "core/audits/accessibility/aria-meter-name.js | failureTitle": {
96
96
  "message": "ARIA `meter` 元素缺少可供访问的名称。"
@@ -99,7 +99,7 @@
99
99
  "message": "ARIA `meter` 元素都有可供访问的名称"
100
100
  },
101
101
  "core/audits/accessibility/aria-progressbar-name.js | description": {
102
- "message": "如果某个 `progressbar` 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `progressbar` 元素添加标签](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)。"
102
+ "message": "如果某个 `progressbar` 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `progressbar` 元素添加标签](https://dequeuniversity.com/rules/axe/4.12/aria-progressbar-name)。"
103
103
  },
104
104
  "core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
105
105
  "message": "ARIA `progressbar` 元素缺少可供访问的名称。"
@@ -108,7 +108,7 @@
108
108
  "message": "ARIA `progressbar` 元素都有可供访问的名称"
109
109
  },
110
110
  "core/audits/accessibility/aria-prohibited-attr.js | description": {
111
- "message": "在禁止使用 ARIA 属性的角色中使用 ARIA 属性可能会导致重要信息无法传达给使用辅助技术的用户。[详细了解被禁止的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)。"
111
+ "message": "在禁止使用 ARIA 属性的角色中使用 ARIA 属性可能会导致重要信息无法传达给使用辅助技术的用户。[详细了解被禁止的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.12/aria-prohibited-attr)。"
112
112
  },
113
113
  "core/audits/accessibility/aria-prohibited-attr.js | failureTitle": {
114
114
  "message": "元素使用了禁止使用的 ARIA 属性"
@@ -117,7 +117,7 @@
117
117
  "message": "元素仅使用允许的 ARIA 属性"
118
118
  },
119
119
  "core/audits/accessibility/aria-required-attr.js | description": {
120
- "message": "一些 ARIA 角色有必需属性,这些属性向屏幕阅读器描述了相应元素的状态。[详细了解角色和必需属性](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)。"
120
+ "message": "一些 ARIA 角色有必需属性,这些属性向屏幕阅读器描述了相应元素的状态。[详细了解角色和必需属性](https://dequeuniversity.com/rules/axe/4.12/aria-required-attr)。"
121
121
  },
122
122
  "core/audits/accessibility/aria-required-attr.js | failureTitle": {
123
123
  "message": "`[role]` 缺少部分必需的 `[aria-*]` 属性"
@@ -126,7 +126,7 @@
126
126
  "message": "`[role]` 具备所有必需的 `[aria-*]` 属性"
127
127
  },
128
128
  "core/audits/accessibility/aria-required-children.js | description": {
129
- "message": "一些 ARIA 父角色必须包含特定子角色,才能执行它们的预期无障碍功能。[详细了解角色和必需的子元素](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)。"
129
+ "message": "一些 ARIA 父角色必须包含特定子角色,才能执行它们的预期无障碍功能。[详细了解角色和必需的子元素](https://dequeuniversity.com/rules/axe/4.12/aria-required-children)。"
130
130
  },
131
131
  "core/audits/accessibility/aria-required-children.js | failureTitle": {
132
132
  "message": "具有 ARIA `[role]`且要求子元素必须包含特定`[role]`的元素缺少部分或全部必需子元素。"
@@ -135,7 +135,7 @@
135
135
  "message": "具有 ARIA `[role]`且要求子元素必须包含特定`[role]`的元素包含全部必需子元素。"
136
136
  },
137
137
  "core/audits/accessibility/aria-required-parent.js | description": {
138
- "message": "一些 ARIA 子角色必须包含在特定的父角色中,才能正确执行它们的预期无障碍功能。[详细了解 ARIA 角色和必需的父元素](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)。"
138
+ "message": "一些 ARIA 子角色必须包含在特定的父角色中,才能正确执行它们的预期无障碍功能。[详细了解 ARIA 角色和必需的父元素](https://dequeuniversity.com/rules/axe/4.12/aria-required-parent)。"
139
139
  },
140
140
  "core/audits/accessibility/aria-required-parent.js | failureTitle": {
141
141
  "message": "`[role]` 未包含在其必需的父元素中"
@@ -144,7 +144,7 @@
144
144
  "message": "`[role]` 包含在其必需的父元素中"
145
145
  },
146
146
  "core/audits/accessibility/aria-roles.js | description": {
147
- "message": "ARIA 角色必须具备有效值,才能执行它们的预期无障碍功能。[详细了解有效的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.11/aria-roles)。"
147
+ "message": "ARIA 角色必须具备有效值,才能执行它们的预期无障碍功能。[详细了解有效的 ARIA 角色](https://dequeuniversity.com/rules/axe/4.12/aria-roles)。"
148
148
  },
149
149
  "core/audits/accessibility/aria-roles.js | failureTitle": {
150
150
  "message": "`[role]` 值无效"
@@ -153,7 +153,7 @@
153
153
  "message": "`[role]` 值有效"
154
154
  },
155
155
  "core/audits/accessibility/aria-text.js | description": {
156
- "message": "在一个被标记分隔的文本节点周围添加 `role=text` 后,VoiceOver 会将该文本元素视为一个短语,但不会读出它的可聚焦后代元素。[详细了解 `role=text` 属性](https://dequeuniversity.com/rules/axe/4.11/aria-text)。"
156
+ "message": "在一个被标记分隔的文本节点周围添加 `role=text` 后,VoiceOver 会将该文本元素视为一个短语,但不会读出它的可聚焦后代元素。[详细了解 `role=text` 属性](https://dequeuniversity.com/rules/axe/4.12/aria-text)。"
157
157
  },
158
158
  "core/audits/accessibility/aria-text.js | failureTitle": {
159
159
  "message": "具有 `role=text` 属性的元素包含可聚焦后代元素。"
@@ -162,7 +162,7 @@
162
162
  "message": "具有 `role=text` 属性的元素缺少可聚焦后代元素。"
163
163
  },
164
164
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
165
- "message": "如果某个切换字段没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解切换字段](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)。"
165
+ "message": "如果某个切换字段没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解切换字段](https://dequeuniversity.com/rules/axe/4.12/aria-toggle-field-name)。"
166
166
  },
167
167
  "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
168
168
  "message": "ARIA 切换字段缺少可供访问的名称"
@@ -171,7 +171,7 @@
171
171
  "message": "ARIA 切换字段都有可供访问的名称"
172
172
  },
173
173
  "core/audits/accessibility/aria-tooltip-name.js | description": {
174
- "message": "如果某个 tooltip 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `tooltip` 元素命名](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)。"
174
+ "message": "如果某个 tooltip 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何为 `tooltip` 元素命名](https://dequeuniversity.com/rules/axe/4.12/aria-tooltip-name)。"
175
175
  },
176
176
  "core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
177
177
  "message": "ARIA `tooltip` 元素缺少可供访问的名称。"
@@ -180,7 +180,7 @@
180
180
  "message": "ARIA `tooltip` 元素都有可供访问的名称"
181
181
  },
182
182
  "core/audits/accessibility/aria-treeitem-name.js | description": {
183
- "message": "如果某个 `treeitem` 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解如何为 `treeitem` 元素添加标签](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)。"
183
+ "message": "如果某个 `treeitem` 元素没有无障碍名称,屏幕阅读器会将它读为通用名称,这会导致依赖屏幕阅读器的用户无法使用它。[详细了解如何为 `treeitem` 元素添加标签](https://dequeuniversity.com/rules/axe/4.12/aria-treeitem-name)。"
184
184
  },
185
185
  "core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
186
186
  "message": "ARIA `treeitem` 元素缺少可供访问的名称。"
@@ -189,7 +189,7 @@
189
189
  "message": "ARIA `treeitem` 元素都有可供访问的名称"
190
190
  },
191
191
  "core/audits/accessibility/aria-valid-attr-value.js | description": {
192
- "message": "辅助技术(如屏幕阅读器)无法解读值无效的 ARIA 属性。[详细了解 ARIA 属性的有效值](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)。"
192
+ "message": "辅助技术(如屏幕阅读器)无法解读值无效的 ARIA 属性。[详细了解 ARIA 属性的有效值](https://dequeuniversity.com/rules/axe/4.12/aria-valid-attr-value)。"
193
193
  },
194
194
  "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
195
195
  "message": "`[aria-*]` 属性缺少有效值"
@@ -198,7 +198,7 @@
198
198
  "message": "`[aria-*]` 属性具备有效值"
199
199
  },
200
200
  "core/audits/accessibility/aria-valid-attr.js | description": {
201
- "message": "辅助技术(如屏幕阅读器)无法解读名称无效的 ARIA 属性。[详细了解有效的 ARIA 属性](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)。"
201
+ "message": "辅助技术(如屏幕阅读器)无法解读名称无效的 ARIA 属性。[详细了解有效的 ARIA 属性](https://dequeuniversity.com/rules/axe/4.12/aria-valid-attr)。"
202
202
  },
203
203
  "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
204
204
  "message": "`[aria-*]` 属性无效或拼写有误"
@@ -206,11 +206,20 @@
206
206
  "core/audits/accessibility/aria-valid-attr.js | title": {
207
207
  "message": "`[aria-*]` 属性有效且拼写正确"
208
208
  },
209
+ "core/audits/accessibility/autocomplete-valid.js | description": {
210
+ "message": "`autocomplete` 属性值必须有效且应用得当,屏幕阅读器才能正常运行。[详细了解有效的自动补全值](https://dequeuniversity.com/rules/axe/4.12/autocomplete-valid)。"
211
+ },
212
+ "core/audits/accessibility/autocomplete-valid.js | failureTitle": {
213
+ "message": "`autocomplete` 属性未正确使用"
214
+ },
215
+ "core/audits/accessibility/autocomplete-valid.js | title": {
216
+ "message": "`autocomplete` 属性已正确使用"
217
+ },
209
218
  "core/audits/accessibility/axe-audit.js | failingElementsHeader": {
210
219
  "message": "未通过审核的元素"
211
220
  },
212
221
  "core/audits/accessibility/button-name.js | description": {
213
- "message": "当某个按钮没有无障碍名称时,屏幕阅读器会将它读为“按钮”,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何让按钮更便于使用](https://dequeuniversity.com/rules/axe/4.11/button-name)。"
222
+ "message": "当某个按钮没有无障碍名称时,屏幕阅读器会将它读为“按钮”,这会导致依赖屏幕阅读器的用户无法使用它。[了解如何让按钮更便于使用](https://dequeuniversity.com/rules/axe/4.12/button-name)。"
214
223
  },
215
224
  "core/audits/accessibility/button-name.js | failureTitle": {
216
225
  "message": "按钮缺少可供访问的名称"
@@ -219,7 +228,7 @@
219
228
  "message": "按钮有可供访问的名称"
220
229
  },
221
230
  "core/audits/accessibility/bypass.js | description": {
222
- "message": "添加用于绕过重复内容的方式有助于键盘用户更高效地浏览页面。[详细了解如何绕过内容块](https://dequeuniversity.com/rules/axe/4.11/bypass)。"
231
+ "message": "添加用于绕过重复内容的方式有助于键盘用户更高效地浏览页面。[详细了解如何绕过内容块](https://dequeuniversity.com/rules/axe/4.12/bypass)。"
223
232
  },
224
233
  "core/audits/accessibility/bypass.js | failureTitle": {
225
234
  "message": "该页面不含任何标题、跳过链接或地标区域"
@@ -228,7 +237,7 @@
228
237
  "message": "该页面包含一个标题、跳过链接或地标区域"
229
238
  },
230
239
  "core/audits/accessibility/color-contrast.js | description": {
231
- "message": "对于许多用户而言,对比度低的文字都是难以阅读或无法阅读的。[了解如何提供足够高的颜色对比度](https://dequeuniversity.com/rules/axe/4.11/color-contrast)。"
240
+ "message": "对于许多用户而言,对比度低的文字都是难以阅读或无法阅读的。[了解如何提供足够高的颜色对比度](https://dequeuniversity.com/rules/axe/4.12/color-contrast)。"
232
241
  },
233
242
  "core/audits/accessibility/color-contrast.js | failureTitle": {
234
243
  "message": "背景色和前景色没有足够高的对比度。"
@@ -237,7 +246,7 @@
237
246
  "message": "背景色和前景色具有足够高的对比度"
238
247
  },
239
248
  "core/audits/accessibility/definition-list.js | description": {
240
- "message": "如果未正确标记定义列表,屏幕阅读器读出的内容可能会令人困惑或不准确。[了解如何正确构建定义列表](https://dequeuniversity.com/rules/axe/4.11/definition-list)。"
249
+ "message": "如果未正确标记定义列表,屏幕阅读器读出的内容可能会令人困惑或不准确。[了解如何正确构建定义列表](https://dequeuniversity.com/rules/axe/4.12/definition-list)。"
241
250
  },
242
251
  "core/audits/accessibility/definition-list.js | failureTitle": {
243
252
  "message": "`<dl>` 并非只包含经过适当排序的 `<dt>` 和 `<dd>` 组及 `<script>`、`<template>` 或 `<div>` 元素。"
@@ -246,7 +255,7 @@
246
255
  "message": "`<dl>` 只包含经过适当排序的 `<dt>` 和 `<dd>` 组及 `<script>`、`<template>` 或 `<div>` 元素。"
247
256
  },
248
257
  "core/audits/accessibility/dlitem.js | description": {
249
- "message": "定义列表项(`<dt>` 和 `<dd>`)必须封装在父 `<dl>` 元素中,以确保屏幕阅读器可以正确地读出它们。[了解如何正确构建定义列表](https://dequeuniversity.com/rules/axe/4.11/dlitem)。"
258
+ "message": "定义列表项(`<dt>` 和 `<dd>`)必须封装在父 `<dl>` 元素中,以确保屏幕阅读器可以正确地读出它们。[了解如何正确构建定义列表](https://dequeuniversity.com/rules/axe/4.12/dlitem)。"
250
259
  },
251
260
  "core/audits/accessibility/dlitem.js | failureTitle": {
252
261
  "message": "定义列表项已封装在 `<dl>` 元素中"
@@ -255,7 +264,7 @@
255
264
  "message": "定义列表项已封装在 `<dl>` 元素中"
256
265
  },
257
266
  "core/audits/accessibility/document-title.js | description": {
258
- "message": "屏幕阅读器用户可借助标题来大致了解某个页面的内容,搜索引擎用户则非常依赖标题来确定某个页面是否与其搜索相关。[详细了解文档标题](https://dequeuniversity.com/rules/axe/4.11/document-title)。"
267
+ "message": "屏幕阅读器用户可借助标题来大致了解某个页面的内容,搜索引擎用户则非常依赖标题来确定某个页面是否与其搜索相关。[详细了解文档标题](https://dequeuniversity.com/rules/axe/4.12/document-title)。"
259
268
  },
260
269
  "core/audits/accessibility/document-title.js | failureTitle": {
261
270
  "message": "文档不含 `<title>` 元素"
@@ -264,7 +273,7 @@
264
273
  "message": "文档包含 `<title>` 元素"
265
274
  },
266
275
  "core/audits/accessibility/duplicate-id-aria.js | description": {
267
- "message": "ARIA ID 的值必须独一无二,才能防止其他实例被辅助技术忽略。[了解如何修正重复的 ARIA ID](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)。"
276
+ "message": "ARIA ID 的值必须独一无二,才能防止其他实例被辅助技术忽略。[了解如何修正重复的 ARIA ID](https://dequeuniversity.com/rules/axe/4.12/duplicate-id-aria)。"
268
277
  },
269
278
  "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
270
279
  "message": "ARIA ID 不是独一无二的"
@@ -273,7 +282,7 @@
273
282
  "message": "ARIA ID 都是独一无二的"
274
283
  },
275
284
  "core/audits/accessibility/empty-heading.js | description": {
276
- "message": "如果标题元素未包含任何内容或包含无法读取的文本,屏幕阅读器用户将难以获取网页的结构信息。[详细了解标题](https://dequeuniversity.com/rules/axe/4.11/empty-heading)。"
285
+ "message": "如果标题元素未包含任何内容或包含无法读取的文本,屏幕阅读器用户将难以获取网页的结构信息。[详细了解标题](https://dequeuniversity.com/rules/axe/4.12/empty-heading)。"
277
286
  },
278
287
  "core/audits/accessibility/empty-heading.js | failureTitle": {
279
288
  "message": "标题元素未包含任何内容。"
@@ -282,7 +291,7 @@
282
291
  "message": "所有标题元素均包含内容。"
283
292
  },
284
293
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
285
- "message": "有多个标签的表单字段可能会被辅助技术(如屏幕阅读器)以令人困惑的方式播报出来,因为这些辅助技术可能会使用第一个标签或最后一个标签,也可能会使用所有标签。[了解如何使用表单标签](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)。"
294
+ "message": "有多个标签的表单字段可能会被辅助技术(如屏幕阅读器)以令人困惑的方式播报出来,因为这些辅助技术可能会使用第一个标签或最后一个标签,也可能会使用所有标签。[了解如何使用表单标签](https://dequeuniversity.com/rules/axe/4.12/form-field-multiple-labels)。"
286
295
  },
287
296
  "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
288
297
  "message": "表单字段有多个标签"
@@ -291,7 +300,7 @@
291
300
  "message": "表单字段都没有多个标签"
292
301
  },
293
302
  "core/audits/accessibility/frame-title.js | description": {
294
- "message": "屏幕阅读器用户依靠框架标题来描述框架的内容。[详细了解框架标题](https://dequeuniversity.com/rules/axe/4.11/frame-title)。"
303
+ "message": "屏幕阅读器用户依靠框架标题来描述框架的内容。[详细了解框架标题](https://dequeuniversity.com/rules/axe/4.12/frame-title)。"
295
304
  },
296
305
  "core/audits/accessibility/frame-title.js | failureTitle": {
297
306
  "message": "`<frame>` 或 `<iframe>` 元素缺少标题"
@@ -300,7 +309,7 @@
300
309
  "message": "`<frame>` 或 `<iframe>` 元素有标题"
301
310
  },
302
311
  "core/audits/accessibility/heading-order.js | description": {
303
- "message": "未跳过任何等级且排序正确的标题会准确传达页面的语义结构,从而使得相应页面在使用辅助技术时更易于浏览和理解。[详细了解标题顺序](https://dequeuniversity.com/rules/axe/4.11/heading-order)。"
312
+ "message": "未跳过任何等级且排序正确的标题会准确传达页面的语义结构,从而使得相应页面在使用辅助技术时更易于浏览和理解。[详细了解标题顺序](https://dequeuniversity.com/rules/axe/4.12/heading-order)。"
304
313
  },
305
314
  "core/audits/accessibility/heading-order.js | failureTitle": {
306
315
  "message": "标题元素未按降序显示"
@@ -309,7 +318,7 @@
309
318
  "message": "标题元素按降序显示"
310
319
  },
311
320
  "core/audits/accessibility/html-has-lang.js | description": {
312
- "message": "如果页面未指定 `lang` 属性,屏幕阅读器便会假定该页面采用的是用户在设置屏幕阅读器时选择的默认语言。如果该页面实际上并未采用默认语言,屏幕阅读器可能无法正确读出该页面中的文字。[详细了解 `lang` 属性](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)。"
321
+ "message": "如果页面未指定 `lang` 属性,屏幕阅读器便会假定该页面采用的是用户在设置屏幕阅读器时选择的默认语言。如果该页面实际上并未采用默认语言,屏幕阅读器可能无法正确读出该页面中的文字。[详细了解 `lang` 属性](https://dequeuniversity.com/rules/axe/4.12/html-has-lang)。"
313
322
  },
314
323
  "core/audits/accessibility/html-has-lang.js | failureTitle": {
315
324
  "message": "`<html>` 元素缺少 `[lang]` 属性"
@@ -318,7 +327,7 @@
318
327
  "message": "`<html>` 元素包含 `[lang]` 属性"
319
328
  },
320
329
  "core/audits/accessibility/html-lang-valid.js | description": {
321
- "message": "指定有效的 [BCP 47 语言](https://www.w3.org/International/questions/qa-choosing-language-tags#question)有助于屏幕阅读器正确读出文字。[了解如何使用 `lang` 属性](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)。"
330
+ "message": "指定有效的 [BCP 47 语言](https://www.w3.org/International/questions/qa-choosing-language-tags#question)有助于屏幕阅读器正确读出文字。[了解如何使用 `lang` 属性](https://dequeuniversity.com/rules/axe/4.12/html-lang-valid)。"
322
331
  },
323
332
  "core/audits/accessibility/html-lang-valid.js | failureTitle": {
324
333
  "message": "`<html>` 元素的 `[lang]` 属性缺少有效值。"
@@ -327,7 +336,7 @@
327
336
  "message": "`<html>` 元素的 `[lang]` 属性具备有效值"
328
337
  },
329
338
  "core/audits/accessibility/html-xml-lang-mismatch.js | description": {
330
- "message": "如果网页未指定一致的语言,屏幕阅读器可能无法正确读出相应网页上的文本。[详细了解 `lang` 属性](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)。"
339
+ "message": "如果网页未指定一致的语言,屏幕阅读器可能无法正确读出相应网页上的文本。[详细了解 `lang` 属性](https://dequeuniversity.com/rules/axe/4.12/html-xml-lang-mismatch)。"
331
340
  },
332
341
  "core/audits/accessibility/html-xml-lang-mismatch.js | failureTitle": {
333
342
  "message": "`<html>` 元素的 `[xml:lang]` 属性与 `[lang]` 属性使用了不同的基本语言。"
@@ -336,7 +345,7 @@
336
345
  "message": "`<html>` 元素的 `[xml:lang]` 属性与 `[lang]` 属性使用了相同的基本语言。"
337
346
  },
338
347
  "core/audits/accessibility/identical-links-same-purpose.js | description": {
339
- "message": "指向相同目标位置的链接应具有相同的说明,这有助于用户了解链接的用途并决定是否要访问它。[详细了解相同链接](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)。"
348
+ "message": "指向相同目标位置的链接应具有相同的说明,这有助于用户了解链接的用途并决定是否要访问它。[详细了解相同链接](https://dequeuniversity.com/rules/axe/4.12/identical-links-same-purpose)。"
340
349
  },
341
350
  "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
342
351
  "message": "相同链接的用途不一致。"
@@ -345,7 +354,7 @@
345
354
  "message": "相同链接的用途一致。"
346
355
  },
347
356
  "core/audits/accessibility/image-alt.js | description": {
348
- "message": "说明性元素应力求使用简短的描述性替代文字。未指定 alt 属性的装饰性元素可被忽略。[详细了解 `alt` 属性](https://dequeuniversity.com/rules/axe/4.11/image-alt)。"
357
+ "message": "说明性元素应力求使用简短的描述性替代文字。未指定 alt 属性的装饰性元素可被忽略。[详细了解 `alt` 属性](https://dequeuniversity.com/rules/axe/4.12/image-alt)。"
349
358
  },
350
359
  "core/audits/accessibility/image-alt.js | failureTitle": {
351
360
  "message": "图片元素缺少 `[alt]` 属性"
@@ -354,7 +363,7 @@
354
363
  "message": "图片元素具备 `[alt]` 属性"
355
364
  },
356
365
  "core/audits/accessibility/image-redundant-alt.js | description": {
357
- "message": "说明性元素应力求使用简短的描述性替代文本。如果替代文本与链接或图片旁边的文本完全相同,可能会让屏幕阅读器用户感到困惑,因为他们会听到两次同样的内容。[详细了解 `alt` 属性](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)。"
366
+ "message": "说明性元素应力求使用简短的描述性替代文本。如果替代文本与链接或图片旁边的文本完全相同,可能会让屏幕阅读器用户感到困惑,因为他们会听到两次同样的内容。[详细了解 `alt` 属性](https://dequeuniversity.com/rules/axe/4.12/image-redundant-alt)。"
358
367
  },
359
368
  "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
360
369
  "message": "图片元素具有属于多余文本的 `[alt]` 属性。"
@@ -363,7 +372,7 @@
363
372
  "message": "图片元素没有属于多余文本的 `[alt]` 属性。"
364
373
  },
365
374
  "core/audits/accessibility/input-button-name.js | description": {
366
- "message": "向输入按钮添加可识别的无障碍文本可帮助屏幕阅读器用户了解输入按钮的用途。[详细了解输入按钮](https://dequeuniversity.com/rules/axe/4.11/input-button-name)。"
375
+ "message": "向输入按钮添加可识别的无障碍文本可帮助屏幕阅读器用户了解输入按钮的用途。[详细了解输入按钮](https://dequeuniversity.com/rules/axe/4.12/input-button-name)。"
367
376
  },
368
377
  "core/audits/accessibility/input-button-name.js | failureTitle": {
369
378
  "message": "输入按钮没有可识别的文本。"
@@ -372,7 +381,7 @@
372
381
  "message": "输入按钮具有可识别的文本。"
373
382
  },
374
383
  "core/audits/accessibility/input-image-alt.js | description": {
375
- "message": "将图片用作 `<input>` 按钮时,提供替代文字有助于屏幕阅读器用户了解该按钮的用途。[了解输入图片替代文字](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)。"
384
+ "message": "将图片用作 `<input>` 按钮时,提供替代文字有助于屏幕阅读器用户了解该按钮的用途。[了解输入图片替代文字](https://dequeuniversity.com/rules/axe/4.12/input-image-alt)。"
376
385
  },
377
386
  "core/audits/accessibility/input-image-alt.js | failureTitle": {
378
387
  "message": "`<input type=\"image\">` 元素无对应的 `[alt]` 文字"
@@ -381,7 +390,7 @@
381
390
  "message": "`<input type=\"image\">` 元素有对应的 `[alt]` 文字"
382
391
  },
383
392
  "core/audits/accessibility/label-content-name-mismatch.js | description": {
384
- "message": "如果可见文本标签与无障碍名称不匹配,可能会让屏幕阅读器用户感到困惑。[详细了解无障碍名称](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)。"
393
+ "message": "如果可见文本标签与无障碍名称不匹配,可能会让屏幕阅读器用户感到困惑。[详细了解无障碍名称](https://dequeuniversity.com/rules/axe/4.12/label-content-name-mismatch)。"
385
394
  },
386
395
  "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
387
396
  "message": "带有可见文本标签的元素没有匹配的无障碍名称。"
@@ -390,7 +399,7 @@
390
399
  "message": "带有可见文本标签的元素具有匹配的无障碍名称。"
391
400
  },
392
401
  "core/audits/accessibility/label.js | description": {
393
- "message": "标签可确保辅助技术(如屏幕阅读器)正确读出表单控件。[详细了解表单元素标签](https://dequeuniversity.com/rules/axe/4.11/label)。"
402
+ "message": "标签可确保辅助技术(如屏幕阅读器)正确读出表单控件。[详细了解表单元素标签](https://dequeuniversity.com/rules/axe/4.12/label)。"
394
403
  },
395
404
  "core/audits/accessibility/label.js | failureTitle": {
396
405
  "message": "表单元素不具备关联的标签"
@@ -399,7 +408,7 @@
399
408
  "message": "表单元素具有关联的标签"
400
409
  },
401
410
  "core/audits/accessibility/landmark-one-main.js | description": {
402
- "message": "主要位置标记有助于屏幕阅读器用户浏览网页。[详细了解位置标记](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)。"
411
+ "message": "主要位置标记有助于屏幕阅读器用户浏览网页。[详细了解位置标记](https://dequeuniversity.com/rules/axe/4.12/landmark-one-main)。"
403
412
  },
404
413
  "core/audits/accessibility/landmark-one-main.js | failureTitle": {
405
414
  "message": "文档缺少主要位置标记。"
@@ -408,7 +417,7 @@
408
417
  "message": "文档有一个主要位置标记。"
409
418
  },
410
419
  "core/audits/accessibility/link-in-text-block.js | description": {
411
- "message": "对许多用户而言,对比度低的文本都是难以阅读或无法阅读的。清晰可辨的链接文本可改善低视力用户的体验。[了解如何让链接容易辨识](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)。"
420
+ "message": "对许多用户而言,对比度低的文本都是难以阅读或无法阅读的。清晰可辨的链接文本可改善低视力用户的体验。[了解如何让链接容易辨识](https://dequeuniversity.com/rules/axe/4.12/link-in-text-block)。"
412
421
  },
413
422
  "core/audits/accessibility/link-in-text-block.js | failureTitle": {
414
423
  "message": "必须依赖颜色才能辨识链接。"
@@ -417,7 +426,7 @@
417
426
  "message": "无需依赖颜色即可辨识链接。"
418
427
  },
419
428
  "core/audits/accessibility/link-name.js | description": {
420
- "message": "请确保链接文字(以及用作链接的图片替代文字)可识别、独一无二且可聚焦,这样做会提升屏幕阅读器用户的导航体验。[了解如何使链接可供访问](https://dequeuniversity.com/rules/axe/4.11/link-name)。"
429
+ "message": "请确保链接文字(以及用作链接的图片替代文字)可识别、独一无二且可聚焦,这样做会提升屏幕阅读器用户的导航体验。[了解如何使链接可供访问](https://dequeuniversity.com/rules/axe/4.12/link-name)。"
421
430
  },
422
431
  "core/audits/accessibility/link-name.js | failureTitle": {
423
432
  "message": "链接缺少可识别的名称"
@@ -426,7 +435,7 @@
426
435
  "message": "链接具备可识别的名称"
427
436
  },
428
437
  "core/audits/accessibility/list.js | description": {
429
- "message": "屏幕阅读器会采用特定的方法来读出列表内容。确保列表结构正确有助于屏幕阅读器顺利读出相应内容。[详细了解适当的列表结构](https://dequeuniversity.com/rules/axe/4.11/list)。"
438
+ "message": "屏幕阅读器会采用特定的方法来读出列表内容。确保列表结构正确有助于屏幕阅读器顺利读出相应内容。[详细了解适当的列表结构](https://dequeuniversity.com/rules/axe/4.12/list)。"
430
439
  },
431
440
  "core/audits/accessibility/list.js | failureTitle": {
432
441
  "message": "列表并非只包含 `<li>` 元素和脚本支持元素(`<script>` 和 `<template>`)。"
@@ -435,7 +444,7 @@
435
444
  "message": "列表只包含 `<li>` 元素和脚本支持元素(`<script>` 和 `<template>`)。"
436
445
  },
437
446
  "core/audits/accessibility/listitem.js | description": {
438
- "message": "屏幕阅读器要求列表项 (`<li>`) 必须包含在父 `<ul>`、`<ol>` 或 `<menu>` 中,这样才能正确读出它们。[详细了解适当的列表结构](https://dequeuniversity.com/rules/axe/4.11/listitem)。"
447
+ "message": "屏幕阅读器要求列表项 (`<li>`) 必须包含在父 `<ul>`、`<ol>` 或 `<menu>` 中,这样才能正确读出它们。[详细了解适当的列表结构](https://dequeuniversity.com/rules/axe/4.12/listitem)。"
439
448
  },
440
449
  "core/audits/accessibility/listitem.js | failureTitle": {
441
450
  "message": "列表项 (`<li>`) 未包含在 `<ul>`、`<ol>` 或 `<menu>` 父元素中。"
@@ -444,7 +453,7 @@
444
453
  "message": "列表项 (`<li>`) 包含在 `<ul>`、`<ol>` 或 `<menu>` 父元素中"
445
454
  },
446
455
  "core/audits/accessibility/meta-refresh.js | description": {
447
- "message": "用户并不希望网页自动刷新,因为自动刷新会不断地将焦点移回到页面顶部。这可能会让用户感到沮丧或困惑。[详细了解刷新元标记](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)。"
456
+ "message": "用户并不希望网页自动刷新,因为自动刷新会不断地将焦点移回到页面顶部。这可能会让用户感到沮丧或困惑。[详细了解刷新元标记](https://dequeuniversity.com/rules/axe/4.12/meta-refresh)。"
448
457
  },
449
458
  "core/audits/accessibility/meta-refresh.js | failureTitle": {
450
459
  "message": "文档使用了 `<meta http-equiv=\"refresh\">`"
@@ -453,7 +462,7 @@
453
462
  "message": "文档未使用 `<meta http-equiv=\"refresh\">`"
454
463
  },
455
464
  "core/audits/accessibility/meta-viewport.js | description": {
456
- "message": "对于必须依靠放大屏幕才能清晰看到网页内容的低视力用户而言,停用缩放功能会给他们带来问题。[详细了解视口元标记](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)。"
465
+ "message": "对于必须依靠放大屏幕才能清晰看到网页内容的低视力用户而言,停用缩放功能会给他们带来问题。[详细了解视口元标记](https://dequeuniversity.com/rules/axe/4.12/meta-viewport)。"
457
466
  },
458
467
  "core/audits/accessibility/meta-viewport.js | failureTitle": {
459
468
  "message": "`<meta name=\"viewport\">` 元素中使用了 `[user-scalable=\"no\"]`,或者 `[maximum-scale]` 属性小于 5。"
@@ -462,7 +471,7 @@
462
471
  "message": "`[user-scalable=\"no\"]` 未用在 `<meta name=\"viewport\">` 元素中,并且 `[maximum-scale]` 属性不小于 5。"
463
472
  },
464
473
  "core/audits/accessibility/object-alt.js | description": {
465
- "message": "屏幕阅读器无法转换非文字内容。通过向 `<object>` 元素添加替代文字,可帮助屏幕阅读器将含义传达给用户。[详细了解 `object` 元素的替代文字](https://dequeuniversity.com/rules/axe/4.11/object-alt)。"
474
+ "message": "屏幕阅读器无法转换非文字内容。通过向 `<object>` 元素添加替代文字,可帮助屏幕阅读器将含义传达给用户。[详细了解 `object` 元素的替代文字](https://dequeuniversity.com/rules/axe/4.12/object-alt)。"
466
475
  },
467
476
  "core/audits/accessibility/object-alt.js | failureTitle": {
468
477
  "message": "`<object>` 元素无对应的替代文字"
@@ -470,8 +479,17 @@
470
479
  "core/audits/accessibility/object-alt.js | title": {
471
480
  "message": "`<object>` 元素有对应的替代文字"
472
481
  },
482
+ "core/audits/accessibility/presentation-role-conflict.js | description": {
483
+ "message": "在某些情况下,具有“`role=\"none\"`”或“`role=\"presentation\"`”的元素的语义角色不会解析为“none”或“presentation”。为确保该元素始终不出现在无障碍树中,请勿向该元素添加任何全局 ARIA 属性,也不要将其设为可聚焦。[详细了解“presentation”角色冲突](https://dequeuniversity.com/rules/axe/4.12/presentation-role-conflict)。"
484
+ },
485
+ "core/audits/accessibility/presentation-role-conflict.js | failureTitle": {
486
+ "message": "具有“`role=\"none\"`”或“`role=\"presentation\"`”的元素存在冲突"
487
+ },
488
+ "core/audits/accessibility/presentation-role-conflict.js | title": {
489
+ "message": "具有“`role=\"none\"`”或“`role=\"presentation\"`”的元素不存在冲突"
490
+ },
473
491
  "core/audits/accessibility/select-name.js | description": {
474
- "message": "如果表单元素缺少有效标签,可能会给屏幕阅读器用户带来糟糕的体验。[详细了解 `select` 元素](https://dequeuniversity.com/rules/axe/4.11/select-name)。"
492
+ "message": "如果表单元素缺少有效标签,可能会给屏幕阅读器用户带来糟糕的体验。[详细了解 `select` 元素](https://dequeuniversity.com/rules/axe/4.12/select-name)。"
475
493
  },
476
494
  "core/audits/accessibility/select-name.js | failureTitle": {
477
495
  "message": "select 元素缺少关联的标签元素。"
@@ -480,7 +498,7 @@
480
498
  "message": "select 元素具有关联的标签元素。"
481
499
  },
482
500
  "core/audits/accessibility/skip-link.js | description": {
483
- "message": "添加跳转链接可帮助用户跳至主要内容以节省时间。[详细了解跳转链接](https://dequeuniversity.com/rules/axe/4.11/skip-link)。"
501
+ "message": "添加跳转链接可帮助用户跳至主要内容以节省时间。[详细了解跳转链接](https://dequeuniversity.com/rules/axe/4.12/skip-link)。"
484
502
  },
485
503
  "core/audits/accessibility/skip-link.js | failureTitle": {
486
504
  "message": "跳转链接无法聚焦。"
@@ -488,8 +506,17 @@
488
506
  "core/audits/accessibility/skip-link.js | title": {
489
507
  "message": "跳转链接可聚焦。"
490
508
  },
509
+ "core/audits/accessibility/svg-img-alt.js | description": {
510
+ "message": "确保具有“`img`”“`graphics-document`”或“`graphics-symbol`”角色的 SVG 元素拥有无障碍替代文本。[详细了解 SVG 替代文本](https://dequeuniversity.com/rules/axe/4.12/svg-img-alt)。"
511
+ },
512
+ "core/audits/accessibility/svg-img-alt.js | failureTitle": {
513
+ "message": "具有“`img`”角色的 SVG 元素缺少无障碍替代文本"
514
+ },
515
+ "core/audits/accessibility/svg-img-alt.js | title": {
516
+ "message": "具有“`img`”角色的 SVG 元素拥有无障碍替代文本"
517
+ },
491
518
  "core/audits/accessibility/tabindex.js | description": {
492
- "message": "值大于 0 意味着明确的导航顺序。尽管这在技术上可行,但往往会让依赖辅助技术的用户感到沮丧。[详细了解 `tabindex` 属性](https://dequeuniversity.com/rules/axe/4.11/tabindex)。"
519
+ "message": "值大于 0 意味着明确的导航顺序。尽管这在技术上可行,但往往会让依赖辅助技术的用户感到沮丧。[详细了解 `tabindex` 属性](https://dequeuniversity.com/rules/axe/4.12/tabindex)。"
493
520
  },
494
521
  "core/audits/accessibility/tabindex.js | failureTitle": {
495
522
  "message": "一些元素的 `[tabindex]` 值大于 0"
@@ -498,7 +525,7 @@
498
525
  "message": "所有元素的 `[tabindex]` 值都不大于 0"
499
526
  },
500
527
  "core/audits/accessibility/table-duplicate-name.js | description": {
501
- "message": "summary 属性应描述表格结构,而 `<caption>` 应含有屏幕上显示的标题。准确的表格标记对屏幕阅读器用户有帮助。[详细了解 summary 和 caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)。"
528
+ "message": "summary 属性应描述表格结构,而 `<caption>` 应含有屏幕上显示的标题。准确的表格标记对屏幕阅读器用户有帮助。[详细了解 summary 和 caption](https://dequeuniversity.com/rules/axe/4.12/table-duplicate-name)。"
502
529
  },
503
530
  "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
504
531
  "message": "表格的 summary 属性和 `<caption>.` 具有相同的内容"
@@ -507,7 +534,7 @@
507
534
  "message": "相关表格的 summary 属性和 `<caption>` 具有不同的内容。"
508
535
  },
509
536
  "core/audits/accessibility/table-fake-caption.js | description": {
510
- "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请务必确保表格实际使用了 <caption> 元素(而非带有 `[colspan]` 属性的单元格),这可以提升屏幕阅读器用户的体验。[详细了解表格标题](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)。"
537
+ "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请务必确保表格实际使用了 <caption> 元素(而非带有 `[colspan]` 属性的单元格),这可以提升屏幕阅读器用户的体验。[详细了解表格标题](https://dequeuniversity.com/rules/axe/4.12/table-fake-caption)。"
511
538
  },
512
539
  "core/audits/accessibility/table-fake-caption.js | failureTitle": {
513
540
  "message": "表格未使用 `<caption>`(而是使用了带有 `[colspan]` 属性的单元格)来表示表格标题。"
@@ -516,7 +543,7 @@
516
543
  "message": "表格使用了 `<caption>`(而非带有 `[colspan]` 属性的单元格)来表示表格标题。"
517
544
  },
518
545
  "core/audits/accessibility/target-size.js | description": {
519
- "message": "如果触摸目标的尺寸和间距足够大,就能帮助难以精准触按小控件的用户激活相应目标。[详细了解触摸目标](https://dequeuniversity.com/rules/axe/4.11/target-size)。"
546
+ "message": "如果触摸目标的尺寸和间距足够大,就能帮助难以精准触按小控件的用户激活相应目标。[详细了解触摸目标](https://dequeuniversity.com/rules/axe/4.12/target-size)。"
520
547
  },
521
548
  "core/audits/accessibility/target-size.js | failureTitle": {
522
549
  "message": "触摸目标的尺寸或间距不足。"
@@ -525,7 +552,7 @@
525
552
  "message": "触摸目标的尺寸和间距足够大。"
526
553
  },
527
554
  "core/audits/accessibility/td-has-header.js | description": {
528
- "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请务必确保大型表格(宽度和高度至少为 3 个单元格)中的 `<td>` 元素具有关联的表格标头,这可以提升屏幕阅读器用户的体验。[详细了解表格标头](https://dequeuniversity.com/rules/axe/4.11/td-has-header)。"
555
+ "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请务必确保大型表格(宽度和高度至少为 3 个单元格)中的 `<td>` 元素具有关联的表格标头,这可以提升屏幕阅读器用户的体验。[详细了解表格标头](https://dequeuniversity.com/rules/axe/4.12/td-has-header)。"
529
556
  },
530
557
  "core/audits/accessibility/td-has-header.js | failureTitle": {
531
558
  "message": "大型 `<table>` 中的 `<td>` 元素没有表格标头。"
@@ -534,7 +561,7 @@
534
561
  "message": "大型 `<table>` 中的 `<td>` 元素具有一个或多个表格标头。"
535
562
  },
536
563
  "core/audits/accessibility/td-headers-attr.js | description": {
537
- "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请确保那些使用 `[headers]` 属性的 `<td>` 单元格仅引用同一个表格中的其他单元格,这样做可提升屏幕阅读器用户的体验。[详细了解 `headers` 属性](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)。"
564
+ "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。请确保那些使用 `[headers]` 属性的 `<td>` 单元格仅引用同一个表格中的其他单元格,这样做可提升屏幕阅读器用户的体验。[详细了解 `headers` 属性](https://dequeuniversity.com/rules/axe/4.12/td-headers-attr)。"
538
565
  },
539
566
  "core/audits/accessibility/td-headers-attr.js | failureTitle": {
540
567
  "message": "`<table>` 元素中使用 `[headers]` 属性的单元格引用了在同一表格中找不到的元素 `id`。"
@@ -543,7 +570,7 @@
543
570
  "message": "`<table>` 元素中使用 `[headers]` 属性的单元格引用的是同一表格中的单元格。"
544
571
  },
545
572
  "core/audits/accessibility/th-has-data-cells.js | description": {
546
- "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。确保表格标头始终引用特定一组单元格可以提升屏幕阅读器用户的体验。[详细了解表格标头](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)。"
573
+ "message": "屏幕阅读器提供了更便于用户浏览表格内容的功能。确保表格标头始终引用特定一组单元格可以提升屏幕阅读器用户的体验。[详细了解表格标头](https://dequeuniversity.com/rules/axe/4.12/th-has-data-cells)。"
547
574
  },
548
575
  "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
549
576
  "message": "`<th>` 元素和 `[role=\"columnheader\"/\"rowheader\"]` 的元素缺少它们所描述的数据单元格。"
@@ -552,7 +579,7 @@
552
579
  "message": "`<th>` 元素和 `[role=\"columnheader\"/\"rowheader\"]` 的元素具备它们所描述的数据单元格。"
553
580
  },
554
581
  "core/audits/accessibility/valid-lang.js | description": {
555
- "message": "为元素指定有效的 [BCP 47 语言](https://www.w3.org/International/questions/qa-choosing-language-tags#question)有助于确保屏幕阅读器正确读出文字。[了解如何使用 `lang` 属性](https://dequeuniversity.com/rules/axe/4.11/valid-lang)。"
582
+ "message": "为元素指定有效的 [BCP 47 语言](https://www.w3.org/International/questions/qa-choosing-language-tags#question)有助于确保屏幕阅读器正确读出文字。[了解如何使用 `lang` 属性](https://dequeuniversity.com/rules/axe/4.12/valid-lang)。"
556
583
  },
557
584
  "core/audits/accessibility/valid-lang.js | failureTitle": {
558
585
  "message": "`[lang]` 属性缺少有效值"
@@ -561,7 +588,7 @@
561
588
  "message": "`[lang]` 属性的值有效"
562
589
  },
563
590
  "core/audits/accessibility/video-caption.js | description": {
564
- "message": "如果视频提供了字幕,失聪用户和听障用户便能更轻松地获取此视频中的信息。[详细了解视频字幕](https://dequeuniversity.com/rules/axe/4.11/video-caption)。"
591
+ "message": "如果视频提供了字幕,失聪用户和听障用户便能更轻松地获取此视频中的信息。[详细了解视频字幕](https://dequeuniversity.com/rules/axe/4.12/video-caption)。"
565
592
  },
566
593
  "core/audits/accessibility/video-caption.js | failureTitle": {
567
594
  "message": "`<video>` 元素缺少带 `[kind=\"captions\"]` 的 `<track>` 元素。"
@@ -569,6 +596,51 @@
569
596
  "core/audits/accessibility/video-caption.js | title": {
570
597
  "message": "`<video>` 元素包含带 `[kind=\"captions\"]` 的 `<track>` 元素"
571
598
  },
599
+ "core/audits/agentic/agent-accessibility-tree.js | columnElement": {
600
+ "message": "违反规则的元素"
601
+ },
602
+ "core/audits/agentic/agent-accessibility-tree.js | columnRule": {
603
+ "message": "违反的规则"
604
+ },
605
+ "core/audits/agentic/agent-accessibility-tree.js | description": {
606
+ "message": "结构良好的[无障碍功能树](http://goo.gle/lighthouse-agentic-a11y)可帮助 AI 智能体浏览网页并与之互动。"
607
+ },
608
+ "core/audits/agentic/agent-accessibility-tree.js | displayValuePassed": {
609
+ "message": "所有审核均已通过"
610
+ },
611
+ "core/audits/agentic/agent-accessibility-tree.js | failedSectionTitle": {
612
+ "message": "未通过的审核"
613
+ },
614
+ "core/audits/agentic/agent-accessibility-tree.js | failureTitle": {
615
+ "message": "无障碍功能树格式不正确"
616
+ },
617
+ "core/audits/agentic/agent-accessibility-tree.js | title": {
618
+ "message": "无障碍功能树格式正确"
619
+ },
620
+ "core/audits/agentic/llms-txt.js | description": {
621
+ "message": "如果 llms.txt 文件不符合建议的准则,大语言模型可能无法理解您对网站抓取或模型训练的具体意图。[llms.txt](https://llmstxt.org/) 文件应采用 Markdown 格式,且其中至少包含一个 H1 标题。"
622
+ },
623
+ "core/audits/agentic/llms-txt.js | displayValueHttpBadCode": {
624
+ "message": "请求失败,HTTP 状态为 {statusCode}"
625
+ },
626
+ "core/audits/agentic/llms-txt.js | explanation": {
627
+ "message": "llms.txt 提取失败"
628
+ },
629
+ "core/audits/agentic/llms-txt.js | failureTitle": {
630
+ "message": "llms.txt 不符合建议的准则"
631
+ },
632
+ "core/audits/agentic/llms-txt.js | missingH1": {
633
+ "message": "文件缺少必需的 H1 标题(例如“# 标题”)。"
634
+ },
635
+ "core/audits/agentic/llms-txt.js | missingLinks": {
636
+ "message": "文件似乎不包含任何链接。"
637
+ },
638
+ "core/audits/agentic/llms-txt.js | title": {
639
+ "message": "llms.txt 符合建议"
640
+ },
641
+ "core/audits/agentic/llms-txt.js | tooShort": {
642
+ "message": "文件内容过短,可能存在问题。"
643
+ },
572
644
  "core/audits/autocomplete.js | columnCurrent": {
573
645
  "message": "当前值"
574
646
  },
@@ -596,6 +668,18 @@
596
668
  "core/audits/autocomplete.js | warningOrder": {
597
669
  "message": "检查令牌的顺序:{snippet} 中的“{tokens}”"
598
670
  },
671
+ "core/audits/baseline.js | columnFeature": {
672
+ "message": "Web 功能"
673
+ },
674
+ "core/audits/baseline.js | columnStatus": {
675
+ "message": "Baseline 状态"
676
+ },
677
+ "core/audits/baseline.js | description": {
678
+ "message": "列出网页上使用的 Web 功能及其截至 {date}的 Baseline 状态。[详细了解 Baseline](https://webstatus.dev/)。"
679
+ },
680
+ "core/audits/baseline.js | title": {
681
+ "message": "Baseline 功能"
682
+ },
599
683
  "core/audits/bf-cache.js | actionableFailureType": {
600
684
  "message": "有待解决"
601
685
  },
@@ -771,7 +855,7 @@
771
855
  "message": "页面包含 HTML DOCTYPE"
772
856
  },
773
857
  "core/audits/dobetterweb/geolocation-on-start.js | description": {
774
- "message": "如果网站在缺少上下文的情况下请求位置信息,会导致用户不信任网站或感到困惑。建议将请求与用户操作进行绑定。[详细了解地理定位权限](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)"
858
+ "message": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. [Learn more about the geolocation permission](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/). Also consider using the [`<geolocation>` element](https://developer.chrome.com/blog/geolocation-html-element)."
775
859
  },
776
860
  "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
777
861
  "message": "在网页加载时请求地理定位权限"
@@ -1262,6 +1346,93 @@
1262
1346
  "core/audits/valid-source-maps.js | title": {
1263
1347
  "message": "页面包含有效的源代码映射"
1264
1348
  },
1349
+ "core/audits/webmcp-form-coverage.js | columnForm": {
1350
+ "message": "表单"
1351
+ },
1352
+ "core/audits/webmcp-form-coverage.js | description": {
1353
+ "message": "请考虑为下方列出的表单添加 [WebMCP](http://goo.gle/webmcp-docs) 注释。这有助于 AI 智能体更可靠地识别这些表单并与其互动。"
1354
+ },
1355
+ "core/audits/webmcp-form-coverage.js | displayValue": {
1356
+ "message": "{itemCount,plural, =1{1 个表单缺少注释}other{# 个表单缺少注释}}"
1357
+ },
1358
+ "core/audits/webmcp-form-coverage.js | title": {
1359
+ "message": "WebMCP 表单覆盖率"
1360
+ },
1361
+ "core/audits/webmcp-registered-tools.js | columnDeclarativeElement": {
1362
+ "message": "元素"
1363
+ },
1364
+ "core/audits/webmcp-registered-tools.js | columnDescription": {
1365
+ "message": "说明"
1366
+ },
1367
+ "core/audits/webmcp-registered-tools.js | columnImperativeLocation": {
1368
+ "message": "来源位置"
1369
+ },
1370
+ "core/audits/webmcp-registered-tools.js | columnInputSchema": {
1371
+ "message": "输入架构"
1372
+ },
1373
+ "core/audits/webmcp-registered-tools.js | columnTool": {
1374
+ "message": "工具名称"
1375
+ },
1376
+ "core/audits/webmcp-registered-tools.js | description": {
1377
+ "message": "列出分析时注册的 [WebMCP 工具](http://goo.gle/webmcp-docs)。"
1378
+ },
1379
+ "core/audits/webmcp-registered-tools.js | title": {
1380
+ "message": "已注册 WebMCP 工具"
1381
+ },
1382
+ "core/audits/webmcp-registered-tools.js | titleDeclarativeTools": {
1383
+ "message": "声明式工具"
1384
+ },
1385
+ "core/audits/webmcp-registered-tools.js | titleImperativeTools": {
1386
+ "message": "命令式工具"
1387
+ },
1388
+ "core/audits/webmcp-schema-validity.js | columnElement": {
1389
+ "message": "元素"
1390
+ },
1391
+ "core/audits/webmcp-schema-validity.js | columnIssue": {
1392
+ "message": "问题"
1393
+ },
1394
+ "core/audits/webmcp-schema-validity.js | description": {
1395
+ "message": "AI 智能体必须使用有效的 [WebMCP 架构](http://goo.gle/webmcp-docs),才能准确理解并顺畅调用各项工具。请修正浏览器报告的所有错误或警告。"
1396
+ },
1397
+ "core/audits/webmcp-schema-validity.js | failureTitle": {
1398
+ "message": "WebMCP 架构无效"
1399
+ },
1400
+ "core/audits/webmcp-schema-validity.js | missingOptionalParamName": {
1401
+ "message": "可选字段缺少“`name`”属性。添加此属性即可定义参数名称。"
1402
+ },
1403
+ "core/audits/webmcp-schema-validity.js | missingParamDescription": {
1404
+ "message": "请添加说明,让 AI 智能体能够更轻松地使用此表单。"
1405
+ },
1406
+ "core/audits/webmcp-schema-validity.js | missingRequiredParamName": {
1407
+ "message": "必填字段缺少“`name`”属性。添加此属性即可定义参数名称。"
1408
+ },
1409
+ "core/audits/webmcp-schema-validity.js | missingToolDescription": {
1410
+ "message": "缺少表单级“`tooldescription`”属性。添加此属性即可为 AI 智能体提供工具说明。"
1411
+ },
1412
+ "core/audits/webmcp-schema-validity.js | missingToolName": {
1413
+ "message": "缺少表单级“`toolname`”属性。添加此属性即可定义工具名称。"
1414
+ },
1415
+ "core/audits/webmcp-schema-validity.js | title": {
1416
+ "message": "WebMCP 架构有效"
1417
+ },
1418
+ "core/config/agentic-browsing-config.js | agentAccessibilityGroupDescription": {
1419
+ "message": "这些审核旨在强调相关最佳实践,以提升网站对 AI 智能体的无障碍性。"
1420
+ },
1421
+ "core/config/agentic-browsing-config.js | agentAccessibilityGroupTitle": {
1422
+ "message": "智能体无障碍性"
1423
+ },
1424
+ "core/config/agentic-browsing-config.js | agenticBrowsingCategoryDescription": {
1425
+ "message": "这些检查可确保网站具备高品质且[适合 AI 智能体浏览](https://goo.gle/lighthouse-agentic-web),并验证 WebMCP 集成的正确性。此类别仍在开发中,可能会发生变化。"
1426
+ },
1427
+ "core/config/agentic-browsing-config.js | agenticBrowsingCategoryTitle": {
1428
+ "message": "智能体浏览"
1429
+ },
1430
+ "core/config/agentic-browsing-config.js | webmcpGroupDescription": {
1431
+ "message": "验证 WebMCP 集成的审核。"
1432
+ },
1433
+ "core/config/agentic-browsing-config.js | webmcpGroupTitle": {
1434
+ "message": "WebMCP"
1435
+ },
1265
1436
  "core/config/default-config.js | a11yAriaGroupDescription": {
1266
1437
  "message": "这些提示旨在帮助改进 ARIA 在您的应用内的使用情况,从而改善辅助技术(例如屏幕阅读器)用户的体验。"
1267
1438
  },
@@ -1319,6 +1490,18 @@
1319
1490
  "core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
1320
1491
  "message": "表格和列表"
1321
1492
  },
1493
+ "core/config/default-config.js | agentAccessibilityGroupDescription": {
1494
+ "message": "这些审核旨在强调相关最佳实践,以提升网站对 AI 智能体的无障碍性。"
1495
+ },
1496
+ "core/config/default-config.js | agentAccessibilityGroupTitle": {
1497
+ "message": "智能体无障碍性"
1498
+ },
1499
+ "core/config/default-config.js | agenticBrowsingCategoryDescription": {
1500
+ "message": "这些检查可确保网站具备高品质且[适合 AI 智能体浏览](https://goo.gle/lighthouse-agentic-web),并验证 WebMCP 集成的正确性。此类别仍在开发中,可能会发生变化。"
1501
+ },
1502
+ "core/config/default-config.js | agenticBrowsingCategoryTitle": {
1503
+ "message": "智能体浏览"
1504
+ },
1322
1505
  "core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
1323
1506
  "message": "浏览器兼容性"
1324
1507
  },
@@ -1391,6 +1574,12 @@
1391
1574
  "core/config/default-config.js | seoMobileGroupTitle": {
1392
1575
  "message": "适合移动设备"
1393
1576
  },
1577
+ "core/config/default-config.js | webmcpGroupDescription": {
1578
+ "message": "验证 WebMCP 集成的审核。"
1579
+ },
1580
+ "core/config/default-config.js | webmcpGroupTitle": {
1581
+ "message": "WebMCP"
1582
+ },
1394
1583
  "core/gather/driver/environment.js | warningSlowHostCpu": {
1395
1584
  "message": "所测试设备的 CPU 速度似乎未达到 Lighthouse 的预期。这可能会对您的性能得分产生负面影响。详细了解如何[校准相应的 CPU 速度减慢倍数](https://github.com/GoogleChrome/lighthouse/blob/main/docs/throttling.md#cpu-throttling)。"
1396
1585
  },
@@ -1871,6 +2060,12 @@
1871
2060
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
1872
2061
  "message": "对 SVGUseElement 中 data: URL 的支持已被弃用,日后将被移除。"
1873
2062
  },
2063
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DocumentCreateEventKeyboardEvents": {
2064
+ "message": "document.createEvent('KeyboardEvents') 已弃用,将被移除。请改用 new KeyboardEvent()。"
2065
+ },
2066
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DocumentCreateEventTransitionEvent": {
2067
+ "message": "document.createEvent('TransitionEvent') 已弃用,将被移除。请改用 new TransitionEvent()。"
2068
+ },
1874
2069
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ExampleBrowserProcessDeprecation": {
1875
2070
  "message": "This is an example for showing the code required for a browser process reported deprecation."
1876
2071
  },
@@ -1982,6 +2177,9 @@
1982
2177
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoSupportsFullscreen": {
1983
2178
  "message": "HTMLVideoElement.webkitSupportsFullscreen 已被弃用。请改用 Document.fullscreenEnabled。"
1984
2179
  },
2180
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PreventSvgFilterPaint": {
2181
+ "message": "SVG 滤镜无法应用于跨源 iframe、受限 iframe(比如沙盒化 iframe)或插件。"
2182
+ },
1985
2183
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpFalse": {
1986
2184
  "message": "约束条件 DtlsSrtpKeyAgreement 已被移除。您已为此约束条件指定 false 值,系统会将这种情况解读为尝试使用已被移除的 SDES key negotiation 方法。此功能已被移除;请改用支持 DTLS key negotiation的服务。"
1987
2185
  },
@@ -2090,6 +2288,30 @@
2090
2288
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | title": {
2091
2289
  "message": "使用高效的缓存生命周期"
2092
2290
  },
2291
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | description": {
2292
+ "message": "必须声明字符编码。您可以在 HTML 的前 1024 个字节中使用 meta charset 标记来声明,也可以在 HTTP 响应标头 Content-Type 中进行声明。[详细了解如何声明字符编码](https://developer.chrome.com/docs/insights/charset/)。"
2293
+ },
2294
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | failedHttpHeader": {
2295
+ "message": "未在 HTTP 标头中声明字符集"
2296
+ },
2297
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | failedMetaCharsetLate": {
2298
+ "message": "在前 1024 个字节之后使用元标记声明字符集"
2299
+ },
2300
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | failedMetaCharsetMissing": {
2301
+ "message": "未使用元标记声明字符集"
2302
+ },
2303
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | failedMetaCharsetUnknown": {
2304
+ "message": "无法从跟踪记录中确定 meta charset 声明"
2305
+ },
2306
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | passingHttpHeader": {
2307
+ "message": "在 HTTP 标头中声明字符集"
2308
+ },
2309
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | passingMetaCharsetEarly": {
2310
+ "message": "在前 1024 个字节中使用元标记声明字符集"
2311
+ },
2312
+ "node_modules/@paulirish/trace_engine/models/trace/insights/CharacterSet.js | title": {
2313
+ "message": "声明字符编码"
2314
+ },
2093
2315
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
2094
2316
  "message": "大型 DOM 可能会增加样式计算和布局自动重排的用时,从而影响网页响应速度。大型 DOM 也会增加内存用量。[了解如何避免 DOM 规模过大](https://developer.chrome.com/docs/performance/insights/dom-size)。"
2095
2317
  },
@@ -2297,8 +2519,11 @@
2297
2519
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityShouldBeApplied": {
2298
2520
  "message": "应该应用 fetchpriority=high"
2299
2521
  },
2522
+ "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityShouldBeAppliedToImagePreload": {
2523
+ "message": "应将 fetchpriority=high 应用于图片预加载请求"
2524
+ },
2300
2525
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lazyLoadNotApplied": {
2301
- "message": "未应用延迟加载"
2526
+ "message": "LCP 资源不应使用 loading=lazy"
2302
2527
  },
2303
2528
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lcpLoadDelay": {
2304
2529
  "message": "LCP 图片会在最开始检测到后的 {PH1}之后加载完成。"
@@ -2931,7 +3156,7 @@
2931
3156
  "message": "您只需使用 [Ezoic Leap](https://pubdash.ezoic.com/leap) 并启用“`Lazy Load Images`”设置,即可将屏幕外图片的加载时间延迟到需要它们时。"
2932
3157
  },
2933
3158
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": {
2934
- "message": "您只需使用 [Ezoic Leap](https://pubdash.ezoic.com/leap) 并启用“`Script Delay`”设置,即可延迟加载非关键 JS。"
3159
+ "message": "您只需使用 [Ezoic Leap](https://pubdash.ezoic.com/leap) 并启用“`Script Delay`”,即可延迟加载非关键 JS。"
2935
3160
  },
2936
3161
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": {
2937
3162
  "message": "您只需使用 [Ezoic Cloud Caching](https://pubdash.ezoic.com/leap/caching),即可将内容缓存到我们的全球网络,从而缩短第一个字节呈现前的加载用时。"