chrome-devtools-frontend 1.0.1526630 → 1.0.1528866

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 (319) hide show
  1. package/docs/ui_engineering.md +159 -0
  2. package/eslint.config.mjs +6 -1
  3. package/front_end/core/i18n/i18nImpl.ts +6 -1
  4. package/front_end/core/protocol_client/protocol_client.ts +1 -1
  5. package/front_end/core/root/Runtime.ts +28 -4
  6. package/front_end/core/sdk/CSSMatchedStyles.ts +50 -7
  7. package/front_end/core/sdk/CSSRule.ts +35 -6
  8. package/front_end/core/sdk/Connections.ts +2 -1
  9. package/front_end/core/sdk/DOMModel.ts +4 -0
  10. package/front_end/core/sdk/DebuggerModel.ts +5 -1
  11. package/front_end/core/sdk/NetworkManager.ts +214 -31
  12. package/front_end/core/sdk/PreloadingModel.ts +82 -17
  13. package/front_end/core/sdk/RehydratingConnection.snapshot.txt +1 -1
  14. package/front_end/core/sdk/RehydratingConnection.ts +29 -4
  15. package/front_end/core/sdk/ScopeTreeCache.ts +8 -3
  16. package/front_end/core/sdk/SourceMap.ts +37 -11
  17. package/front_end/core/sdk/SourceMapManager.ts +13 -2
  18. package/front_end/core/sdk/SourceMapScopesInfo.ts +17 -0
  19. package/front_end/core/sdk/TargetManager.ts +0 -22
  20. package/front_end/core/sdk/TraceObject.ts +8 -7
  21. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +81 -0
  22. package/front_end/entrypoints/inspector_main/InspectorMain.ts +3 -1
  23. package/front_end/entrypoints/main/GlobalAiButton.ts +1 -0
  24. package/front_end/entrypoints/main/MainImpl.ts +20 -25
  25. package/front_end/generated/InspectorBackendCommands.js +3 -2
  26. package/front_end/generated/protocol.ts +17 -3
  27. package/front_end/models/ai_assistance/BuiltInAi.ts +111 -0
  28. package/front_end/models/ai_assistance/ai_assistance.ts +53 -24
  29. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +105 -0
  30. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +6 -1
  31. package/front_end/models/extensions/ExtensionView.ts +3 -0
  32. package/front_end/models/javascript_metadata/NativeFunctions.js +23 -27
  33. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +31 -29
  34. package/front_end/models/persistence/EditFileSystemView.ts +1 -0
  35. package/front_end/models/source_map_scopes/NamesResolver.ts +5 -11
  36. package/front_end/models/stack_trace/Trie.ts +9 -0
  37. package/front_end/models/trace/lantern/types/Lantern.ts +1 -1
  38. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -0
  39. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -0
  40. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +120 -113
  41. package/front_end/panels/ai_assistance/PatchWidget.ts +9 -8
  42. package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +2 -0
  43. package/front_end/panels/ai_assistance/components/ChatView.ts +29 -29
  44. package/front_end/panels/ai_assistance/components/UserActionRow.ts +1 -0
  45. package/front_end/panels/animation/AnimationTimeline.ts +1 -0
  46. package/front_end/panels/application/CookieItemsView.ts +1 -0
  47. package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -0
  48. package/front_end/panels/application/ServiceWorkerCacheViews.ts +2 -0
  49. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +11 -5
  50. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +2 -2
  51. package/front_end/panels/application/preloading/components/PreloadingString.ts +7 -5
  52. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +22 -10
  53. package/front_end/panels/changes/CombinedDiffView.ts +1 -0
  54. package/front_end/panels/console/ConsoleInsightTeaser.ts +106 -0
  55. package/front_end/panels/console/ConsolePanel.ts +2 -0
  56. package/front_end/panels/console/ConsolePrompt.ts +12 -2
  57. package/front_end/panels/console/ConsoleSidebar.ts +1 -1
  58. package/front_end/panels/console/ConsoleView.ts +12 -0
  59. package/front_end/panels/console/ConsoleViewMessage.ts +27 -0
  60. package/front_end/panels/{explain → console}/PromptBuilder.ts +12 -7
  61. package/front_end/panels/console/console.ts +6 -0
  62. package/front_end/panels/console/consoleInsightTeaser.css +55 -0
  63. package/front_end/panels/coverage/CoverageListView.ts +29 -11
  64. package/front_end/panels/coverage/CoverageView.ts +292 -284
  65. package/front_end/panels/coverage/coverageView.css +17 -0
  66. package/front_end/panels/elements/ComputedStyleWidget.ts +1 -0
  67. package/front_end/panels/elements/LayoutPane.ts +1 -0
  68. package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -0
  69. package/front_end/panels/elements/StylePropertyTreeElement.ts +5 -1
  70. package/front_end/panels/elements/stylePropertiesTreeOutline.css +17 -0
  71. package/front_end/panels/emulation/DeviceModeView.ts +2 -0
  72. package/front_end/panels/explain/ActionDelegate.ts +1 -2
  73. package/front_end/panels/explain/components/ConsoleInsight.ts +14 -12
  74. package/front_end/panels/explain/explain.ts +0 -1
  75. package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -1
  76. package/front_end/panels/layer_viewer/Layers3DView.ts +2 -0
  77. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +1 -0
  78. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +1 -0
  79. package/front_end/panels/media/MainView.ts +1 -0
  80. package/front_end/panels/media/TickingFlameChart.ts +2 -0
  81. package/front_end/panels/network/BlockedURLsPane.ts +111 -85
  82. package/front_end/panels/network/EventSourceMessagesView.ts +1 -0
  83. package/front_end/panels/network/NetworkItemView.ts +1 -0
  84. package/front_end/panels/network/NetworkLogView.ts +9 -7
  85. package/front_end/panels/network/NetworkOverview.ts +1 -0
  86. package/front_end/panels/network/RequestCookiesView.ts +1 -0
  87. package/front_end/panels/network/RequestHTMLView.ts +1 -0
  88. package/front_end/panels/network/RequestInitiatorView.ts +1 -0
  89. package/front_end/panels/network/RequestPayloadView.ts +1 -0
  90. package/front_end/panels/network/RequestPreviewView.ts +1 -0
  91. package/front_end/panels/network/RequestResponseView.ts +1 -0
  92. package/front_end/panels/network/RequestTimingView.ts +2 -0
  93. package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -0
  94. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -0
  95. package/front_end/panels/network/components/RequestHeadersView.ts +2 -0
  96. package/front_end/panels/network/components/RequestTrustTokensView.ts +2 -0
  97. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -0
  98. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +2 -0
  99. package/front_end/panels/profiler/HeapSnapshotView.ts +7 -0
  100. package/front_end/panels/profiler/IsolateSelector.ts +1 -0
  101. package/front_end/panels/profiler/LiveHeapProfileView.ts +1 -0
  102. package/front_end/panels/profiler/ProfileView.ts +1 -0
  103. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
  104. package/front_end/panels/recorder/RecorderPanel.ts +2 -0
  105. package/front_end/panels/screencast/ScreencastView.ts +1 -0
  106. package/front_end/panels/search/SearchView.ts +1 -0
  107. package/front_end/panels/settings/AISettingsTab.ts +3 -3
  108. package/front_end/panels/settings/WorkspaceSettingsTab.ts +2 -0
  109. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
  110. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +12 -0
  111. package/front_end/panels/sources/BreakpointsView.ts +1 -0
  112. package/front_end/panels/sources/DebuggerPlugin.ts +1 -0
  113. package/front_end/panels/sources/UISourceCodeFrame.ts +17 -2
  114. package/front_end/panels/timeline/README.md +2 -2
  115. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -1
  116. package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -3
  117. package/front_end/panels/timeline/TimelineLayersView.ts +1 -0
  118. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +114 -37
  119. package/front_end/panels/timeline/TimelinePanel.ts +43 -62
  120. package/front_end/panels/timeline/TimelineTreeView.ts +1 -0
  121. package/front_end/panels/timeline/components/LiveMetricsView.ts +4 -8
  122. package/front_end/panels/timeline/components/Sidebar.ts +2 -0
  123. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
  124. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +7 -7
  125. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
  126. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +4 -4
  127. package/front_end/panels/web_audio/WebAudioView.ts +1 -0
  128. package/front_end/third_party/chromium/README.chromium +1 -1
  129. package/front_end/third_party/lighthouse/README.chromium +2 -2
  130. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1530 -2426
  131. package/front_end/third_party/lighthouse/locales/ar-XB.json +107 -455
  132. package/front_end/third_party/lighthouse/locales/ar.json +107 -455
  133. package/front_end/third_party/lighthouse/locales/bg.json +96 -444
  134. package/front_end/third_party/lighthouse/locales/ca.json +96 -444
  135. package/front_end/third_party/lighthouse/locales/cs.json +96 -444
  136. package/front_end/third_party/lighthouse/locales/da.json +96 -444
  137. package/front_end/third_party/lighthouse/locales/de.json +96 -444
  138. package/front_end/third_party/lighthouse/locales/el.json +96 -444
  139. package/front_end/third_party/lighthouse/locales/en-GB.json +96 -444
  140. package/front_end/third_party/lighthouse/locales/en-US.json +116 -467
  141. package/front_end/third_party/lighthouse/locales/en-XA.json +93 -441
  142. package/front_end/third_party/lighthouse/locales/en-XL.json +116 -467
  143. package/front_end/third_party/lighthouse/locales/es-419.json +96 -444
  144. package/front_end/third_party/lighthouse/locales/es.json +96 -444
  145. package/front_end/third_party/lighthouse/locales/fi.json +96 -444
  146. package/front_end/third_party/lighthouse/locales/fil.json +96 -444
  147. package/front_end/third_party/lighthouse/locales/fr.json +96 -444
  148. package/front_end/third_party/lighthouse/locales/he.json +118 -466
  149. package/front_end/third_party/lighthouse/locales/hi.json +96 -444
  150. package/front_end/third_party/lighthouse/locales/hr.json +100 -448
  151. package/front_end/third_party/lighthouse/locales/hu.json +96 -444
  152. package/front_end/third_party/lighthouse/locales/id.json +96 -444
  153. package/front_end/third_party/lighthouse/locales/it.json +96 -444
  154. package/front_end/third_party/lighthouse/locales/ja.json +96 -444
  155. package/front_end/third_party/lighthouse/locales/ko.json +97 -445
  156. package/front_end/third_party/lighthouse/locales/lt.json +96 -444
  157. package/front_end/third_party/lighthouse/locales/lv.json +97 -445
  158. package/front_end/third_party/lighthouse/locales/nl.json +96 -444
  159. package/front_end/third_party/lighthouse/locales/no.json +96 -444
  160. package/front_end/third_party/lighthouse/locales/pl.json +96 -444
  161. package/front_end/third_party/lighthouse/locales/pt-PT.json +96 -444
  162. package/front_end/third_party/lighthouse/locales/pt.json +97 -445
  163. package/front_end/third_party/lighthouse/locales/ro.json +97 -445
  164. package/front_end/third_party/lighthouse/locales/ru.json +96 -444
  165. package/front_end/third_party/lighthouse/locales/sk.json +96 -444
  166. package/front_end/third_party/lighthouse/locales/sl.json +96 -444
  167. package/front_end/third_party/lighthouse/locales/sr-Latn.json +96 -444
  168. package/front_end/third_party/lighthouse/locales/sr.json +96 -444
  169. package/front_end/third_party/lighthouse/locales/sv.json +96 -444
  170. package/front_end/third_party/lighthouse/locales/ta.json +96 -444
  171. package/front_end/third_party/lighthouse/locales/te.json +97 -445
  172. package/front_end/third_party/lighthouse/locales/th.json +96 -444
  173. package/front_end/third_party/lighthouse/locales/tr.json +96 -444
  174. package/front_end/third_party/lighthouse/locales/uk.json +96 -444
  175. package/front_end/third_party/lighthouse/locales/vi.json +96 -444
  176. package/front_end/third_party/lighthouse/locales/zh-HK.json +96 -444
  177. package/front_end/third_party/lighthouse/locales/zh-TW.json +97 -445
  178. package/front_end/third_party/lighthouse/locales/zh.json +96 -444
  179. package/front_end/third_party/lighthouse/report/bundle.d.ts +8 -14
  180. package/front_end/third_party/lighthouse/report/bundle.js +10 -49
  181. package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
  182. package/front_end/third_party/web-vitals/README.chromium +5 -8
  183. package/front_end/third_party/web-vitals/package/README.md +191 -152
  184. package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.d.ts +0 -1
  185. package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.js +0 -1
  186. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.d.ts +2 -2
  187. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.js +45 -26
  188. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.d.ts +2 -2
  189. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.js +3 -3
  190. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +10 -10
  191. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +307 -206
  192. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
  193. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +69 -49
  194. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.d.ts +2 -2
  195. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.js +2 -2
  196. package/front_end/third_party/web-vitals/package/dist/modules/index.d.ts +0 -1
  197. package/front_end/third_party/web-vitals/package/dist/modules/index.js +0 -1
  198. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +33 -0
  199. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +111 -0
  200. package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.d.ts +4 -0
  201. package/front_end/third_party/web-vitals/package/dist/modules/{attribution/deprecated.js → lib/LCPEntryManager.js} +6 -7
  202. package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.d.ts +6 -0
  203. package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.js +44 -0
  204. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.js +1 -1
  205. package/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js +1 -1
  206. package/front_end/third_party/web-vitals/package/dist/modules/lib/getActivationStart.js +1 -1
  207. package/front_end/third_party/web-vitals/package/dist/modules/lib/getNavigationEntry.js +5 -7
  208. package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.d.ts +1 -1
  209. package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.js +9 -12
  210. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.d.ts +1 -0
  211. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.js +52 -33
  212. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +0 -2
  213. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js +2 -2
  214. package/front_end/third_party/web-vitals/package/dist/modules/lib/initUnique.d.ts +6 -0
  215. package/front_end/third_party/web-vitals/package/dist/modules/{deprecated.js → lib/initUnique.js} +11 -4
  216. package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.js +3 -6
  217. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/interactionCountPolyfill.js +6 -6
  218. package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.d.ts → whenIdleOrHidden.d.ts} +1 -1
  219. package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.js → whenIdleOrHidden.js} +10 -8
  220. package/front_end/third_party/web-vitals/package/dist/modules/onCLS.js +17 -35
  221. package/front_end/third_party/web-vitals/package/dist/modules/onFCP.js +3 -5
  222. package/front_end/third_party/web-vitals/package/dist/modules/onINP.d.ts +9 -7
  223. package/front_end/third_party/web-vitals/package/dist/modules/onINP.js +27 -19
  224. package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +33 -26
  225. package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.js +2 -4
  226. package/front_end/third_party/web-vitals/package/dist/modules/types/base.d.ts +6 -5
  227. package/front_end/third_party/web-vitals/package/dist/modules/types/cls.d.ts +5 -3
  228. package/front_end/third_party/web-vitals/package/dist/modules/types/inp.d.ts +80 -33
  229. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +6 -2
  230. package/front_end/third_party/web-vitals/package/dist/modules/types.d.ts +28 -4
  231. package/front_end/third_party/web-vitals/package/dist/modules/types.js +0 -1
  232. package/front_end/third_party/web-vitals/package/package.json +4 -10
  233. package/front_end/third_party/web-vitals/package/src/attribution/index.ts +0 -1
  234. package/front_end/third_party/web-vitals/package/src/attribution/onCLS.ts +58 -33
  235. package/front_end/third_party/web-vitals/package/src/attribution/onFCP.ts +4 -4
  236. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +382 -258
  237. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +96 -69
  238. package/front_end/third_party/web-vitals/package/src/attribution/onTTFB.ts +3 -3
  239. package/front_end/third_party/web-vitals/package/src/index.ts +0 -1
  240. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +146 -0
  241. package/front_end/third_party/web-vitals/package/src/{attribution/deprecated.ts → lib/LCPEntryManager.ts} +6 -9
  242. package/front_end/third_party/web-vitals/package/src/lib/LayoutShiftManager.ts +50 -0
  243. package/front_end/third_party/web-vitals/package/src/lib/bindReporter.ts +1 -1
  244. package/front_end/third_party/web-vitals/package/src/lib/generateUniqueID.ts +1 -1
  245. package/front_end/third_party/web-vitals/package/src/lib/getActivationStart.ts +1 -1
  246. package/front_end/third_party/web-vitals/package/src/lib/getNavigationEntry.ts +5 -8
  247. package/front_end/third_party/web-vitals/package/src/lib/getSelector.ts +12 -12
  248. package/front_end/third_party/web-vitals/package/src/lib/getVisibilityWatcher.ts +57 -35
  249. package/front_end/third_party/web-vitals/package/src/lib/initMetric.ts +2 -2
  250. package/front_end/third_party/web-vitals/package/src/{deprecated.ts → lib/initUnique.ts} +14 -8
  251. package/front_end/third_party/web-vitals/package/src/lib/observe.ts +3 -11
  252. package/front_end/third_party/web-vitals/package/src/lib/polyfills/interactionCountPolyfill.ts +12 -6
  253. package/front_end/third_party/web-vitals/package/src/lib/{whenIdle.ts → whenIdleOrHidden.ts} +10 -8
  254. package/front_end/third_party/web-vitals/package/src/onCLS.ts +17 -38
  255. package/front_end/third_party/web-vitals/package/src/onFCP.ts +3 -6
  256. package/front_end/third_party/web-vitals/package/src/onINP.ts +33 -28
  257. package/front_end/third_party/web-vitals/package/src/onLCP.ts +36 -29
  258. package/front_end/third_party/web-vitals/package/src/onTTFB.ts +2 -5
  259. package/front_end/third_party/web-vitals/package/src/types/base.ts +5 -5
  260. package/front_end/third_party/web-vitals/package/src/types/cls.ts +5 -3
  261. package/front_end/third_party/web-vitals/package/src/types/inp.ts +88 -33
  262. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +6 -2
  263. package/front_end/third_party/web-vitals/package/src/types.ts +47 -4
  264. package/front_end/third_party/web-vitals/patches/0001-Add-onEachInteraction-to-onINP-options.patch +75 -0
  265. package/front_end/third_party/web-vitals/rebuild.sh +32 -18
  266. package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +5 -10
  267. package/front_end/third_party/web-vitals/web-vitals.ts +0 -2
  268. package/front_end/ui/components/docs/console_insight/basic.ts +3 -2
  269. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +2 -0
  270. package/front_end/ui/components/text_editor/TextEditor.ts +0 -2
  271. package/front_end/ui/legacy/InspectorView.ts +2 -0
  272. package/front_end/ui/legacy/SplitWidget.ts +2 -0
  273. package/front_end/ui/legacy/TabbedPane.ts +1 -0
  274. package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -0
  275. package/front_end/ui/legacy/UIUtils.ts +8 -19
  276. package/front_end/ui/legacy/ViewManager.ts +1 -0
  277. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +7 -20
  278. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +2 -0
  279. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -0
  280. package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -0
  281. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +1 -0
  282. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -0
  283. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -0
  284. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -0
  285. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -0
  286. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -0
  287. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +2 -0
  288. package/front_end/ui/visual_logging/KnownContextValues.ts +17 -0
  289. package/mcp/README.md +7 -0
  290. package/mcp/mcp.ts +8 -0
  291. package/package.json +1 -1
  292. package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +0 -34
  293. package/front_end/third_party/web-vitals/package/attribution.d.ts +0 -16
  294. package/front_end/third_party/web-vitals/package/attribution.js +0 -18
  295. package/front_end/third_party/web-vitals/package/dist/modules/attribution/deprecated.d.ts +0 -7
  296. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.d.ts +0 -11
  297. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.js +0 -46
  298. package/front_end/third_party/web-vitals/package/dist/modules/deprecated.d.ts +0 -5
  299. package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.d.ts +0 -31
  300. package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.js +0 -107
  301. package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.d.ts +0 -1
  302. package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.js +0 -22
  303. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.d.ts +0 -7
  304. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.js +0 -147
  305. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.d.ts +0 -1
  306. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.js +0 -25
  307. package/front_end/third_party/web-vitals/package/dist/modules/onFID.d.ts +0 -13
  308. package/front_end/third_party/web-vitals/package/dist/modules/onFID.js +0 -70
  309. package/front_end/third_party/web-vitals/package/dist/modules/types/fid.d.ts +0 -46
  310. package/front_end/third_party/web-vitals/package/dist/modules/types/fid.js +0 -16
  311. package/front_end/third_party/web-vitals/package/src/attribution/onFID.ts +0 -62
  312. package/front_end/third_party/web-vitals/package/src/lib/interactions.ts +0 -139
  313. package/front_end/third_party/web-vitals/package/src/lib/onHidden.ts +0 -23
  314. package/front_end/third_party/web-vitals/package/src/lib/polyfills/firstInputPolyfill.ts +0 -174
  315. package/front_end/third_party/web-vitals/package/src/onFID.ts +0 -105
  316. package/front_end/third_party/web-vitals/package/src/types/fid.ts +0 -65
  317. package/front_end/ui/components/text_editor/textEditor.css +0 -18
  318. package/front_end/ui/legacy/inlineButton.css +0 -22
  319. /package/front_end/entrypoints/{rehydrated_devtools_app/rehydrated_devtools_app.ts → trace_app/trace_app.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "core/audits/accessibility/accesskeys.js | description": {
3
- "message": "คีย์การเข้าถึงให้ผู้ใช้โฟกัสที่ส่วนหนึ่งของหน้าได้อย่างรวดเร็ว คีย์การเข้าถึงแต่ละรายการต้องไม่ซ้ำกันเพื่อให้ไปยังส่วนต่างๆ ได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับคีย์การเข้าถึง](https://dequeuniversity.com/rules/axe/4.10/accesskeys)"
3
+ "message": "คีย์การเข้าถึงให้ผู้ใช้โฟกัสที่ส่วนหนึ่งของหน้าได้อย่างรวดเร็ว คีย์การเข้าถึงแต่ละรายการต้องไม่ซ้ำกันเพื่อให้ไปยังส่วนต่างๆ ได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับคีย์การเข้าถึง](https://dequeuniversity.com/rules/axe/4.11/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": "`role` ของ ARIA แต่ละรายการรองรับชุดย่อยของแอตทริบิวต์ `aria-*` ที่เจาะจง หากรายการเหล่านี้ไม่ตรงกันจะทำให้แอตทริบิวต์ `aria-*` ไม่ถูกต้อง [ดูวิธีจับคู่แอตทริบิวต์ ARIA กับบทบาท](https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr)"
12
+ "message": "`role` ของ ARIA แต่ละรายการรองรับชุดย่อยของแอตทริบิวต์ `aria-*` ที่เจาะจง หากรายการเหล่านี้ไม่ตรงกันจะทำให้แอตทริบิวต์ `aria-*` ไม่ถูกต้อง [ดูวิธีจับคู่แอตทริบิวต์ ARIA กับบทบาท](https://dequeuniversity.com/rules/axe/4.11/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](https://dequeuniversity.com/rules/axe/4.10/aria-allowed-role)"
21
+ "message": "องค์ประกอบ HTML หลายรายการสามารถได้รับการกำหนดบทบาท ARIA บางอย่างเท่านั้น การใช้บทบาท ARIA โดยที่ไม่ได้รับอนุญาตอาจรบกวนการเข้าถึงหน้าเว็บได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาท ARIA](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-command-name)"
30
+ "message": "เมื่อองค์ประกอบไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านองค์ประกอบนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้องค์ประกอบดังกล่าวไม่ได้ [ดูวิธีทําให้องค์ประกอบคําสั่งเข้าถึงได้ง่ายขึ้น](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-conditional-attr)"
39
+ "message": "แอตทริบิวต์ ARIA บางรายการอนุญาตในองค์ประกอบภายใต้เงื่อนไขบางประการเท่านั้น [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ ARIA แบบมีเงื่อนไข](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-deprecated-role)"
48
+ "message": "เทคโนโลยีความช่วยเหลือพิเศษอาจประมวลผลบทบาท ARIA ที่เลิกใช้งานแล้วอย่างไม่ถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาท ARIA ที่เลิกใช้งาน](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-dialog-name)"
57
+ "message": "องค์ประกอบกล่องโต้ตอบ ARIA ที่ไม่มีชื่อที่เข้าถึงได้อาจทำให้ผู้ใช้โปรแกรมอ่านหน้าจอแยกแยะจุดประสงค์ขององค์ประกอบเหล่านี้ไม่ได้ [ดูวิธีทำให้องค์ประกอบกล่องโต้ตอบ ARIA เข้าถึงได้ง่ายขึ้น](https://dequeuniversity.com/rules/axe/4.11/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": "เทคโนโลยีความช่วยเหลือพิเศษ (เช่น โปรแกรมอ่านหน้าจอ) ทำงานไม่สอดคล้องกันเมื่อตั้งค่า `aria-hidden=\"true\"` ในเอกสาร `<body>` [ดูว่า `aria-hidden` ส่งผลอย่างไรต่อส่วนเนื้อหาของเอกสาร](https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body)"
66
+ "message": "เทคโนโลยีความช่วยเหลือพิเศษ (เช่น โปรแกรมอ่านหน้าจอ) ทำงานไม่สอดคล้องกันเมื่อตั้งค่า `aria-hidden=\"true\"` ในเอกสาร `<body>` [ดูว่า `aria-hidden` ส่งผลอย่างไรต่อส่วนเนื้อหาของเอกสาร](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)"
67
67
  },
68
68
  "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
69
69
  "message": "มี `[aria-hidden=\"true\"]` ปรากฏในเอกสาร `<body>`"
@@ -72,7 +72,7 @@
72
72
  "message": "ไม่มี `[aria-hidden=\"true\"]` ปรากฏในเอกสาร `<body>`"
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.10/aria-hidden-focus)"
75
+ "message": "เอลิเมนต์ที่โฟกัสได้ลำดับต่อลงมาในเอลิเมนต์ `[aria-hidden=\"true\"]` ป้องกันไม่ให้ผู้ใช้เทคโนโลยีความช่วยเหลือพิเศษ (เช่น โปรแกรมอ่านหน้าจอ) ใช้เอลิเมนต์การโต้ตอบเหล่านั้นได้ [ดูว่า `aria-hidden` ส่งผลอย่างไรต่อองค์ประกอบที่โฟกัสได้](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-input-field-name)"
84
+ "message": "เมื่อช่องป้อนข้อมูลไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านปุ่มนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้ช่องป้อนข้อมูลดังกล่าวไม่ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับป้ายกำกับช่องป้อนข้อมูล](https://dequeuniversity.com/rules/axe/4.11/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`](https://dequeuniversity.com/rules/axe/4.10/aria-meter-name)"
93
+ "message": "เมื่อองค์ประกอบเครื่องวัดไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านองค์ประกอบนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้องค์ประกอบดังกล่าวไม่ได้ [ดูวิธีตั้งชื่อองค์ประกอบ`meter`](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-progressbar-name)"
102
+ "message": "เมื่อองค์ประกอบ `progressbar` ไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านองค์ประกอบนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้องค์ประกอบดังกล่าวไม่ได้ [ดูวิธีติดป้ายกํากับองค์ประกอบ `progressbar`](https://dequeuniversity.com/rules/axe/4.11/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 ที่ไม่อนุญาต](https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr)"
111
+ "message": "การใช้แอตทริบิวต์ ARIA ในบทบาทที่ไม่ได้รับอนุญาตอาจหมายความว่าไม่มีการสื่อสารข้อมูลสำคัญไปยังผู้ใช้เทคโนโลยีความช่วยเหลือพิเศษ [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาท ARIA ที่ไม่อนุญาต](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-required-attr)"
120
+ "message": "บทบาท ARIA บางบทบาทกำหนดให้มีแอตทริบิวต์ที่อธิบายสถานะขององค์ประกอบให้โปรแกรมอ่านหน้าจอทราบ [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทและแอตทริบิวต์ที่จำเป็น](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-required-children)"
129
+ "message": "บทบาท ARIA ระดับบนสุดบางบทบาทต้องมีบทบาทย่อยที่เจาะจงเพื่อใช้ฟังก์ชันการช่วยเหลือพิเศษตามวัตถุประสงค์ [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทและองค์ประกอบย่อยที่จำเป็น](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-required-parent)"
138
+ "message": "บทบาท ARIA ย่อยบางบทบาทต้องอยู่ในบทบาทระดับบนสุดที่เจาะจงเพื่อให้ใช้ฟังก์ชันการช่วยเหลือพิเศษตามวัตถุประสงค์ได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาท ARIA และองค์ประกอบระดับบนสุดที่จำเป็น](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-roles)"
147
+ "message": "บทบาท ARIA ต้องมีค่าที่ถูกต้องเพื่อใช้ฟังก์ชันการช่วยเหลือพิเศษตามวัตถุประสงค์ [ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาท ARIA ที่ถูกต้อง](https://dequeuniversity.com/rules/axe/4.11/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 ถือว่าโหนดเป็น 1 วลี แต่ระบบจะไม่ประกาศองค์ประกอบสืบทอดที่โฟกัสได้ขององค์ประกอบ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `role=text`](https://dequeuniversity.com/rules/axe/4.10/aria-text)"
156
+ "message": "การเพิ่ม `role=text` รอบโหนดข้อความที่แบ่งตามมาร์กอัปจะทำให้ VoiceOver ถือว่าโหนดเป็น 1 วลี แต่ระบบจะไม่ประกาศองค์ประกอบสืบทอดที่โฟกัสได้ขององค์ประกอบ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `role=text`](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-toggle-field-name)"
165
+ "message": "เมื่อช่องสลับไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านปุ่มนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้ช่องสลับดังกล่าวไม่ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องสลับ](https://dequeuniversity.com/rules/axe/4.11/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`](https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name)"
174
+ "message": "เมื่อองค์ประกอบเคล็ดลับเครื่องมือไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านองค์ประกอบนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้องค์ประกอบดังกล่าวไม่ได้ [ดูวิธีตั้งชื่อองค์ประกอบ`tooltip`](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-treeitem-name)"
183
+ "message": "เมื่อองค์ประกอบ `treeitem` ไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านองค์ประกอบนั้นโดยใช้ชื่อทั่วไป ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้องค์ประกอบดังกล่าวไม่ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดป้ายกำกับองค์ประกอบ `treeitem`](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-valid-attr-value)"
192
+ "message": "เทคโนโลยีความช่วยเหลือพิเศษ เช่น โปรแกรมอ่านหน้าจอ จะตีความแอตทริบิวต์ ARIA ที่มีค่าไม่ถูกต้องไม่ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าที่ถูกต้องสําหรับแอตทริบิวต์ ARIA](https://dequeuniversity.com/rules/axe/4.11/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.10/aria-valid-attr)"
201
+ "message": "เทคโนโลยีความช่วยเหลือพิเศษ เช่น โปรแกรมอ่านหน้าจอ จะตีความแอตทริบิวต์ ARIA ที่มีชื่อไม่ถูกต้องไม่ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ ARIA ที่ถูกต้อง](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)"
202
202
  },
