chrome-devtools-frontend 1.0.1526630 → 1.0.1529186
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.
- package/docs/ui_engineering.md +159 -0
- package/eslint.config.mjs +6 -1
- package/front_end/core/host/UserMetrics.ts +2 -1
- package/front_end/core/i18n/i18nImpl.ts +6 -1
- package/front_end/core/protocol_client/protocol_client.ts +1 -1
- package/front_end/core/root/Runtime.ts +38 -4
- package/front_end/core/sdk/CSSMatchedStyles.ts +50 -7
- package/front_end/core/sdk/CSSRule.ts +35 -6
- package/front_end/core/sdk/Connections.ts +2 -1
- package/front_end/core/sdk/DOMModel.ts +4 -0
- package/front_end/core/sdk/DebuggerModel.ts +5 -1
- package/front_end/core/sdk/NetworkManager.ts +267 -34
- package/front_end/core/sdk/PreloadingModel.ts +82 -17
- package/front_end/core/sdk/RehydratingConnection.snapshot.txt +1 -1
- package/front_end/core/sdk/RehydratingConnection.ts +29 -4
- package/front_end/core/sdk/ScopeTreeCache.ts +8 -3
- package/front_end/core/sdk/SourceMap.ts +41 -11
- package/front_end/core/sdk/SourceMapManager.ts +13 -2
- package/front_end/core/sdk/SourceMapScopesInfo.ts +49 -2
- package/front_end/core/sdk/TargetManager.ts +0 -22
- package/front_end/core/sdk/TraceObject.ts +8 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +81 -0
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +3 -1
- package/front_end/entrypoints/main/GlobalAiButton.ts +1 -0
- package/front_end/entrypoints/main/MainImpl.ts +42 -28
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +2 -0
- package/front_end/generated/protocol.ts +17 -3
- package/front_end/models/ai_assistance/BuiltInAi.ts +111 -0
- package/front_end/models/ai_assistance/ConversationHandler.ts +15 -14
- package/front_end/models/ai_assistance/ai_assistance.ts +53 -24
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +105 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +6 -1
- package/front_end/models/extensions/ExtensionView.ts +3 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +31 -27
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +31 -29
- package/front_end/models/persistence/NetworkPersistenceManager.ts +3 -5
- package/front_end/models/persistence/PersistenceImpl.ts +0 -5
- package/front_end/models/persistence/persistence-meta.ts +0 -31
- package/front_end/models/persistence/persistence.ts +0 -6
- package/front_end/models/source_map_scopes/NamesResolver.ts +5 -11
- package/front_end/models/stack_trace/Trie.ts +9 -0
- package/front_end/models/trace/lantern/types/Lantern.ts +1 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -0
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +120 -113
- package/front_end/panels/ai_assistance/PatchWidget.ts +9 -8
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +2 -0
- package/front_end/panels/ai_assistance/components/ChatView.ts +29 -29
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +1 -0
- package/front_end/panels/animation/AnimationTimeline.ts +1 -0
- package/front_end/panels/application/CookieItemsView.ts +1 -0
- package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -0
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +2 -0
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +11 -5
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +2 -2
- package/front_end/panels/application/preloading/components/PreloadingString.ts +7 -5
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +22 -10
- package/front_end/panels/changes/CombinedDiffView.ts +1 -0
- package/front_end/{models/persistence → panels/common}/PersistenceUtils.ts +15 -17
- package/front_end/panels/common/common.ts +1 -0
- package/front_end/panels/console/ConsoleInsightTeaser.ts +369 -0
- package/front_end/panels/console/ConsolePanel.ts +2 -0
- package/front_end/panels/console/ConsolePrompt.ts +12 -2
- package/front_end/panels/console/ConsoleSidebar.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +12 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +44 -0
- package/front_end/panels/{explain → console}/PromptBuilder.ts +12 -7
- package/front_end/panels/console/console-meta.ts +14 -0
- package/front_end/panels/console/console.ts +6 -0
- package/front_end/panels/console/consoleInsightTeaser.css +83 -0
- package/front_end/panels/coverage/CoverageListView.ts +29 -11
- package/front_end/panels/coverage/CoverageView.ts +292 -284
- package/front_end/panels/coverage/coverageView.css +17 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +1 -0
- package/front_end/panels/elements/LayoutPane.ts +1 -0
- package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -0
- package/front_end/panels/elements/StylePropertyTreeElement.ts +5 -1
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +17 -0
- package/front_end/panels/emulation/DeviceModeView.ts +2 -0
- package/front_end/panels/explain/ActionDelegate.ts +4 -2
- package/front_end/panels/explain/components/ConsoleInsight.ts +14 -12
- package/front_end/panels/explain/explain-meta.ts +7 -0
- package/front_end/panels/explain/explain.ts +0 -1
- package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +2 -0
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +1 -0
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +1 -0
- package/front_end/panels/media/MainView.ts +1 -0
- package/front_end/panels/media/TickingFlameChart.ts +2 -0
- package/front_end/panels/network/BlockedURLsPane.ts +237 -108
- package/front_end/panels/network/EventSourceMessagesView.ts +1 -0
- package/front_end/panels/network/NetworkItemView.ts +1 -0
- package/front_end/panels/network/NetworkLogView.ts +9 -7
- package/front_end/panels/network/NetworkOverview.ts +1 -0
- package/front_end/panels/network/RequestCookiesView.ts +1 -0
- package/front_end/panels/network/RequestHTMLView.ts +1 -0
- package/front_end/panels/network/RequestInitiatorView.ts +1 -0
- package/front_end/panels/network/RequestPayloadView.ts +1 -0
- package/front_end/panels/network/RequestPreviewView.ts +1 -0
- package/front_end/panels/network/RequestResponseView.ts +1 -0
- package/front_end/panels/network/RequestTimingView.ts +2 -0
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -0
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -0
- package/front_end/panels/network/components/RequestHeadersView.ts +2 -0
- package/front_end/panels/network/components/RequestTrustTokensView.ts +2 -0
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -0
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +2 -0
- package/front_end/panels/profiler/HeapSnapshotView.ts +7 -0
- package/front_end/panels/profiler/IsolateSelector.ts +1 -0
- package/front_end/panels/profiler/LiveHeapProfileView.ts +1 -0
- package/front_end/panels/profiler/ProfileView.ts +1 -0
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
- package/front_end/panels/recorder/RecorderPanel.ts +2 -0
- package/front_end/panels/screencast/ScreencastView.ts +1 -0
- package/front_end/panels/search/SearchView.ts +1 -0
- package/front_end/panels/settings/AISettingsTab.ts +3 -3
- package/front_end/{models/persistence → panels/settings}/EditFileSystemView.ts +3 -6
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +4 -1
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
- package/front_end/panels/settings/settings.ts +2 -0
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +12 -0
- package/front_end/panels/sources/BreakpointsView.ts +1 -0
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -0
- package/front_end/{models/persistence → panels/sources}/PersistenceActions.ts +8 -12
- package/front_end/panels/sources/TabbedEditorContainer.ts +2 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +17 -2
- package/front_end/panels/sources/sources-meta.ts +15 -0
- package/front_end/panels/sources/sources.ts +2 -0
- package/front_end/panels/timeline/README.md +2 -2
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -3
- package/front_end/panels/timeline/TimelineLayersView.ts +1 -0
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +114 -37
- package/front_end/panels/timeline/TimelinePanel.ts +43 -62
- package/front_end/panels/timeline/TimelineTreeView.ts +1 -0
- package/front_end/panels/timeline/components/LiveMetricsView.ts +4 -8
- package/front_end/panels/timeline/components/Sidebar.ts +2 -0
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +7 -7
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +4 -4
- package/front_end/panels/utils/utils.ts +2 -1
- package/front_end/panels/web_audio/WebAudioView.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/diff/diff_match_patch.js +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1530 -2426
- package/front_end/third_party/lighthouse/locales/ar-XB.json +107 -455
- package/front_end/third_party/lighthouse/locales/ar.json +107 -455
- package/front_end/third_party/lighthouse/locales/bg.json +96 -444
- package/front_end/third_party/lighthouse/locales/ca.json +96 -444
- package/front_end/third_party/lighthouse/locales/cs.json +96 -444
- package/front_end/third_party/lighthouse/locales/da.json +96 -444
- package/front_end/third_party/lighthouse/locales/de.json +96 -444
- package/front_end/third_party/lighthouse/locales/el.json +96 -444
- package/front_end/third_party/lighthouse/locales/en-GB.json +96 -444
- package/front_end/third_party/lighthouse/locales/en-US.json +116 -467
- package/front_end/third_party/lighthouse/locales/en-XA.json +93 -441
- package/front_end/third_party/lighthouse/locales/en-XL.json +116 -467
- package/front_end/third_party/lighthouse/locales/es-419.json +96 -444
- package/front_end/third_party/lighthouse/locales/es.json +96 -444
- package/front_end/third_party/lighthouse/locales/fi.json +96 -444
- package/front_end/third_party/lighthouse/locales/fil.json +96 -444
- package/front_end/third_party/lighthouse/locales/fr.json +96 -444
- package/front_end/third_party/lighthouse/locales/he.json +118 -466
- package/front_end/third_party/lighthouse/locales/hi.json +96 -444
- package/front_end/third_party/lighthouse/locales/hr.json +100 -448
- package/front_end/third_party/lighthouse/locales/hu.json +96 -444
- package/front_end/third_party/lighthouse/locales/id.json +96 -444
- package/front_end/third_party/lighthouse/locales/it.json +96 -444
- package/front_end/third_party/lighthouse/locales/ja.json +96 -444
- package/front_end/third_party/lighthouse/locales/ko.json +97 -445
- package/front_end/third_party/lighthouse/locales/lt.json +96 -444
- package/front_end/third_party/lighthouse/locales/lv.json +97 -445
- package/front_end/third_party/lighthouse/locales/nl.json +96 -444
- package/front_end/third_party/lighthouse/locales/no.json +96 -444
- package/front_end/third_party/lighthouse/locales/pl.json +96 -444
- package/front_end/third_party/lighthouse/locales/pt-PT.json +96 -444
- package/front_end/third_party/lighthouse/locales/pt.json +97 -445
- package/front_end/third_party/lighthouse/locales/ro.json +97 -445
- package/front_end/third_party/lighthouse/locales/ru.json +96 -444
- package/front_end/third_party/lighthouse/locales/sk.json +96 -444
- package/front_end/third_party/lighthouse/locales/sl.json +96 -444
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +96 -444
- package/front_end/third_party/lighthouse/locales/sr.json +96 -444
- package/front_end/third_party/lighthouse/locales/sv.json +96 -444
- package/front_end/third_party/lighthouse/locales/ta.json +96 -444
- package/front_end/third_party/lighthouse/locales/te.json +97 -445
- package/front_end/third_party/lighthouse/locales/th.json +96 -444
- package/front_end/third_party/lighthouse/locales/tr.json +96 -444
- package/front_end/third_party/lighthouse/locales/uk.json +96 -444
- package/front_end/third_party/lighthouse/locales/vi.json +96 -444
- package/front_end/third_party/lighthouse/locales/zh-HK.json +96 -444
- package/front_end/third_party/lighthouse/locales/zh-TW.json +97 -445
- package/front_end/third_party/lighthouse/locales/zh.json +96 -444
- package/front_end/third_party/lighthouse/report/bundle.d.ts +8 -14
- package/front_end/third_party/lighthouse/report/bundle.js +10 -49
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
- package/front_end/third_party/web-vitals/README.chromium +5 -8
- package/front_end/third_party/web-vitals/package/README.md +191 -152
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.d.ts +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.js +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.js +45 -26
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.js +3 -3
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +10 -10
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +307 -206
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +69 -49
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.js +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/index.d.ts +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/index.js +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +33 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +111 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.d.ts +4 -0
- package/front_end/third_party/web-vitals/package/dist/modules/{attribution/deprecated.js → lib/LCPEntryManager.js} +6 -7
- package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.d.ts +6 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.js +44 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getActivationStart.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getNavigationEntry.js +5 -7
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.js +9 -12
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.d.ts +1 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.js +52 -33
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +0 -2
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initUnique.d.ts +6 -0
- package/front_end/third_party/web-vitals/package/dist/modules/{deprecated.js → lib/initUnique.js} +11 -4
- package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.js +3 -6
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/interactionCountPolyfill.js +6 -6
- package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.d.ts → whenIdleOrHidden.d.ts} +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.js → whenIdleOrHidden.js} +10 -8
- package/front_end/third_party/web-vitals/package/dist/modules/onCLS.js +17 -35
- package/front_end/third_party/web-vitals/package/dist/modules/onFCP.js +3 -5
- package/front_end/third_party/web-vitals/package/dist/modules/onINP.d.ts +9 -7
- package/front_end/third_party/web-vitals/package/dist/modules/onINP.js +27 -19
- package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +33 -26
- package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.js +2 -4
- package/front_end/third_party/web-vitals/package/dist/modules/types/base.d.ts +6 -5
- package/front_end/third_party/web-vitals/package/dist/modules/types/cls.d.ts +5 -3
- package/front_end/third_party/web-vitals/package/dist/modules/types/inp.d.ts +80 -33
- package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +6 -2
- package/front_end/third_party/web-vitals/package/dist/modules/types.d.ts +28 -4
- package/front_end/third_party/web-vitals/package/dist/modules/types.js +0 -1
- package/front_end/third_party/web-vitals/package/package.json +4 -10
- package/front_end/third_party/web-vitals/package/src/attribution/index.ts +0 -1
- package/front_end/third_party/web-vitals/package/src/attribution/onCLS.ts +58 -33
- package/front_end/third_party/web-vitals/package/src/attribution/onFCP.ts +4 -4
- package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +382 -258
- package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +96 -69
- package/front_end/third_party/web-vitals/package/src/attribution/onTTFB.ts +3 -3
- package/front_end/third_party/web-vitals/package/src/index.ts +0 -1
- package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +146 -0
- package/front_end/third_party/web-vitals/package/src/{attribution/deprecated.ts → lib/LCPEntryManager.ts} +6 -9
- package/front_end/third_party/web-vitals/package/src/lib/LayoutShiftManager.ts +50 -0
- package/front_end/third_party/web-vitals/package/src/lib/bindReporter.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/generateUniqueID.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/getActivationStart.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/getNavigationEntry.ts +5 -8
- package/front_end/third_party/web-vitals/package/src/lib/getSelector.ts +12 -12
- package/front_end/third_party/web-vitals/package/src/lib/getVisibilityWatcher.ts +57 -35
- package/front_end/third_party/web-vitals/package/src/lib/initMetric.ts +2 -2
- package/front_end/third_party/web-vitals/package/src/{deprecated.ts → lib/initUnique.ts} +14 -8
- package/front_end/third_party/web-vitals/package/src/lib/observe.ts +3 -11
- package/front_end/third_party/web-vitals/package/src/lib/polyfills/interactionCountPolyfill.ts +12 -6
- package/front_end/third_party/web-vitals/package/src/lib/{whenIdle.ts → whenIdleOrHidden.ts} +10 -8
- package/front_end/third_party/web-vitals/package/src/onCLS.ts +17 -38
- package/front_end/third_party/web-vitals/package/src/onFCP.ts +3 -6
- package/front_end/third_party/web-vitals/package/src/onINP.ts +33 -28
- package/front_end/third_party/web-vitals/package/src/onLCP.ts +36 -29
- package/front_end/third_party/web-vitals/package/src/onTTFB.ts +2 -5
- package/front_end/third_party/web-vitals/package/src/types/base.ts +5 -5
- package/front_end/third_party/web-vitals/package/src/types/cls.ts +5 -3
- package/front_end/third_party/web-vitals/package/src/types/inp.ts +88 -33
- package/front_end/third_party/web-vitals/package/src/types/lcp.ts +6 -2
- package/front_end/third_party/web-vitals/package/src/types.ts +47 -4
- package/front_end/third_party/web-vitals/patches/0001-Add-onEachInteraction-to-onINP-options.patch +75 -0
- package/front_end/third_party/web-vitals/rebuild.sh +32 -18
- package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +5 -10
- package/front_end/third_party/web-vitals/web-vitals.ts +0 -2
- package/front_end/ui/components/docs/console_insight/basic.ts +3 -2
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +2 -0
- package/front_end/ui/components/text_editor/TextEditor.ts +0 -2
- package/front_end/ui/legacy/InspectorView.ts +2 -0
- package/front_end/ui/legacy/ListWidget.ts +2 -2
- package/front_end/ui/legacy/SplitWidget.ts +2 -0
- package/front_end/ui/legacy/TabbedPane.ts +1 -0
- package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -0
- package/front_end/ui/legacy/UIUtils.ts +8 -19
- package/front_end/ui/legacy/ViewManager.ts +1 -0
- package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +7 -20
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +2 -0
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -0
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -0
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +1 -0
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +2 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +25 -0
- package/mcp/README.md +7 -0
- package/mcp/mcp.ts +8 -0
- package/package.json +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +0 -34
- package/front_end/third_party/web-vitals/package/attribution.d.ts +0 -16
- package/front_end/third_party/web-vitals/package/attribution.js +0 -18
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/deprecated.d.ts +0 -7
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.d.ts +0 -11
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.js +0 -46
- package/front_end/third_party/web-vitals/package/dist/modules/deprecated.d.ts +0 -5
- package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.d.ts +0 -31
- package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.js +0 -107
- package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.d.ts +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.js +0 -22
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.d.ts +0 -7
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.js +0 -147
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.d.ts +0 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.js +0 -25
- package/front_end/third_party/web-vitals/package/dist/modules/onFID.d.ts +0 -13
- package/front_end/third_party/web-vitals/package/dist/modules/onFID.js +0 -70
- package/front_end/third_party/web-vitals/package/dist/modules/types/fid.d.ts +0 -46
- package/front_end/third_party/web-vitals/package/dist/modules/types/fid.js +0 -16
- package/front_end/third_party/web-vitals/package/src/attribution/onFID.ts +0 -62
- package/front_end/third_party/web-vitals/package/src/lib/interactions.ts +0 -139
- package/front_end/third_party/web-vitals/package/src/lib/onHidden.ts +0 -23
- package/front_end/third_party/web-vitals/package/src/lib/polyfills/firstInputPolyfill.ts +0 -174
- package/front_end/third_party/web-vitals/package/src/onFID.ts +0 -105
- package/front_end/third_party/web-vitals/package/src/types/fid.ts +0 -65
- package/front_end/ui/components/text_editor/textEditor.css +0 -18
- package/front_end/ui/legacy/inlineButton.css +0 -22
- /package/front_end/entrypoints/{rehydrated_devtools_app/rehydrated_devtools_app.ts → trace_app/trace_app.ts} +0 -0
- /package/front_end/{models/persistence → panels/settings}/editFileSystemView.css +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"core/audits/accessibility/accesskeys.js | description": {
|
|
3
|
-
"message": "Các khoá truy cập cho phép người dùng chuyển nhanh đến một phần của trang. Để điều hướng đúng cách, mỗi khoá truy cập phải là duy nhất. [Tìm hiểu thêm về khoá truy cập](https://dequeuniversity.com/rules/axe/4.
|
|
3
|
+
"message": "Các khoá truy cập cho phép người dùng chuyển nhanh đến một phần của trang. Để điều hướng đúng cách, mỗi khoá truy cập phải là duy nhất. [Tìm hiểu thêm về khoá truy cập](https://dequeuniversity.com/rules/axe/4.11/accesskeys)."
|
|
4
4
|
},
|
|
5
5
|
"core/audits/accessibility/accesskeys.js | failureTitle": {
|
|
6
6
|
"message": "Các giá trị của `[accesskey]` không phải là duy nhất"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"message": "Các giá trị của `[accesskey]` là duy nhất"
|
|
10
10
|
},
|
|
11
11
|
"core/audits/accessibility/aria-allowed-attr.js | description": {
|
|
12
|
-
"message": "Mỗi `role` của Ứng dụng Internet phong phú dễ dùng (ARIA) hỗ trợ một tập hợp con cụ thể các thuộc tính `aria-*`. Nếu không trùng khớp, các thuộc tính `aria-*` sẽ bị vô hiệu. [Tìm hiểu cách khớp các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) với vai trò của những thuộc tính này](https://dequeuniversity.com/rules/axe/4.
|
|
12
|
+
"message": "Mỗi `role` của Ứng dụng Internet phong phú dễ dùng (ARIA) hỗ trợ một tập hợp con cụ thể các thuộc tính `aria-*`. Nếu không trùng khớp, các thuộc tính `aria-*` sẽ bị vô hiệu. [Tìm hiểu cách khớp các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) với vai trò của những thuộc tính này](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": "Các thuộc tính `[aria-*]` không khớp với vai trò tương ứng"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"message": "Các thuộc tính `[aria-*]` khớp với vai trò tương ứng"
|
|
19
19
|
},
|
|
20
20
|
"core/audits/accessibility/aria-allowed-role.js | description": {
|
|
21
|
-
"message": "Nhiều phần tử HTML chỉ có thể được chỉ định những vai trò nhất định của ARIA. Việc sử dụng vai trò của ARIA cho các phần tử không được phép có thể ảnh hưởng đến khả năng hỗ trợ tiếp cận của trang web. [Tìm hiểu thêm về các vai trò của ARIA](https://dequeuniversity.com/rules/axe/4.
|
|
21
|
+
"message": "Nhiều phần tử HTML chỉ có thể được chỉ định những vai trò nhất định của ARIA. Việc sử dụng vai trò của ARIA cho các phần tử không được phép có thể ảnh hưởng đến khả năng hỗ trợ tiếp cận của trang web. [Tìm hiểu thêm về các vai trò của 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": "Sử dụng vai trò của ARIA cho các phần tử không tương thích"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"message": "Chỉ sử dụng vai trò của ARIA cho các phần tử tương thích"
|
|
28
28
|
},
|
|
29
29
|
"core/audits/accessibility/aria-command-name.js | description": {
|
|
30
|
-
"message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách giúp các phần tử lệnh dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.
|
|
30
|
+
"message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách giúp các phần tử lệnh dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)."
|
|
31
31
|
},
|
|
32
32
|
"core/audits/accessibility/aria-command-name.js | failureTitle": {
|
|
33
33
|
"message": "Các phần tử `button`, `link` và `menuitem` không có tên dễ đọc."
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"message": "Các phần tử `button`, `link` và `menuitem` có tên dễ đọc"
|
|
37
37
|
},
|
|
38
38
|
"core/audits/accessibility/aria-conditional-attr.js | description": {
|
|
39
|
-
"message": "Một số thuộc tính ARIA chỉ có thể được sử dụng trên một phần tử trong những điều kiện nhất định. [Tìm hiểu thêm về các thuộc tính ARIA có điều kiện](https://dequeuniversity.com/rules/axe/4.
|
|
39
|
+
"message": "Một số thuộc tính ARIA chỉ có thể được sử dụng trên một phần tử trong những điều kiện nhất định. [Tìm hiểu thêm về các thuộc tính ARIA có điều kiện](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": "Các thuộc tính ARIA không được dùng theo chỉ định cho vai trò của phần tử"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"message": "Các thuộc tính ARIA được dùng theo chỉ định cho vai trò của phần tử"
|
|
46
46
|
},
|
|
47
47
|
"core/audits/accessibility/aria-deprecated-role.js | description": {
|
|
48
|
-
"message": "Công nghệ hỗ trợ có thể sẽ không xử lý đúng cách đối với các vai trò của ARIA mà Chrome không còn hỗ trợ. [Tìm hiểu thêm về các vai trò của ARIA mà Chrome không còn hỗ trợ](https://dequeuniversity.com/rules/axe/4.
|
|
48
|
+
"message": "Công nghệ hỗ trợ có thể sẽ không xử lý đúng cách đối với các vai trò của ARIA mà Chrome không còn hỗ trợ. [Tìm hiểu thêm về các vai trò của ARIA mà Chrome không còn hỗ trợ](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": "Các vai trò của ARIA mà Chrome không còn hỗ trợ đã được sử dụng"
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"message": "Các vai trò của ARIA mà Chrome không còn hỗ trợ không được sử dụng"
|
|
55
55
|
},
|
|
56
56
|
"core/audits/accessibility/aria-dialog-name.js | description": {
|
|
57
|
-
"message": "Các phần tử hộp thoại của ARIA không có tên thành phần hỗ trợ tiếp cận có thể khiến người dùng trình đọc màn hình không phân biệt được mục đích của các phần tử này. [Tìm hiểu cách giúp các phần tử hộp thoại của ARIA dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.
|
|
57
|
+
"message": "Các phần tử hộp thoại của ARIA không có tên thành phần hỗ trợ tiếp cận có thể khiến người dùng trình đọc màn hình không phân biệt được mục đích của các phần tử này. [Tìm hiểu cách giúp các phần tử hộp thoại của ARIA dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."
|
|
58
58
|
},
|
|
59
59
|
"core/audits/accessibility/aria-dialog-name.js | failureTitle": {
|
|
60
60
|
"message": "Các phần tử có `role=\"dialog\"` hoặc `role=\"alertdialog\"` không có tên thành phần hỗ trợ tiếp cận."
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"message": "Các phần tử có `role=\"dialog\"` hoặc `role=\"alertdialog\"` có tên thành phần hỗ trợ tiếp cận."
|
|
64
64
|
},
|
|
65
65
|
"core/audits/accessibility/aria-hidden-body.js | description": {
|
|
66
|
-
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sẽ hoạt động không nhất quán khi đặt `aria-hidden=\"true\"` trên tài liệu `<body>`. [Tìm hiểu ảnh hưởng của `aria-hidden` đối với phần nội dung của tài liệu](https://dequeuniversity.com/rules/axe/4.
|
|
66
|
+
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sẽ hoạt động không nhất quán khi đặt `aria-hidden=\"true\"` trên tài liệu `<body>`. [Tìm hiểu ảnh hưởng của `aria-hidden` đối với phần nội dung của tài liệu](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)."
|
|
67
67
|
},
|
|
68
68
|
"core/audits/accessibility/aria-hidden-body.js | failureTitle": {
|
|
69
69
|
"message": "Hiện có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"message": "Hiện không có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
|
|
73
73
|
},
|
|
74
74
|
"core/audits/accessibility/aria-hidden-focus.js | description": {
|
|
75
|
-
"message": "Các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm bên trong một phần tử `[aria-hidden=\"true\"]` sẽ giúp ngăn người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, tiếp cận với các phần tử tương tác đó. [Tìm hiểu ảnh hưởng của `aria-hidden` đối với các phần tử có thể lấy tiêu điểm](https://dequeuniversity.com/rules/axe/4.
|
|
75
|
+
"message": "Các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm bên trong một phần tử `[aria-hidden=\"true\"]` sẽ giúp ngăn người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, tiếp cận với các phần tử tương tác đó. [Tìm hiểu ảnh hưởng của `aria-hidden` đối với các phần tử có thể lấy tiêu điểm](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": "Các phần tử `[aria-hidden=\"true\"]` có chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"message": "Các phần tử `[aria-hidden=\"true\"]` không chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
|
|
82
82
|
},
|
|
83
83
|
"core/audits/accessibility/aria-input-field-name.js | description": {
|
|
84
|
-
"message": "Khi một trường nhập dữ liệu không có tên thành phần hỗ trợ tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm về nhãn của trường nhập dữ liệu](https://dequeuniversity.com/rules/axe/4.
|
|
84
|
+
"message": "Khi một trường nhập dữ liệu không có tên thành phần hỗ trợ tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm về nhãn của trường nhập dữ liệu](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": "Tên các trường nhập của ARIA ở trạng thái không thể tiếp cận"
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"message": "Tên các trường nhập của ARIA ở trạng thái có thể tiếp cận"
|
|
91
91
|
},
|
|
92
92
|
"core/audits/accessibility/aria-meter-name.js | description": {
|
|
93
|
-
"message": "Khi một phần tử thước đo không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách đặt tên các phần tử `meter`](https://dequeuniversity.com/rules/axe/4.
|
|
93
|
+
"message": "Khi một phần tử thước đo không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách đặt tên các phần tử `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": "Các phần tử `meter` của ARIA không có tên dễ đọc."
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"message": "Các phần tử `meter` của ARIA có tên dễ đọc"
|
|
100
100
|
},
|
|
101
101
|
"core/audits/accessibility/aria-progressbar-name.js | description": {
|
|
102
|
-
"message": "Khi một phần tử `progressbar` không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách gắn nhãn phần tử `progressbar`](https://dequeuniversity.com/rules/axe/4.
|
|
102
|
+
"message": "Khi một phần tử `progressbar` không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách gắn nhãn phần tử `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": "Các phần tử `progressbar` của ARIA không có tên dễ đọc."
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"message": "Các phần tử `progressbar` của ARIA có tên dễ đọc"
|
|
109
109
|
},
|
|
110
110
|
"core/audits/accessibility/aria-prohibited-attr.js | description": {
|
|
111
|
-
"message": "Việc sử dụng các thuộc tính ARIA ở vai trò bị cấm có thể khiến thông tin quan trọng không được truyền đạt tới những người dùng công nghệ hỗ trợ. [Tìm hiểu thêm về các vai trò bị cấm của ARIA](https://dequeuniversity.com/rules/axe/4.
|
|
111
|
+
"message": "Việc sử dụng các thuộc tính ARIA ở vai trò bị cấm có thể khiến thông tin quan trọng không được truyền đạt tới những người dùng công nghệ hỗ trợ. [Tìm hiểu thêm về các vai trò bị cấm của 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": "Các phần tử sử dụng thuộc tính ARIA bị cấm"
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"message": "Các phần tử chỉ sử dụng thuộc tính ARIA được phép"
|
|
118
118
|
},
|
|
119
119
|
"core/audits/accessibility/aria-required-attr.js | description": {
|
|
120
|
-
"message": "Một số vai trò ARIA có các thuộc tính bắt buộc mô tả trạng thái của phần tử cho trình đọc màn hình. [Tìm hiểu thêm về các vai trò và thuộc tính bắt buộc](https://dequeuniversity.com/rules/axe/4.
|
|
120
|
+
"message": "Một số vai trò ARIA có các thuộc tính bắt buộc mô tả trạng thái của phần tử cho trình đọc màn hình. [Tìm hiểu thêm về các vai trò và thuộc tính bắt buộc](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]` không có tất cả các thuộc tính `[aria-*]` bắt buộc"
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"message": "`[role]` có tất cả các thuộc tính `[aria-*]` bắt buộc"
|
|
127
127
|
},
|
|
128
128
|
"core/audits/accessibility/aria-required-children.js | description": {
|
|
129
|
-
"message": "Một số vai trò mẹ của Ứng dụng Internet phong phú dễ dùng (ARIA) phải chứa vai trò con cụ thể để thực hiện các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò và phần tử con bắt buộc](https://dequeuniversity.com/rules/axe/4.
|
|
129
|
+
"message": "Một số vai trò mẹ của Ứng dụng Internet phong phú dễ dùng (ARIA) phải chứa vai trò con cụ thể để thực hiện các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò và phần tử con bắt buộc](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": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể hiện đang thiếu một số hoặc tất cả các phần tử con bắt buộc đó."
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"message": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể có tất cả các phần tử con bắt buộc."
|
|
136
136
|
},
|
|
137
137
|
"core/audits/accessibility/aria-required-parent.js | description": {
|
|
138
|
-
"message": "Các vai trò mẹ cụ thể phải chứa một số vai trò con của Ứng dụng Internet phong phú dễ dùng (ARIA) để thực hiện đúng cách các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) và phần tử mẹ bắt buộc](https://dequeuniversity.com/rules/axe/4.
|
|
138
|
+
"message": "Các vai trò mẹ cụ thể phải chứa một số vai trò con của Ứng dụng Internet phong phú dễ dùng (ARIA) để thực hiện đúng cách các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) và phần tử mẹ bắt buộc](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]` không có trong phần tử mẹ bắt buộc tương ứng"
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"message": "`[role]` có trong phần tử mẹ bắt buộc tương ứng"
|
|
145
145
|
},
|
|
146
146
|
"core/audits/accessibility/aria-roles.js | description": {
|
|
147
|
-
"message": "Các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) phải có giá trị hợp lệ để thực hiện những chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA)](https://dequeuniversity.com/rules/axe/4.
|
|
147
|
+
"message": "Các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) phải có giá trị hợp lệ để thực hiện những chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm về các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA)](https://dequeuniversity.com/rules/axe/4.11/aria-roles)."
|
|
148
148
|
},
|
|
149
149
|
"core/audits/accessibility/aria-roles.js | failureTitle": {
|
|
150
150
|
"message": "Các giá trị của `[role]` là không hợp lệ"
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"message": "Các giá trị của `[role]` là hợp lệ"
|
|
154
154
|
},
|
|
155
155
|
"core/audits/accessibility/aria-text.js | description": {
|
|
156
|
-
"message": "Nếu bạn thêm `role=text` quanh một nút văn bản được phân tách bằng thẻ đánh dấu, VoiceOver có thể coi nút đó là một cụm từ, nhưng con cháu có thể làm tâm điểm của phần tử này sẽ không được công bố. [Tìm hiểu thêm về thuộc tính `role=text`](https://dequeuniversity.com/rules/axe/4.
|
|
156
|
+
"message": "Nếu bạn thêm `role=text` quanh một nút văn bản được phân tách bằng thẻ đánh dấu, VoiceOver có thể coi nút đó là một cụm từ, nhưng con cháu có thể làm tâm điểm của phần tử này sẽ không được công bố. [Tìm hiểu thêm về thuộc tính `role=text`](https://dequeuniversity.com/rules/axe/4.11/aria-text)."
|
|
157
157
|
},
|
|
158
158
|
"core/audits/accessibility/aria-text.js | failureTitle": {
|
|
159
159
|
"message": "Các phần tử có thuộc tính `role=text` có con cháu có thể làm tâm điểm."
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"message": "Các phần tử có thuộc tính `role=text` không có con cháu có thể làm tâm điểm."
|
|
163
163
|
},
|
|
164
164
|
"core/audits/accessibility/aria-toggle-field-name.js | description": {
|
|
165
|
-
"message": "Khi một trường chuyển đổi không có tên thành phần hỗ trợ tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm về trường chuyển đổi](https://dequeuniversity.com/rules/axe/4.
|
|
165
|
+
"message": "Khi một trường chuyển đổi không có tên thành phần hỗ trợ tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm về trường chuyển đổi](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)."
|
|
166
166
|
},
|
|
167
167
|
"core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
|
|
168
168
|
"message": "Tên các trường chuyển đổi của ARIA ở trạng thái không thể tiếp cận"
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"message": "Tên các trường chuyển đổi của ARIA ở trạng thái có thể tiếp cận"
|
|
172
172
|
},
|
|
173
173
|
"core/audits/accessibility/aria-tooltip-name.js | description": {
|
|
174
|
-
"message": "Khi một phần tử chú giải công cụ không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách đặt tên các phần tử `tooltip`](https://dequeuniversity.com/rules/axe/4.
|
|
174
|
+
"message": "Khi một phần tử chú giải công cụ không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu cách đặt tên các phần tử `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": "Các phần tử `tooltip` của ARIA không có tên dễ đọc."
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
"message": "Các phần tử `tooltip` của ARIA có tên dễ đọc"
|
|
181
181
|
},
|
|
182
182
|
"core/audits/accessibility/aria-treeitem-name.js | description": {
|
|
183
|
-
"message": "Khi một phần tử `treeitem` không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm về cách gắn nhãn phần tử `treeitem`](https://dequeuniversity.com/rules/axe/4.
|
|
183
|
+
"message": "Khi một phần tử `treeitem` không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm về cách gắn nhãn phần tử `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": "Các phần tử `treeitem` của ARIA không có tên dễ đọc."
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"message": "Các phần tử `treeitem` của ARIA có tên dễ đọc"
|
|
190
190
|
},
|
|
191
191
|
"core/audits/accessibility/aria-valid-attr-value.js | description": {
|
|
192
|
-
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có giá trị không hợp lệ. [Tìm hiểu thêm về giá trị hợp lệ cho thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA)](https://dequeuniversity.com/rules/axe/4.
|
|
192
|
+
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có giá trị không hợp lệ. [Tìm hiểu thêm về giá trị hợp lệ cho thuộc tính của Ứng dụng Internet phong phú dễ dùng (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": "Giá trị của các thuộc tính `[aria-*]` là không hợp lệ"
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
"message": "Các thuộc tính `[aria-*]` có giá trị hợp lệ"
|
|
199
199
|
},
|
|
200
200
|
"core/audits/accessibility/aria-valid-attr.js | description": {
|
|
201
|
-
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có tên không hợp lệ. [Tìm hiểu thêm về các thuộc tính hợp lệ của Ứng dụng Internet phong phú dễ dùng (ARIA)](https://dequeuniversity.com/rules/axe/4.
|
|
201
|
+
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có tên không hợp lệ. [Tìm hiểu thêm về các thuộc tính hợp lệ của Ứng dụng Internet phong phú dễ dùng (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": "Các thuộc tính `[aria-*]` là không hợp lệ hoặc bị sai chính tả"
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
"message": "Các phần tử không đạt"
|
|
211
211
|
},
|
|
212
212
|
"core/audits/accessibility/button-name.js | description": {
|
|
213
|
-
"message": "Khi một nút không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ thông báo đó là \"nút\", khiến người dùng trình đọc màn hình không sử dụng được nút này. [Tìm hiểu cách giúp các nút dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.
|
|
213
|
+
"message": "Khi một nút không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ thông báo đó là \"nút\", khiến người dùng trình đọc màn hình không sử dụng được nút này. [Tìm hiểu cách giúp các nút dễ tiếp cận hơn](https://dequeuniversity.com/rules/axe/4.11/button-name)."
|
|
214
214
|
},
|
|
215
215
|
"core/audits/accessibility/button-name.js | failureTitle": {
|
|
216
216
|
"message": "Các nút không có tên có thể tiếp cận được"
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
"message": "Các nút có tên tiếp cận được"
|
|
220
220
|
},
|
|
221
221
|
"core/audits/accessibility/bypass.js | description": {
|
|
222
|
-
"message": "Bằng việc thêm các cách bỏ qua nội dung lặp lại, người dùng bàn phím có thể khám phá trang một cách hiệu quả hơn. [Tìm hiểu thêm về cách tránh bị chặn](https://dequeuniversity.com/rules/axe/4.
|
|
222
|
+
"message": "Bằng việc thêm các cách bỏ qua nội dung lặp lại, người dùng bàn phím có thể khám phá trang một cách hiệu quả hơn. [Tìm hiểu thêm về cách tránh bị chặn](https://dequeuniversity.com/rules/axe/4.11/bypass)."
|
|
223
223
|
},
|
|
224
224
|
"core/audits/accessibility/bypass.js | failureTitle": {
|
|
225
225
|
"message": "Trang này không chứa tiêu đề, đường liên kết bỏ qua hoặc vùng mốc"
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
"message": "Trang này chứa tiêu đề, phần tử liên kết bỏ qua hoặc vùng mốc"
|
|
229
229
|
},
|
|
230
230
|
"core/audits/accessibility/color-contrast.js | description": {
|
|
231
|
-
"message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. [Tìm hiểu cách cung cấp độ tương phản màu vừa đủ](https://dequeuniversity.com/rules/axe/4.
|
|
231
|
+
"message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. [Tìm hiểu cách cung cấp độ tương phản màu vừa đủ](https://dequeuniversity.com/rules/axe/4.11/color-contrast)."
|
|
232
232
|
},
|
|
233
233
|
"core/audits/accessibility/color-contrast.js | failureTitle": {
|
|
234
234
|
"message": "Màu nền trước và nền sau không có đủ tỷ lệ tương phản."
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"message": "Màu nền trước và nền sau có đủ tỷ lệ tương phản"
|
|
238
238
|
},
|
|
239
239
|
"core/audits/accessibility/definition-list.js | description": {
|
|
240
|
-
"message": "Khi danh sách định nghĩa không được đánh dấu đúng cách, thì trình đọc màn hình có thể tạo ra thông báo gây nhầm lẫn hoặc không chính xác. [Tìm hiểu cách định cấu trúc danh sách định nghĩa đúng cách](https://dequeuniversity.com/rules/axe/4.
|
|
240
|
+
"message": "Khi danh sách định nghĩa không được đánh dấu đúng cách, thì trình đọc màn hình có thể tạo ra thông báo gây nhầm lẫn hoặc không chính xác. [Tìm hiểu cách định cấu trúc danh sách định nghĩa đúng cách](https://dequeuniversity.com/rules/axe/4.11/definition-list)."
|
|
241
241
|
},
|
|
242
242
|
"core/audits/accessibility/definition-list.js | failureTitle": {
|
|
243
243
|
"message": "`<dl>` không chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
"message": "`<dl>` chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
|
|
247
247
|
},
|
|
248
248
|
"core/audits/accessibility/dlitem.js | description": {
|
|
249
|
-
"message": "Các mục trong danh sách định nghĩa (`<dt>` và `<dd>`) phải được đưa vào một phần tử `<dl>` mẹ để đảm bảo rằng trình đọc màn hình có thể thông báo đúng cách các mục này. [Tìm hiểu cách định cấu trúc danh sách định nghĩa đúng cách](https://dequeuniversity.com/rules/axe/4.
|
|
249
|
+
"message": "Các mục trong danh sách định nghĩa (`<dt>` và `<dd>`) phải được đưa vào một phần tử `<dl>` mẹ để đảm bảo rằng trình đọc màn hình có thể thông báo đúng cách các mục này. [Tìm hiểu cách định cấu trúc danh sách định nghĩa đúng cách](https://dequeuniversity.com/rules/axe/4.11/dlitem)."
|
|
250
250
|
},
|
|
251
251
|
"core/audits/accessibility/dlitem.js | failureTitle": {
|
|
252
252
|
"message": "Các phần tử `<dl>` không bao gồm những mục trong danh sách định nghĩa"
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
"message": "Các phần tử `<dl>` chứa mục trong danh sách định nghĩa"
|
|
256
256
|
},
|
|
257
257
|
"core/audits/accessibility/document-title.js | description": {
|
|
258
|
-
"message": "Tiêu đề giúp người dùng trình đọc màn hình nắm được thông tin tổng quan về trang và giúp người dùng công cụ tìm kiếm chủ yếu dựa vào tiêu đề này xác định xem một trang có liên quan đến nội dung tìm kiếm của họ hay không. [Tìm hiểu thêm về tiêu đề tài liệu](https://dequeuniversity.com/rules/axe/4.
|
|
258
|
+
"message": "Tiêu đề giúp người dùng trình đọc màn hình nắm được thông tin tổng quan về trang và giúp người dùng công cụ tìm kiếm chủ yếu dựa vào tiêu đề này xác định xem một trang có liên quan đến nội dung tìm kiếm của họ hay không. [Tìm hiểu thêm về tiêu đề tài liệu](https://dequeuniversity.com/rules/axe/4.11/document-title)."
|
|
259
259
|
},
|
|
260
260
|
"core/audits/accessibility/document-title.js | failureTitle": {
|
|
261
261
|
"message": "Tài liệu không có phần tử `<title>`"
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
"message": "Tài liệu có phần tử `<title>`"
|
|
265
265
|
},
|
|
266
266
|
"core/audits/accessibility/duplicate-id-aria.js | description": {
|
|
267
|
-
"message": "Để các công nghệ hỗ trợ không bỏ qua các phiên bản khác, giá trị mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) không được trùng nhau. [Tìm hiểu cách khắc phục mã nhận dạng trùng lặp của Ứng dụng Internet phong phú dễ dùng (ARIA)](https://dequeuniversity.com/rules/axe/4.
|
|
267
|
+
"message": "Để các công nghệ hỗ trợ không bỏ qua các phiên bản khác, giá trị mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) không được trùng nhau. [Tìm hiểu cách khắc phục mã nhận dạng trùng lặp của Ứng dụng Internet phong phú dễ dùng (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": "Mã nhận dạng của ARIA bị trùng lặp"
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"message": "Mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) là duy nhất"
|
|
274
274
|
},
|
|
275
275
|
"core/audits/accessibility/empty-heading.js | description": {
|
|
276
|
-
"message": "Tiêu đề không có nội dung hoặc có văn bản khó đọc sẽ khiến người dùng trình đọc màn hình không thể truy cập thông tin trên cấu trúc của trang. [Tìm hiểu thêm về tiêu đề](https://dequeuniversity.com/rules/axe/4.
|
|
276
|
+
"message": "Tiêu đề không có nội dung hoặc có văn bản khó đọc sẽ khiến người dùng trình đọc màn hình không thể truy cập thông tin trên cấu trúc của trang. [Tìm hiểu thêm về tiêu đề](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."
|
|
277
277
|
},
|
|
278
278
|
"core/audits/accessibility/empty-heading.js | failureTitle": {
|
|
279
279
|
"message": "Phần tử tiêu đề không chứa nội dung."
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
"message": "Tất cả phần tử tiêu đề đều chứa nội dung."
|
|
283
283
|
},
|
|
284
284
|
"core/audits/accessibility/form-field-multiple-labels.js | description": {
|
|
285
|
-
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sử dụng nhãn đầu tiên, nhãn cuối cùng hoặc tất cả các nhãn có thể thông báo nhầm các trường biểu mẫu có nhiều nhãn. [Tìm hiểu cách sử dụng nhãn của biểu mẫu](https://dequeuniversity.com/rules/axe/4.
|
|
285
|
+
"message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sử dụng nhãn đầu tiên, nhãn cuối cùng hoặc tất cả các nhãn có thể thông báo nhầm các trường biểu mẫu có nhiều nhãn. [Tìm hiểu cách sử dụng nhãn của biểu mẫu](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)."
|
|
286
286
|
},
|
|
287
287
|
"core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
|
|
288
288
|
"message": "Các trường biểu mẫu có nhiều nhãn"
|
|
@@ -291,7 +291,7 @@
|
|
|
291
291
|
"message": "Không có trường biểu mẫu nào có nhiều nhãn"
|
|
292
292
|
},
|
|
293
293
|
"core/audits/accessibility/frame-title.js | description": {
|
|
294
|
-
"message": "Người dùng trình đọc màn hình dựa vào tiêu đề khung để mô tả nội dung của khung. [Tìm hiểu thêm về tiêu đề khung](https://dequeuniversity.com/rules/axe/4.
|
|
294
|
+
"message": "Người dùng trình đọc màn hình dựa vào tiêu đề khung để mô tả nội dung của khung. [Tìm hiểu thêm về tiêu đề khung](https://dequeuniversity.com/rules/axe/4.11/frame-title)."
|
|
295
295
|
},
|
|
296
296
|
"core/audits/accessibility/frame-title.js | failureTitle": {
|
|
297
297
|
"message": "Phần tử `<frame>` hoặc `<iframe>` không có tiêu đề"
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
"message": "Các phần tử `<frame>` hoặc `<iframe>` có tiêu đề"
|
|
301
301
|
},
|
|
302
302
|
"core/audits/accessibility/heading-order.js | description": {
|
|
303
|
-
"message": "Nhờ cách thức sắp xếp tiêu đề sao cho không bỏ qua các cấp độ thể hiện cấu trúc ngữ nghĩa của trang, người dùng dễ dàng hiểu được nội dung và thực hiện thao tác bằng công nghệ hỗ trợ hơn. [Tìm hiểu thêm về trình tự tiêu đề](https://dequeuniversity.com/rules/axe/4.
|
|
303
|
+
"message": "Nhờ cách thức sắp xếp tiêu đề sao cho không bỏ qua các cấp độ thể hiện cấu trúc ngữ nghĩa của trang, người dùng dễ dàng hiểu được nội dung và thực hiện thao tác bằng công nghệ hỗ trợ hơn. [Tìm hiểu thêm về trình tự tiêu đề](https://dequeuniversity.com/rules/axe/4.11/heading-order)."
|
|
304
304
|
},
|
|
305
305
|
"core/audits/accessibility/heading-order.js | failureTitle": {
|
|
306
306
|
"message": "Các phần tử tiêu đề không tuân theo trình tự giảm dần"
|
|
@@ -309,7 +309,7 @@
|
|
|
309
309
|
"message": "Các phần tử tiêu đề xuất hiện theo trình tự giảm dần"
|
|
310
310
|
},
|
|
311
311
|
"core/audits/accessibility/html-has-lang.js | description": {
|
|
312
|
-
"message": "Nếu một trang chưa chỉ định thuộc tính `lang`, thì trình đọc màn hình sẽ xem như trang đó đang hiển thị bằng ngôn ngữ mặc định mà người dùng chọn khi thiết lập trình đọc màn hình. Nếu trên thực tế, trang đó không hiển thị bằng ngôn ngữ mặc định, thì trình đọc màn hình có thể không thông báo văn bản của trang đó một cách chính xác. [Tìm hiểu thêm về thuộc tính `lang`](https://dequeuniversity.com/rules/axe/4.
|
|
312
|
+
"message": "Nếu một trang chưa chỉ định thuộc tính `lang`, thì trình đọc màn hình sẽ xem như trang đó đang hiển thị bằng ngôn ngữ mặc định mà người dùng chọn khi thiết lập trình đọc màn hình. Nếu trên thực tế, trang đó không hiển thị bằng ngôn ngữ mặc định, thì trình đọc màn hình có thể không thông báo văn bản của trang đó một cách chính xác. [Tìm hiểu thêm về thuộc tính `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": "Phần tử `<html>` chưa có thuộc tính `[lang]`"
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
"message": "Phần tử `<html>` có thuộc tính `[lang]`"
|
|
319
319
|
},
|
|
320
320
|
"core/audits/accessibility/html-lang-valid.js | description": {
|
|
321
|
-
"message": "Việc chỉ định [ngôn ngữ BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ sẽ giúp trình đọc màn hình thông báo văn bản đúng cách. [Tìm hiểu cách sử dụng thuộc tính `lang`](https://dequeuniversity.com/rules/axe/4.
|
|
321
|
+
"message": "Việc chỉ định [ngôn ngữ BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ sẽ giúp trình đọc màn hình thông báo văn bản đúng cách. [Tìm hiểu cách sử dụng thuộc tính `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": "Thuộc tính `[lang]` của phần tử `<html>` không có giá trị hợp lệ."
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"message": "Thuộc tính `[lang]` của phần tử `<html>` có giá trị hợp lệ"
|
|
328
328
|
},
|
|
329
329
|
"core/audits/accessibility/html-xml-lang-mismatch.js | description": {
|
|
330
|
-
"message": "Nếu trang web không chỉ định một ngôn ngữ nhất quán thì trình đọc màn hình có thể không thông báo chính xác văn bản trong trang. [Tìm hiểu thêm về thuộc tính `lang`](https://dequeuniversity.com/rules/axe/4.
|
|
330
|
+
"message": "Nếu trang web không chỉ định một ngôn ngữ nhất quán thì trình đọc màn hình có thể không thông báo chính xác văn bản trong trang. [Tìm hiểu thêm về thuộc tính `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": "Phần tử `<html>` không sở hữu thuộc tính `[xml:lang]` có cùng ngôn ngữ cơ sở như thuộc tính `[lang]`."
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
"message": "Phần tử `<html>` sở hữu thuộc tính `[xml:lang]` có cùng ngôn ngữ cơ sở như thuộc tính `[lang]`."
|
|
337
337
|
},
|
|
338
338
|
"core/audits/accessibility/identical-links-same-purpose.js | description": {
|
|
339
|
-
"message": "Các đường liên kết có cùng một đích đến phải có cùng nội dung mô tả để giúp người dùng hiểu mục đích của đường liên kết và quyết định có nên truy cập hay không. [Tìm hiểu thêm về các đường liên kết giống hệt nhau](https://dequeuniversity.com/rules/axe/4.
|
|
339
|
+
"message": "Các đường liên kết có cùng một đích đến phải có cùng nội dung mô tả để giúp người dùng hiểu mục đích của đường liên kết và quyết định có nên truy cập hay không. [Tìm hiểu thêm về các đường liên kết giống hệt nhau](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."
|
|
340
340
|
},
|
|
341
341
|
"core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
|
|
342
342
|
"message": "Các đường liên kết giống hệt nhau không có cùng mục đích."
|
|
@@ -345,7 +345,7 @@
|
|
|
345
345
|
"message": "Các đường liên kết giống hệt nhau có cùng mục đích."
|
|
346
346
|
},
|
|
347
347
|
"core/audits/accessibility/image-alt.js | description": {
|
|
348
|
-
"message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Có thể bỏ qua phần tử trang trí bằng một thuộc tính alt trống. [Tìm hiểu thêm về thuộc tính `alt`](https://dequeuniversity.com/rules/axe/4.
|
|
348
|
+
"message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Có thể bỏ qua phần tử trang trí bằng một thuộc tính alt trống. [Tìm hiểu thêm về thuộc tính `alt`](https://dequeuniversity.com/rules/axe/4.11/image-alt)."
|
|
349
349
|
},
|
|
350
350
|
"core/audits/accessibility/image-alt.js | failureTitle": {
|
|
351
351
|
"message": "Phần tử hình ảnh không có thuộc tính `[alt]`"
|
|
@@ -354,7 +354,7 @@
|
|
|
354
354
|
"message": "Các phần tử hình ảnh có thuộc tính `[alt]`"
|
|
355
355
|
},
|
|
356
356
|
"core/audits/accessibility/image-redundant-alt.js | description": {
|
|
357
|
-
"message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Văn bản thay thế giống hệt với văn bản bên cạnh đường liên kết hoặc hình ảnh có thể khiến người dùng trình đọc màn hình bối rối vì văn bản sẽ được đọc hai lần. [Tìm hiểu thêm về thuộc tính `alt`](https://dequeuniversity.com/rules/axe/4.
|
|
357
|
+
"message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Văn bản thay thế giống hệt với văn bản bên cạnh đường liên kết hoặc hình ảnh có thể khiến người dùng trình đọc màn hình bối rối vì văn bản sẽ được đọc hai lần. [Tìm hiểu thêm về thuộc tính `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": "Các phần tử hình ảnh có thuộc tính `[alt]` là văn bản thừa."
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
"message": "Các phần tử hình ảnh không có thuộc tính `[alt]` là văn bản thừa."
|
|
364
364
|
},
|
|
365
365
|
"core/audits/accessibility/input-button-name.js | description": {
|
|
366
|
-
"message": "Bạn nên thêm văn bản rõ ràng và dễ đọc vào các nút nhập để giúp người dùng trình đọc màn hình hiểu mục đích của nút nhập. [Tìm hiểu thêm về các nút nhập](https://dequeuniversity.com/rules/axe/4.
|
|
366
|
+
"message": "Bạn nên thêm văn bản rõ ràng và dễ đọc vào các nút nhập để giúp người dùng trình đọc màn hình hiểu mục đích của nút nhập. [Tìm hiểu thêm về các nút nhập](https://dequeuniversity.com/rules/axe/4.11/input-button-name)."
|
|
367
367
|
},
|
|
368
368
|
"core/audits/accessibility/input-button-name.js | failureTitle": {
|
|
369
369
|
"message": "Các nút nhập không có văn bản rõ ràng."
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"message": "Các nút nhập có văn bản rõ ràng."
|
|
373
373
|
},
|
|
374
374
|
"core/audits/accessibility/input-image-alt.js | description": {
|
|
375
|
-
"message": "Khi dùng một hình ảnh làm nút `<input>`, thì việc cung cấp văn bản thay thế có thể giúp người dùng trình đọc màn hình hiểu rõ mục đích của nút đó. [Tìm hiểu về văn bản thay thế hình ảnh đầu vào](https://dequeuniversity.com/rules/axe/4.
|
|
375
|
+
"message": "Khi dùng một hình ảnh làm nút `<input>`, thì việc cung cấp văn bản thay thế có thể giúp người dùng trình đọc màn hình hiểu rõ mục đích của nút đó. [Tìm hiểu về văn bản thay thế hình ảnh đầu vào](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": "Các thành phần `<input type=\"image\">` không có văn bản `[alt]`"
|
|
@@ -381,7 +381,7 @@
|
|
|
381
381
|
"message": "Các thành phần `<input type=\"image\">` có văn bản `[alt]`"
|
|
382
382
|
},
|
|
383
383
|
"core/audits/accessibility/label-content-name-mismatch.js | description": {
|
|
384
|
-
"message": "Nhãn văn bản hiển thị không khớp với tên thành phần hỗ trợ tiếp cận có thể gây ra trải nghiệm khó hiểu đối với người dùng trình đọc màn hình. [Tìm hiểu thêm về tên thành phần hỗ trợ tiếp cận](https://dequeuniversity.com/rules/axe/4.
|
|
384
|
+
"message": "Nhãn văn bản hiển thị không khớp với tên thành phần hỗ trợ tiếp cận có thể gây ra trải nghiệm khó hiểu đối với người dùng trình đọc màn hình. [Tìm hiểu thêm về tên thành phần hỗ trợ tiếp cận](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": "Các phần tử gắn nhãn văn bản hiển thị không có tên thành phần hỗ trợ tiếp cận trùng khớp."
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
"message": "Phần tử gắn nhãn văn bản hiển thị có tên thành phần hỗ trợ tiếp cận trùng khớp."
|
|
391
391
|
},
|
|
392
392
|
"core/audits/accessibility/label.js | description": {
|
|
393
|
-
"message": "Các nhãn đảm bảo rằng những công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, thông báo các biện pháp kiểm soát biểu mẫu đúng cách. [Tìm hiểu thêm về nhãn phần tử biểu mẫu](https://dequeuniversity.com/rules/axe/4.
|
|
393
|
+
"message": "Các nhãn đảm bảo rằng những công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, thông báo các biện pháp kiểm soát biểu mẫu đúng cách. [Tìm hiểu thêm về nhãn phần tử biểu mẫu](https://dequeuniversity.com/rules/axe/4.11/label)."
|
|
394
394
|
},
|
|
395
395
|
"core/audits/accessibility/label.js | failureTitle": {
|
|
396
396
|
"message": "Các phần tử biểu mẫu không có nhãn liên kết"
|
|
@@ -399,7 +399,7 @@
|
|
|
399
399
|
"message": "Các phần tử biểu mẫu có nhãn liên quan"
|
|
400
400
|
},
|
|
401
401
|
"core/audits/accessibility/landmark-one-main.js | description": {
|
|
402
|
-
"message": "Điểm mốc chính giúp người dùng trình đọc màn hình dễ dàng thao tác trên trang web. [Tìm hiểu thêm về điểm mốc](https://dequeuniversity.com/rules/axe/4.
|
|
402
|
+
"message": "Điểm mốc chính giúp người dùng trình đọc màn hình dễ dàng thao tác trên trang web. [Tìm hiểu thêm về điểm mốc](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."
|
|
403
403
|
},
|
|
404
404
|
"core/audits/accessibility/landmark-one-main.js | failureTitle": {
|
|
405
405
|
"message": "Tài liệu không có điểm mốc chính."
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"message": "Tài liệu có một điểm mốc chính."
|
|
409
409
|
},
|
|
410
410
|
"core/audits/accessibility/link-in-text-block.js | description": {
|
|
411
|
-
"message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. Văn bản liên kết rõ ràng sẽ giúp người dùng có thị lực kém dễ đọc hơn. [Tìm hiểu cách giúp các đường liên kết dễ phân biệt](https://dequeuniversity.com/rules/axe/4.
|
|
411
|
+
"message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. Văn bản liên kết rõ ràng sẽ giúp người dùng có thị lực kém dễ đọc hơn. [Tìm hiểu cách giúp các đường liên kết dễ phân biệt](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."
|
|
412
412
|
},
|
|
413
413
|
"core/audits/accessibility/link-in-text-block.js | failureTitle": {
|
|
414
414
|
"message": "Bạn cần dựa vào màu sắc để phân biệt các đường liên kết."
|
|
@@ -417,7 +417,7 @@
|
|
|
417
417
|
"message": "Bạn có thể phân biệt được các đường liên kết mà không cần dựa vào màu sắc."
|
|
418
418
|
},
|
|
419
419
|
"core/audits/accessibility/link-name.js | description": {
|
|
420
|
-
"message": "Văn bản liên kết (và văn bản thay thế cho hình ảnh, khi dùng làm phần tử liên kết) có thể thấy rõ, là duy nhất và có thể lấy tiêu điểm sẽ cải thiện trải nghiệm khám phá cho người dùng trình đọc màn hình. [Tìm hiểu cách giúp các phần tử liên kết trở nên dễ tiếp cận](https://dequeuniversity.com/rules/axe/4.
|
|
420
|
+
"message": "Văn bản liên kết (và văn bản thay thế cho hình ảnh, khi dùng làm phần tử liên kết) có thể thấy rõ, là duy nhất và có thể lấy tiêu điểm sẽ cải thiện trải nghiệm khám phá cho người dùng trình đọc màn hình. [Tìm hiểu cách giúp các phần tử liên kết trở nên dễ tiếp cận](https://dequeuniversity.com/rules/axe/4.11/link-name)."
|
|
421
421
|
},
|
|
422
422
|
"core/audits/accessibility/link-name.js | failureTitle": {
|
|
423
423
|
"message": "Các phần tử liên kết không có tên có thể nhận rõ"
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
"message": "Các phần tử liên kết có tên có thể nhận rõ"
|
|
427
427
|
},
|
|
428
428
|
"core/audits/accessibility/list.js | description": {
|
|
429
|
-
"message": "Các trình đọc màn hình có các cách riêng để thông báo danh sách. Khi danh sách có cấu trúc phù hợp, trình đọc màn hình sẽ thông báo về danh sách chính xác hơn. [Tìm hiểu thêm về cấu trúc phù hợp của danh sách](https://dequeuniversity.com/rules/axe/4.
|
|
429
|
+
"message": "Các trình đọc màn hình có các cách riêng để thông báo danh sách. Khi danh sách có cấu trúc phù hợp, trình đọc màn hình sẽ thông báo về danh sách chính xác hơn. [Tìm hiểu thêm về cấu trúc phù hợp của danh sách](https://dequeuniversity.com/rules/axe/4.11/list)."
|
|
430
430
|
},
|
|
431
431
|
"core/audits/accessibility/list.js | failureTitle": {
|
|
432
432
|
"message": "Danh sách không chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
"message": "Danh sách chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
|
|
436
436
|
},
|
|
437
437
|
"core/audits/accessibility/listitem.js | description": {
|
|
438
|
-
"message": "Trình đọc màn hình yêu cầu các mục danh sách (`<li>`) phải có trong một `<ul>` `<ol>` hoặc `<menu>` mẹ để được thông báo đúng cách. [Tìm hiểu thêm về cấu trúc phù hợp của danh sách](https://dequeuniversity.com/rules/axe/4.
|
|
438
|
+
"message": "Trình đọc màn hình yêu cầu các mục danh sách (`<li>`) phải có trong một `<ul>` `<ol>` hoặc `<menu>` mẹ để được thông báo đúng cách. [Tìm hiểu thêm về cấu trúc phù hợp của danh sách](https://dequeuniversity.com/rules/axe/4.11/listitem)."
|
|
439
439
|
},
|
|
440
440
|
"core/audits/accessibility/listitem.js | failureTitle": {
|
|
441
441
|
"message": "Các mục trong danh sách (`<li>`) không có trong phần tử `<ul>` `<ol>` hoặc `<menu>` mẹ."
|
|
@@ -444,7 +444,7 @@
|
|
|
444
444
|
"message": "Các mục trong danh sách (`<li>`) có trong phần tử mẹ `<ul>`, `<ol>` hoặc `<menu>`"
|
|
445
445
|
},
|
|
446
446
|
"core/audits/accessibility/meta-refresh.js | description": {
|
|
447
|
-
"message": "Người dùng không muốn một trang tự động làm mới và việc trang tự động làm mới sẽ chuyển tiêu điểm quay về đầu trang. Người dùng có thể cảm thấy khó chịu hoặc bị nhầm lẫn nếu gặp trường hợp này. [Tìm hiểu thêm về thẻ làm mới meta](https://dequeuniversity.com/rules/axe/4.
|
|
447
|
+
"message": "Người dùng không muốn một trang tự động làm mới và việc trang tự động làm mới sẽ chuyển tiêu điểm quay về đầu trang. Người dùng có thể cảm thấy khó chịu hoặc bị nhầm lẫn nếu gặp trường hợp này. [Tìm hiểu thêm về thẻ làm mới meta](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)."
|
|
448
448
|
},
|
|
449
449
|
"core/audits/accessibility/meta-refresh.js | failureTitle": {
|
|
450
450
|
"message": "Tài liệu này sử dụng `<meta http-equiv=\"refresh\">`"
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"message": "Tài liệu này không dùng `<meta http-equiv=\"refresh\">`"
|
|
454
454
|
},
|
|
455
455
|
"core/audits/accessibility/meta-viewport.js | description": {
|
|
456
|
-
"message": "Việc tắt tính năng thu phóng sẽ gây trở ngại cho những người dùng có thị lực kém bị lệ thuộc vào chức năng phóng to màn hình để thấy rõ nội dung trang web. [Tìm hiểu thêm về thẻ meta cửa sổ xem](https://dequeuniversity.com/rules/axe/4.
|
|
456
|
+
"message": "Việc tắt tính năng thu phóng sẽ gây trở ngại cho những người dùng có thị lực kém bị lệ thuộc vào chức năng phóng to màn hình để thấy rõ nội dung trang web. [Tìm hiểu thêm về thẻ meta cửa sổ xem](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\"]` được dùng trong phần tử `<meta name=\"viewport\">` hoặc thuộc tính `[maximum-scale]` nhỏ hơn 5."
|
|
@@ -462,7 +462,7 @@
|
|
|
462
462
|
"message": "`[user-scalable=\"no\"]` không được sử dụng trong phần tử `<meta name=\"viewport\">` và thuộc tính `[maximum-scale]` không nhỏ hơn 5."
|
|
463
463
|
},
|
|
464
464
|
"core/audits/accessibility/object-alt.js | description": {
|
|
465
|
-
"message": "Trình đọc màn hình không dịch được nội dung không ở dạng văn bản. Bằng việc thêm văn bản thay thế vào các phần tử `<object>`, bạn có thể giúp trình đọc màn hình truyền đạt ý nghĩa cho người dùng. [Tìm hiểu thêm về văn bản thay thế cho `object` phần tử](https://dequeuniversity.com/rules/axe/4.
|
|
465
|
+
"message": "Trình đọc màn hình không dịch được nội dung không ở dạng văn bản. Bằng việc thêm văn bản thay thế vào các phần tử `<object>`, bạn có thể giúp trình đọc màn hình truyền đạt ý nghĩa cho người dùng. [Tìm hiểu thêm về văn bản thay thế cho `object` phần tử](https://dequeuniversity.com/rules/axe/4.11/object-alt)."
|
|
466
466
|
},
|
|
467
467
|
"core/audits/accessibility/object-alt.js | failureTitle": {
|
|
468
468
|
"message": "Các thành phần `<object>` không có văn bản thay thế"
|
|
@@ -471,7 +471,7 @@
|
|
|
471
471
|
"message": "Các thành phần `<object>` có văn bản thay thế"
|
|
472
472
|
},
|
|
473
473
|
"core/audits/accessibility/select-name.js | description": {
|
|
474
|
-
"message": "Các phần tử biểu mẫu không có nhãn hữu ích có thể khiến người dùng trình đọc màn hình cảm thấy khó chịu. [Tìm hiểu thêm về phần tử `select`](https://dequeuniversity.com/rules/axe/4.
|
|
474
|
+
"message": "Các phần tử biểu mẫu không có nhãn hữu ích có thể khiến người dùng trình đọc màn hình cảm thấy khó chịu. [Tìm hiểu thêm về phần tử `select`](https://dequeuniversity.com/rules/axe/4.11/select-name)."
|
|
475
475
|
},
|
|
476
476
|
"core/audits/accessibility/select-name.js | failureTitle": {
|
|
477
477
|
"message": "Các phần tử lựa chọn không có phần tử nhãn đi kèm."
|
|
@@ -480,7 +480,7 @@
|
|
|
480
480
|
"message": "Các phần tử lựa chọn có phần tử nhãn liên kết."
|
|
481
481
|
},
|
|
482
482
|
"core/audits/accessibility/skip-link.js | description": {
|
|
483
|
-
"message": "Nếu có đường liên kết bỏ qua, người dùng có thể chuyển ngay đến nội dung chính để tiết kiệm thời gian. [Tìm hiểu thêm về đường liên kết bỏ qua](https://dequeuniversity.com/rules/axe/4.
|
|
483
|
+
"message": "Nếu có đường liên kết bỏ qua, người dùng có thể chuyển ngay đến nội dung chính để tiết kiệm thời gian. [Tìm hiểu thêm về đường liên kết bỏ qua](https://dequeuniversity.com/rules/axe/4.11/skip-link)."
|
|
484
484
|
},
|
|
485
485
|
"core/audits/accessibility/skip-link.js | failureTitle": {
|
|
486
486
|
"message": "Đường liên kết bỏ qua không thể làm tâm điểm."
|
|
@@ -489,7 +489,7 @@
|
|
|
489
489
|
"message": "Đường liên kết bỏ qua có thể làm tâm điểm."
|
|
490
490
|
},
|
|
491
491
|
"core/audits/accessibility/tabindex.js | description": {
|
|
492
|
-
"message": "Giá trị lớn hơn 0 ngụ ý thứ tự điều hướng rõ ràng. Mặc dù hợp lệ về mặt kỹ thuật nhưng điều này thường tạo ra trải nghiệm khó chịu cho những người dùng bị lệ thuộc vào công nghệ hỗ trợ. [Tìm hiểu thêm về thuộc tính `tabindex`](https://dequeuniversity.com/rules/axe/4.
|
|
492
|
+
"message": "Giá trị lớn hơn 0 ngụ ý thứ tự điều hướng rõ ràng. Mặc dù hợp lệ về mặt kỹ thuật nhưng điều này thường tạo ra trải nghiệm khó chịu cho những người dùng bị lệ thuộc vào công nghệ hỗ trợ. [Tìm hiểu thêm về thuộc tính `tabindex`](https://dequeuniversity.com/rules/axe/4.11/tabindex)."
|
|
493
493
|
},
|
|
494
494
|
"core/audits/accessibility/tabindex.js | failureTitle": {
|
|
495
495
|
"message": "Một số phần tử có giá trị `[tabindex]` lớn hơn 0"
|
|
@@ -498,7 +498,7 @@
|
|
|
498
498
|
"message": "Không phần tử nào có giá trị `[tabindex]` lớn hơn 0"
|
|
499
499
|
},
|
|
500
500
|
"core/audits/accessibility/table-duplicate-name.js | description": {
|
|
501
|
-
"message": "Thuộc tính tóm tắt phải mô tả cấu trúc bảng, còn `<caption>` phải có tiêu đề trên màn hình. Việc đánh dấu bảng chính xác giúp ích cho người dùng trình đọc màn hình. [Tìm hiểu thêm về tóm tắt và chú thích](https://dequeuniversity.com/rules/axe/4.
|
|
501
|
+
"message": "Thuộc tính tóm tắt phải mô tả cấu trúc bảng, còn `<caption>` phải có tiêu đề trên màn hình. Việc đánh dấu bảng chính xác giúp ích cho người dùng trình đọc màn hình. [Tìm hiểu thêm về tóm tắt và chú thích](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": "Các bảng có nội dung giống nhau trong thuộc tính tóm tắt và `<caption>.`"
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
"message": "Các bảng có nội dung khác nhau trong thuộc tính tóm tắt và `<caption>`."
|
|
508
508
|
},
|
|
509
509
|
"core/audits/accessibility/table-fake-caption.js | description": {
|
|
510
|
-
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các bảng cần sử dụng phần tử chú thích thực tế thay vì các ô có thuộc tính `[colspan]` để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về chú thích](https://dequeuniversity.com/rules/axe/4.
|
|
510
|
+
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các bảng cần sử dụng phần tử chú thích thực tế thay vì các ô có thuộc tính `[colspan]` để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về chú thích](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)."
|
|
511
511
|
},
|
|
512
512
|
"core/audits/accessibility/table-fake-caption.js | failureTitle": {
|
|
513
513
|
"message": "Bảng không sử dụng `<caption>` thay cho các ô có thuộc tính `[colspan]` để biểu thị chú thích."
|
|
@@ -516,7 +516,7 @@
|
|
|
516
516
|
"message": "Bảng sử dụng `<caption>` thay vì các ô có thuộc tính `[colspan]` để biểu thị chú thích."
|
|
517
517
|
},
|
|
518
518
|
"core/audits/accessibility/target-size.js | description": {
|
|
519
|
-
"message": "Đích chạm có kích thước và khoảng giãn cách phù hợp sẽ giúp người dùng kích hoạt mục tiêu nếu họ gặp khó khăn với việc chọn các thành phần điều khiển nhỏ. [Tìm hiểu thêm về đích chạm](https://dequeuniversity.com/rules/axe/4.
|
|
519
|
+
"message": "Đích chạm có kích thước và khoảng giãn cách phù hợp sẽ giúp người dùng kích hoạt mục tiêu nếu họ gặp khó khăn với việc chọn các thành phần điều khiển nhỏ. [Tìm hiểu thêm về đích chạm](https://dequeuniversity.com/rules/axe/4.11/target-size)."
|
|
520
520
|
},
|
|
521
521
|
"core/audits/accessibility/target-size.js | failureTitle": {
|
|
522
522
|
"message": "Đích chạm có kích thước hoặc khoảng giãn cách chưa phù hợp."
|
|
@@ -525,7 +525,7 @@
|
|
|
525
525
|
"message": "Đích chạm có kích thước và khoảng giãn cách phù hợp."
|
|
526
526
|
},
|
|
527
527
|
"core/audits/accessibility/td-has-header.js | description": {
|
|
528
|
-
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các phần tử `<td>` trong bảng lớn (chiều rộng và chiều cao từ 3 ô trở lên) cần có tiêu đề bảng liên kết để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về tiêu đề bảng](https://dequeuniversity.com/rules/axe/4.
|
|
528
|
+
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Các phần tử `<td>` trong bảng lớn (chiều rộng và chiều cao từ 3 ô trở lên) cần có tiêu đề bảng liên kết để người dùng trình đọc màn hình có trải nghiệm tốt hơn. [Tìm hiểu thêm về tiêu đề bảng](https://dequeuniversity.com/rules/axe/4.11/td-has-header)."
|
|
529
529
|
},
|
|
530
530
|
"core/audits/accessibility/td-has-header.js | failureTitle": {
|
|
531
531
|
"message": "Các phần tử `<td>` trong `<table>` lớn không có tiêu đề bảng."
|
|
@@ -534,7 +534,7 @@
|
|
|
534
534
|
"message": "Các phần tử `<td>` trong `<table>` lớn có một hoặc nhiều tiêu đề bảng."
|
|
535
535
|
},
|
|
536
536
|
"core/audits/accessibility/td-headers-attr.js | description": {
|
|
537
|
-
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Việc đảm bảo các ô `<td>` sử dụng thuộc tính `[headers]` chỉ tham chiếu các ô khác trong cùng bảng có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm về thuộc tính `headers`](https://dequeuniversity.com/rules/axe/4.
|
|
537
|
+
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Việc đảm bảo các ô `<td>` sử dụng thuộc tính `[headers]` chỉ tham chiếu các ô khác trong cùng bảng có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm về thuộc tính `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": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến một phần tử `id` không tìm thấy trong cùng một bảng."
|
|
@@ -543,7 +543,7 @@
|
|
|
543
543
|
"message": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến các ô trong cùng một bảng."
|
|
544
544
|
},
|
|
545
545
|
"core/audits/accessibility/th-has-data-cells.js | description": {
|
|
546
|
-
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Việc đảm bảo tiêu đề bảng luôn tham chiếu đến một nhóm ô nào đó có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm về tiêu đề bảng](https://dequeuniversity.com/rules/axe/4.
|
|
546
|
+
"message": "Trình đọc màn hình có các tính năng giúp người dùng dễ dàng sử dụng bảng hơn. Việc đảm bảo tiêu đề bảng luôn tham chiếu đến một nhóm ô nào đó có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm về tiêu đề bảng](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": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` không chứa các ô dữ liệu mà các phần tử đó mô tả."
|
|
@@ -552,7 +552,7 @@
|
|
|
552
552
|
"message": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` chứa các ô dữ liệu mà các phần tử này mô tả."
|
|
553
553
|
},
|
|
554
554
|
"core/audits/accessibility/valid-lang.js | description": {
|
|
555
|
-
"message": "Việc chỉ định một [ngôn ngữ BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ cho các phần tử sẽ giúp trình đọc màn hình phát âm văn bản chính xác. [Tìm hiểu cách sử dụng thuộc tính `lang`](https://dequeuniversity.com/rules/axe/4.
|
|
555
|
+
"message": "Việc chỉ định một [ngôn ngữ BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ cho các phần tử sẽ giúp trình đọc màn hình phát âm văn bản chính xác. [Tìm hiểu cách sử dụng thuộc tính `lang`](https://dequeuniversity.com/rules/axe/4.11/valid-lang)."
|
|
556
556
|
},
|
|
557
557
|
"core/audits/accessibility/valid-lang.js | failureTitle": {
|
|
558
558
|
"message": "Các thuộc tính `[lang]` không có giá trị hợp lệ"
|
|
@@ -561,7 +561,7 @@
|
|
|
561
561
|
"message": "Các thuộc tính `[lang]` có giá trị hợp lệ"
|
|
562
562
|
},
|
|
563
563
|
"core/audits/accessibility/video-caption.js | description": {
|
|
564
|
-
"message": "Khi video có chú thích, người dùng khiếm thính và người dùng bị suy giảm thính lực có thể tiếp cận thông tin trên video đó dễ dàng hơn. [Tìm hiểu thêm về chú thích của video](https://dequeuniversity.com/rules/axe/4.
|
|
564
|
+
"message": "Khi video có chú thích, người dùng khiếm thính và người dùng bị suy giảm thính lực có thể tiếp cận thông tin trên video đó dễ dàng hơn. [Tìm hiểu thêm về chú thích của video](https://dequeuniversity.com/rules/axe/4.11/video-caption)."
|
|
565
565
|
},
|
|
566
566
|
"core/audits/accessibility/video-caption.js | failureTitle": {
|
|
567
567
|
"message": "Các phần tử `<video>` không chứa phần tử `<track>` có `[kind=\"captions\"]`."
|
|
@@ -647,45 +647,6 @@
|
|
|
647
647
|
"core/audits/bootup-time.js | title": {
|
|
648
648
|
"message": "Thời gian thực thi JavaScript"
|
|
649
649
|
},
|
|
650
|
-
"core/audits/byte-efficiency/duplicated-javascript.js | description": {
|
|
651
|
-
"message": "Xóa các mô-đun JavaScript lớn, trùng lặp khỏi gói để giảm số byte mà hoạt động mạng tiêu thụ một cách không cần thiết. "
|
|
652
|
-
},
|
|
653
|
-
"core/audits/byte-efficiency/duplicated-javascript.js | title": {
|
|
654
|
-
"message": "Xóa các mô-đun trùng lặp trong gói JavaScript"
|
|
655
|
-
},
|
|
656
|
-
"core/audits/byte-efficiency/efficient-animated-content.js | description": {
|
|
657
|
-
"message": "Ảnh GIF lớn không có hiệu quả trong việc phân phối nội dung động. Hãy cân nhắc sử dụng video MPEG4/WebM cho ảnh động và PNG/WebP cho ảnh tĩnh thay vì ảnh GIF để tiết kiệm dữ liệu mạng. [Tìm hiểu thêm về định dạng video hiệu quả](https://developer.chrome.com/docs/lighthouse/performance/efficient-animated-content/)"
|
|
658
|
-
},
|
|
659
|
-
"core/audits/byte-efficiency/efficient-animated-content.js | title": {
|
|
660
|
-
"message": "Sử dụng các định dạng video cho nội dung động"
|
|
661
|
-
},
|
|
662
|
-
"core/audits/byte-efficiency/legacy-javascript.js | description": {
|
|
663
|
-
"message": "Mã Polyfill và Transform cho phép trình duyệt cũ dùng các tính năng mới của JavaScript. Tuy nhiên, nhiều tính năng không cần thiết cho trình duyệt hiện đại. Hãy cân nhắc sửa đổi quy trình xây dựng JavaScript để không chuyển đổi mã nguồn các tính năng [Đường cơ sở](https://web.dev/baseline), trừ phi bạn biết rằng mình phải hỗ trợ các trình duyệt cũ. [Tìm hiểu lý do hầu hết các trang web có thể triển khai mã ES6+ mà không cần chuyển đổi mã nguồn](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
|
|
664
|
-
},
|
|
665
|
-
"core/audits/byte-efficiency/legacy-javascript.js | detectedCoreJs2Warning": {
|
|
666
|
-
"message": "Phát hiện phiên bản 2 của core-js trên trang này. Bạn nên nâng cấp lên phiên bản 3 để sử dụng nhiều cải tiến về hiệu suất."
|
|
667
|
-
},
|
|
668
|
-
"core/audits/byte-efficiency/legacy-javascript.js | title": {
|
|
669
|
-
"message": "Tránh phân phối JavaScript cũ tới các trình duyệt hiện đại"
|
|
670
|
-
},
|
|
671
|
-
"core/audits/byte-efficiency/modern-image-formats.js | description": {
|
|
672
|
-
"message": "Các định dạng hình ảnh như WebP và AVIF thường nén tốt hơn so với các định dạng PNG hoặc JPEG. Điều này có nghĩa là tốc độ tải hình ảnh xuống sẽ nhanh hơn và tiêu tốn ít dữ liệu hơn. [Tìm hiểu thêm về định dạng hình ảnh mới](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/)."
|
|
673
|
-
},
|
|
674
|
-
"core/audits/byte-efficiency/modern-image-formats.js | title": {
|
|
675
|
-
"message": "Phân phối hình ảnh ở định dạng mới và hiệu quả hơn"
|
|
676
|
-
},
|
|
677
|
-
"core/audits/byte-efficiency/offscreen-images.js | description": {
|
|
678
|
-
"message": "Hãy cân nhắc tải từng phần các hình ảnh ẩn và nằm ngoài màn hình sau khi tải xong tất cả tài nguyên quan trọng nhằm giảm thời gian tương tác. [Tìm hiểu cách trì hoãn hình ảnh ngoài màn hình](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/)."
|
|
679
|
-
},
|
|
680
|
-
"core/audits/byte-efficiency/offscreen-images.js | title": {
|
|
681
|
-
"message": "Trì hoãn tải các hình ảnh ngoài màn hình"
|
|
682
|
-
},
|
|
683
|
-
"core/audits/byte-efficiency/render-blocking-resources.js | description": {
|
|
684
|
-
"message": "Các tài nguyên đang chặn lần hiển thị đầu tiên của trang. Hãy cân nhắc phân phối nội dòng JS/Biểu định kiểu xếp chồng (CSS) quan trọng và trì hoãn mọi JS/kiểu không quan trọng. [Tìm hiểu cách loại bỏ các tài nguyên chặn hiển thị](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/)."
|
|
685
|
-
},
|
|
686
|
-
"core/audits/byte-efficiency/render-blocking-resources.js | title": {
|
|
687
|
-
"message": "Loại bỏ các tài nguyên chặn hiển thị"
|
|
688
|
-
},
|
|
689
650
|
"core/audits/byte-efficiency/total-byte-weight.js | description": {
|
|
690
651
|
"message": "Tải trọng mạng lớn gây tốn kém cho người dùng và thường khiến thời gian tải kéo dài. [Tìm hiểu cách giảm kích thước tải trọng](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": "Giảm JavaScript không dùng đến"
|
|
724
685
|
},
|
|
725
|
-
"core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
|
|
726
|
-
"message": "Bộ nhớ đệm có thời gian hữu dụng dài có thể giúp tăng tốc số lượt truy cập lặp lại vào trang của bạn. [Tìm hiểu thêm về chính sách bộ nhớ đệm hiệu quả](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{Đã tìm thấy 1 tài nguyên}other{Đã tìm thấy # tài nguyên}}"
|
|
730
|
-
},
|
|
731
|
-
"core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
|
|
732
|
-
"message": "Phân phối các nội dung tĩnh bằng chính sách bộ nhớ đệm hiệu quả"
|
|
733
|
-
},
|
|
734
|
-
"core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
|
|
735
|
-
"message": "Sử dụng chính sách bộ nhớ đệm hiệu quả cho các nội dung tĩnh"
|
|
736
|
-
},
|
|
737
|
-
"core/audits/byte-efficiency/uses-optimized-images.js | description": {
|
|
738
|
-
"message": "Hình ảnh được tối ưu hoá sẽ tải nhanh hơn và tiêu tốn ít dữ liệu di động hơn. [Tìm hiểu cách mã hoá hình ảnh hiệu quả](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)."
|
|
739
|
-
},
|
|
740
|
-
"core/audits/byte-efficiency/uses-optimized-images.js | title": {
|
|
741
|
-
"message": "Mã hóa hình ảnh hiệu quả"
|
|
742
|
-
},
|
|
743
|
-
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
|
|
744
|
-
"message": "Kích thước thực"
|
|
745
|
-
},
|
|
746
|
-
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
|
|
747
|
-
"message": "Kích thước hiển thị"
|
|
748
|
-
},
|
|
749
|
-
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
|
|
750
|
-
"message": "Hình ảnh có kích thước lớn hơn kích thước hiển thị"
|
|
751
|
-
},
|
|
752
|
-
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
|
|
753
|
-
"message": "Hình ảnh có kích thước hiển thị phù hợp"
|
|
754
|
-
},
|
|
755
|
-
"core/audits/byte-efficiency/uses-responsive-images.js | description": {
|
|
756
|
-
"message": "Phân phát hình ảnh có kích thước phù hợp để tiết kiệm dữ liệu di động và cải thiện thời gian tải. [Tìm hiểu cách định cỡ hình ảnh](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/)."
|
|
757
|
-
},
|
|
758
|
-
"core/audits/byte-efficiency/uses-responsive-images.js | title": {
|
|
759
|
-
"message": "Thay đổi kích thước hình ảnh cho phù hợp"
|
|
760
|
-
},
|
|
761
|
-
"core/audits/byte-efficiency/uses-text-compression.js | description": {
|
|
762
|
-
"message": "Phải phân phát các tài nguyên dựa trên văn bản ở định dạng nén (gzip, deflate hoặc brotli) để giảm thiểu tổng số byte mạng. [Tìm hiểu thêm về việc nén văn bản](https://developer.chrome.com/docs/lighthouse/performance/uses-text-compression/)."
|
|
763
|
-
},
|
|
764
|
-
"core/audits/byte-efficiency/uses-text-compression.js | title": {
|
|
765
|
-
"message": "Bật tính năng nén văn bản"
|
|
766
|
-
},
|
|
767
686
|
"core/audits/clickjacking-mitigation.js | columnSeverity": {
|
|
768
687
|
"message": "Mức độ nghiêm trọng"
|
|
769
688
|
},
|
|
@@ -776,15 +695,6 @@
|
|
|
776
695
|
"core/audits/clickjacking-mitigation.js | title": {
|
|
777
696
|
"message": "Giảm thiểu các cuộc tấn công clickjacking bằng XFO hoặc CSP"
|
|
778
697
|
},
|
|
779
|
-
"core/audits/critical-request-chains.js | description": {
|
|
780
|
-
"message": "Các Chuỗi yêu cầu quan trọng dưới đây cho bạn biết những tài nguyên được tải ở mức độ ưu tiên cao. Hãy cân nhắc giảm độ dài chuỗi, giảm kích thước tài nguyên tải xuống hoặc trì hoãn tải xuống các tài nguyên không cần thiết để cải thiện tốc độ tải trang. [Tìm hiểu cách tránh tạo chuỗi yêu cầu quan trọng](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains/)."
|
|
781
|
-
},
|
|
782
|
-
"core/audits/critical-request-chains.js | displayValue": {
|
|
783
|
-
"message": "{itemCount,plural, =1{Đã tìm thấy 1 chuỗi}other{Đã tìm thấy # chuỗi}}"
|
|
784
|
-
},
|
|
785
|
-
"core/audits/critical-request-chains.js | title": {
|
|
786
|
-
"message": "Tránh tạo chuỗi các yêu cầu quan trọng"
|
|
787
|
-
},
|
|
788
698
|
"core/audits/csp-xss.js | columnDirective": {
|
|
789
699
|
"message": "Lệnh"
|
|
790
700
|
},
|
|
@@ -860,33 +770,6 @@
|
|
|
860
770
|
"core/audits/dobetterweb/doctype.js | title": {
|
|
861
771
|
"message": "Trang có loại tài liệu HTML"
|
|
862
772
|
},
|
|
863
|
-
"core/audits/dobetterweb/dom-size.js | columnStatistic": {
|
|
864
|
-
"message": "Thống kê"
|
|
865
|
-
},
|
|
866
|
-
"core/audits/dobetterweb/dom-size.js | columnValue": {
|
|
867
|
-
"message": "Giá trị"
|
|
868
|
-
},
|
|
869
|
-
"core/audits/dobetterweb/dom-size.js | description": {
|
|
870
|
-
"message": "Một DOM lớn sẽ làm tăng mức sử dụng bộ nhớ, khiến [các phép tính về kiểu](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations) kéo dài hơn, đồng thời tạo ra [các quy trình trình bày lại bố cục](https://developers.google.com/speed/articles/reflow) tốn kém. [Tìm hiểu cách tránh kích thước DOM quá lớn](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)."
|
|
871
|
-
},
|
|
872
|
-
"core/audits/dobetterweb/dom-size.js | displayValue": {
|
|
873
|
-
"message": "{itemCount,plural, =1{1 phần tử}other{# phần tử}}"
|
|
874
|
-
},
|
|
875
|
-
"core/audits/dobetterweb/dom-size.js | failureTitle": {
|
|
876
|
-
"message": "Tránh kích thước DOM quá lớn"
|
|
877
|
-
},
|
|
878
|
-
"core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
|
|
879
|
-
"message": "Độ sâu DOM tối đa"
|
|
880
|
-
},
|
|
881
|
-
"core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
|
|
882
|
-
"message": "Tổng số các phần tử DOM"
|
|
883
|
-
},
|
|
884
|
-
"core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
|
|
885
|
-
"message": "Phần tử con tối đa"
|
|
886
|
-
},
|
|
887
|
-
"core/audits/dobetterweb/dom-size.js | title": {
|
|
888
|
-
"message": "Tránh kích thước DOM quá lớn"
|
|
889
|
-
},
|
|
890
773
|
"core/audits/dobetterweb/geolocation-on-start.js | description": {
|
|
891
774
|
"message": "Các trang web yêu cầu vị trí của người dùng mà không cung cấp ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với hành động của người dùng. [Tìm hiểu thêm về quyền truy cập vị trí địa lý](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": "Thư viện JavaScript phát hiện được"
|
|
925
808
|
},
|
|
926
|
-
"core/audits/dobetterweb/no-document-write.js | description": {
|
|
927
|
-
"message": "Đối với những người dùng có kết nối chậm, các tập lệnh bên ngoài tự động được đưa vào qua `document.write()` có thể làm trang tải chậm hàng chục giây. [Tìm hiểu cách tránh 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": "Tránh `document.write()`"
|
|
931
|
-
},
|
|
932
|
-
"core/audits/dobetterweb/no-document-write.js | title": {
|
|
933
|
-
"message": "Tránh `document.write()`"
|
|
934
|
-
},
|
|
935
809
|
"core/audits/dobetterweb/notification-on-start.js | description": {
|
|
936
810
|
"message": "Các trang web yêu cầu gửi thông báo không có ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với cử chỉ của người dùng. [Tìm hiểu thêm về việc xin cấp quyền gửi thông báo một cách có trách nhiệm](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": "Cho phép người dùng dán nội dung vào các trường nhập dữ liệu"
|
|
952
826
|
},
|
|
953
|
-
"core/audits/dobetterweb/uses-http2.js | columnProtocol": {
|
|
954
|
-
"message": "Giao thức"
|
|
955
|
-
},
|
|
956
|
-
"core/audits/dobetterweb/uses-http2.js | description": {
|
|
957
|
-
"message": "So với HTTP/1.1 thì HTTP/2 mang lại nhiều lợi ích hơn, trong đó có khả năng đa hợp và tiêu đề nhị phân. [Tìm hiểu thêm về 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{Chưa phân phát 1 yêu cầu qua HTTP/2}other{Chưa phân phát # yêu cầu qua HTTP/2}}"
|
|
961
|
-
},
|
|
962
|
-
"core/audits/dobetterweb/uses-http2.js | title": {
|
|
963
|
-
"message": "Sử dụng HTTP/2"
|
|
964
|
-
},
|
|
965
|
-
"core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
|
|
966
|
-
"message": "Hãy cân nhắc đánh dấu trình nghe sự kiện chạm và di chuyển con lăn là `passive` để cải thiện hiệu suất cuộn trên trang. [Tìm hiểu thêm về cách sử dụng trình nghe sự kiện thụ động](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": "Không sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
|
|
970
|
-
},
|
|
971
|
-
"core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
|
|
972
|
-
"message": "Sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
|
|
973
|
-
},
|
|
974
827
|
"core/audits/errors-in-console.js | description": {
|
|
975
828
|
"message": "Các lỗi được ghi vào bảng điều khiển là những sự cố chưa giải quyết. Những sự cố này có thể do lỗi yêu cầu mạng và các vấn đề khác của trình duyệt gây ra. [Tìm hiểu thêm về lỗi này trong thông tin kiểm tra chẩn đoán bảng điều khiển](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": "Chưa ghi lỗi nào của trình duyệt vào bảng điều khiển"
|
|
982
835
|
},
|
|
983
|
-
"core/audits/font-display.js | description": {
|
|
984
|
-
"message": "Tận dụng tính năng CSS `font-display` nhằm đảm bảo người dùng thấy được văn bản trong lúc phông chữ web đang tải. [Tìm hiểu thêm về `font-display`](https://developer.chrome.com/docs/lighthouse/performance/font-display/)."
|
|
985
|
-
},
|
|
986
|
-
"core/audits/font-display.js | failureTitle": {
|
|
987
|
-
"message": "Đảm bảo văn bản vẫn hiển thị trong khi tải phông chữ web"
|
|
988
|
-
},
|
|
989
|
-
"core/audits/font-display.js | title": {
|
|
990
|
-
"message": "Tất cả văn bản vẫn hiển thị trong khi tải phông chữ web"
|
|
991
|
-
},
|
|
992
|
-
"core/audits/font-display.js | undeclaredFontOriginWarning": {
|
|
993
|
-
"message": "{fontCountForOrigin,plural, =1{Lighthouse không thể tự động kiểm tra `font-display` giá trị cho nguồn gốc {fontOrigin}.}other{Lighthouse không thể tự động kiểm tra `font-display` giá trị cho nguồn gốc {fontOrigin}.}}"
|
|
994
|
-
},
|
|
995
836
|
"core/audits/has-hsts.js | columnDirective": {
|
|
996
837
|
"message": "Lệnh"
|
|
997
838
|
},
|
|
@@ -1088,33 +929,6 @@
|
|
|
1088
929
|
"core/audits/is-on-https.js | warning": {
|
|
1089
930
|
"message": "Được phép nhưng có cảnh báo"
|
|
1090
931
|
},
|
|
1091
|
-
"core/audits/largest-contentful-paint-element.js | columnPercentOfLCP": {
|
|
1092
|
-
"message": "% LCP (Nội dung lớn nhất hiển thị)"
|
|
1093
|
-
},
|
|
1094
|
-
"core/audits/largest-contentful-paint-element.js | columnPhase": {
|
|
1095
|
-
"message": "Giai đoạn"
|
|
1096
|
-
},
|
|
1097
|
-
"core/audits/largest-contentful-paint-element.js | columnTiming": {
|
|
1098
|
-
"message": "Thời gian"
|
|
1099
|
-
},
|
|
1100
|
-
"core/audits/largest-contentful-paint-element.js | description": {
|
|
1101
|
-
"message": "Đây là thành phần nội dung lớn nhất hiển thị trong khung nhìn. [Tìm hiểu thêm về thành phần Thời gian hiển thị nội dung lớn nhất](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)"
|
|
1102
|
-
},
|
|
1103
|
-
"core/audits/largest-contentful-paint-element.js | itemLoadDelay": {
|
|
1104
|
-
"message": "Độ trễ khi tải"
|
|
1105
|
-
},
|
|
1106
|
-
"core/audits/largest-contentful-paint-element.js | itemLoadTime": {
|
|
1107
|
-
"message": "Thời gian tải"
|
|
1108
|
-
},
|
|
1109
|
-
"core/audits/largest-contentful-paint-element.js | itemRenderDelay": {
|
|
1110
|
-
"message": "Độ trễ khi hiển thị"
|
|
1111
|
-
},
|
|
1112
|
-
"core/audits/largest-contentful-paint-element.js | itemTTFB": {
|
|
1113
|
-
"message": "TTFB (Thời gian cho byte đầu tiên)"
|
|
1114
|
-
},
|
|
1115
|
-
"core/audits/largest-contentful-paint-element.js | title": {
|
|
1116
|
-
"message": "Thành phần Thời gian hiển thị nội dung lớn nhất"
|
|
1117
|
-
},
|
|
1118
932
|
"core/audits/layout-shifts.js | columnScore": {
|
|
1119
933
|
"message": "Điểm số về mức thay đổi bố cục"
|
|
1120
934
|
},
|
|
@@ -1136,15 +950,6 @@
|
|
|
1136
950
|
"core/audits/layout-shifts.js | title": {
|
|
1137
951
|
"message": "Tránh các thay đổi lớn về bố cục"
|
|
1138
952
|
},
|
|
1139
|
-
"core/audits/lcp-lazy-loaded.js | description": {
|
|
1140
|
-
"message": "Hình ảnh trong màn hình đầu tiên được tải từng phần sẽ hiển thị sau trong vòng đời của trang, điều này có thể làm chậm thời gian hiển thị nội dung lớn nhất. [Tìm hiểu thêm về tính năng tải từng phần tối ưu](https://web.dev/articles/lcp-lazy-loading)."
|
|
1141
|
-
},
|
|
1142
|
-
"core/audits/lcp-lazy-loaded.js | failureTitle": {
|
|
1143
|
-
"message": "Hình ảnh Thời gian hiển thị nội dung lớn nhất đã được tải từng phần"
|
|
1144
|
-
},
|
|
1145
|
-
"core/audits/lcp-lazy-loaded.js | title": {
|
|
1146
|
-
"message": "Hình ảnh Thời gian hiển thị nội dung lớn nhất không được tải từng phần"
|
|
1147
|
-
},
|
|
1148
953
|
"core/audits/long-tasks.js | description": {
|
|
1149
954
|
"message": "Liệt kê những việc cần nhiều thời gian thực hiện nhất trong chuỗi chính. Thông tin này khá hữu ích trong việc xác định những thành phần có thời gian phản hồi tương tác chậm nhất. [Tìm hiểu cách tránh những việc cần nhiều thời gian thực hiện trong chuỗi chính](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": "Chỉ số Hiển thị nội dung đầu tiên đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh đầu tiên. [Tìm hiểu thêm về chỉ số Hiển thị nội dung đầu tiên](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/)."
|
|
1174
979
|
},
|
|
1175
|
-
"core/audits/metrics/first-meaningful-paint.js | description": {
|
|
1176
|
-
"message": "Chỉ số Hiển thị nội dung đầu tiên đo lường thời điểm hiển thị nội dung chính của trang. [Tìm hiểu thêm về chỉ số Hiển thị nội dung đầu tiên](https://developer.chrome.com/docs/lighthouse/performance/first-meaningful-paint/)."
|
|
1177
|
-
},
|
|
1178
980
|
"core/audits/metrics/interaction-to-next-paint.js | description": {
|
|
1179
981
|
"message": "Hoạt động tương tác với thời gian hiển thị tiếp theo đo lường khả năng phản hồi của trang, thời gian trang cần để phản hồi hoạt động đầu vào của người dùng một cách rõ ràng. [Tìm hiểu thêm về chỉ số Hoạt động tương tác với thời gian hiển thị tiếp theo](https://web.dev/articles/inp)."
|
|
1180
982
|
},
|
|
@@ -1229,6 +1031,9 @@
|
|
|
1229
1031
|
"core/audits/non-composited-animations.js | unsupportedCSSProperty": {
|
|
1230
1032
|
"message": "{propertyCount,plural, =1{Thuộc tính CSS không được hỗ trợ: {properties}}other{Các thuộc tính CSS không được hỗ trợ: {properties}}}"
|
|
1231
1033
|
},
|
|
1034
|
+
"core/audits/non-composited-animations.js | unsupportedCustomCSSProperty": {
|
|
1035
|
+
"message": "{propertyCount,plural, =1{Không thể tạo ảnh động cho các thuộc tính CSS tuỳ chỉnh trên trình tổng hợp: {properties}}other{Không thể tạo ảnh động cho các thuộc tính CSS tuỳ chỉnh trên trình tổng hợp: {properties}}}"
|
|
1036
|
+
},
|
|
1232
1037
|
"core/audits/non-composited-animations.js | unsupportedTimingParameters": {
|
|
1233
1038
|
"message": "Hiệu ứng có tham số thời gian không được hỗ trợ"
|
|
1234
1039
|
},
|
|
@@ -1250,21 +1055,6 @@
|
|
|
1250
1055
|
"core/audits/origin-isolation.js | title": {
|
|
1251
1056
|
"message": "Đảm bảo tách biệt nguồn gốc theo cách phù hợp bằng COOP"
|
|
1252
1057
|
},
|
|
1253
|
-
"core/audits/preload-fonts.js | description": {
|
|
1254
|
-
"message": "Tải trước phông chữ có `optional` để khách truy cập lần đầu có thể sử dụng. [Tìm hiểu thêm về cách tải trước phông chữ](https://web.dev/articles/preload-optional-fonts)"
|
|
1255
|
-
},
|
|
1256
|
-
"core/audits/preload-fonts.js | failureTitle": {
|
|
1257
|
-
"message": "Chưa tải trước phông chữ có `font-display: optional`"
|
|
1258
|
-
},
|
|
1259
|
-
"core/audits/preload-fonts.js | title": {
|
|
1260
|
-
"message": "Đã tải trước phông chữ có `font-display: optional`"
|
|
1261
|
-
},
|
|
1262
|
-
"core/audits/prioritize-lcp-image.js | description": {
|
|
1263
|
-
"message": "Nếu phần tử LCP được thêm vào trang qua phương thức động, bạn nên tải trước hình ảnh để cải thiện LCP. [Tìm hiểu thêm về cách tải trước phần tử LCP](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered)."
|
|
1264
|
-
},
|
|
1265
|
-
"core/audits/prioritize-lcp-image.js | title": {
|
|
1266
|
-
"message": "Tải trước hình ảnh có Thời gian hiển thị nội dung lớn nhất"
|
|
1267
|
-
},
|
|
1268
1058
|
"core/audits/redirects-http.js | description": {
|
|
1269
1059
|
"message": "Hãy nhớ chuyển hướng tất cả lưu lượng truy cập HTTP tới HTTPS để bật các tính năng web an toàn cho tất cả người dùng. [Tìm hiểu thêm](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": "Các đường liên kết có thể thu thập thông tin"
|
|
1318
1108
|
},
|
|
1319
|
-
"core/audits/seo/font-size.js | additionalIllegibleText": {
|
|
1320
|
-
"message": "Văn bản bổ sung khó đọc"
|
|
1321
|
-
},
|
|
1322
|
-
"core/audits/seo/font-size.js | columnFontSize": {
|
|
1323
|
-
"message": "Cỡ chữ"
|
|
1324
|
-
},
|
|
1325
|
-
"core/audits/seo/font-size.js | columnPercentPageText": {
|
|
1326
|
-
"message": "% văn bản trên trang"
|
|
1327
|
-
},
|
|
1328
|
-
"core/audits/seo/font-size.js | columnSelector": {
|
|
1329
|
-
"message": "Bộ chọn"
|
|
1330
|
-
},
|
|
1331
|
-
"core/audits/seo/font-size.js | description": {
|
|
1332
|
-
"message": "Cỡ chữ dưới 12 pixel là quá nhỏ và khó đọc, buộc khách truy cập trên thiết bị di động phải \"chụm để thu phóng\" mới đọc được. Tốt nhất là hơn 60% văn bản trên trang có cỡ chữ lớn hơn hoặc bằng 12 pixel. [Tìm hiểu thêm về cỡ chữ dễ đọc](https://developer.chrome.com/docs/lighthouse/seo/font-size/)."
|
|
1333
|
-
},
|
|
1334
|
-
"core/audits/seo/font-size.js | displayValue": {
|
|
1335
|
-
"message": "{decimalProportion, number, extendedPercent} văn bản dễ đọc"
|
|
1336
|
-
},
|
|
1337
|
-
"core/audits/seo/font-size.js | explanationViewport": {
|
|
1338
|
-
"message": "Văn bản không đọc được vì không có thẻ meta viewport nào được tối ưu hóa cho màn hình thiết bị di động."
|
|
1339
|
-
},
|
|
1340
|
-
"core/audits/seo/font-size.js | failureTitle": {
|
|
1341
|
-
"message": "Tài liệu không sử dụng cỡ chữ dễ đọc"
|
|
1342
|
-
},
|
|
1343
|
-
"core/audits/seo/font-size.js | legibleText": {
|
|
1344
|
-
"message": "Văn bản dễ đọc"
|
|
1345
|
-
},
|
|
1346
|
-
"core/audits/seo/font-size.js | title": {
|
|
1347
|
-
"message": "Tài liệu sử dụng cỡ chữ dễ đọc"
|
|
1348
|
-
},
|
|
1349
1109
|
"core/audits/seo/hreflang.js | description": {
|
|
1350
1110
|
"message": "Các phần tử liên kết hreflang cho công cụ tìm kiếm biết nên liệt kê phiên bản trang nào trong kết quả tìm kiếm cho một ngôn ngữ hoặc khu vực cụ thể. [Tìm hiểu thêm về `hreflang`](https://developer.chrome.com/docs/lighthouse/seo/hreflang/)."
|
|
1351
1111
|
},
|
|
@@ -1392,7 +1152,7 @@
|
|
|
1392
1152
|
"message": "Các phần tử liên kết có văn bản mô tả"
|
|
1393
1153
|
},
|
|
1394
1154
|
"core/audits/seo/manual/structured-data.js | description": {
|
|
1395
|
-
"message": "Chạy [Công cụ kiểm tra dữ liệu có cấu trúc](https://
|
|
1155
|
+
"message": "Chạy [Công cụ kiểm tra dữ liệu có cấu trúc](https://developers.google.com/search/docs/appearance/structured-data/) để xác thực dữ liệu có cấu trúc. [Tìm hiểu thêm về Dữ liệu có cấu trúc](https://developer.chrome.com/docs/lighthouse/seo/structured-data/)."
|
|
1396
1156
|
},
|
|
1397
1157
|
"core/audits/seo/manual/structured-data.js | title": {
|
|
1398
1158
|
"message": "Dữ liệu có cấu trúc là hợp lệ"
|
|
@@ -1451,48 +1211,6 @@
|
|
|
1451
1211
|
"core/audits/third-party-cookies.js | title": {
|
|
1452
1212
|
"message": "Tránh sử dụng cookie của bên thứ ba"
|
|
1453
1213
|
},
|
|
1454
|
-
"core/audits/third-party-facades.js | categoryCustomerSuccess": {
|
|
1455
|
-
"message": "{productName} (Sự thành công của khách hàng)"
|
|
1456
|
-
},
|
|
1457
|
-
"core/audits/third-party-facades.js | categoryMarketing": {
|
|
1458
|
-
"message": "{productName} (Tiếp thị)"
|
|
1459
|
-
},
|
|
1460
|
-
"core/audits/third-party-facades.js | categorySocial": {
|
|
1461
|
-
"message": "{productName} (Xã hội)"
|
|
1462
|
-
},
|
|
1463
|
-
"core/audits/third-party-facades.js | categoryVideo": {
|
|
1464
|
-
"message": "{productName} (Video)"
|
|
1465
|
-
},
|
|
1466
|
-
"core/audits/third-party-facades.js | columnProduct": {
|
|
1467
|
-
"message": "Sản phẩm"
|
|
1468
|
-
},
|
|
1469
|
-
"core/audits/third-party-facades.js | description": {
|
|
1470
|
-
"message": "Có thể tải từng phần một số nội dung nhúng của bên thứ ba. Hãy cân nhắc thay bằng một thành phần tượng trưng cho đến khi cần đến các nội dung này. [Tìm hiểu cách trì hoãn nội dung nhúng của bên thứ ba bằng thành phần tượng trưng](https://developer.chrome.com/docs/lighthouse/performance/third-party-facades/)."
|
|
1471
|
-
},
|
|
1472
|
-
"core/audits/third-party-facades.js | displayValue": {
|
|
1473
|
-
"message": "{itemCount,plural, =1{Có # thành phần thay thế dung lượng nhẹ}other{Có # thành phần thay thế dung lượng nhẹ}}"
|
|
1474
|
-
},
|
|
1475
|
-
"core/audits/third-party-facades.js | failureTitle": {
|
|
1476
|
-
"message": "Có thể tải từng phần một số tài nguyên của bên thứ ba bằng một thành phần dung lượng nhẹ"
|
|
1477
|
-
},
|
|
1478
|
-
"core/audits/third-party-facades.js | title": {
|
|
1479
|
-
"message": "Tải từng phần các tài nguyên của bên thứ ba bằng thành phần dung lượng nhẹ"
|
|
1480
|
-
},
|
|
1481
|
-
"core/audits/third-party-summary.js | columnThirdParty": {
|
|
1482
|
-
"message": "Bên thứ ba"
|
|
1483
|
-
},
|
|
1484
|
-
"core/audits/third-party-summary.js | description": {
|
|
1485
|
-
"message": "Mã của bên thứ ba có thể tác động đáng kể đến hiệu suất tải. Hãy hạn chế số nhà cung cấp bên thứ ba dư thừa và cố gắng tải mã của bên thứ ba sau khi trang của bạn hoàn thành phần lớn quá trình tải. [Tìm hiểu cách giảm thiểu tác động từ mã của bên thứ ba](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": "Mã của bên thứ ba đã chặn chuỗi chính trong {timeInMs, number, milliseconds} mili giây"
|
|
1489
|
-
},
|
|
1490
|
-
"core/audits/third-party-summary.js | failureTitle": {
|
|
1491
|
-
"message": "Giảm mức ảnh hưởng của mã bên thứ ba"
|
|
1492
|
-
},
|
|
1493
|
-
"core/audits/third-party-summary.js | title": {
|
|
1494
|
-
"message": "Giảm thiểu mức sử dụng của bên thứ ba"
|
|
1495
|
-
},
|
|
1496
1214
|
"core/audits/trusted-types-xss.js | columnSeverity": {
|
|
1497
1215
|
"message": "Mức độ nghiêm trọng"
|
|
1498
1216
|
},
|
|
@@ -1526,30 +1244,6 @@
|
|
|
1526
1244
|
"core/audits/user-timings.js | title": {
|
|
1527
1245
|
"message": "Các thời điểm cụ thể và khoảng thời gian được ghi lại bằng API Thời gian người dùng"
|
|
1528
1246
|
},
|
|
1529
|
-
"core/audits/uses-rel-preconnect.js | crossoriginWarning": {
|
|
1530
|
-
"message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
|
|
1531
|
-
},
|
|
1532
|
-
"core/audits/uses-rel-preconnect.js | description": {
|
|
1533
|
-
"message": "Hãy cân nhắc thêm các gợi ý về tài nguyên `preconnect` hoặc `dns-prefetch` để thiết lập kết nối sớm tới những nguồn gốc quan trọng của bên thứ ba. [Tìm hiểu cách kết nối trước với những nguồn gốc bắt buộc](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/)."
|
|
1534
|
-
},
|
|
1535
|
-
"core/audits/uses-rel-preconnect.js | title": {
|
|
1536
|
-
"message": "Kết nối trước với các tên miền bắt buộc"
|
|
1537
|
-
},
|
|
1538
|
-
"core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
|
|
1539
|
-
"message": "Đã phát hiện có hơn 2 đường kết nối `<link rel=preconnect>`. Bạn nên dùng những đường kết nối này một cách hợp lý và chỉ dùng cho các điểm gốc quan trọng nhất."
|
|
1540
|
-
},
|
|
1541
|
-
"core/audits/uses-rel-preconnect.js | unusedWarning": {
|
|
1542
|
-
"message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Chỉ sử dụng `preconnect` cho những điểm gốc quan trọng mà trang chắc chắn sẽ yêu cầu."
|
|
1543
|
-
},
|
|
1544
|
-
"core/audits/uses-rel-preload.js | crossoriginWarning": {
|
|
1545
|
-
"message": "Đã tìm thấy `<link>` tải trước cho \"{preloadURL}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
|
|
1546
|
-
},
|
|
1547
|
-
"core/audits/uses-rel-preload.js | description": {
|
|
1548
|
-
"message": "Hãy cân nhắc sử dụng `<link rel=preload>` để sắp xếp thứ tự ưu tiên tìm nạp các tài nguyên đang được yêu cầu vào một thời điểm khác trong quá trình tải trang. [Tìm hiểu cách tải trước các yêu cầu chính](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preload/)."
|
|
1549
|
-
},
|
|
1550
|
-
"core/audits/uses-rel-preload.js | title": {
|
|
1551
|
-
"message": "Tải trước các yêu cầu chính"
|
|
1552
|
-
},
|
|
1553
1247
|
"core/audits/valid-source-maps.js | columnMapURL": {
|
|
1554
1248
|
"message": "URL của bản đồ"
|
|
1555
1249
|
},
|
|
@@ -1568,42 +1262,6 @@
|
|
|
1568
1262
|
"core/audits/valid-source-maps.js | title": {
|
|
1569
1263
|
"message": "Trang có bản đồ nguồn hợp lệ"
|
|
1570
1264
|
},
|
|
1571
|
-
"core/audits/viewport.js | description": {
|
|
1572
|
-
"message": "`<meta name=\"viewport\">` không chỉ tối ưu hoá ứng dụng của bạn cho các kích thước màn hình trên thiết bị di động mà còn ngăn [độ trễ 300 mili giây xảy ra đối với hoạt động đầu vào của người dùng](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/). [Tìm hiểu thêm về cách sử dụng thẻ meta cửa sổ xem](https://developer.chrome.com/docs/lighthouse/pwa/viewport/)."
|
|
1573
|
-
},
|
|
1574
|
-
"core/audits/viewport.js | explanationNoTag": {
|
|
1575
|
-
"message": "Không tìm thấy thẻ `<meta name=\"viewport\">`"
|
|
1576
|
-
},
|
|
1577
|
-
"core/audits/viewport.js | failureTitle": {
|
|
1578
|
-
"message": "Không có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
|
|
1579
|
-
},
|
|
1580
|
-
"core/audits/viewport.js | title": {
|
|
1581
|
-
"message": "Có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
|
|
1582
|
-
},
|
|
1583
|
-
"core/audits/work-during-interaction.js | description": {
|
|
1584
|
-
"message": "Đây là công việc chặn chuỗi xảy ra trong quá trình đo lường Hoạt động tương tác với thời gian hiển thị tiếp theo. [Tìm hiểu thêm về chỉ số Hoạt động tương tác với thời gian hiển thị tiếp theo](https://web.dev/articles/inp)."
|
|
1585
|
-
},
|
|
1586
|
-
"core/audits/work-during-interaction.js | displayValue": {
|
|
1587
|
-
"message": "Khoảng thời gian dành cho sự kiện \"{interactionType}\" là {timeInMs, number, milliseconds} mili giây"
|
|
1588
|
-
},
|
|
1589
|
-
"core/audits/work-during-interaction.js | eventTarget": {
|
|
1590
|
-
"message": "Mục tiêu của sự kiện"
|
|
1591
|
-
},
|
|
1592
|
-
"core/audits/work-during-interaction.js | failureTitle": {
|
|
1593
|
-
"message": "Giảm thiểu công việc trong hoạt động tương tác chính"
|
|
1594
|
-
},
|
|
1595
|
-
"core/audits/work-during-interaction.js | inputDelay": {
|
|
1596
|
-
"message": "Độ trễ khi nhập thông tin"
|
|
1597
|
-
},
|
|
1598
|
-
"core/audits/work-during-interaction.js | presentationDelay": {
|
|
1599
|
-
"message": "Độ trễ khi trình bày"
|
|
1600
|
-
},
|
|
1601
|
-
"core/audits/work-during-interaction.js | processingDuration": {
|
|
1602
|
-
"message": "Thời gian xử lý"
|
|
1603
|
-
},
|
|
1604
|
-
"core/audits/work-during-interaction.js | title": {
|
|
1605
|
-
"message": "Giảm thiểu công việc trong hoạt động tương tác chính"
|
|
1606
|
-
},
|
|
1607
1265
|
"core/config/default-config.js | a11yAriaGroupDescription": {
|
|
1608
1266
|
"message": "Đây là những cơ hội giúp cải thiện việc sử dụng ARIA trong ứng dụng của bạn, nhờ đó có thể nâng cao trải nghiệm cho người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
|
|
1609
1267
|
},
|
|
@@ -3119,7 +2777,7 @@
|
|
|
3119
2777
|
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTC": {
|
|
3120
2778
|
"message": "Những trang có WebRTC không thể chuyển sang bộ nhớ đệm cho thao tác tiến/lùi."
|
|
3121
2779
|
},
|
|
3122
|
-
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js |
|
|
2780
|
+
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTCUsedWithCCNS": {
|
|
3123
2781
|
"message": "Bộ nhớ đệm cho thao tác tiến/lùi bị tắt vì WebRTC đã được dùng."
|
|
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": "Những trang có WebSocket không thể chuyển sang bộ nhớ đệm cho thao tác tiến/lùi."
|
|
3130
2788
|
},
|
|
3131
|
-
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js |
|
|
2789
|
+
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocketUsedWithCCNS": {
|
|
3132
2790
|
"message": "Bộ nhớ đệm cho thao tác tiến/lùi bị tắt vì WebSocket đã được dùng."
|
|
3133
2791
|
},
|
|
3134
2792
|
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransport": {
|
|
3135
2793
|
"message": "Những trang có WebTransport không thể chuyển sang bộ nhớ đệm cho thao tác tiến/lùi."
|
|
3136
2794
|
},
|
|
3137
|
-
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js |
|
|
2795
|
+
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransportUsedWithCCNS": {
|
|
3138
2796
|
"message": "Bộ nhớ đệm cho thao tác tiến/lùi bị tắt vì WebTransport đã được dùng."
|
|
3139
2797
|
},
|
|
3140
2798
|
"node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webXR": {
|
|
@@ -3228,43 +2886,43 @@
|
|
|
3228
2886
|
"message": "Phải phân phát các tài nguyên dựa trên văn bản ở định dạng nén (gzip, deflate hoặc brotli) để giảm thiểu tổng số byte mạng. Hãy cân nhắc sử dụng một CDN vốn hỗ trợ tính năng này hoặc định cấu hình máy chủ web để thực hiện thao tác này. [Tìm hiểu thêm](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": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2889
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Optimize Fonts` để tự động tận dụng tính năng CSS `font-display` nhằm đảm bảo người dùng thấy được văn bản trong lúc phông chữ web đang tải."
|
|
3232
2890
|
},
|
|
3233
2891
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": {
|
|
3234
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2892
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Next-Gen Formats` để chuyển đổi định dạng hình ảnh thành WebP."
|
|
3235
2893
|
},
|
|
3236
2894
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": {
|
|
3237
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2895
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Lazy Load Images` để hoãn quá trình tải hình ảnh ngoài màn hình cho đến khi cần những hình ảnh đó."
|
|
3238
2896
|
},
|
|
3239
2897
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": {
|
|
3240
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2898
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Script Delay` để hoãn JS không thiết yếu."
|
|
3241
2899
|
},
|
|
3242
2900
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": {
|
|
3243
|
-
"message": "Dùng [Ezoic Cloud Caching](https://pubdash.ezoic.com/
|
|
2901
|
+
"message": "Dùng [Ezoic Cloud Caching](https://pubdash.ezoic.com/leap/caching) để lưu vào bộ nhớ đệm các nội dung của bạn trên mạng toàn cầu của chúng tôi, qua đó làm giảm thời gian tải byte đầu tiên."
|
|
3244
2902
|
},
|
|
3245
2903
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": {
|
|
3246
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2904
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Minify CSS` để tự động rút gọn CSS nhằm giảm dung lượng dữ liệu truyền qua mạng."
|
|
3247
2905
|
},
|
|
3248
2906
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": {
|
|
3249
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2907
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Minify Javascript` để tự động rút gọn JS nhằm giảm dung lượng dữ liệu truyền qua mạng."
|
|
3250
2908
|
},
|
|
3251
2909
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": {
|
|
3252
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2910
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Remove Unused CSS` để khắc phục vấn đề này. Cách làm này sẽ xác định các loại CSS đang được dùng trên mỗi trang thuộc trang web của bạn và xoá tất cả những loại còn lại để giảm kích thước tệp."
|
|
3253
2911
|
},
|
|
3254
2912
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": {
|
|
3255
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2913
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Efficient Static Cache Policy` để thiết lập giá trị đề xuất trong tiêu đề bộ nhớ đệm cho các tài sản tĩnh."
|
|
3256
2914
|
},
|
|
3257
2915
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": {
|
|
3258
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2916
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Next-Gen Formats` để chuyển đổi định dạng hình ảnh thành WebP."
|
|
3259
2917
|
},
|
|
3260
2918
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": {
|
|
3261
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2919
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Pre-Connect Origins` để tự động thêm dấu hiệu tài nguyên `preconnect` nhằm thiết lập kết nối sớm với các nguồn gốc quan trọng của bên thứ ba."
|
|
3262
2920
|
},
|
|
3263
2921
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": {
|
|
3264
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2922
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) đồng thời bật `Preload Fonts` và `Preload Background Images` để thêm các đường liên kết `preload` nhằm ưu tiên việc tìm nạp tài nguyên đang được yêu cầu trong lúc tải trang."
|
|
3265
2923
|
},
|
|
3266
2924
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": {
|
|
3267
|
-
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/
|
|
2925
|
+
"message": "Dùng [Ezoic Leap](https://pubdash.ezoic.com/leap) và bật `Resize Images` để thay đổi kích thước hình ảnh sao cho phù hợp với thiết bị, qua đó làm giảm dung lượng dữ liệu truyền qua mạng."
|
|
3268
2926
|
},
|
|
3269
2927
|
"node_modules/lighthouse-stack-packs/packs/gatsby.js | modern-image-formats": {
|
|
3270
2928
|
"message": "Sử dụng thành phần `gatsby-plugin-image` thay cho `<img>` để tự động tối ưu hoá định dạng hình ảnh. [Tìm hiểu thêm](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)."
|
|
@@ -3372,16 +3030,16 @@
|
|
|
3372
3030
|
"message": "Có thể thêm thẻ `<link rel=preload>` bằng cách [sửa đổi bố cục của một giao diện](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": "Sử dụng thành phần `next/image` thay cho `<img>` để tự động tối ưu hoá định dạng hình ảnh. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3033
|
+
"message": "Sử dụng thành phần `next/image` thay cho `<img>` để tự động tối ưu hoá định dạng hình ảnh. [Tìm hiểu thêm](https://nextjs.org/docs/app/getting-started/images)."
|
|
3376
3034
|
},
|
|
3377
3035
|
"node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": {
|
|
3378
|
-
"message": "Sử dụng thành phần `next/image` thay cho `<img>` để tự động tải từng phần của hình ảnh. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3036
|
+
"message": "Sử dụng thành phần `next/image` thay cho `<img>` để tự động tải từng phần của hình ảnh. [Tìm hiểu thêm](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": "Dùng thành phần `next/image` và thiết lập giá trị \"mức độ ưu tiên\" thành đúng (true) để tải trước hình ảnh LCP. [Tìm hiểu thêm](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": "Hãy dùng phần tử `next/script` để trì hoãn việc tải các tập lệnh không quan trọng của bên thứ ba. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3042
|
+
"message": "Hãy dùng phần tử `next/script` để trì hoãn việc tải các tập lệnh không quan trọng của bên thứ ba. [Tìm hiểu thêm](https://nextjs.org/docs/app/guides/scripts)."
|
|
3385
3043
|
},
|
|
3386
3044
|
"node_modules/lighthouse-stack-packs/packs/next.js | unsized-images": {
|
|
3387
3045
|
"message": "Sử dụng thành phần `next/image` để đảm bảo hình ảnh luôn có kích thước phù hợp. [Tìm hiểu thêm](https://nextjs.org/docs/api-reference/next/image#width)."
|
|
@@ -3393,13 +3051,13 @@
|
|
|
3393
3051
|
"message": "Sử dụng `Webpack Bundle Analyzer` để phát hiện mã JavaScript không được sử dụng. [Tìm hiểu thêm](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": "Hãy cân nhắc dùng `Next.js Analytics` để đo lường hiệu suất của ứng dụng trong thực tế. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3054
|
+
"message": "Hãy cân nhắc dùng `Next.js Analytics` để đo lường hiệu suất của ứng dụng trong thực tế. [Tìm hiểu thêm](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": "Định cấu hình bộ nhớ đệm cho các trang `Server-side Rendered` (SSR) và thành phần không thay đổi được. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3057
|
+
"message": "Định cấu hình bộ nhớ đệm cho các trang `Server-side Rendered` (SSR) và thành phần không thay đổi được. [Tìm hiểu thêm](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": "Sử dụng thành phần `next/image` thay cho `<img>` để điều chỉnh chất lượng ảnh. [Tìm hiểu thêm](https://nextjs.org/docs/
|
|
3060
|
+
"message": "Sử dụng thành phần `next/image` thay cho `<img>` để điều chỉnh chất lượng ảnh. [Tìm hiểu thêm](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": "Hãy dùng phần tử `next/image` để đặt `sizes` phù hợp. [Tìm hiểu thêm](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": "Bật [`Adaptive Image Sizing`](https://support.nitropack.io/hc/en-us/articles/10123833029905-How-to-Enable-Adaptive-Image-Sizing-For-Your-Site) để giành quyền tối ưu hoá hình ảnh và làm cho hình ảnh khớp với kích thước của vùng chứa hiển thị hình ảnh trên tất cả thiết bị."
|
|
3445
3103
|
},
|
|
3446
|
-
"node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-text-compression": {
|
|
3447
|
-
"message": "Sử dụng [`Gzip compression`](https://support.nitropack.io/hc/en-us/articles/13229297479313-Enabling-GZIP-compression) trong NitroPack để giảm kích thước của các tệp được gửi đến trình duyệt."
|
|
3448
|
-
},
|
|
3449
3104
|
"node_modules/lighthouse-stack-packs/packs/nuxt.js | modern-image-formats": {
|
|
3450
3105
|
"message": "Sử dụng thành phần `nuxt/image` và thiết lập `format=\"webp\"`. [Tìm hiểu thêm](https://image.nuxt.com/usage/nuxt-img#format)."
|
|
3451
3106
|
},
|
|
@@ -3522,7 +3177,7 @@
|
|
|
3522
3177
|
"message": "Nếu hệ thống bản dựng của bạn tự động giảm kích thước tệp JS, hãy đảm bảo rằng bạn đang triển khai bản phát hành chính thức của ứng dụng. Bạn có thể kiểm tra điều này bằng tiện ích React Developer Tools. [Tìm hiểu thêm](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": "Nếu bạn không định hiển thị phía máy chủ, hãy [phân tách các gói JavaScript](https://web.dev/code-splitting-suspense/) bằng `React.lazy()`. Nếu không, hãy phân tách mã bằng một thư viện của bên thứ ba như [các thành phần có thể tải](https://
|
|
3180
|
+
"message": "Nếu bạn không định hiển thị phía máy chủ, hãy [phân tách các gói JavaScript](https://web.dev/code-splitting-suspense/) bằng `React.lazy()`. Nếu không, hãy phân tách mã bằng một thư viện của bên thứ ba như [các thành phần có thể tải](https://loadable-components.com/)."
|
|
3526
3181
|
},
|
|
3527
3182
|
"node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
|
|
3528
3183
|
"message": "Sử dụng Trình phân tích tài nguyên React DevTools, công cụ dùng API Trình phân tích tài nguyên để đo lường hiệu suất hiển thị của các thành phần. [Tìm hiểu thêm.](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)"
|
|
@@ -3668,15 +3323,9 @@
|
|
|
3668
3323
|
"report/renderer/report-utils.js | footerIssue": {
|
|
3669
3324
|
"message": "Tạo vấn đề"
|
|
3670
3325
|
},
|
|
3671
|
-
"report/renderer/report-utils.js | goBackToAudits": {
|
|
3672
|
-
"message": "Quay lại phần kiểm tra"
|
|
3673
|
-
},
|
|
3674
3326
|
"report/renderer/report-utils.js | hide": {
|
|
3675
3327
|
"message": "Ẩn"
|
|
3676
3328
|
},
|
|
3677
|
-
"report/renderer/report-utils.js | insightsNotice": {
|
|
3678
|
-
"message": "Vào cuối năm nay, các báo cáo kiểm tra thông tin chi tiết sẽ thay thế cho báo cáo kiểm tra hiệu suất. [Tìm hiểu thêm và đưa ra ý kiến phản hồi tại đây](https://github.com/GoogleChrome/lighthouse/discussions/16462)."
|
|
3679
|
-
},
|
|
3680
3329
|
"report/renderer/report-utils.js | labDataTitle": {
|
|
3681
3330
|
"message": "Dữ liệu của phòng thí nghiệm"
|
|
3682
3331
|
},
|
|
@@ -3776,12 +3425,15 @@
|
|
|
3776
3425
|
"report/renderer/report-utils.js | toplevelWarningsMessage": {
|
|
3777
3426
|
"message": "Đã xảy ra sự cố ảnh hưởng đến lần chạy Lighthouse này:"
|
|
3778
3427
|
},
|
|
3779
|
-
"report/renderer/report-utils.js | tryInsights": {
|
|
3780
|
-
"message": "Thử tính năng kiểm tra thông tin chi tiết"
|
|
3781
|
-
},
|
|
3782
3428
|
"report/renderer/report-utils.js | unattributable": {
|
|
3783
3429
|
"message": "Không thể phân bổ"
|
|
3784
3430
|
},
|
|
3431
|
+
"report/renderer/report-utils.js | unscoredLabel": {
|
|
3432
|
+
"message": "Không được tính"
|
|
3433
|
+
},
|
|
3434
|
+
"report/renderer/report-utils.js | unscoredTitle": {
|
|
3435
|
+
"message": "Quá trình kiểm tra này không được tính vào điểm số tổng thể của danh mục."
|
|
3436
|
+
},
|
|
3785
3437
|
"report/renderer/report-utils.js | varianceDisclaimer": {
|
|
3786
3438
|
"message": "Các giá trị chỉ là ước tính và có thể thay đổi. [Điểm hiệu quả được tính](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) trực tiếp từ những chỉ số này."
|
|
3787
3439
|
},
|