203
203
  "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
204
204
  "message": "แอตทริบิวต์ `[aria-*]` ไม่ถูกต้องหรือสะกดผิด"
@@ -210,7 +210,7 @@
210
210
  "message": "องค์ประกอบที่ไม่ผ่านการตรวจสอบ"
211
211
  },
212
212
  "core/audits/accessibility/button-name.js | description": {
213
- "message": "เมื่อปุ่มไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านปุ่มนั้นว่า \"ปุ่ม\" ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้ปุ่มดังกล่าวไม่ได้ [ดูวิธีทําให้ปุ่มเข้าถึงได้ง่ายขึ้น](https://dequeuniversity.com/rules/axe/4.10/button-name)"
213
+ "message": "เมื่อปุ่มไม่มีชื่อที่เข้าถึงได้ โปรแกรมอ่านหน้าจอจะอ่านปุ่มนั้นว่า \"ปุ่ม\" ซึ่งทำให้ผู้ที่ต้องใช้โปรแกรมอ่านหน้าจอใช้ปุ่มดังกล่าวไม่ได้ [ดูวิธีทําให้ปุ่มเข้าถึงได้ง่ายขึ้น](https://dequeuniversity.com/rules/axe/4.11/button-name)"
214
214
  },
215
215
  "core/audits/accessibility/button-name.js | failureTitle": {
216
216
  "message": "ปุ่มต่างๆ ไม่มีชื่อสำหรับการช่วยเหลือพิเศษ"
@@ -219,7 +219,7 @@
219
219
  "message": "ปุ่มต่างๆ มีชื่อสำหรับการช่วยเหลือพิเศษ"
220
220
  },
221
221
  "core/audits/accessibility/bypass.js | description": {
222
- "message": "การเพิ่มวิธีข้ามผ่านเนื้อหาที่ซ้ำกันช่วยให้ผู้ใช้แป้นพิมพ์ไปยังส่วนต่างๆ ของหน้าได้อย่างมีประสิทธิภาพมากขึ้น [ดูข้อมูลเพิ่มเติมเกี่ยวกับการบล็อกการข้าม](https://dequeuniversity.com/rules/axe/4.10/bypass)"
222
+ "message": "การเพิ่มวิธีข้ามผ่านเนื้อหาที่ซ้ำกันช่วยให้ผู้ใช้แป้นพิมพ์ไปยังส่วนต่างๆ ของหน้าได้อย่างมีประสิทธิภาพมากขึ้น [ดูข้อมูลเพิ่มเติมเกี่ยวกับการบล็อกการข้าม](https://dequeuniversity.com/rules/axe/4.11/bypass)"
223
223
  },
224
224
  "core/audits/accessibility/bypass.js | failureTitle": {
225
225
  "message": "หน้าเว็บไม่มีส่วนหัว ลิงก์การข้าม หรือภูมิภาคของจุดสังเกต"
@@ -228,7 +228,7 @@
228
228
  "message": "หน้าเว็บมีส่วนหัว ลิงก์การข้าม หรือภูมิภาคของจุดสังเกต"
229
229
  },
230
230
  "core/audits/accessibility/color-contrast.js | description": {
231
- "message": "ข้อความคอนทราสต์ต่ำมักทำให้ผู้ใช้จำนวนมากอ่านได้ยากหรืออ่านไม่ได้เลย [ดูวิธีทำให้สีมีคอนทราสต์เพียงพอ](https://dequeuniversity.com/rules/axe/4.10/color-contrast)"
231
+ "message": "ข้อความคอนทราสต์ต่ำมักทำให้ผู้ใช้จำนวนมากอ่านได้ยากหรืออ่านไม่ได้เลย [ดูวิธีทำให้สีมีคอนทราสต์เพียงพอ](https://dequeuniversity.com/rules/axe/4.11/color-contrast)"
232
232
  },
233
233
  "core/audits/accessibility/color-contrast.js | failureTitle": {
234
234
  "message": "สีพื้นหลังและสีพื้นหน้ามีอัตราส่วนคอนทราสต์ไม่เพียงพอ"
@@ -237,7 +237,7 @@
237
237
  "message": "สีพื้นหลังและสีพื้นหน้ามีอัตราส่วนคอนทราสต์ที่เพียงพอ"
238
238
  },
239
239
  "core/audits/accessibility/definition-list.js | description": {
240
- "message": "เมื่อมีการทำเครื่องหมายรายการคำจำกัดความอย่างไม่ถูกต้อง โปรแกรมอ่านหน้าจออาจสร้างเอาต์พุตที่ทำให้สับสนหรือไม่แม่นยำ [ดูวิธีจัดโครงสร้างรายการคําจำกัดความอย่างถูกต้อง](https://dequeuniversity.com/rules/axe/4.10/definition-list)"
240
+ "message": "เมื่อมีการทำเครื่องหมายรายการคำจำกัดความอย่างไม่ถูกต้อง โปรแกรมอ่านหน้าจออาจสร้างเอาต์พุตที่ทำให้สับสนหรือไม่แม่นยำ [ดูวิธีจัดโครงสร้างรายการคําจำกัดความอย่างถูกต้อง](https://dequeuniversity.com/rules/axe/4.11/definition-list)"
241
241
  },
242
242
  "core/audits/accessibility/definition-list.js | failureTitle": {
243
243
  "message": "`<dl>` ไม่ได้มีเพียงกลุ่ม `<dt>` และ `<dd>` หรือองค์ประกอบ `<script>` `<template>` หรือ `<div>` ที่เรียงลำดับอย่างถูกต้อง"
@@ -246,7 +246,7 @@
246
246
  "message": "`<dl>` มีเพียงกลุ่ม `<dt>` และ `<dd>` หรือองค์ประกอบ `<script>` `<template>` หรือ `<div>` ที่เรียงลำดับอย่างถูกต้อง"
247
247
  },
248
248
  "core/audits/accessibility/dlitem.js | description": {
249
- "message": "รายการย่อยของคำจำกัดความ (`<dt>` และ `<dd>`) ต้องรวมอยู่ในองค์ประกอบ `<dl>` ระดับบนสุดเพื่อดูแลให้โปรแกรมอ่านหน้าจออ่านได้อย่างถูกต้อง [ดูวิธีจัดโครงสร้างรายการคําจำกัดความอย่างถูกต้อง](https://dequeuniversity.com/rules/axe/4.10/dlitem)"
249
+ "message": "รายการย่อยของคำจำกัดความ (`<dt>` และ `<dd>`) ต้องรวมอยู่ในองค์ประกอบ `<dl>` ระดับบนสุดเพื่อดูแลให้โปรแกรมอ่านหน้าจออ่านได้อย่างถูกต้อง [ดูวิธีจัดโครงสร้างรายการคําจำกัดความอย่างถูกต้อง](https://dequeuniversity.com/rules/axe/4.11/dlitem)"
250
250
  },
251
251
  "core/audits/accessibility/dlitem.js | failureTitle": {
252
252
  "message": "รายการย่อยของคำจำกัดความไม่ได้รวมอยู่ในองค์ประกอบ `<dl>`"
@@ -255,7 +255,7 @@
255
255
  "message": "รายการย่อยของคำจำกัดความรวมอยู่ในองค์ประกอบ `<dl>`"
256
256
  },
257
257
  "core/audits/accessibility/document-title.js | description": {
258
- "message": "ชื่อช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอทราบถึงภาพรวมของหน้า และผู้ใช้เครื่องมือค้นหาจะดูความเกี่ยวข้องของหน้ากับการค้นหาของตนจากชื่อเป็นหลัก [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อเอกสาร](https://dequeuniversity.com/rules/axe/4.10/document-title)"
258
+ "message": "ชื่อช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอทราบถึงภาพรวมของหน้า และผู้ใช้เครื่องมือค้นหาจะดูความเกี่ยวข้องของหน้ากับการค้นหาของตนจากชื่อเป็นหลัก [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อเอกสาร](https://dequeuniversity.com/rules/axe/4.11/document-title)"
259
259
  },
260
260
  "core/audits/accessibility/document-title.js | failureTitle": {
261
261
  "message": "เอกสารไม่มีองค์ประกอบ `<title>`"
@@ -264,7 +264,7 @@
264
264
  "message": "เอกสารมีองค์ประกอบ `<title>`"
265
265
  },
266
266
  "core/audits/accessibility/duplicate-id-aria.js | description": {
267
- "message": "ค่าของรหัส ARIA ต้องไม่ซ้ำกันเพื่อป้องกันไม่ให้เทคโนโลยีความช่วยเหลือพิเศษมองข้ามอินสแตนซ์อื่นๆ [ดูวิธีแก้ไขรหัส ARIA ที่ซ้ำกัน](https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria)"
267
+ "message": "ค่าของรหัส ARIA ต้องไม่ซ้ำกันเพื่อป้องกันไม่ให้เทคโนโลยีความช่วยเหลือพิเศษมองข้ามอินสแตนซ์อื่นๆ [ดูวิธีแก้ไขรหัส ARIA ที่ซ้ำกัน](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)"
268
268
  },
269
269
  "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
270
270
  "message": "มีรหัส ARIA ซ้ำกัน"
@@ -273,7 +273,7 @@
273
273
  "message": "ไม่มีรหัส ARIA ที่ซ้ำกัน"
274
274
  },
275
275
  "core/audits/accessibility/empty-heading.js | description": {
276
- "message": "ส่วนหัวที่ไม่มีเนื้อหาหรือมีข้อความที่ไม่สามารถเข้าถึงได้จะทำให้ผู้ใช้โปรแกรมอ่านหน้าจอไม่สามารถเข้าถึงข้อมูลบนโครงสร้างของหน้าเว็บ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัว](https://dequeuniversity.com/rules/axe/4.10/empty-heading)"
276
+ "message": "ส่วนหัวที่ไม่มีเนื้อหาหรือมีข้อความที่ไม่สามารถเข้าถึงได้จะทำให้ผู้ใช้โปรแกรมอ่านหน้าจอไม่สามารถเข้าถึงข้อมูลบนโครงสร้างของหน้าเว็บ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัว](https://dequeuniversity.com/rules/axe/4.11/empty-heading)"
277
277
  },
278
278
  "core/audits/accessibility/empty-heading.js | failureTitle": {
279
279
  "message": "องค์ประกอบส่วนหัวไม่มีเนื้อหา"
@@ -282,7 +282,7 @@
282
282
  "message": "องค์ประกอบส่วนหัวทั้งหมดมีเนื้อหา"
283
283
  },
284
284
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
285
- "message": "ช่องในฟอร์มที่มีป้ายกำกับหลายรายการอาจทำให้เทคโนโลยีความช่วยเหลือพิเศษ (เช่น โปรแกรมอ่านหน้าจอ) สร้างความสับสนให้กับผู้ใช้ได้ โดยอาจอ่านป้ายกำกับแรก ป้ายกำกับสุดท้าย หรืออ่านทุกป้ายกำกับ [ดูวิธีใช้ป้ายกำกับในแบบฟอร์ม](https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels)"
285
+ "message": "ช่องในฟอร์มที่มีป้ายกำกับหลายรายการอาจทำให้เทคโนโลยีความช่วยเหลือพิเศษ (เช่น โปรแกรมอ่านหน้าจอ) สร้างความสับสนให้กับผู้ใช้ได้ โดยอาจอ่านป้ายกำกับแรก ป้ายกำกับสุดท้าย หรืออ่านทุกป้ายกำกับ [ดูวิธีใช้ป้ายกำกับในแบบฟอร์ม](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)"
286
286
  },
287
287
  "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
288
288
  "message": "ช่องในฟอร์มมีป้ายกำกับหลายรายการ"
@@ -291,7 +291,7 @@
291
291
  "message": "ไม่มีช่องในฟอร์มช่องใดมีป้ายกำกับหลายรายการ"
292
292
  },
293
293
  "core/audits/accessibility/frame-title.js | description": {
294
- "message": "ผู้ใช้โปรแกรมอ่านหน้าจอต้องใช้ชื่อเฟรมเพื่ออธิบายเนื้อหาของเฟรม [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อเฟรม](https://dequeuniversity.com/rules/axe/4.10/frame-title)"
294
+ "message": "ผู้ใช้โปรแกรมอ่านหน้าจอต้องใช้ชื่อเฟรมเพื่ออธิบายเนื้อหาของเฟรม [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อเฟรม](https://dequeuniversity.com/rules/axe/4.11/frame-title)"
295
295
  },
296
296
  "core/audits/accessibility/frame-title.js | failureTitle": {
297
297
  "message": "องค์ประกอบ `<frame>` หรือ `<iframe>` ไม่มีชื่อ"
@@ -300,7 +300,7 @@
300
300
  "message": "องค์ประกอบ `<frame>` หรือ `<iframe>` มีชื่อ"
301
301
  },
302
302
  "core/audits/accessibility/heading-order.js | description": {
303
- "message": "ส่วนหัวที่เรียงลำดับอย่างถูกต้องโดยไม่มีการข้ามระดับจะถ่ายทอดโครงสร้างทางอรรถศาสตร์ของหน้าที่ทำให้การไปยังส่วนต่างๆ และการทำความเข้าใจง่ายมากขึ้นเมื่อใช้เทคโนโลยีความช่วยเหลือพิเศษ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลำดับส่วนหัว](https://dequeuniversity.com/rules/axe/4.10/heading-order)"
303
+ "message": "ส่วนหัวที่เรียงลำดับอย่างถูกต้องโดยไม่มีการข้ามระดับจะถ่ายทอดโครงสร้างทางอรรถศาสตร์ของหน้าที่ทำให้การไปยังส่วนต่างๆ และการทำความเข้าใจง่ายมากขึ้นเมื่อใช้เทคโนโลยีความช่วยเหลือพิเศษ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลำดับส่วนหัว](https://dequeuniversity.com/rules/axe/4.11/heading-order)"
304
304
  },
305
305
  "core/audits/accessibility/heading-order.js | failureTitle": {
306
306
  "message": "เอลิเมนต์ส่วนหัวไม่ปรากฏตามลำดับในเอลิเมนต์ลำดับต่อๆ ลงมา"
@@ -309,7 +309,7 @@
309
309
  "message": "เอลิเมนต์ส่วนหัวปรากฏตามลำดับในเอลิเมนต์ลำดับต่อๆ ลงมา"
310
310
  },
311
311
  "core/audits/accessibility/html-has-lang.js | description": {
312
- "message": "หากหน้าเว็บไม่ได้ระบุแอตทริบิวต์ `lang` โปรแกรมอ่านหน้าจอจะถือว่าหน้าดังกล่าวใช้ภาษาเริ่มต้นที่ผู้ใช้เลือกเมื่อตั้งค่าโปรแกรมอ่านหน้าจอ หากที่จริงแล้วหน้าดังกล่าวไม่ได้ใช้ภาษาเริ่มต้น โปรแกรมอ่านหน้าจออาจอ่านข้อความในหน้าได้ไม่ถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `lang`](https://dequeuniversity.com/rules/axe/4.10/html-has-lang)"
312
+ "message": "หากหน้าเว็บไม่ได้ระบุแอตทริบิวต์ `lang` โปรแกรมอ่านหน้าจอจะถือว่าหน้าดังกล่าวใช้ภาษาเริ่มต้นที่ผู้ใช้เลือกเมื่อตั้งค่าโปรแกรมอ่านหน้าจอ หากที่จริงแล้วหน้าดังกล่าวไม่ได้ใช้ภาษาเริ่มต้น โปรแกรมอ่านหน้าจออาจอ่านข้อความในหน้าได้ไม่ถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `lang`](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)"
313
313
  },
314
314
  "core/audits/accessibility/html-has-lang.js | failureTitle": {
315
315
  "message": "องค์ประกอบ `<html>` ไม่มีแอตทริบิวต์ `[lang]`"
@@ -318,7 +318,7 @@
318
318
  "message": "องค์ประกอบ `<html>` มีแอตทริบิวต์ `[lang]`"
319
319
  },
320
320
  "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.10/html-lang-valid)"
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)"
322
322
  },
323
323
  "core/audits/accessibility/html-lang-valid.js | failureTitle": {
324
324
  "message": "องค์ประกอบ `<html>` ไม่มีค่าที่ถูกต้องสำหรับแอตทริบิวต์ `[lang]`"
@@ -327,7 +327,7 @@
327
327
  "message": "องค์ประกอบ `<html>` มีค่าที่ถูกต้องสำหรับแอตทริบิวต์ `[lang]`"
328
328
  },
329
329
  "core/audits/accessibility/html-xml-lang-mismatch.js | description": {
330
- "message": "หากหน้าเว็บไม่ได้ระบุภาษาที่สอดคล้องกัน โปรแกรมอ่านหน้าจออาจอ่านข้อความของหน้าเว็บไม่ถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `lang`](https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch)"
330
+ "message": "หากหน้าเว็บไม่ได้ระบุภาษาที่สอดคล้องกัน โปรแกรมอ่านหน้าจออาจอ่านข้อความของหน้าเว็บไม่ถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `lang`](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)"
331
331
  },
332
332
  "core/audits/accessibility/html-xml-lang-mismatch.js | failureTitle": {
333
333
  "message": "องค์ประกอบ `<html>` ไม่มีแอตทริบิวต์ `[xml:lang]` ที่มีภาษาฐานเดียวกันกับแอตทริบิวต์ `[lang]`"
@@ -336,7 +336,7 @@
336
336
  "message": "องค์ประกอบ `<html>` มีแอตทริบิวต์ `[xml:lang]` ที่มีภาษาฐานเดียวกันกับแอตทริบิวต์ `[lang]`"
337
337
  },
338
338
  "core/audits/accessibility/identical-links-same-purpose.js | description": {
339
- "message": "ลิงก์ที่มีปลายทางเดียวกันควรจะมีคำอธิบายเดียวกัน เพื่อช่วยให้ผู้ใช้เข้าใจวัตถุประสงค์ของลิงก์และตัดสินใจว่าจะคลิกเพื่อไปตามลิงก์หรือไม่ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลิงก์ที่เหมือนกัน](https://dequeuniversity.com/rules/axe/4.10/identical-links-same-purpose)"
339
+ "message": "ลิงก์ที่มีปลายทางเดียวกันควรจะมีคำอธิบายเดียวกัน เพื่อช่วยให้ผู้ใช้เข้าใจวัตถุประสงค์ของลิงก์และตัดสินใจว่าจะคลิกเพื่อไปตามลิงก์หรือไม่ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลิงก์ที่เหมือนกัน](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)"
340
340
  },
341
341
  "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
342
342
  "message": "ลิงก์ที่เหมือนกันมีวัตถุประสงค์ต่างกัน"
@@ -345,7 +345,7 @@
345
345
  "message": "ลิงก์ที่เหมือนกันมีวัตถุประสงค์เดียวกัน"
346
346
  },
347
347
  "core/audits/accessibility/image-alt.js | description": {
348
- "message": "องค์ประกอบเพื่อการให้ข้อมูลควรมีข้อความสำรองที่สั้นกระชับและสื่อความหมาย การใช้แอตทริบิวต์ Alt ที่ว่างเปล่าจะเป็นการเพิกเฉยต่อองค์ประกอบเพื่อการตกแต่ง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `alt`](https://dequeuniversity.com/rules/axe/4.10/image-alt)"
348
+ "message": "องค์ประกอบเพื่อการให้ข้อมูลควรมีข้อความสำรองที่สั้นกระชับและสื่อความหมาย การใช้แอตทริบิวต์ Alt ที่ว่างเปล่าจะเป็นการเพิกเฉยต่อองค์ประกอบเพื่อการตกแต่ง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `alt`](https://dequeuniversity.com/rules/axe/4.11/image-alt)"
349
349
  },
350
350
  "core/audits/accessibility/image-alt.js | failureTitle": {
351
351
  "message": "องค์ประกอบรูปภาพไม่มีแอตทริบิวต์ `[alt]`"
@@ -354,7 +354,7 @@
354
354
  "message": "องค์ประกอบรูปภาพมีแอตทริบิวต์ `[alt]`"
355
355
  },
356
356
  "core/audits/accessibility/image-redundant-alt.js | description": {
357
- "message": "องค์ประกอบเพื่อการให้ข้อมูลควรมีข้อความสำรองที่สั้นกระชับและสื่อความหมาย ข้อความสำรองที่เหมือนกันทุกประการกับข้อความที่อยู่ติดกับลิงก์หรือรูปภาพอาจทำให้ผู้ใช้โปรแกรมอ่านหน้าจอสับสนได้เนื่องจากระบบจะอ่านข้อความ 2 ครั้ง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `alt`](https://dequeuniversity.com/rules/axe/4.10/image-redundant-alt)"
357
+ "message": "องค์ประกอบเพื่อการให้ข้อมูลควรมีข้อความสำรองที่สั้นกระชับและสื่อความหมาย ข้อความสำรองที่เหมือนกันทุกประการกับข้อความที่อยู่ติดกับลิงก์หรือรูปภาพอาจทำให้ผู้ใช้โปรแกรมอ่านหน้าจอสับสนได้เนื่องจากระบบจะอ่านข้อความ 2 ครั้ง [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `alt`](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)"
358
358
  },
359
359
  "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
360
360
  "message": "องค์ประกอบรูปภาพมีแอตทริบิวต์ `[alt]` ที่เป็นข้อความซ้ำซ้อน"
@@ -363,7 +363,7 @@
363
363
  "message": "องค์ประกอบรูปภาพไม่มีแอตทริบิวต์ `[alt]` ที่เป็นข้อความซ้ำซ้อน"
364
364
  },
365
365
  "core/audits/accessibility/input-button-name.js | description": {
366
- "message": "การเพิ่มข้อความช่วยการเข้าถึงซึ่งมองเห็นได้ลงในปุ่มอินพุตอาจช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอเข้าใจวัตถุประสงค์ของปุ่มอินพุต [ดูข้อมูลเพิ่มเติมเกี่ยวกับปุ่มอินพุต](https://dequeuniversity.com/rules/axe/4.10/input-button-name)"
366
+ "message": "การเพิ่มข้อความช่วยการเข้าถึงซึ่งมองเห็นได้ลงในปุ่มอินพุตอาจช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอเข้าใจวัตถุประสงค์ของปุ่มอินพุต [ดูข้อมูลเพิ่มเติมเกี่ยวกับปุ่มอินพุต](https://dequeuniversity.com/rules/axe/4.11/input-button-name)"
367
367
  },
368
368
  "core/audits/accessibility/input-button-name.js | failureTitle": {
369
369
  "message": "ปุ่มอินพุตไม่มีข้อความที่มองเห็นได้ชัดเจน"
@@ -372,7 +372,7 @@
372
372
  "message": "ปุ่มอินพุตมีข้อความที่มองเห็นได้ชัดเจน"
373
373
  },
374
374
  "core/audits/accessibility/input-image-alt.js | description": {
375
- "message": "เมื่อมีการใช้รูปภาพเป็นปุ่ม `<input>` การระบุข้อความสำรองจะช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอเข้าใจวัตถุประสงค์ของปุ่มได้ [ดูข้อมูลเกี่ยวกับข้อความแสดงแทนของรูปภาพที่ป้อน](https://dequeuniversity.com/rules/axe/4.10/input-image-alt)"
375
+ "message": "เมื่อมีการใช้รูปภาพเป็นปุ่ม `<input>` การระบุข้อความสำรองจะช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอเข้าใจวัตถุประสงค์ของปุ่มได้ [ดูข้อมูลเกี่ยวกับข้อความแสดงแทนของรูปภาพที่ป้อน](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)"
376
376
  },
377
377
  "core/audits/accessibility/input-image-alt.js | failureTitle": {
378
378
  "message": "องค์ประกอบ `<input type=\"image\">` ไม่มีข้อความ `[alt]`"
@@ -381,7 +381,7 @@
381
381
  "message": "องค์ประกอบ `<input type=\"image\">` มีข้อความ `[alt]`"
382
382
  },
383
383
  "core/audits/accessibility/label-content-name-mismatch.js | description": {
384
- "message": "ป้ายกำกับข้อความที่มองเห็นได้ซึ่งไม่ตรงกับชื่อที่เข้าถึงได้อาจทำให้ผู้ใช้โปรแกรมอ่านหน้าจอสับสน [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อที่เข้าถึงได้](https://dequeuniversity.com/rules/axe/4.10/label-content-name-mismatch)"
384
+ "message": "ป้ายกำกับข้อความที่มองเห็นได้ซึ่งไม่ตรงกับชื่อที่เข้าถึงได้อาจทำให้ผู้ใช้โปรแกรมอ่านหน้าจอสับสน [ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อที่เข้าถึงได้](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)"
385
385
  },
386
386
  "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
387
387
  "message": "องค์ประกอบที่มีป้ายกำกับข้อความที่มองเห็นได้ไม่มีชื่อที่เข้าถึงได้ที่ตรงกัน"
@@ -390,7 +390,7 @@
390
390
  "message": "องค์ประกอบที่มีป้ายกำกับข้อความที่มองเห็นได้มีชื่อที่เข้าถึงได้ที่ตรงกัน"
391
391
  },
392
392
  "core/audits/accessibility/label.js | description": {
393
- "message": "ป้ายกำกับช่วยดูแลให้เทคโนโลยีความช่วยเหลือพิเศษอย่างเช่น โปรแกรมอ่านหน้าจอ อ่านส่วนควบคุมฟอร์มได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับป้ายกํากับองค์ประกอบแบบฟอร์ม](https://dequeuniversity.com/rules/axe/4.10/label)"
393
+ "message": "ป้ายกำกับช่วยดูแลให้เทคโนโลยีความช่วยเหลือพิเศษอย่างเช่น โปรแกรมอ่านหน้าจอ อ่านส่วนควบคุมฟอร์มได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับป้ายกํากับองค์ประกอบแบบฟอร์ม](https://dequeuniversity.com/rules/axe/4.11/label)"
394
394
  },
395
395
  "core/audits/accessibility/label.js | failureTitle": {
396
396
  "message": "องค์ประกอบฟอร์มไม่มีป้ายกำกับที่เชื่อมโยง"
@@ -399,7 +399,7 @@
399
399
  "message": "องค์ประกอบฟอร์มมีป้ายกำกับที่เชื่อมโยงอยู่"
400
400
  },
401
401
  "core/audits/accessibility/landmark-one-main.js | description": {
402
- "message": "จุดสังเกตหลัก 1 จุดช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอไปยังส่วนต่างๆ ของหน้าเว็บได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับจุดสังเกต](https://dequeuniversity.com/rules/axe/4.10/landmark-one-main)"
402
+ "message": "จุดสังเกตหลัก 1 จุดช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอไปยังส่วนต่างๆ ของหน้าเว็บได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับจุดสังเกต](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)"
403
403
  },
404
404
  "core/audits/accessibility/landmark-one-main.js | failureTitle": {
405
405
  "message": "เอกสารไม่มีจุดสังเกตหลัก"
@@ -408,7 +408,7 @@
408
408
  "message": "เอกสารมีจุดสังเกตหลัก"
409
409
  },
410
410
  "core/audits/accessibility/link-in-text-block.js | description": {
411
- "message": "ข้อความคอนทราสต์ต่ำมักทำให้ผู้ใช้จำนวนมากอ่านได้ยากหรืออ่านไม่ได้เลย ข้อความลิงก์ที่มองเห็นได้ชัดเจนจะช่วยปรับปรุงประสบการณ์การใช้งานให้ดียิ่งขึ้นสำหรับผู้ใช้ที่มีสายตาเลือนราง [ดูวิธีทำให้ลิงก์โดดเด่น](https://dequeuniversity.com/rules/axe/4.10/link-in-text-block)"
411
+ "message": "ข้อความคอนทราสต์ต่ำมักทำให้ผู้ใช้จำนวนมากอ่านได้ยากหรืออ่านไม่ได้เลย ข้อความลิงก์ที่มองเห็นได้ชัดเจนจะช่วยปรับปรุงประสบการณ์การใช้งานให้ดียิ่งขึ้นสำหรับผู้ใช้ที่มีสายตาเลือนราง [ดูวิธีทำให้ลิงก์โดดเด่น](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)"
412
412
  },
413
413
  "core/audits/accessibility/link-in-text-block.js | failureTitle": {
414
414
  "message": "ต้องใช้สีจึงจะแยกความแตกต่างของลิงก์ได้"
@@ -417,7 +417,7 @@
417
417
  "message": "แยกความแตกต่างของลิงก์ได้โดยไม่ต้องใช้สี"
418
418
  },
419
419
  "core/audits/accessibility/link-name.js | description": {
420
- "message": "ข้อความลิงก์ (และข้อความสำรองสำหรับรูปภาพเมื่อใช้เป็นลิงก์) ที่แยกแยะได้ ไม่ซ้ำกัน และโฟกัสได้ ช่วยปรับปรุงประสบการณ์การไปยังส่วนต่างๆ สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูวิธีทำให้ลิงก์เข้าถึงได้](https://dequeuniversity.com/rules/axe/4.10/link-name)"
420
+ "message": "ข้อความลิงก์ (และข้อความสำรองสำหรับรูปภาพเมื่อใช้เป็นลิงก์) ที่แยกแยะได้ ไม่ซ้ำกัน และโฟกัสได้ ช่วยปรับปรุงประสบการณ์การไปยังส่วนต่างๆ สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูวิธีทำให้ลิงก์เข้าถึงได้](https://dequeuniversity.com/rules/axe/4.11/link-name)"
421
421
  },
422
422
  "core/audits/accessibility/link-name.js | failureTitle": {
423
423
  "message": "ลิงก์ไม่มีชื่อที่แยกแยะได้"
@@ -426,7 +426,7 @@
426
426
  "message": "ลิงก์มีชื่อที่แยกแยะได้"
427
427
  },
428
428
  "core/audits/accessibility/list.js | description": {
429
- "message": "โปรแกรมอ่านหน้าจอมีวิธีเฉพาะในการอ่านรายการ การดูแลให้รายการมีโครงสร้างที่ถูกต้องช่วยโปรแกรมอ่านหน้าจอในการอ่านเนื้อหา [ดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างรายการที่เหมาะสม](https://dequeuniversity.com/rules/axe/4.10/list)"
429
+ "message": "โปรแกรมอ่านหน้าจอมีวิธีเฉพาะในการอ่านรายการ การดูแลให้รายการมีโครงสร้างที่ถูกต้องช่วยโปรแกรมอ่านหน้าจอในการอ่านเนื้อหา [ดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างรายการที่เหมาะสม](https://dequeuniversity.com/rules/axe/4.11/list)"
430
430
  },
431
431
  "core/audits/accessibility/list.js | failureTitle": {
432
432
  "message": "รายการไม่ได้มีแต่องค์ประกอบ `<li>` และองค์ประกอบที่รองรับสคริปต์ (`<script>` และ`<template>`)"
@@ -435,7 +435,7 @@
435
435
  "message": "รายการมีเพียงองค์ประกอบ `<li>` และองค์ประกอบที่รองรับสคริปต์ (`<script>` และ `<template>`)"
436
436
  },
437
437
  "core/audits/accessibility/listitem.js | description": {
438
- "message": "โปรแกรมอ่านหน้าจอกำหนดให้รายการย่อย (`<li>`) อยู่ใน `<ul>` `<ol>` หรือ `<menu>` ระดับบนสุดเพื่อให้อ่านได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างรายการที่เหมาะสม](https://dequeuniversity.com/rules/axe/4.10/listitem)"
438
+ "message": "โปรแกรมอ่านหน้าจอกำหนดให้รายการย่อย (`<li>`) อยู่ใน `<ul>` `<ol>` หรือ `<menu>` ระดับบนสุดเพื่อให้อ่านได้อย่างถูกต้อง [ดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างรายการที่เหมาะสม](https://dequeuniversity.com/rules/axe/4.11/listitem)"
439
439
  },
440
440
  "core/audits/accessibility/listitem.js | failureTitle": {
441
441
  "message": "รายการข้อมูล (`<li>`) ไม่ได้อยู่ภายในองค์ประกอบระดับบนสุด `<ul>`, `<ol>` หรือ `<menu>`"
@@ -444,7 +444,7 @@
444
444
  "message": "รายการข้อมูล (`<li>`) อยู่ในองค์ประกอบระดับบนสุด `<ul>` `<ol>` หรือ `<menu>`"
445
445
  },
446
446
  "core/audits/accessibility/meta-refresh.js | description": {
447
- "message": "ผู้ใช้ไม่ได้คาดหวังให้หน้าเว็บรีเฟรชโดยอัตโนมัติ และการรีเฟรชหน้าเว็บจะย้ายโฟกัสกลับไปที่ด้านบนของหน้า ซึ่งอาจทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่สับสนหรือน่าหงุดหงิด [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตาแท็กการรีเฟรช](https://dequeuniversity.com/rules/axe/4.10/meta-refresh)"
447
+ "message": "ผู้ใช้ไม่ได้คาดหวังให้หน้าเว็บรีเฟรชโดยอัตโนมัติ และการรีเฟรชหน้าเว็บจะย้ายโฟกัสกลับไปที่ด้านบนของหน้า ซึ่งอาจทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่สับสนหรือน่าหงุดหงิด [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตาแท็กการรีเฟรช](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)"
448
448
  },
449
449
  "core/audits/accessibility/meta-refresh.js | failureTitle": {
450
450
  "message": "เอกสารใช้ `<meta http-equiv=\"refresh\">`"
@@ -453,7 +453,7 @@
453
453
  "message": "เอกสารนี้ไม่ได้ใช้ `<meta http-equiv=\"refresh\">`"
454
454
  },
455
455
  "core/audits/accessibility/meta-viewport.js | description": {
456
- "message": "การปิดใช้การซูมจะเป็นปัญหาสำหรับผู้ใช้ที่มีสายตาเลือนรางซึ่งต้องใช้การขยายหน้าจอเพื่อให้ดูเนื้อหาของหน้าเว็บได้อย่างชัดเจน [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตาแท็ก Viewport](https://dequeuniversity.com/rules/axe/4.10/meta-viewport)"
456
+ "message": "การปิดใช้การซูมจะเป็นปัญหาสำหรับผู้ใช้ที่มีสายตาเลือนรางซึ่งต้องใช้การขยายหน้าจอเพื่อให้ดูเนื้อหาของหน้าเว็บได้อย่างชัดเจน [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตาแท็ก Viewport](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)"
457
457
  },
458
458
  "core/audits/accessibility/meta-viewport.js | failureTitle": {
459
459
  "message": "มีการใช้ `[user-scalable=\"no\"]` ในองค์ประกอบ `<meta name=\"viewport\">`หรือแอตทริบิวต์ `[maximum-scale]` น้อยกว่า 5"
@@ -462,7 +462,7 @@
462
462
  "message": "ไม่มีการใช้ `[user-scalable=\"no\"]` ในองค์ประกอบ `<meta name=\"viewport\">` และแอตทริบิวต์ `[maximum-scale]` ไม่น้อยกว่า 5"
463
463
  },
464
464
  "core/audits/accessibility/object-alt.js | description": {
465
- "message": "โปรแกรมอ่านหน้าจอแปลเนื้อหาที่ไม่ใช่ข้อความไม่ได้ การเพิ่มข้อความแสดงแทนลงในองค์ประกอบ `<object>` ช่วยโปรแกรมอ่านหน้าจอถ่ายทอดความหมายให้แก่ผู้ใช้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความแสดงแทนสำหรับองค์ประกอบ `object`](https://dequeuniversity.com/rules/axe/4.10/object-alt)"
465
+ "message": "โปรแกรมอ่านหน้าจอแปลเนื้อหาที่ไม่ใช่ข้อความไม่ได้ การเพิ่มข้อความแสดงแทนลงในองค์ประกอบ `<object>` ช่วยโปรแกรมอ่านหน้าจอถ่ายทอดความหมายให้แก่ผู้ใช้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความแสดงแทนสำหรับองค์ประกอบ `object`](https://dequeuniversity.com/rules/axe/4.11/object-alt)"
466
466
  },
467
467
  "core/audits/accessibility/object-alt.js | failureTitle": {
468
468
  "message": "องค์ประกอบ `<object>` ไม่มีข้อความแสดงแทน"
@@ -471,7 +471,7 @@
471
471
  "message": "องค์ประกอบ `<object>` มีข้อความแสดงแทน"
472
472
  },
473
473
  "core/audits/accessibility/select-name.js | description": {
474
- "message": "องค์ประกอบแบบฟอร์มที่ไม่มีป้ายกำกับที่มีประสิทธิภาพจะสร้างประสบการณ์การใช้งานที่น่าผิดหวังสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบ `select`](https://dequeuniversity.com/rules/axe/4.10/select-name)"
474
+ "message": "องค์ประกอบแบบฟอร์มที่ไม่มีป้ายกำกับที่มีประสิทธิภาพจะสร้างประสบการณ์การใช้งานที่น่าผิดหวังสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบ `select`](https://dequeuniversity.com/rules/axe/4.11/select-name)"
475
475
  },
476
476
  "core/audits/accessibility/select-name.js | failureTitle": {
477
477
  "message": "องค์ประกอบ Select ไม่มีองค์ประกอบป้ายกำกับที่เชื่อมโยง"
@@ -480,7 +480,7 @@
480
480
  "message": "องค์ประกอบ Select มีองค์ประกอบป้ายกำกับที่เกี่ยวข้อง"
481
481
  },
482
482
  "core/audits/accessibility/skip-link.js | description": {
483
- "message": "การใส่ลิงก์ข้ามจะช่วยให้ผู้ใช้ข้ามไปยังเนื้อหาหลักเพื่อประหยัดเวลาได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลิงก์ข้าม](https://dequeuniversity.com/rules/axe/4.10/skip-link)"
483
+ "message": "การใส่ลิงก์ข้ามจะช่วยให้ผู้ใช้ข้ามไปยังเนื้อหาหลักเพื่อประหยัดเวลาได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับลิงก์ข้าม](https://dequeuniversity.com/rules/axe/4.11/skip-link)"
484
484
  },
485
485
  "core/audits/accessibility/skip-link.js | failureTitle": {
486
486
  "message": "ไม่สามารถโฟกัสที่ลิงก์ข้ามได้"
@@ -489,7 +489,7 @@
489
489
  "message": "โฟกัสลิงก์ข้ามได้"
490
490
  },
491
491
  "core/audits/accessibility/tabindex.js | description": {
492
- "message": "ค่าที่มากกว่า 0 หมายความว่ามีการจัดเรียงการนำทางที่ชัดเจน แม้ว่าการทำงานนี้จะไม่มีปัญหาในทางเทคนิค แต่มักก่อให้เกิดประสบการณ์การใช้งานที่น่าหงุดหงิดสำหรับผู้ใช้เทคโนโลยีความช่วยเหลือพิเศษ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `tabindex`](https://dequeuniversity.com/rules/axe/4.10/tabindex)"
492
+ "message": "ค่าที่มากกว่า 0 หมายความว่ามีการจัดเรียงการนำทางที่ชัดเจน แม้ว่าการทำงานนี้จะไม่มีปัญหาในทางเทคนิค แต่มักก่อให้เกิดประสบการณ์การใช้งานที่น่าหงุดหงิดสำหรับผู้ใช้เทคโนโลยีความช่วยเหลือพิเศษ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `tabindex`](https://dequeuniversity.com/rules/axe/4.11/tabindex)"
493
493
  },
494
494
  "core/audits/accessibility/tabindex.js | failureTitle": {
495
495
  "message": "องค์ประกอบบางอย่างมีค่า `[tabindex]` มากกว่า 0"
@@ -498,7 +498,7 @@
498
498
  "message": "ไม่มีองค์ประกอบที่มีค่า `[tabindex]` มากกว่า 0"
499
499
  },
500
500
  "core/audits/accessibility/table-duplicate-name.js | description": {
501
- "message": "แอตทริบิวต์สรุปควรอธิบายโครงสร้างตาราง ส่วน`<caption>`ควรมีชื่อบนหน้าจอ มาร์กอัปตารางที่ถูกต้องจะช่วยอำนวยความสะดวกให้แก่ผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับสรุปและคำบรรยาย](https://dequeuniversity.com/rules/axe/4.10/table-duplicate-name)"
501
+ "message": "แอตทริบิวต์สรุปควรอธิบายโครงสร้างตาราง ส่วน`<caption>`ควรมีชื่อบนหน้าจอ มาร์กอัปตารางที่ถูกต้องจะช่วยอำนวยความสะดวกให้แก่ผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับสรุปและคำบรรยาย](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)"
502
502
  },
503
503
  "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
504
504
  "message": "ตารางมีเนื้อหาที่เหมือนกันในแอตทริบิวต์สรุปและ`<caption>.`"
@@ -507,7 +507,7 @@
507
507
  "message": "ตารางมีเนื้อหาที่แตกต่างกันในแอตทริบิวต์สรุปและ`<caption>`"
508
508
  },
509
509
  "core/audits/accessibility/table-fake-caption.js | description": {
510
- "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การตรวจสอบว่าตารางใช้องค์ประกอบคำบรรยายจริงแทนเซลล์ที่มีแอตทริบิวต์ `[colspan]` อาจช่วยปรับปรุงประสบการณ์การใช้งานของผู้ใช้โปรแกรมอ่านหน้าจอได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับคำบรรยาย](https://dequeuniversity.com/rules/axe/4.10/table-fake-caption)"
510
+ "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การตรวจสอบว่าตารางใช้องค์ประกอบคำบรรยายจริงแทนเซลล์ที่มีแอตทริบิวต์ `[colspan]` อาจช่วยปรับปรุงประสบการณ์การใช้งานของผู้ใช้โปรแกรมอ่านหน้าจอได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับคำบรรยาย](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)"
511
511
  },
512
512
  "core/audits/accessibility/table-fake-caption.js | failureTitle": {
513
513
  "message": "ตารางไม่ได้ใช้ `<caption>` แทนเซลล์ที่มีแอตทริบิวต์ `[colspan]` ในการระบุคำบรรยาย"
@@ -516,7 +516,7 @@
516
516
  "message": "ตารางใช้ `<caption>` แทนเซลล์ที่มีแอตทริบิวต์ `[colspan]` ในการระบุคำบรรยาย"
517
517
  },
518
518
  "core/audits/accessibility/target-size.js | description": {
519
- "message": "เป้าหมายการสัมผัสที่มีขนาดและระยะห่างเพียงพอจะช่วยให้ผู้ใช้ที่อาจพบปัญหาในการกำหนดเป้าหมายการควบคุมขนาดเล็กเปิดใช้งานเป้าหมายได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการสัมผัส](https://dequeuniversity.com/rules/axe/4.10/target-size)"
519
+ "message": "เป้าหมายการสัมผัสที่มีขนาดและระยะห่างเพียงพอจะช่วยให้ผู้ใช้ที่อาจพบปัญหาในการกำหนดเป้าหมายการควบคุมขนาดเล็กเปิดใช้งานเป้าหมายได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการสัมผัส](https://dequeuniversity.com/rules/axe/4.11/target-size)"
520
520
  },
521
521
  "core/audits/accessibility/target-size.js | failureTitle": {
522
522
  "message": "เป้าหมายการสัมผัสไม่มีขนาดหรือระยะห่างที่เพียงพอ"
@@ -525,7 +525,7 @@
525
525
  "message": "เป้าหมายการสัมผัสมีขนาดและระยะห่างที่เพียงพอ"
526
526
  },
527
527
  "core/audits/accessibility/td-has-header.js | description": {
528
- "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การตรวจสอบว่าองค์ประกอบ `<td>` ในตารางขนาดใหญ่ (เซลล์อย่างน้อย 3 เซลล์มีขนาดกว้างและสูง) มีส่วนหัวตารางที่เชื่อมโยงอาจปรับปรุงประสบการณ์การใช้งานของผู้ใช้โปรแกรมอ่านหน้าจอได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวของตาราง](https://dequeuniversity.com/rules/axe/4.10/td-has-header)"
528
+ "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การตรวจสอบว่าองค์ประกอบ `<td>` ในตารางขนาดใหญ่ (เซลล์อย่างน้อย 3 เซลล์มีขนาดกว้างและสูง) มีส่วนหัวตารางที่เชื่อมโยงอาจปรับปรุงประสบการณ์การใช้งานของผู้ใช้โปรแกรมอ่านหน้าจอได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวของตาราง](https://dequeuniversity.com/rules/axe/4.11/td-has-header)"
529
529
  },
530
530
  "core/audits/accessibility/td-has-header.js | failureTitle": {
531
531
  "message": "องค์ประกอบ `<td>` ใน `<table>` ขนาดใหญ่ไม่มีส่วนหัวตาราง"
@@ -534,7 +534,7 @@
534
534
  "message": "องค์ประกอบ `<td>` ใน `<table>` ขนาดใหญ่มีส่วนหัวตารางอย่างน้อย 1 รายการ"
535
535
  },
536
536
  "core/audits/accessibility/td-headers-attr.js | description": {
537
- "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การดูแลให้เซลล์ `<td>` ที่ใช้แอตทริบิวต์ `[headers]` อ้างอิงถึงเซลล์อื่นๆ ในตารางเดียวกันเท่านั้นอาจช่วยปรับปรุงประสบการณ์สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `headers`](https://dequeuniversity.com/rules/axe/4.10/td-headers-attr)"
537
+ "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การดูแลให้เซลล์ `<td>` ที่ใช้แอตทริบิวต์ `[headers]` อ้างอิงถึงเซลล์อื่นๆ ในตารางเดียวกันเท่านั้นอาจช่วยปรับปรุงประสบการณ์สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์ `headers`](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)"
538
538
  },
539
539
  "core/audits/accessibility/td-headers-attr.js | failureTitle": {
540
540
  "message": "เซลล์ในองค์ประกอบ `<table>` ที่ใช้แอตทริบิวต์ `[headers]` อ้างอิงถึง `id` ขององค์ประกอบที่ไม่พบในตารางเดียวกันนี้"
@@ -543,7 +543,7 @@
543
543
  "message": "เซลล์ในองค์ประกอบ `<table>` ที่ใช้แอตทริบิวต์ `[headers]` อ้างอิงถึงเซลล์ของตารางภายในตารางเดียวกัน"
544
544
  },
545
545
  "core/audits/accessibility/th-has-data-cells.js | description": {
546
- "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การดูแลให้ส่วนหัวของตารางอ้างอิงถึงชุดเซลล์บางชุดอยู่เสมออาจช่วยปรับปรุงประสบการณ์สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวของตาราง](https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells)"
546
+ "message": "โปรแกรมอ่านหน้าจอมีฟีเจอร์ที่ช่วยให้ไปยังส่วนต่างๆ ของตารางได้ง่ายขึ้น การดูแลให้ส่วนหัวของตารางอ้างอิงถึงชุดเซลล์บางชุดอยู่เสมออาจช่วยปรับปรุงประสบการณ์สำหรับผู้ใช้โปรแกรมอ่านหน้าจอ [ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวของตาราง](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)"
547
547
  },
548
548
  "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
549
549
  "message": "องค์ประกอบ `<th>` และองค์ประกอบที่มี `[role=\"columnheader\"/\"rowheader\"]` ไม่มีเซลล์ข้อมูลที่องค์ประกอบอธิบาย"
@@ -552,7 +552,7 @@
552
552
  "message": "องค์ประกอบ `<th>` และองค์ประกอบที่มี `[role=\"columnheader\"/\"rowheader\"]` มีเซลล์ข้อมูลที่องค์ประกอบอธิบาย"
553
553
  },
554
554
  "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.10/valid-lang)"
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)"
556
556
  },
557
557
  "core/audits/accessibility/valid-lang.js | failureTitle": {
558
558
  "message": "แอตทริบิวต์ `[lang]` ไม่มีค่าที่ถูกต้อง"
@@ -561,7 +561,7 @@
561
561
  "message": "แอตทริบิวต์ `[lang]` มีค่าที่ถูกต้อง"
562
562
  },
563
563
  "core/audits/accessibility/video-caption.js | description": {
564
- "message": "เมื่อวิดีโอมีคำอธิบายแทนเสียง คนหูหนวกและผู้ใช้ที่มีความบกพร่องทางการได้ยินจะเข้าถึงข้อมูลของวิดีโอได้ง่ายขึ้น [ดูข้อมูลเพิ่มเติมเกี่ยวกับคำบรรยายแทนเสียงสำหรับวิดีโอ](https://dequeuniversity.com/rules/axe/4.10/video-caption)"
564
+ "message": "เมื่อวิดีโอมีคำอธิบายแทนเสียง คนหูหนวกและผู้ใช้ที่มีความบกพร่องทางการได้ยินจะเข้าถึงข้อมูลของวิดีโอได้ง่ายขึ้น [ดูข้อมูลเพิ่มเติมเกี่ยวกับคำบรรยายแทนเสียงสำหรับวิดีโอ](https://dequeuniversity.com/rules/axe/4.11/video-caption)"
565
565
  },
566
566
  "core/audits/accessibility/video-caption.js | failureTitle": {
567
567
  "message": "องค์ประกอบ `<video>` ไม่มีองค์ประกอบ `<track>` ที่มี `[kind=\"captions\"]`"
@@ -647,45 +647,6 @@
647
647
  "core/audits/bootup-time.js | title": {
648
648
  "message": "เวลาในการดำเนินการกับ JavaScript"
649
649
  },
650
- "core/audits/byte-efficiency/duplicated-javascript.js | description": {
651
- "message": "นำโมดูล JavaScript ขนาดใหญ่ที่ซ้ำกันออกจากแพ็กเกจเพื่อลดจำนวนไบต์ที่ไม่จำเป็นที่กิจกรรมเครือข่ายใช้ "
652
- },
653
- "core/audits/byte-efficiency/duplicated-javascript.js | title": {
654
- "message": "นำโมดูลที่ซ้ำกันในแพ็กเกจ JavaScript ออก"
655
- },
656
- "core/audits/byte-efficiency/efficient-animated-content.js | description": {
657
- "message": "GIF ขนาดใหญ่ไม่มีประสิทธิภาพในการแสดงเนื้อหาภาพเคลื่อนไหว พิจารณาใช้วิดีโอ MPEG4/WebM สำหรับภาพเคลื่อนไหวและใช้ PNG/WebP สำหรับภาพนิ่งแทน GIF เพื่อประหยัดไบต์ของเครือข่าย [ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบวิดีโอที่มีประสิทธิภาพ](https://developer.chrome.com/docs/lighthouse/performance/efficient-animated-content/)"
658
- },
659
- "core/audits/byte-efficiency/efficient-animated-content.js | title": {
660
- "message": "ใช้รูปแบบวิดีโอสำหรับเนื้อหาภาพเคลื่อนไหว"
661
- },
662
- "core/audits/byte-efficiency/legacy-javascript.js | description": {
663
- "message": "Polyfill และการเปลี่ยนรูปแบบช่วยให้เบราว์เซอร์เดิมใช้ฟีเจอร์ JavaScript ใหม่ได้ แต่ส่วนมากจะไม่จำเป็นสำหรับเบราว์เซอร์ที่ทันสมัย ลองแก้ไขกระบวนการบิลด์ JavaScript เพื่อไม่ให้ทำการ Transpile ฟีเจอร์ [Baseline](https://web.dev/baseline) เว้นแต่คุณจะรู้ว่าต้องรองรับเบราว์เซอร์เดิม [ดูสาเหตุที่เว็บไซต์ส่วนใหญ่สามารถติดตั้งใช้งานโค้ด ES6+ ได้โดยไม่ต้องทำการ Transpile](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
664
- },
665
- "core/audits/byte-efficiency/legacy-javascript.js | detectedCoreJs2Warning": {
666
- "message": "ตรวจพบ core-js เวอร์ชัน 2 ในหน้า คุณควรอัปเกรดเป็นเวอร์ชัน 3 เพื่อปรับปรุงประสิทธิภาพหลายด้าน"
667
- },
668
- "core/audits/byte-efficiency/legacy-javascript.js | title": {
669
- "message": "หลีกเลี่ยงการแสดง JavaScript ในเบราว์เซอร์สมัยใหม่"
670
- },
671
- "core/audits/byte-efficiency/modern-image-formats.js | description": {
672
- "message": "รูปแบบรูปภาพ เช่น WebP และ AVIF มักบีบอัดได้ดีกว่า PNG หรือ JPEG ซึ่งหมายความว่าจะดาวน์โหลดได้เร็วขึ้นและใช้อินเทอร์เน็ตน้อยลง [ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบรูปภาพที่ทันสมัย](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/)"
673
- },
674
- "core/audits/byte-efficiency/modern-image-formats.js | title": {
675
- "message": "แสดงรูปภาพในรูปแบบสมัยใหม่"
676
- },
677
- "core/audits/byte-efficiency/offscreen-images.js | description": {
678
- "message": "พิจารณาโหลดรูปภาพนอกหน้าจอและรูปภาพที่ซ่อนไว้แบบ Lazy Loading หลังจากที่ทรัพยากรที่สำคัญทั้งหมดโหลดเสร็จแล้วเพื่อลดเวลาในการตอบสนอง [ดูวิธีเลื่อนรูปภาพนอกหน้าจอ](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/)"
679
- },
680
- "core/audits/byte-efficiency/offscreen-images.js | title": {
681
- "message": "เลื่อนเวลาโหลดรูปภาพนอกจอภาพ"
682
- },
683
- "core/audits/byte-efficiency/render-blocking-resources.js | description": {
684
- "message": "ทรัพยากรบล็อก First Paint ของหน้าเว็บอยู่ พิจารณาแสดง JS/CSS ที่สำคัญในหน้าและเลื่อนเวลาแสดง JS/สไตล์ที่ไม่สำคัญทั้งหมดออกไป [ดูวิธีกำจัดทรัพยากรที่บล็อกการแสดงผล](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/)"
685
- },
686
- "core/audits/byte-efficiency/render-blocking-resources.js | title": {
687
- "message": "กำจัดทรัพยากรที่บล็อกการแสดงผล"
688
- },
689
650
  "core/audits/byte-efficiency/total-byte-weight.js | description": {
690
651
  "message": "เพย์โหลดปริมาณมากของเครือข่ายทำให้ผู้ใช้เสียค่าใช้จ่ายสูงและสัมพันธ์กับเวลาการโหลดนานเป็นอย่างมาก [ดูวิธีลดขนาดของเพย์โหลด](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/)"
691
652
  },
@@ -722,48 +683,6 @@
722
683
  "core/audits/byte-efficiency/unused-javascript.js | title": {
723
684
  "message": "ลดจำนวน JavaScript ที่ไม่ได้ใช้"
724
685
  },
725
- "core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
726
- "message": "อายุการใช้งานแคชที่ยาวนานช่วยเพิ่มการเข้าชมหน้าเว็บซ้ำได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบายแคชที่มีประสิทธิภาพ](https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl/)"
727
- },
728
- "core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
729
- "message": "{itemCount,plural, =1{พบทรัพยากร 1 รายการ}other{พบทรัพยากร # รายการ}}"
730
- },
731
- "core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
732
- "message": "แสดงเนื้อหาคงที่ที่มีนโยบายแคชที่มีประสิทธิภาพ"
733
- },
734
- "core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
735
- "message": "ใช้นโยบายแคชที่มีประสิทธิภาพกับเนื้อหาคงที่"
736
- },
737
- "core/audits/byte-efficiency/uses-optimized-images.js | description": {
738
- "message": "รูปภาพที่ได้รับการเพิ่มประสิทธิภาพจะโหลดได้เร็วขึ้นและใช้อินเทอร์เน็ตมือถือน้อยลง [ดูวิธีเข้ารหัสรูปภาพอย่างมีประสิทธิภาพ](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
739
- },
740
- "core/audits/byte-efficiency/uses-optimized-images.js | title": {
741
- "message": "เข้ารหัสรูปภาพอย่างมีประสิทธิภาพ"
742
- },
743
- "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
744
- "message": "ขนาดจริง"
745
- },
746
- "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
747
- "message": "ขนาดที่แสดง"
748
- },
749
- "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
750
- "message": "รูปภาพใหญ่กว่าขนาดที่แสดง"
751
- },
752
- "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
753
- "message": "รูปภาพเหมาะสำหรับขนาดที่แสดง"
754
- },
755
- "core/audits/byte-efficiency/uses-responsive-images.js | description": {
756
- "message": "แสดงรูปภาพที่มีขนาดที่เหมาะสมเพื่อประหยัดอินเทอร์เน็ตมือถือและปรับปรุงเวลาในการโหลด [ดูวิธีปรับขนาดรูปภาพ](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/)"
757
- },
758
- "core/audits/byte-efficiency/uses-responsive-images.js | title": {
759
- "message": "ปรับขนาดรูปภาพให้เหมาะสม"
760
- },
761
- "core/audits/byte-efficiency/uses-text-compression.js | description": {
762
- "message": "ทรัพยากรแบบข้อความควรแสดงผลโดยมีการบีบอัด (Gzip, Deflate หรือ Brotli) เพื่อลดจำนวนไบต์เครือข่ายทั้งหมด [ดูข้อมูลเพิ่มเติมเกี่ยวกับการบีบอัดข้อความ](https://developer.chrome.com/docs/lighthouse/performance/uses-text-compression/)"
763
- },
764
- "core/audits/byte-efficiency/uses-text-compression.js | title": {
765
- "message": "เปิดใช้การบีบอัดข้อความ"
766
- },
767
686
  "core/audits/clickjacking-mitigation.js | columnSeverity": {
768
687
  "message": "ความรุนแรง"
769
688
  },
@@ -776,15 +695,6 @@
776
695
  "core/audits/clickjacking-mitigation.js | title": {
777
696
  "message": "ป้องกัน Clickjacking ด้วย XFO หรือ CSP"
778
697
  },
779
- "core/audits/critical-request-chains.js | description": {
780
- "message": "ห่วงโซ่คำขอที่สำคัญด้านล่างแสดงให้เห็นทรัพยากรที่โหลดโดยมีลำดับความสำคัญสูง พิจารณาลดความยาวของห่วงโซ่ ลดขนาดการดาวน์โหลดของทรัพยากร หรือเลื่อนเวลาการดาวน์โหลดทรัพยากรที่ไม่จำเป็นเพื่อปรับปรุงการโหลดหน้าเว็บ [ดูวิธีหลีกเลี่ยงการเชนคำขอที่สำคัญ](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains/)"
781
- },
782
- "core/audits/critical-request-chains.js | displayValue": {
783
- "message": "{itemCount,plural, =1{พบห่วงโซ่ 1 รายการ}other{พบห่วงโซ่ # รายการ}}"
784
- },
785
- "core/audits/critical-request-chains.js | title": {
786
- "message": "หลีกเลี่ยงคำขอสำคัญแบบลูกโซ่"
787
- },
788
698
  "core/audits/csp-xss.js | columnDirective": {
789
699
  "message": "คำสั่ง"
790
700
  },
@@ -860,33 +770,6 @@
860
770
  "core/audits/dobetterweb/doctype.js | title": {
861
771
  "message": "หน้ามี DOCTYPE HTML"
862
772
  },
863
- "core/audits/dobetterweb/dom-size.js | columnStatistic": {
864
- "message": "สถิติ"
865
- },
866
- "core/audits/dobetterweb/dom-size.js | columnValue": {
867
- "message": "ค่า"
868
- },
869
- "core/audits/dobetterweb/dom-size.js | description": {
870
- "message": "รายการ DOM ขนาดใหญ่จะใช้หน่วยความจำเพิ่มขึ้น ทำให้[การคำนวณสไตล์](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations)ยาวนานขึ้น และสร้าง[การจัดเรียงการออกแบบใหม่](https://developers.google.com/speed/articles/reflow)ซึ่งมีค่าใช้จ่ายสูง [ดูวิธีหลีกเลี่ยง DOM ที่มีขนาดใหญ่เกินไป](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)"
871
- },
872
- "core/audits/dobetterweb/dom-size.js | displayValue": {
873
- "message": "{itemCount,plural, =1{1 องค์ประกอบ}other{# องค์ประกอบ}}"
874
- },
875
- "core/audits/dobetterweb/dom-size.js | failureTitle": {
876
- "message": "หลีกเลี่ยง DOM ที่มีขนาดใหญ่เกินไป"
877
- },
878
- "core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
879
- "message": "ความลึก DOM สูงสุด"
880
- },
881
- "core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
882
- "message": "องค์ประกอบ DOM ทั้งหมด"
883
- },
884
- "core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
885
- "message": "จำนวนองค์ประกอบย่อยสูงสุด"
886
- },
887
- "core/audits/dobetterweb/dom-size.js | title": {
888
- "message": "หลีกเลี่ยง DOM ที่มีขนาดใหญ่เกินไป"
889
- },
890
773
  "core/audits/dobetterweb/geolocation-on-start.js | description": {
891
774
  "message": "ผู้ใช้ไม่เชื่อถือหรือเกิดความสับสนในเว็บไซต์ที่ขอข้อมูลตำแหน่งโดยไม่มีบริบทให้ พิจารณาผูกคำขอกับการกระทำของผู้ใช้แทน [ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์เข้าถึงตำแหน่งทางภูมิศาสตร์](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)"
892
775
  },
@@ -923,15 +806,6 @@
923
806
  "core/audits/dobetterweb/js-libraries.js | title": {
924
807
  "message": "ตรวจพบไลบรารี JavaScript"
925
808
  },
926
- "core/audits/dobetterweb/no-document-write.js | description": {
927
- "message": "สำหรับผู้ใช้ที่การเชื่อมต่อช้า สคริปต์ภายนอกที่แทรกเข้ามาแบบไดนามิกผ่านทาง `document.write()` สามารถทำให้การโหลดหน้าเว็บช้าลงได้นับสิบวินาที [ดูวิธีหลีกเลี่ยง document.write()](https://developer.chrome.com/docs/lighthouse/best-practices/no-document-write/)"
928
- },
929
- "core/audits/dobetterweb/no-document-write.js | failureTitle": {
930
- "message": "หลีกเลี่ยง `document.write()`"
931
- },
932
- "core/audits/dobetterweb/no-document-write.js | title": {
933
- "message": "หลีกเลี่ยงการใช้ `document.write()`"
934
- },
935
809
  "core/audits/dobetterweb/notification-on-start.js | description": {
936
810
  "message": "ผู้ใช้ไม่เชื่อถือหรือเกิดความสับสนในเว็บไซต์ที่ขอส่งการแจ้งเตือนโดยไม่มีบริบทให้ พิจารณาผูกคำขอกับท่าทางสัมผัสของผู้ใช้แทน [ดูข้อมูลเพิ่มเติมเกี่ยวกับการขอสิทธิ์ในการแสดงการแจ้งเตือนอย่างมีความรับผิดชอบ](https://developer.chrome.com/docs/lighthouse/best-practices/notification-on-start/)"
937
811
  },
@@ -950,27 +824,6 @@
950
824
  "core/audits/dobetterweb/paste-preventing-inputs.js | title": {
951
825
  "message": "อนุญาตผู้ใช้ให้วางข้อมูลในช่องได้"
952
826
  },
953
- "core/audits/dobetterweb/uses-http2.js | columnProtocol": {
954
- "message": "โปรโตคอล"
955
- },
956
- "core/audits/dobetterweb/uses-http2.js | description": {
957
- "message": "HTTP/2 มีข้อดีมากกว่า HTTP/1.1 หลายประการ เช่น การมีส่วนหัวแบบไบนารีและการมัลติเพล็กซ์ [ดูข้อมูลเพิ่มเติมเกี่ยวกับ HTTP/2](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)"
958
- },
959
- "core/audits/dobetterweb/uses-http2.js | displayValue": {
960
- "message": "{itemCount,plural, =1{คำขอ 1 รายการไม่ได้แสดงผ่าน HTTP/2}other{คำขอ # รายการไม่ได้แสดงผ่าน HTTP/2}}"
961
- },
962
- "core/audits/dobetterweb/uses-http2.js | title": {
963
- "message": "ใช้ HTTP/2"
964
- },
965
- "core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
966
- "message": "ลองระบุ Listener เหตุการณ์แบบแตะและลูกกลิ้งเป็น `passive` เพื่อปรับปรุงประสิทธิภาพการเลื่อนของหน้าเว็บ [ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน Listener เหตุการณ์แบบแพสซีฟ](https://developer.chrome.com/docs/lighthouse/best-practices/uses-passive-event-listeners/)"
967
- },
968
- "core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
969
- "message": "ไม่ได้ใช้ Listener แบบแพสซีฟเพื่อปรับปรุงประสิทธิภาพการเลื่อน"
970
- },
971
- "core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
972
- "message": "ใช้ Listener แบบแพสซีฟเพื่อปรับปรุงประสิทธิภาพการเลื่อน"
973
- },
974
827
  "core/audits/errors-in-console.js | description": {
975
828
  "message": "ข้อผิดพลาดที่บันทึกลงในคอนโซลแสดงให้เห็นถึงปัญหาที่ไม่ได้รับการแก้ไข ข้อผิดพลาดอาจมาจากคำขอเครือข่ายที่ไม่สำเร็จ และปัญหาอื่นๆ เกี่ยวกับเบราว์เซอร์ [ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้ในการตรวจสอบการวินิจฉัยของคอนโซล](https://developer.chrome.com/docs/lighthouse/best-practices/errors-in-console/)"
976
829
  },
@@ -980,18 +833,6 @@
980
833
  "core/audits/errors-in-console.js | title": {
981
834
  "message": "ไม่มีข้อผิดพลาดเบราว์เซอร์บันทึกลงในคอนโซล"
982
835
  },
983
- "core/audits/font-display.js | description": {
984
- "message": "ใช้ประโยชน์จากฟีเจอร์ CSS ของ `font-display` เพื่อให้ผู้ใช้เห็นข้อความได้ในขณะที่กําลังโหลดเว็บฟอนต์ [ดูข้อมูลเพิ่มเติมเกี่ยวกับ `font-display`](https://developer.chrome.com/docs/lighthouse/performance/font-display/)"
985
- },
986
- "core/audits/font-display.js | failureTitle": {
987
- "message": "ตรวจสอบว่าข้อความจะยังมองเห็นได้ในระหว่างการโหลดเว็บฟอนต์"
988
- },
989
- "core/audits/font-display.js | title": {
990
- "message": "ข้อความทั้งหมดจะยังมองเห็นได้ในระหว่างการโหลดเว็บฟอนต์"
991
- },
992
- "core/audits/font-display.js | undeclaredFontOriginWarning": {
993
- "message": "{fontCountForOrigin,plural, =1{Lighthouse ตรวจสอบค่า`font-display`ของต้นทาง {fontOrigin} โดยอัตโนมัติไม่ได้}other{Lighthouse ตรวจสอบค่า`font-display`ของต้นทาง {fontOrigin} โดยอัตโนมัติไม่ได้}}"
994
- },
995
836
  "core/audits/has-hsts.js | columnDirective": {
996
837
  "message": "คำสั่ง"
997
838
  },
@@ -1088,33 +929,6 @@
1088
929
  "core/audits/is-on-https.js | warning": {
1089
930
  "message": "อนุญาตแบบมีคำเตือน"
1090
931
  },
1091
- "core/audits/largest-contentful-paint-element.js | columnPercentOfLCP": {
1092
- "message": "% ของ LCP"
1093
- },
1094
- "core/audits/largest-contentful-paint-element.js | columnPhase": {
1095
- "message": "ระยะ"
1096
- },
1097
- "core/audits/largest-contentful-paint-element.js | columnTiming": {
1098
- "message": "ช่วงเวลา"
1099
- },
1100
- "core/audits/largest-contentful-paint-element.js | description": {
1101
- "message": "นี่คือองค์ประกอบเนื้อหาขนาดใหญ่สุดซึ่งแสดงผลภายในวิวพอร์ต [ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบ Largest Contentful Paint](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)"
1102
- },
1103
- "core/audits/largest-contentful-paint-element.js | itemLoadDelay": {
1104
- "message": "ความล่าช้าในการโหลด"
1105
- },
1106
- "core/audits/largest-contentful-paint-element.js | itemLoadTime": {
1107
- "message": "เวลาที่ใช้ในการโหลด"
1108
- },
1109
- "core/audits/largest-contentful-paint-element.js | itemRenderDelay": {
1110
- "message": "ความล่าช้าในการแสดงผล"
1111
- },
1112
- "core/audits/largest-contentful-paint-element.js | itemTTFB": {
1113
- "message": "TTFB"
1114
- },
1115
- "core/audits/largest-contentful-paint-element.js | title": {
1116
- "message": "องค์ประกอบ Largest Contentful Paint"
1117
- },
1118
932
  "core/audits/layout-shifts.js | columnScore": {
1119
933
  "message": "คะแนนการเปลี่ยนเลย์เอาต์"
1120
934
  },
@@ -1136,15 +950,6 @@
1136
950
  "core/audits/layout-shifts.js | title": {
1137
951
  "message": "หลีกเลี่ยงการเลื่อนเลย์เอาต์ขนาดใหญ่"
1138
952
  },
1139
- "core/audits/lcp-lazy-loaded.js | description": {
1140
- "message": "รูปภาพครึ่งหน้าบนที่โหลดแบบ Lazy Loading จะแสดงผลภายหลังในวงจรของหน้า ซึ่งอาจทำให้ Largest Contentful Paint ล่าช้า [ดูข้อมูลเพิ่มเติมเกี่ยวกับการโหลดแบบ Lazy Loading ที่ดีที่สุด](https://web.dev/articles/lcp-lazy-loading)"
1141
- },
1142
- "core/audits/lcp-lazy-loaded.js | failureTitle": {
1143
- "message": "โหลดรูปภาพ Largest Contentful Paint แบบ Lazy Loading แล้ว"
1144
- },
1145
- "core/audits/lcp-lazy-loaded.js | title": {
1146
- "message": "ไม่ได้โหลดรูปภาพ Largest Contentful Paint แบบ Lazy Loading"
1147
- },
1148
953
  "core/audits/long-tasks.js | description": {
1149
954
  "message": "ระบุงานที่ใช้เวลานานที่สุดในเทรดหลัก เหมาะสำหรับการระบุปัจจัยที่แย่ที่สุดที่ทำให้อินพุตล่าช้า [ดูวิธีหลีกเลี่ยงงานในเทรดหลักที่ใช้เวลานาน](https://web.dev/articles/optimize-long-tasks)"
1150
955
  },
@@ -1172,9 +977,6 @@
1172
977
  "core/audits/metrics/first-contentful-paint.js | description": {
1173
978
  "message": "First Contentful Paint ระบุเวลาที่มีการแสดงผลข้อความหรือรูปภาพครั้งแรก [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตริก First Contentful Paint](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/)"
1174
979
  },
1175
- "core/audits/metrics/first-meaningful-paint.js | description": {
1176
- "message": "First Meaningful Paint วัดเมื่อเนื้อหาหลักของหน้าเว็บปรากฏ [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตริก First Meaningful Paint](https://developer.chrome.com/docs/lighthouse/performance/first-meaningful-paint/)"
1177
- },
1178
980
  "core/audits/metrics/interaction-to-next-paint.js | description": {
1179
981
  "message": "การโต้ตอบกับ Next Paint จะวัดการตอบสนองของหน้าเว็บ ซึ่งเป็นระยะเวลาที่หน้าเว็บใช้ในการตอบสนองต่ออินพุตของผู้ใช้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตริก การโต้ตอบกับ Next Paint](https://web.dev/articles/inp)"
1180
982
  },
@@ -1229,6 +1031,9 @@
1229
1031
  "core/audits/non-composited-animations.js | unsupportedCSSProperty": {
1230
1032
  "message": "{propertyCount,plural, =1{มีพร็อพเพอร์ตี้ CSS ที่ไม่รองรับ {properties}}other{มีพร็อพเพอร์ตี้ CSS ที่ไม่รองรับ {properties}}}"
1231
1033
  },
1034
+ "core/audits/non-composited-animations.js | unsupportedCustomCSSProperty": {
1035
+ "message": "{propertyCount,plural, =1{พร็อพเพอร์ตี้ CSS ที่กำหนดเองไม่สามารถเคลื่อนไหวใน Compositor ได้: {properties}}other{พร็อพเพอร์ตี้ CSS ที่กำหนดเองไม่สามารถเคลื่อนไหวใน Compositor ได้: {properties}}}"
1036
+ },
1232
1037
  "core/audits/non-composited-animations.js | unsupportedTimingParameters": {
1233
1038
  "message": "เอฟเฟกต์มีพารามิเตอร์การจับเวลาที่ไม่รองรับ"
1234
1039
  },
@@ -1250,21 +1055,6 @@
1250
1055
  "core/audits/origin-isolation.js | title": {
1251
1056
  "message": "รับรองว่าแยกต้นทางอย่างเหมาะสมด้วย COOP"
1252
1057
  },
1253
- "core/audits/preload-fonts.js | description": {
1254
- "message": "โหลดแบบอักษร `optional` ไว้ล่วงหน้าเพื่อให้ผู้เข้าชมครั้งแรกใช้ได้ [ดูข้อมูลเพิ่มเติมเกี่ยวกับการโหลดแบบอักษรล่วงหน้า](https://web.dev/articles/preload-optional-fonts)"
1255
- },
1256
- "core/audits/preload-fonts.js | failureTitle": {
1257
- "message": "ไม่มีการโหลดแบบอักษรที่มีค่า `font-display: optional` ไว้ล่วงหน้า"
1258
- },
1259
- "core/audits/preload-fonts.js | title": {
1260
- "message": "มีการโหลดแบบอักษรที่มีค่า `font-display: optional` ไว้ล่วงหน้า"
1261
- },
1262
- "core/audits/prioritize-lcp-image.js | description": {
1263
- "message": "หากเพิ่มองค์ประกอบ LCP ในหน้าเว็บแบบไดนามิก คุณควรโหลดรูปภาพล่วงหน้าเพื่อปรับปรุง LCP [ดูข้อมูลเพิ่มเติมเกี่ยวกับการโหลดองค์ประกอบ LCP ล่วงหน้า](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered)"
1264
- },
1265
- "core/audits/prioritize-lcp-image.js | title": {
1266
- "message": "โหลดรูปภาพ Largest Contentful Paint ล่วงหน้า"
1267
- },
1268
1058
  "core/audits/redirects-http.js | description": {
1269
1059
  "message": "โปรดตรวจสอบว่าคุณเปลี่ยนเส้นทางการเข้าชมผ่าน HTTP ทั้งหมดไปยัง HTTPS เพื่อเปิดใช้ฟีเจอร์เว็บที่ปลอดภัยให้กับผู้ใช้ทั้งหมด [ดูข้อมูลเพิ่มเติม](https://developer.chrome.com/docs/lighthouse/pwa/redirects-http/)"
1270
1060
  },
@@ -1316,36 +1106,6 @@
1316
1106
  "core/audits/seo/crawlable-anchors.js | title": {
1317
1107
  "message": "รวบรวมข้อมูลลิงก์ได้"
1318
1108
  },
1319
- "core/audits/seo/font-size.js | additionalIllegibleText": {
1320
- "message": "ข้อความอื่นที่อ่านได้ไม่ชัดเจน"
1321
- },
1322
- "core/audits/seo/font-size.js | columnFontSize": {
1323
- "message": "ขนาดแบบอักษร"
1324
- },
1325
- "core/audits/seo/font-size.js | columnPercentPageText": {
1326
- "message": "% ของข้อความในหน้า"
1327
- },
1328
- "core/audits/seo/font-size.js | columnSelector": {
1329
- "message": "ตัวเลือก"
1330
- },
1331
- "core/audits/seo/font-size.js | description": {
1332
- "message": "ขนาดตัวอักษรที่เล็กกว่า 12 พิกเซลจะเล็กเกินไปจนอ่านไม่ออกและทำให้ผู้เข้าชมบนมือถือต้องใช้นิ้วซูมเพื่ออ่าน พยายามให้ข้อความในหน้าเว็บมากกว่า 60% มีขนาดอย่างน้อย 12 พิกเซล [ดูข้อมูลเพิ่มเติมเกี่ยวกับขนาดแบบอักษรที่อ่านง่าย](https://developer.chrome.com/docs/lighthouse/seo/font-size/)"
1333
- },
1334
- "core/audits/seo/font-size.js | displayValue": {
1335
- "message": "ข้อความที่อ่านได้ชัดเจน {decimalProportion, number, extendedPercent}"
1336
- },
1337
- "core/audits/seo/font-size.js | explanationViewport": {
1338
- "message": "ข้อความอ่านได้ไม่ชัดเจนเพราะไม่มีเมตาแท็กวิวพอร์ตที่เพิ่มประสิทธิภาพให้เหมาะกับหน้าจอมือถือ"
1339
- },
1340
- "core/audits/seo/font-size.js | failureTitle": {
1341
- "message": "เอกสารไม่ได้ใช้ขนาดตัวอักษรที่อ่านได้ชัดเจน"
1342
- },
1343
- "core/audits/seo/font-size.js | legibleText": {
1344
- "message": "ข้อความที่อ่านได้ชัดเจน"
1345
- },
1346
- "core/audits/seo/font-size.js | title": {
1347
- "message": "เอกสารใช้ขนาดตัวอักษรที่อ่านได้ชัดเจน"
1348
- },
1349
1109
  "core/audits/seo/hreflang.js | description": {
1350
1110
  "message": "ลิงก์ hreflang จะบอกให้เครื่องมือค้นหาทราบถึงเวอร์ชันของหน้าเว็บที่ควรแสดงในผลการค้นหาสำหรับแต่ละภาษาหรือภูมิภาค [ดูข้อมูลเพิ่มเติมเกี่ยวกับ `hreflang`](https://developer.chrome.com/docs/lighthouse/seo/hreflang/)"
1351
1111
  },
@@ -1392,7 +1152,7 @@
1392
1152
  "message": "ลิงก์มีข้อความอธิบาย"
1393
1153
  },
1394
1154
  "core/audits/seo/manual/structured-data.js | description": {
1395
- "message": "เรียกใช้[เครื่องมือทดสอบ Structured Data](https://search.google.com/structured-data/testing-tool/) และ [Structured Data Linter](http://linter.structured-data.org/) เพื่อตรวจสอบความถูกต้องของ Structured Data [ดูข้อมูลเพิ่มเติมเกี่ยวกับ Structured Data](https://developer.chrome.com/docs/lighthouse/seo/structured-data/)"
1155
+ "message": "เรียกใช้[เครื่องมือทดสอบ Structured Data](https://developers.google.com/search/docs/appearance/structured-data/) เพื่อตรวจสอบความถูกต้องของ Structured Data [ดูข้อมูลเพิ่มเติมเกี่ยวกับ Structured Data](https://developer.chrome.com/docs/lighthouse/seo/structured-data/)"
1396
1156
  },
1397
1157
  "core/audits/seo/manual/structured-data.js | title": {
1398
1158
  "message": " Structured Data ถูกต้อง"
@@ -1451,48 +1211,6 @@
1451
1211
  "core/audits/third-party-cookies.js | title": {
1452
1212
  "message": "หลีกเลี่ยงการใช้คุกกี้ของบุคคลที่สาม"
1453
1213
  },
1454
- "core/audits/third-party-facades.js | categoryCustomerSuccess": {
1455
- "message": "{productName} (การสนับสนุนลูกค้า)"
1456
- },
1457
- "core/audits/third-party-facades.js | categoryMarketing": {
1458
- "message": "{productName} (การตลาด)"
1459
- },
1460
- "core/audits/third-party-facades.js | categorySocial": {
1461
- "message": "{productName} (โซเชียล)"
1462
- },
1463
- "core/audits/third-party-facades.js | categoryVideo": {
1464
- "message": "{productName} (วิดีโอ)"
1465
- },
1466
- "core/audits/third-party-facades.js | columnProduct": {
1467
- "message": "ผลิตภัณฑ์"
1468
- },
1469
- "core/audits/third-party-facades.js | description": {
1470
- "message": "โค้ดของบุคคลที่สามที่ฝังไว้บางโค้ดจะโหลดแบบ Lazy Loading ได้ ลองนำ Facade มาแทนโค้ดไว้จนกว่าจะต้องใช้โค้ดที่ฝังไว้ดังกล่าว [ดูวิธีเลื่อนบุคคลที่สามด้วย Facade](https://developer.chrome.com/docs/lighthouse/performance/third-party-facades/)"
1471
- },
1472
- "core/audits/third-party-facades.js | displayValue": {
1473
- "message": "{itemCount,plural, =1{มี Facade ที่ใช้แทนได้ # รายการ}other{มี Facade ที่ใช้แทนได้ # รายการ}}"
1474
- },
1475
- "core/audits/third-party-facades.js | failureTitle": {
1476
- "message": "ทรัพยากรของบุคคลที่สามบางส่วนโหลดแบบ Lazy Loading ได้ด้วย Facade"
1477
- },
1478
- "core/audits/third-party-facades.js | title": {
1479
- "message": "โหลดทรัพยากรของบุคคลที่สามแบบ Lazy Loading ด้วย Facade"
1480
- },
1481
- "core/audits/third-party-summary.js | columnThirdParty": {
1482
- "message": "บุคคลที่สาม"
1483
- },
1484
- "core/audits/third-party-summary.js | description": {
1485
- "message": "โค้ดของบุคคลที่สามอาจส่งผลกระทบที่สำคัญต่อประสิทธิภาพการโหลด จำกัดจำนวนผู้ให้บริการบุคคลที่สามที่มากเกินไปและพยายามโหลดโค้ดของบุคคลที่สามหลังจากที่หน้าเว็บโหลดเบื้องต้นเสร็จเรียบร้อยแล้ว [ดูวิธีลดผลกระทบของบุคคลที่สาม](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)"
1486
- },
1487
- "core/audits/third-party-summary.js | displayValue": {
1488
- "message": "โค้ดของบุคคลที่สามบล็อกเทรดหลักเป็นเวลา {timeInMs, number, milliseconds} วินาที"
1489
- },
1490
- "core/audits/third-party-summary.js | failureTitle": {
1491
- "message": "ลดผลกระทบจากโค้ดของบุคคลที่สาม"
1492
- },
1493
- "core/audits/third-party-summary.js | title": {
1494
- "message": "ลดการใช้ของบุคคลที่สาม"
1495
- },
1496
1214
  "core/audits/trusted-types-xss.js | columnSeverity": {
1497
1215
  "message": "ความรุนแรง"
1498
1216
  },
@@ -1526,30 +1244,6 @@
1526
1244
  "core/audits/user-timings.js | title": {
1527
1245
  "message": "ระยะเวลาที่เจาะจงของผู้ใช้และระยะเวลาทั่วไป"
1528
1246
  },
1529
- "core/audits/uses-rel-preconnect.js | crossoriginWarning": {
1530
- "message": "พบ `<link rel=preconnect>` สำหรับ \"{securityOrigin}\" แต่เบราว์เซอร์ไม่ได้นำไปใช้งาน โปรดตรวจสอบว่าคุณใช้แอตทริบิวต์ `crossorigin` อย่างถูกต้องแล้ว"
1531
- },
1532
- "core/audits/uses-rel-preconnect.js | description": {
1533
- "message": "พิจารณาเพิ่ม `preconnect` หรือ `dns-prefetch` ซึ่งบอกถึงทรัพยากรเพื่อสร้างการเชื่อมต่อกับต้นทางที่สำคัญของบุคคลที่สามตั้งแต่เนิ่นๆ [ดูวิธีเชื่อมต่อกับต้นทางที่จำเป็นล่วงหน้า](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/)"
1534
- },
1535
- "core/audits/uses-rel-preconnect.js | title": {
1536
- "message": "เชื่อมต่อกับต้นทางที่จำเป็นล่วงหน้า"
1537
- },
1538
- "core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
1539
- "message": "พบการเชื่อมต่อ `<link rel=preconnect>` มากกว่า 2 รายการ ควรใช้การเชื่อมต่อเช่นนี้เท่าที่จำเป็นและใช้กับต้นทางที่สำคัญที่สุดเท่านั้น"
1540
- },
1541
- "core/audits/uses-rel-preconnect.js | unusedWarning": {
1542
- "message": "พบ `<link rel=preconnect>` สำหรับ \"{securityOrigin}\" แต่เบราว์เซอร์ไม่ได้นำไปใช้งาน ใช้ `preconnect` กับต้นทางที่สำคัญซึ่งหน้าเว็บจะขออย่างแน่นอน"
1543
- },
1544
- "core/audits/uses-rel-preload.js | crossoriginWarning": {
1545
- "message": "พบ `<link>` การโหลดล่วงหน้าสำหรับ \"{preloadURL}\" แต่เบราว์เซอร์ไม่ได้นำไปใช้งาน โปรดตรวจสอบว่าคุณใช้แอตทริบิวต์ `crossorigin` อย่างถูกต้องแล้ว"
1546
- },
1547
- "core/audits/uses-rel-preload.js | description": {
1548
- "message": "พิจารณาใช้ `<link rel=preload>` เพื่อจัดลำดับความสำคัญในการเรียกทรัพยากรที่มีการขอให้โหลดหน้าเว็บภายหลัง [ดูวิธีโหลดคำขอคีย์ล่วงหน้า](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preload/)"
1549
- },
1550
- "core/audits/uses-rel-preload.js | title": {
1551
- "message": "โหลดคำขอสำคัญล่วงหน้า"
1552
- },
1553
1247
  "core/audits/valid-source-maps.js | columnMapURL": {
1554
1248
  "message": "URL ของแผนที่"
1555
1249
  },
@@ -1568,42 +1262,6 @@
1568
1262
  "core/audits/valid-source-maps.js | title": {
1569
1263
  "message": "หน้าเว็บมีแผนที่แหล่งที่มาถูกต้อง"
1570
1264
  },
1571
- "core/audits/viewport.js | description": {
1572
- "message": "`<meta name=\"viewport\">` ไม่เพียงเพิ่มประสิทธิภาพแอปสำหรับขนาดหน้าจอมือถือเท่านั้น แต่ยังป้องกัน[ไม่ให้เกิดความล่าช้าต่อข้อมูลจากผู้ใช้เป็นเวลา 300 มิลลิวินาที](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)ด้วย [ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เมตาแท็ก Viewport](https://developer.chrome.com/docs/lighthouse/pwa/viewport/)"
1573
- },
1574
- "core/audits/viewport.js | explanationNoTag": {
1575
- "message": "ไม่พบแท็ก `<meta name=\"viewport\">`"
1576
- },
1577
- "core/audits/viewport.js | failureTitle": {
1578
- "message": "ไม่มีแท็ก `<meta name=\"viewport\">` ที่มี `width` หรือ `initial-scale`"
1579
- },
1580
- "core/audits/viewport.js | title": {
1581
- "message": "มีแท็ก `<meta name=\"viewport\">` ที่มี `width` หรือ `initial-scale`"
1582
- },
1583
- "core/audits/work-during-interaction.js | description": {
1584
- "message": "งานบล็อกเทรดนี้จะเกิดขึ้นในระหว่างการวัดการโต้ตอบกับ Next Paint [ดูข้อมูลเพิ่มเติมเกี่ยวกับเมตริก การโต้ตอบกับ Next Paint](https://web.dev/articles/inp)"
1585
- },
1586
- "core/audits/work-during-interaction.js | displayValue": {
1587
- "message": "ใช้ไป {timeInMs, number, milliseconds} มิลลิวินาทีกับเหตุการณ์ \"{interactionType}\""
1588
- },
1589
- "core/audits/work-during-interaction.js | eventTarget": {
1590
- "message": "เป้าหมายของเหตุการณ์"
1591
- },
1592
- "core/audits/work-during-interaction.js | failureTitle": {
1593
- "message": "ลดงานในระหว่างการโต้ตอบหลัก"
1594
- },
1595
- "core/audits/work-during-interaction.js | inputDelay": {
1596
- "message": "ความล่าช้าของอินพุต"
1597
- },
1598
- "core/audits/work-during-interaction.js | presentationDelay": {
1599
- "message": "ความล่าช้าของงานนำเสนอ"
1600
- },
1601
- "core/audits/work-during-interaction.js | processingDuration": {
1602
- "message": "ระยะเวลาในการประมวลผล"
1603
- },
1604
- "core/audits/work-during-interaction.js | title": {
1605
- "message": "ลดงานในระหว่างการโต้ตอบหลัก"
1606
- },
1607
1265
  "core/config/default-config.js | a11yAriaGroupDescription": {
1608
1266
  "message": "นี่เป็นโอกาสปรับปรุงการใช้งาน ARIA ในแอปพลิเคชันของคุณ ซึ่งอาจช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานเทคโนโลยีอำนวยความสะดวก เช่น โปรแกรมอ่านหน้าจอ ที่ดียิ่งขึ้น"
1609
1267
  },
@@ -3119,7 +2777,7 @@
3119
2777
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTC": {
3120
2778
  "message": "หน้าที่มี WebRTC ไม่สามารถเข้าถึงแคชย้อนหลัง"
3121
2779
  },
3122
- "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTCSticky": {
2780
+ "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTCUsedWithCCNS": {
3123
2781
  "message": "Back-Forward Cache ถูกปิดเนื่องจากมีการใช้ WebRTC"
3124
2782
  },
3125
2783
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webShare": {
@@ -3128,13 +2786,13 @@
3128
2786
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocket": {
3129
2787
  "message": "หน้าที่มี WebSocket ไม่สามารถเข้าถึงแคชย้อนหลัง"
3130
2788
  },
3131
- "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocketSticky": {
2789
+ "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocketUsedWithCCNS": {
3132
2790
  "message": "Back-Forward Cache ถูกปิดเนื่องจากมีการใช้ WebSocket"
3133
2791
  },
3134
2792
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransport": {
3135
2793
  "message": "หน้าที่มี WebTransport ไม่สามารถเข้าถึงแคชย้อนหลัง"
3136
2794
  },
3137
- "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransportSticky": {
2795
+ "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransportUsedWithCCNS": {
3138
2796
  "message": "Back-Forward Cache ถูกปิดเนื่องจากมีการใช้ WebTransport"
3139
2797
  },
3140
2798
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webXR": {
@@ -3228,43 +2886,43 @@
3228
2886
  "message": "ทรัพยากรแบบข้อความควรแสดงผลโดยมีการบีบอัด (Gzip, Deflate หรือ Brotli) เพื่อลดจำนวนไบต์เครือข่ายทั้งหมด ลองใช้ CDN ที่รองรับการดำเนินการนี้ตามปกติ หรือกำหนดค่าเว็บเซิร์ฟเวอร์ให้ดำเนินการนี้ [ดูข้อมูลเพิ่มเติม](https://developers.google.com/web/tools/lighthouse/audits/text-compression)"
3229
2887
  },
3230
2888
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": {
3231
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Optimize Fonts` เพื่อใช้ประโยชน์จากฟีเจอร์ CSS สำหรับ `font-display` โดยอัตโนมัติ ซึ่งจะทำให้ผู้ใช้มองเห็นข้อความในขณะที่กำลังโหลดเว็บฟอนต์"
2889
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Optimize Fonts` เพื่อใช้ประโยชน์จากฟีเจอร์ CSS สำหรับ `font-display` โดยอัตโนมัติ ซึ่งจะทำให้ผู้ใช้มองเห็นข้อความในขณะที่กำลังโหลดเว็บฟอนต์"
3232
2890
  },
3233
2891
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": {
3234
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้ `Next-Gen Formats` เพื่อแปลงรูปภาพเป็นรูปแบบ WebP"
2892
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้ `Next-Gen Formats` เพื่อแปลงรูปภาพเป็นรูปแบบ WebP"
3235
2893
  },
3236
2894
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": {
3237
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) แล้วเปิดใช้ `Lazy Load Images` เพื่อเลื่อนเวลาโหลดรูปภาพนอกจอภาพ"
2895
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) แล้วเปิดใช้ `Lazy Load Images` เพื่อเลื่อนเวลาโหลดรูปภาพนอกจอภาพ"
3238
2896
  },
3239
2897
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": {
3240
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) แล้วเปิดใช้ `Critical CSS` กับ `Script Delay` เพื่อเลื่อน JS/CSS ที่ไม่สำคัญ"
2898
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) แล้วเปิดใช้ `Script Delay` เพื่อเลื่อน JS ที่ไม่สำคัญ"
3241
2899
  },
3242
2900
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": {
3243
- "message": "ใช้ [Ezoic Cloud Caching](https://pubdash.ezoic.com/speed/caching) เพื่อแคชเนื้อหาของคุณในเครือข่ายทั่วโลก ซึ่งจะช่วยปรับปรุง Time To First Byte"
2901
+ "message": "ใช้ [Ezoic Cloud Caching](https://pubdash.ezoic.com/leap/caching) เพื่อแคชเนื้อหาของคุณในเครือข่ายทั่วโลก ซึ่งจะช่วยปรับปรุง Time To First Byte"
3244
2902
  },
3245
2903
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": {
3246
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Minify CSS` เพื่อลดขนาด CSS โดยอัตโนมัติ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
2904
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Minify CSS` เพื่อลดขนาด CSS โดยอัตโนมัติ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
3247
2905
  },
3248
2906
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": {
3249
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Minify Javascript` เพื่อลดขนาด JS โดยอัตโนมัติ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
2907
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Minify Javascript` เพื่อลดขนาด JS โดยอัตโนมัติ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
3250
2908
  },
3251
2909
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": {
3252
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Remove Unused CSS` เพื่อช่วยในการแก้ไขปัญหานี้ โดยการตั้งค่านี้จะระบุคลาสของ CSS ที่มีการใช้งานจริงในแต่ละหน้าของเว็บไซต์ และจะนำคลาสอื่นๆ ออกเพื่อควบคุมให้ไฟล์มีขนาดเล็ก"
2910
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Remove Unused CSS` เพื่อช่วยในการแก้ไขปัญหานี้ โดยการตั้งค่านี้จะระบุคลาสของ CSS ที่มีการใช้งานจริงในแต่ละหน้าของเว็บไซต์ และจะนำคลาสอื่นๆ ออกเพื่อควบคุมให้ไฟล์มีขนาดเล็ก"
3253
2911
  },
3254
2912
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": {
3255
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Efficient Static Cache Policy` เพื่อตั้งค่าที่แนะนำในส่วนหัวของการแคชสำหรับเนื้อหาแบบคงที่"
2913
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Efficient Static Cache Policy` เพื่อตั้งค่าที่แนะนำในส่วนหัวของการแคชสำหรับเนื้อหาแบบคงที่"
3256
2914
  },
3257
2915
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": {
3258
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้ `Next-Gen Formats` เพื่อแปลงรูปภาพเป็นรูปแบบ WebP"
2916
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้ `Next-Gen Formats` เพื่อแปลงรูปภาพเป็นรูปแบบ WebP"
3259
2917
  },
3260
2918
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": {
3261
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Pre-Connect Origins` เพื่อเพิ่มคำแนะนำด้านทรัพยากรสำหรับ `preconnect` โดยอัตโนมัติ ซึ่งจะสร้างการเชื่อมต่อกับต้นทางที่สำคัญของบุคคลที่สามไว้ก่อน"
2919
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Pre-Connect Origins` เพื่อเพิ่มคำแนะนำด้านทรัพยากรสำหรับ `preconnect` โดยอัตโนมัติ ซึ่งจะสร้างการเชื่อมต่อกับต้นทางที่สำคัญของบุคคลที่สามไว้ก่อน"
3262
2920
  },
3263
2921
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": {
3264
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Preload Fonts` กับ `Preload Background Images` เพื่อเพิ่มลิงก์ `preload` ซึ่งจะช่วยจัดลำดับความสำคัญของการดึงทรัพยากรที่มีการขอภายหลังในการโหลดหน้าเว็บ"
2922
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Preload Fonts` กับ `Preload Background Images` เพื่อเพิ่มลิงก์ `preload` ซึ่งจะช่วยจัดลำดับความสำคัญของการดึงทรัพยากรที่มีการขอภายหลังในการโหลดหน้าเว็บ"
3265
2923
  },
3266
2924
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": {
3267
- "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/speed) และเปิดใช้งาน `Resize Images` เพื่อปรับขนาดรูปภาพให้เหมาะสมกับอุปกรณ์ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
2925
+ "message": "ใช้ [Ezoic Leap](https://pubdash.ezoic.com/leap) และเปิดใช้งาน `Resize Images` เพื่อปรับขนาดรูปภาพให้เหมาะสมกับอุปกรณ์ ซึ่งจะทำให้ขนาดเพย์โหลดของเครือข่ายเล็กลง"
3268
2926
  },
3269
2927
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | modern-image-formats": {
3270
2928
  "message": "ใช้คอมโพเนนต์ `gatsby-plugin-image` แทน `<img>` เพื่อเพิ่มประสิทธิภาพรูปแบบรูปภาพโดยอัตโนมัติ [ดูข้อมูลเพิ่มเติม](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)"
@@ -3372,16 +3030,16 @@
3372
3030
  "message": "เพิ่มแท็ก `<link rel=preload>` ได้โดย[แก้ไขเลย์เอาต์ของธีม](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)"
3373
3031
  },
3374
3032
  "node_modules/lighthouse-stack-packs/packs/next.js | modern-image-formats": {
3375
- "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อเพิ่มประสิทธิภาพรูปแบบรูปภาพโดยอัตโนมัติ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/basic-features/image-optimization)"
3033
+ "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อเพิ่มประสิทธิภาพรูปแบบรูปภาพโดยอัตโนมัติ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/app/getting-started/images)"
3376
3034
  },
3377
3035
  "node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": {
3378
- "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อโหลดรูปภาพแบบ Lazy Loading โดยอัตโนมัติ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/basic-features/image-optimization)"
3036
+ "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อโหลดรูปภาพแบบ Lazy Loading โดยอัตโนมัติ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/app/getting-started/images)"
3379
3037
  },
3380
3038
  "node_modules/lighthouse-stack-packs/packs/next.js | prioritize-lcp-image": {
3381
3039
  "message": "ใช้คอมโพเนนต์ `next/image` และตั้ง \"ลำดับความสำคัญ\" เป็น \"จริง\" เพื่อโหลดรูปภาพ LCP ไว้ล่วงหน้า [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/api-reference/next/image#priority)"
3382
3040
  },
3383
3041
  "node_modules/lighthouse-stack-packs/packs/next.js | render-blocking-resources": {
3384
- "message": "ใช้คอมโพเนนต์ `next/script` เพื่อเลื่อนการโหลดสคริปต์บุคคลที่สามที่ไม่สำคัญ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/basic-features/script)"
3042
+ "message": "ใช้คอมโพเนนต์ `next/script` เพื่อเลื่อนการโหลดสคริปต์บุคคลที่สามที่ไม่สำคัญ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/app/guides/scripts)"
3385
3043
  },
3386
3044
  "node_modules/lighthouse-stack-packs/packs/next.js | unsized-images": {
3387
3045
  "message": "ใช้คอมโพเนนต์ `next/image` เพื่อตรวจสอบว่ารูปภาพมีขนาดที่เหมาะสมเสมอ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/api-reference/next/image#width)"
@@ -3393,13 +3051,13 @@
3393
3051
  "message": "ใช้ `Webpack Bundle Analyzer` เพื่อตรวจหาโค้ด JavaScript ที่ไม่ได้ใช้ [ดูข้อมูลเพิ่มเติม](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)"
3394
3052
  },
3395
3053
  "node_modules/lighthouse-stack-packs/packs/next.js | user-timings": {
3396
- "message": "พิจารณาใช้ `Next.js Analytics` เพื่อวัดประสิทธิภาพแอปในการใช้งานจริง [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/advanced-features/measuring-performance)"
3054
+ "message": "พิจารณาใช้ `Next.js Analytics` เพื่อวัดประสิทธิภาพแอปในการใช้งานจริง [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/pages/guides/analytics)"
3397
3055
  },
3398
3056
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-long-cache-ttl": {
3399
- "message": "กำหนดค่าการแคชสำหรับเนื้อหาและหน้า `Server-side Rendered` (SSR) ที่เปลี่ยนแปลงไม่ได้ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/going-to-production#caching)"
3057
+ "message": "กำหนดค่าการแคชสำหรับเนื้อหาและหน้า `Server-side Rendered` (SSR) ที่เปลี่ยนแปลงไม่ได้ [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/13/pages/building-your-application/deploying/production-checklist#caching)"
3400
3058
  },
3401
3059
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-optimized-images": {
3402
- "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อปรับคุณภาพของรูป [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/basic-features/image-optimization)"
3060
+ "message": "ใช้คอมโพเนนต์ `next/image` แทน `<img>` เพื่อปรับคุณภาพของรูป [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/app/getting-started/images)"
3403
3061
  },
3404
3062
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-responsive-images": {
3405
3063
  "message": "ใช้คอมโพเนนต์ `next/image` เพื่อกำหนด `sizes` ที่เหมาะสม [ดูข้อมูลเพิ่มเติม](https://nextjs.org/docs/api-reference/next/image#sizes)"
@@ -3443,9 +3101,6 @@
3443
3101
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-responsive-images": {
3444
3102
  "message": "เปิดใช้[`Adaptive Image Sizing`](https://support.nitropack.io/hc/en-us/articles/10123833029905-How-to-Enable-Adaptive-Image-Sizing-For-Your-Site)เพื่อเพิ่มประสิทธิภาพให้กับรูปภาพล่วงหน้าและทำให้มีขนาดตรงกับคอนเทนเนอร์ที่แสดงอยู่ในอุปกรณ์ทั้งหมด"
3445
3103
  },
3446
- "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-text-compression": {
3447
- "message": "ใช้[`Gzip compression`](https://support.nitropack.io/hc/en-us/articles/13229297479313-Enabling-GZIP-compression) ใน NitroPack เพื่อลดขนาดของไฟล์ที่ส่งไปยังเบราว์เซอร์"
3448
- },
3449
3104
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | modern-image-formats": {
3450
3105
  "message": "ใช้คอมโพเนนต์ `nuxt/image` และกำหนด `format=\"webp\"` [ดูข้อมูลเพิ่มเติม](https://image.nuxt.com/usage/nuxt-img#format)"
3451
3106
  },
@@ -3522,7 +3177,7 @@
3522
3177
  "message": "หากระบบในรุ่นของคุณลดขนาดไฟล์ JS โดยอัตโนมัติ โปรดตรวจสอบว่าคุณทำให้รุ่นที่ใช้งานจริงของแอปพลิเคชันใช้งานได้ โดยใช้ส่วนขยาย React Developer Tools [ดูข้อมูลเพิ่มเติม](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)"
3523
3178
  },
3524
3179
  "node_modules/lighthouse-stack-packs/packs/react.js | unused-javascript": {
3525
- "message": "หากคุณไม่ได้กำลังแสดงผลฝั่งเซิร์ฟเวอร์ ให้[แยกกลุ่ม JavaScript](https://web.dev/code-splitting-suspense/) ด้วย `React.lazy()` หรือแยกโค้ดโดยใช้ไลบรารีของบุคคลที่สาม เช่น [คอมโพเนนต์ที่โหลดได้](https://www.smooth-code.com/open-source/loadable-components/docs/getting-started/)"
3180
+ "message": "หากคุณไม่ได้กำลังแสดงผลฝั่งเซิร์ฟเวอร์ ให้[แยกกลุ่ม JavaScript](https://web.dev/code-splitting-suspense/) ด้วย `React.lazy()` หรือแยกโค้ดโดยใช้ไลบรารีของบุคคลที่สาม เช่น [คอมโพเนนต์ที่โหลดได้](https://loadable-components.com/)"
3526
3181
  },
3527
3182
  "node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
3528
3183
  "message": "ใช้ React DevTools Profiler ซึ่งใช้ประโยชน์จาก Profiler API ในการวัดประสิทธิภาพในการแสดงผลของคอมโพเนนต์ [ดูข้อมูลเพิ่มเติม](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)"
@@ -3668,15 +3323,9 @@
3668
3323
  "report/renderer/report-utils.js | footerIssue": {
3669
3324
  "message": "รายงานปัญหา"
3670
3325
  },
3671
- "report/renderer/report-utils.js | goBackToAudits": {
3672
- "message": "กลับไปที่การตรวจสอบ"
3673
- },
3674
3326
  "report/renderer/report-utils.js | hide": {
3675
3327
  "message": "ซ่อน"
3676
3328
  },
3677
- "report/renderer/report-utils.js | insightsNotice": {
3678
- "message": "ข้อมูลเชิงลึกจะแทนที่การตรวจสอบประสิทธิภาพภายในปีนี้ [ดูข้อมูลเพิ่มเติมและแสดงความคิดเห็นได้ที่นี่](https://github.com/GoogleChrome/lighthouse/discussions/16462)"
3679
- },
3680
3329
  "report/renderer/report-utils.js | labDataTitle": {
3681
3330
  "message": "ข้อมูลในห้องทดลอง"
3682
3331
  },
@@ -3776,12 +3425,15 @@
3776
3425
  "report/renderer/report-utils.js | toplevelWarningsMessage": {
3777
3426
  "message": "เกิดปัญหาที่มีผลต่อการทำงานนี้ของ Lighthouse"
3778
3427
  },
3779
- "report/renderer/report-utils.js | tryInsights": {
3780
- "message": "ลองดูข้อมูลเชิงลึก"
3781
- },
3782
3428
  "report/renderer/report-utils.js | unattributable": {
3783
3429
  "message": "ระบุแหล่งที่มาไม่ได้"
3784
3430
  },
3431
+ "report/renderer/report-utils.js | unscoredLabel": {
3432
+ "message": "ไม่มีคะแนน"
3433
+ },
3434
+ "report/renderer/report-utils.js | unscoredTitle": {
3435
+ "message": "การตรวจสอบนี้ไม่มีส่วนช่วยในการให้คะแนนหมวดหมู่โดยรวม"
3436
+ },
3785
3437
  "report/renderer/report-utils.js | varianceDisclaimer": {
3786
3438
  "message": "ค่ามาจากการประมาณและอาจแตกต่างกันไป [คะแนนประสิทธิภาพคำนวณ](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/)จากเมตริกเหล่านี้โดยตรง"
3787
3439
  },