lighthouse 9.5.0-dev.20220728 → 9.5.0-dev.20220729
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/CONTRIBUTING.md +11 -11
- package/{lighthouse-cli → cli}/bin.js +5 -5
- package/{lighthouse-cli → cli}/cli-flags.js +1 -1
- package/{lighthouse-cli → cli}/commands/commands.js +0 -0
- package/{lighthouse-cli → cli}/commands/list-audits.js +1 -1
- package/{lighthouse-cli → cli}/commands/list-locales.js +0 -0
- package/{lighthouse-cli → cli}/commands/list-trace-categories.js +1 -1
- package/{lighthouse-cli → cli}/index.js +0 -0
- package/{lighthouse-cli → cli}/package.json +0 -0
- package/{lighthouse-cli → cli}/printer.js +0 -0
- package/{lighthouse-cli → cli}/run.js +3 -3
- package/{lighthouse-cli → cli}/sentry-prompt.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/__snapshots__/report-assert-test.js.snap +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/core-tests.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/frontends/back-compat-util.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/frontends/lib.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/frontends/node.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/frontends/smokehouse-bin.js +1 -1
- package/{lighthouse-cli → cli}/test/smokehouse/lib/child-process-error.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/lib/concurrent-mapper.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/lib/local-console.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/bundle.js +4 -4
- package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/cli.js +2 -2
- package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/devtools.js +3 -3
- package/{lighthouse-cli → cli}/test/smokehouse/readme.md +1 -1
- package/{lighthouse-cli → cli}/test/smokehouse/report-assert-test.js +3 -3
- package/{lighthouse-cli → cli}/test/smokehouse/report-assert.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/smokehouse.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/version-check-test.js +0 -0
- package/{lighthouse-cli → cli}/test/smokehouse/version-check.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/accesskeys.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-allowed-attr.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-command-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-hidden-body.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-hidden-focus.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-input-field-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-meter-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-progressbar-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-required-attr.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-required-children.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-required-parent.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-roles.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-toggle-field-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-tooltip-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-treeitem-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-valid-attr-value.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/aria-valid-attr.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/axe-audit.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/button-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/bypass.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/color-contrast.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/definition-list.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/dlitem.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/document-title.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/duplicate-id-active.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/duplicate-id-aria.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/form-field-multiple-labels.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/frame-title.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/heading-order.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/html-has-lang.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/html-lang-valid.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/image-alt.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/input-image-alt.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/label.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/link-name.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/list.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/listitem.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/custom-controls-labels.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/custom-controls-roles.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/focus-traps.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/focusable-controls.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/interactive-element-affordance.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/logical-tab-order.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/managed-focus.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/offscreen-content-hidden.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/use-landmarks.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/manual/visual-order-follows-dom.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/meta-refresh.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/meta-viewport.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/object-alt.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/tabindex.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/td-headers-attr.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/th-has-data-cells.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/valid-lang.js +0 -0
- package/{lighthouse-core → core}/audits/accessibility/video-caption.js +0 -0
- package/{lighthouse-core → core}/audits/audit.js +0 -0
- package/{lighthouse-core → core}/audits/autocomplete.js +0 -0
- package/{lighthouse-core → core}/audits/bootup-time.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/byte-efficiency-audit.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/duplicated-javascript.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/efficient-animated-content.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/legacy-javascript.js +2 -2
- package/{lighthouse-core → core}/audits/byte-efficiency/modern-image-formats.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/offscreen-images.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/polyfill-graph-data.json +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/render-blocking-resources.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/total-byte-weight.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/unminified-css.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/unminified-javascript.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/unused-css-rules.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/unused-javascript.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/uses-long-cache-ttl.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/uses-optimized-images.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/uses-responsive-images.js +0 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/uses-text-compression.js +0 -0
- package/{lighthouse-core → core}/audits/content-width.js +0 -0
- package/{lighthouse-core → core}/audits/critical-request-chains.js +0 -0
- package/{lighthouse-core → core}/audits/csp-xss.js +0 -0
- package/{lighthouse-core → core}/audits/deprecations.js +0 -0
- package/{lighthouse-core → core}/audits/diagnostics.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/charset.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/doctype.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/dom-size.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/geolocation-on-start.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/inspector-issues.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/js-libraries.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/no-document-write.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/no-vulnerable-libraries.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/notification-on-start.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/password-inputs-can-be-pasted-into.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/uses-http2.js +0 -0
- package/{lighthouse-core → core}/audits/dobetterweb/uses-passive-event-listeners.js +0 -0
- package/{lighthouse-core → core}/audits/errors-in-console.js +0 -0
- package/{lighthouse-core → core}/audits/final-screenshot.js +0 -0
- package/{lighthouse-core → core}/audits/font-display.js +0 -0
- package/{lighthouse-core → core}/audits/full-page-screenshot.js +0 -0
- package/{lighthouse-core → core}/audits/image-aspect-ratio.js +0 -0
- package/{lighthouse-core → core}/audits/image-size-responsive.js +0 -0
- package/{lighthouse-core → core}/audits/installable-manifest.js +0 -0
- package/{lighthouse-core → core}/audits/is-on-https.js +0 -0
- package/{lighthouse-core → core}/audits/largest-contentful-paint-element.js +0 -0
- package/{lighthouse-core → core}/audits/layout-shift-elements.js +0 -0
- package/{lighthouse-core → core}/audits/lcp-lazy-loaded.js +0 -0
- package/{lighthouse-core → core}/audits/long-tasks.js +0 -0
- package/{lighthouse-core → core}/audits/main-thread-tasks.js +0 -0
- package/{lighthouse-core → core}/audits/mainthread-work-breakdown.js +0 -0
- package/{lighthouse-core → core}/audits/manual/manual-audit.js +0 -0
- package/{lighthouse-core → core}/audits/manual/pwa-cross-browser.js +0 -0
- package/{lighthouse-core → core}/audits/manual/pwa-each-page-has-url.js +0 -0
- package/{lighthouse-core → core}/audits/manual/pwa-page-transitions.js +0 -0
- package/{lighthouse-core → core}/audits/maskable-icon.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/cumulative-layout-shift.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/experimental-interaction-to-next-paint.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/first-contentful-paint-3g.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/first-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/first-meaningful-paint.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/interactive.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/largest-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/max-potential-fid.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/speed-index.js +0 -0
- package/{lighthouse-core → core}/audits/metrics/total-blocking-time.js +0 -0
- package/{lighthouse-core → core}/audits/metrics.js +0 -0
- package/{lighthouse-core → core}/audits/multi-check-audit.js +0 -0
- package/{lighthouse-core → core}/audits/network-requests.js +0 -0
- package/{lighthouse-core → core}/audits/network-rtt.js +0 -0
- package/{lighthouse-core → core}/audits/network-server-latency.js +0 -0
- package/{lighthouse-core → core}/audits/no-unload-listeners.js +0 -0
- package/{lighthouse-core → core}/audits/non-composited-animations.js +0 -0
- package/{lighthouse-core → core}/audits/oopif-iframe-test-audit.js +0 -0
- package/{lighthouse-core → core}/audits/performance-budget.js +0 -0
- package/{lighthouse-core → core}/audits/predictive-perf.js +0 -0
- package/{lighthouse-core → core}/audits/preload-fonts.js +0 -0
- package/{lighthouse-core → core}/audits/preload-lcp-image.js +0 -0
- package/{lighthouse-core → core}/audits/redirects.js +0 -0
- package/{lighthouse-core → core}/audits/resource-summary.js +0 -0
- package/{lighthouse-core → core}/audits/screenshot-thumbnails.js +0 -0
- package/{lighthouse-core → core}/audits/script-elements-test-audit.js +0 -0
- package/{lighthouse-core → core}/audits/script-treemap-data.js +0 -0
- package/{lighthouse-core → core}/audits/seo/canonical.js +0 -0
- package/{lighthouse-core → core}/audits/seo/crawlable-anchors.js +0 -0
- package/{lighthouse-core → core}/audits/seo/font-size.js +0 -0
- package/{lighthouse-core → core}/audits/seo/hreflang.js +0 -0
- package/{lighthouse-core → core}/audits/seo/http-status-code.js +0 -0
- package/{lighthouse-core → core}/audits/seo/is-crawlable.js +0 -0
- package/{lighthouse-core → core}/audits/seo/link-text.js +0 -0
- package/{lighthouse-core → core}/audits/seo/manual/structured-data.js +0 -0
- package/{lighthouse-core → core}/audits/seo/meta-description.js +0 -0
- package/{lighthouse-core → core}/audits/seo/plugins.js +0 -0
- package/{lighthouse-core → core}/audits/seo/robots-txt.js +0 -0
- package/{lighthouse-core → core}/audits/seo/tap-targets.js +0 -0
- package/{lighthouse-core → core}/audits/server-response-time.js +0 -0
- package/{lighthouse-core → core}/audits/service-worker.js +0 -0
- package/{lighthouse-core → core}/audits/splash-screen.js +0 -0
- package/{lighthouse-core → core}/audits/themed-omnibox.js +0 -0
- package/{lighthouse-core → core}/audits/third-party-facades.js +0 -0
- package/{lighthouse-core → core}/audits/third-party-summary.js +0 -0
- package/{lighthouse-core → core}/audits/timing-budget.js +0 -0
- package/{lighthouse-core → core}/audits/unsized-images.js +0 -0
- package/{lighthouse-core → core}/audits/user-timings.js +0 -0
- package/{lighthouse-core → core}/audits/uses-rel-preconnect.js +0 -0
- package/{lighthouse-core → core}/audits/uses-rel-preload.js +0 -0
- package/{lighthouse-core → core}/audits/valid-source-maps.js +0 -0
- package/{lighthouse-core → core}/audits/viewport.js +0 -0
- package/{lighthouse-core → core}/audits/violation-audit.js +0 -0
- package/{lighthouse-core → core}/audits/work-during-interaction.js +0 -0
- package/{lighthouse-core → core}/computed/computed-artifact.js +0 -0
- package/{lighthouse-core → core}/computed/critical-request-chains.js +0 -0
- package/{lighthouse-core → core}/computed/image-records.js +0 -0
- package/{lighthouse-core → core}/computed/js-bundles.js +0 -0
- package/{lighthouse-core → core}/computed/load-simulator.js +0 -0
- package/{lighthouse-core → core}/computed/main-resource.js +0 -0
- package/{lighthouse-core → core}/computed/main-thread-tasks.js +0 -0
- package/{lighthouse-core → core}/computed/manifest-values.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/cumulative-layout-shift.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/first-contentful-paint-all-frames.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/first-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/first-meaningful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/interactive.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-first-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-first-meaningful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-interactive.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-largest-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-max-potential-fid.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-metric.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/lantern-speed-index.js +1 -1
- package/{lighthouse-core → core}/computed/metrics/lantern-total-blocking-time.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/largest-contentful-paint-all-frames.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/largest-contentful-paint.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/max-potential-fid.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/metric.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/navigation-metric.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/responsiveness.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/speed-index.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/tbt-utils.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/timing-summary.js +0 -0
- package/{lighthouse-core → core}/computed/metrics/total-blocking-time.js +0 -0
- package/{lighthouse-core → core}/computed/module-duplication.js +0 -0
- package/{lighthouse-core → core}/computed/network-analysis.js +0 -0
- package/{lighthouse-core → core}/computed/network-records.js +0 -0
- package/{lighthouse-core → core}/computed/page-dependency-graph.js +0 -0
- package/{lighthouse-core → core}/computed/processed-navigation.js +0 -0
- package/{lighthouse-core → core}/computed/processed-trace.js +0 -0
- package/{lighthouse-core → core}/computed/resource-summary.js +0 -0
- package/{lighthouse-core → core}/computed/screenshots.js +0 -0
- package/{lighthouse-core → core}/computed/speedline.js +0 -0
- package/{lighthouse-core → core}/computed/unused-css.js +0 -0
- package/{lighthouse-core → core}/computed/unused-javascript-summary.js +0 -0
- package/{lighthouse-core → core}/computed/user-timings.js +0 -0
- package/{lighthouse-core → core}/computed/viewport-meta.js +0 -0
- package/{lighthouse-core → core}/config/budget.js +0 -0
- package/{lighthouse-core → core}/config/config-helpers.js +0 -0
- package/{lighthouse-core → core}/config/config-plugin.js +0 -0
- package/{lighthouse-core → core}/config/config.js +0 -0
- package/{lighthouse-core → core}/config/constants.js +0 -0
- package/{lighthouse-core → core}/config/default-config.js +0 -0
- package/{lighthouse-core → core}/config/desktop-config.js +0 -0
- package/{lighthouse-core → core}/config/experimental-config.js +0 -0
- package/{lighthouse-core → core}/config/full-config.js +0 -0
- package/{lighthouse-core → core}/config/legacy-default-config.js +0 -0
- package/{lighthouse-core → core}/config/lr-desktop-config.js +0 -0
- package/{lighthouse-core → core}/config/lr-mobile-config.js +0 -0
- package/{lighthouse-core → core}/config/metrics-to-audits.js +0 -0
- package/{lighthouse-core → core}/config/perf-config.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/api.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/config/config.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/config/filters.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/config/validation.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/base-artifacts.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/base-gatherer.js +1 -1
- package/{lighthouse-core → core}/fraggle-rock/gather/driver.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/navigation-runner.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/runner-helpers.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/session.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/snapshot-runner.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/gather/timespan-runner.js +0 -0
- package/{lighthouse-core → core}/fraggle-rock/user-flow.js +0 -0
- package/{lighthouse-core → core}/gather/connections/connection.js +0 -0
- package/{lighthouse-core → core}/gather/connections/cri.js +0 -0
- package/{lighthouse-core → core}/gather/connections/raw.js +0 -0
- package/{lighthouse-core → core}/gather/driver/dom.js +0 -0
- package/{lighthouse-core → core}/gather/driver/environment.js +0 -0
- package/{lighthouse-core → core}/gather/driver/execution-context.js +0 -0
- package/{lighthouse-core → core}/gather/driver/navigation.js +0 -0
- package/{lighthouse-core → core}/gather/driver/network-monitor.js +0 -0
- package/{lighthouse-core → core}/gather/driver/network.js +0 -0
- package/{lighthouse-core → core}/gather/driver/prepare.js +0 -0
- package/{lighthouse-core → core}/gather/driver/service-workers.js +0 -0
- package/{lighthouse-core → core}/gather/driver/storage.js +0 -0
- package/{lighthouse-core → core}/gather/driver/target-manager.js +0 -0
- package/{lighthouse-core → core}/gather/driver/wait-for-condition.js +0 -0
- package/{lighthouse-core → core}/gather/driver.js +0 -0
- package/{lighthouse-core → core}/gather/fetcher.js +0 -0
- package/{lighthouse-core → core}/gather/gather-runner.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/accessibility.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/anchor-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/cache-contents.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/console-messages.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/css-usage.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/devtools-log-compat.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/devtools-log.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/doctype.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/domstats.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/optimized-images.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/response-compression.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/full-page-screenshot.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/gatherer.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/global-listeners.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/iframe-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/image-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/inputs.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/inspector-issues.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/installability-errors.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/js-usage.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/link-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/main-document-content.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/meta-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/network-user-agent.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/script-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/scripts.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/seo/embedded-content.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/seo/font-size.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/seo/robots-txt.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/seo/tap-targets.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/service-worker.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/source-maps.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/stacks.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/trace-compat.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/trace-elements.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/trace.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/viewport-dimensions.js +0 -0
- package/{lighthouse-core → core}/gather/gatherers/web-app-manifest.js +0 -0
- package/{lighthouse-core → core}/index.cjs +0 -0
- package/{lighthouse-core → core}/index.js +1 -1
- package/{lighthouse-core → core}/lib/arbitrary-equality-map.js +0 -0
- package/{lighthouse-core → core}/lib/asset-saver.js +0 -0
- package/{lighthouse-core → core}/lib/axe.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/Common.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/Platform.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/SDK.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/generated/ParsedURL.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/generated/SourceMap.js +0 -0
- package/{lighthouse-core → core}/lib/cdt/package.json +0 -0
- package/{lighthouse-core → core}/lib/csp-evaluator.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/base-node.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/cpu-node.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/network-node.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/connection-pool.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/dns-cache.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/network-analyzer.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/simulator-timing-map.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/simulator.js +0 -0
- package/{lighthouse-core → core}/lib/dependency-graph/simulator/tcp-connection.js +0 -0
- package/{lighthouse-core → core}/lib/deprecations-strings.js +0 -0
- package/{lighthouse-core → core}/lib/emulation.js +0 -0
- package/{lighthouse-core → core}/lib/i18n/README.md +2 -2
- package/{lighthouse-core → core}/lib/i18n/i18n.js +0 -0
- package/{lighthouse-core → core}/lib/icons.js +0 -0
- package/{lighthouse-core → core}/lib/lantern-trace-saver.js +0 -0
- package/{lighthouse-core → core}/lib/lh-env.js +0 -0
- package/{lighthouse-core → core}/lib/lh-error.js +0 -0
- package/{lighthouse-core → core}/lib/lh-trace-processor.js +0 -0
- package/{lighthouse-core → core}/lib/manifest-parser.js +0 -0
- package/{lighthouse-core → core}/lib/median-run.js +0 -0
- package/{lighthouse-core → core}/lib/minification-estimator.js +0 -0
- package/{lighthouse-core → core}/lib/minify-devtoolslog.js +0 -0
- package/{lighthouse-core → core}/lib/minify-trace.js +3 -3
- package/{lighthouse-core → core}/lib/navigation-error.js +0 -0
- package/{lighthouse-core → core}/lib/network-recorder.js +0 -0
- package/{lighthouse-core → core}/lib/network-request.js +0 -0
- package/{lighthouse-core → core}/lib/page-functions.js +0 -0
- package/{lighthouse-core → core}/lib/proto-preprocessor.js +0 -0
- package/{lighthouse-core → core}/lib/rect-helpers.js +0 -0
- package/{lighthouse-core → core}/lib/script-helpers.js +0 -0
- package/{lighthouse-core → core}/lib/sentry.js +0 -0
- package/{lighthouse-core → core}/lib/stack-packs.js +0 -0
- package/{lighthouse-core → core}/lib/statistics.js +0 -0
- package/{lighthouse-core → core}/lib/tappable-rects.js +0 -0
- package/{lighthouse-core → core}/lib/third-party-web.js +0 -0
- package/{lighthouse-core → core}/lib/timing-trace-saver.js +0 -0
- package/{lighthouse-core → core}/lib/tracehouse/cpu-profile-model.js +0 -0
- package/{lighthouse-core → core}/lib/tracehouse/main-thread-tasks.js +0 -0
- package/{lighthouse-core → core}/lib/tracehouse/task-groups.js +0 -0
- package/{lighthouse-core → core}/lib/tracehouse/task-summary.js +0 -0
- package/{lighthouse-core → core}/lib/tracehouse/trace-processor.js +0 -0
- package/{lighthouse-core → core}/lib/traces/pwmetrics-events.js +0 -0
- package/{lighthouse-core → core}/lib/url-shim.js +0 -0
- package/{lighthouse-core → core}/package.json +0 -0
- package/{lighthouse-core → core}/runner.js +0 -0
- package/{lighthouse-core → core}/scoring.js +0 -0
- package/{lighthouse-core → core}/scripts/download-chrome.sh +0 -0
- package/{lighthouse-core → core}/scripts/manual-chrome-launcher.js +1 -1
- package/{lighthouse-core → core}/scripts/package.json +0 -0
- package/{lighthouse-core → core}/util.cjs +1 -1
- package/eslint-local-rules.cjs +1 -1
- package/flow-report/test/common-test.tsx +1 -1
- package/flow-report/test/run-flow-report-tests.sh +1 -1
- package/flow-report/test/sample-flow.ts +1 -1
- package/flow-report/tsconfig.json +1 -1
- package/package.json +36 -36
- package/readme.md +4 -4
- package/report/clients/bundle.js +1 -1
- package/report/test/clients/bundle-test.js +1 -1
- package/report/test/generator/report-generator-test.js +2 -2
- package/report/test/renderer/category-renderer-test.js +2 -2
- package/report/test/renderer/i18n-test.js +1 -1
- package/report/test/renderer/performance-category-renderer-test.js +3 -3
- package/report/test/renderer/pwa-category-renderer-test.js +2 -2
- package/report/test/renderer/report-renderer-axe-test.js +3 -3
- package/report/test/renderer/report-renderer-test.js +3 -3
- package/report/test/renderer/report-ui-features-test.js +2 -2
- package/report/test/renderer/util-test.js +2 -2
- package/shared/localization/locales/ar-XB.json +641 -641
- package/shared/localization/locales/ar.json +641 -641
- package/shared/localization/locales/bg.json +641 -641
- package/shared/localization/locales/ca.json +641 -641
- package/shared/localization/locales/cs.json +641 -641
- package/shared/localization/locales/da.json +641 -641
- package/shared/localization/locales/de.json +641 -641
- package/shared/localization/locales/el.json +641 -641
- package/shared/localization/locales/en-GB.json +641 -641
- package/shared/localization/locales/en-US.json +830 -830
- package/shared/localization/locales/en-XA.json +641 -641
- package/shared/localization/locales/en-XL.json +830 -830
- package/shared/localization/locales/es-419.json +641 -641
- package/shared/localization/locales/es.json +641 -641
- package/shared/localization/locales/fi.json +641 -641
- package/shared/localization/locales/fil.json +641 -641
- package/shared/localization/locales/fr.json +641 -641
- package/shared/localization/locales/he.json +641 -641
- package/shared/localization/locales/hi.json +641 -641
- package/shared/localization/locales/hr.json +641 -641
- package/shared/localization/locales/hu.json +641 -641
- package/shared/localization/locales/id.json +641 -641
- package/shared/localization/locales/it.json +641 -641
- package/shared/localization/locales/ja.json +641 -641
- package/shared/localization/locales/ko.json +641 -641
- package/shared/localization/locales/lt.json +641 -641
- package/shared/localization/locales/lv.json +641 -641
- package/shared/localization/locales/nl.json +641 -641
- package/shared/localization/locales/no.json +641 -641
- package/shared/localization/locales/pl.json +641 -641
- package/shared/localization/locales/pt-PT.json +641 -641
- package/shared/localization/locales/pt.json +641 -641
- package/shared/localization/locales/ro.json +641 -641
- package/shared/localization/locales/ru.json +641 -641
- package/shared/localization/locales/sk.json +641 -641
- package/shared/localization/locales/sl.json +641 -641
- package/shared/localization/locales/sr-Latn.json +641 -641
- package/shared/localization/locales/sr.json +641 -641
- package/shared/localization/locales/sv.json +641 -641
- package/shared/localization/locales/ta.json +641 -641
- package/shared/localization/locales/te.json +641 -641
- package/shared/localization/locales/th.json +641 -641
- package/shared/localization/locales/tr.json +641 -641
- package/shared/localization/locales/uk.json +641 -641
- package/shared/localization/locales/vi.json +641 -641
- package/shared/localization/locales/zh-HK.json +641 -641
- package/shared/localization/locales/zh-TW.json +641 -641
- package/shared/localization/locales/zh.json +641 -641
- package/shared/localization/swap-locale.js +3 -3
- package/shared/test/localization/format-test.js +5 -5
- package/shared/test/localization/swap-locale-test.js +8 -8
- package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +1 -1
- package/third-party/chromium-synchronization/installability-errors-test.js +1 -1
- package/tsconfig.json +84 -84
- package/types/artifacts.d.ts +7 -7
- package/types/audit.d.ts +1 -1
- package/types/config.d.ts +1 -1
- package/types/gatherer.d.ts +8 -8
- package/types/global-lh.d.ts +2 -2
- package/types/user-flow.d.ts +1 -1
|
@@ -131,1927 +131,1927 @@
|
|
|
131
131
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
132
132
|
"message": "Lighthouse user flow report"
|
|
133
133
|
},
|
|
134
|
-
"
|
|
134
|
+
"core/audits/accessibility/accesskeys.js | description": {
|
|
135
135
|
"message": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://web.dev/accesskeys/)."
|
|
136
136
|
},
|
|
137
|
-
"
|
|
137
|
+
"core/audits/accessibility/accesskeys.js | failureTitle": {
|
|
138
138
|
"message": "`[accesskey]` values are not unique"
|
|
139
139
|
},
|
|
140
|
-
"
|
|
140
|
+
"core/audits/accessibility/accesskeys.js | title": {
|
|
141
141
|
"message": "`[accesskey]` values are unique"
|
|
142
142
|
},
|
|
143
|
-
"
|
|
143
|
+
"core/audits/accessibility/aria-allowed-attr.js | description": {
|
|
144
144
|
"message": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn more](https://web.dev/aria-allowed-attr/)."
|
|
145
145
|
},
|
|
146
|
-
"
|
|
146
|
+
"core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
|
|
147
147
|
"message": "`[aria-*]` attributes do not match their roles"
|
|
148
148
|
},
|
|
149
|
-
"
|
|
149
|
+
"core/audits/accessibility/aria-allowed-attr.js | title": {
|
|
150
150
|
"message": "`[aria-*]` attributes match their roles"
|
|
151
151
|
},
|
|
152
|
-
"
|
|
152
|
+
"core/audits/accessibility/aria-command-name.js | description": {
|
|
153
153
|
"message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
154
154
|
},
|
|
155
|
-
"
|
|
155
|
+
"core/audits/accessibility/aria-command-name.js | failureTitle": {
|
|
156
156
|
"message": "`button`, `link` and `menuitem` elements do not have accessible names."
|
|
157
157
|
},
|
|
158
|
-
"
|
|
158
|
+
"core/audits/accessibility/aria-command-name.js | title": {
|
|
159
159
|
"message": "`button`, `link` and `menuitem` elements have accessible names"
|
|
160
160
|
},
|
|
161
|
-
"
|
|
161
|
+
"core/audits/accessibility/aria-hidden-body.js | description": {
|
|
162
162
|
"message": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document `<body>`. [Learn more](https://web.dev/aria-hidden-body/)."
|
|
163
163
|
},
|
|
164
|
-
"
|
|
164
|
+
"core/audits/accessibility/aria-hidden-body.js | failureTitle": {
|
|
165
165
|
"message": "`[aria-hidden=\"true\"]` is present on the document `<body>`"
|
|
166
166
|
},
|
|
167
|
-
"
|
|
167
|
+
"core/audits/accessibility/aria-hidden-body.js | title": {
|
|
168
168
|
"message": "`[aria-hidden=\"true\"]` is not present on the document `<body>`"
|
|
169
169
|
},
|
|
170
|
-
"
|
|
170
|
+
"core/audits/accessibility/aria-hidden-focus.js | description": {
|
|
171
171
|
"message": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn more](https://web.dev/aria-hidden-focus/)."
|
|
172
172
|
},
|
|
173
|
-
"
|
|
173
|
+
"core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
|
|
174
174
|
"message": "`[aria-hidden=\"true\"]` elements contain focusable descendents"
|
|
175
175
|
},
|
|
176
|
-
"
|
|
176
|
+
"core/audits/accessibility/aria-hidden-focus.js | title": {
|
|
177
177
|
"message": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents"
|
|
178
178
|
},
|
|
179
|
-
"
|
|
179
|
+
"core/audits/accessibility/aria-input-field-name.js | description": {
|
|
180
180
|
"message": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
181
181
|
},
|
|
182
|
-
"
|
|
182
|
+
"core/audits/accessibility/aria-input-field-name.js | failureTitle": {
|
|
183
183
|
"message": "ARIA input fields do not have accessible names"
|
|
184
184
|
},
|
|
185
|
-
"
|
|
185
|
+
"core/audits/accessibility/aria-input-field-name.js | title": {
|
|
186
186
|
"message": "ARIA input fields have accessible names"
|
|
187
187
|
},
|
|
188
|
-
"
|
|
188
|
+
"core/audits/accessibility/aria-meter-name.js | description": {
|
|
189
189
|
"message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
190
190
|
},
|
|
191
|
-
"
|
|
191
|
+
"core/audits/accessibility/aria-meter-name.js | failureTitle": {
|
|
192
192
|
"message": "ARIA `meter` elements do not have accessible names."
|
|
193
193
|
},
|
|
194
|
-
"
|
|
194
|
+
"core/audits/accessibility/aria-meter-name.js | title": {
|
|
195
195
|
"message": "ARIA `meter` elements have accessible names"
|
|
196
196
|
},
|
|
197
|
-
"
|
|
197
|
+
"core/audits/accessibility/aria-progressbar-name.js | description": {
|
|
198
198
|
"message": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
199
199
|
},
|
|
200
|
-
"
|
|
200
|
+
"core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
|
|
201
201
|
"message": "ARIA `progressbar` elements do not have accessible names."
|
|
202
202
|
},
|
|
203
|
-
"
|
|
203
|
+
"core/audits/accessibility/aria-progressbar-name.js | title": {
|
|
204
204
|
"message": "ARIA `progressbar` elements have accessible names"
|
|
205
205
|
},
|
|
206
|
-
"
|
|
206
|
+
"core/audits/accessibility/aria-required-attr.js | description": {
|
|
207
207
|
"message": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more](https://web.dev/aria-required-attr/)."
|
|
208
208
|
},
|
|
209
|
-
"
|
|
209
|
+
"core/audits/accessibility/aria-required-attr.js | failureTitle": {
|
|
210
210
|
"message": "`[role]`s do not have all required `[aria-*]` attributes"
|
|
211
211
|
},
|
|
212
|
-
"
|
|
212
|
+
"core/audits/accessibility/aria-required-attr.js | title": {
|
|
213
213
|
"message": "`[role]`s have all required `[aria-*]` attributes"
|
|
214
214
|
},
|
|
215
|
-
"
|
|
215
|
+
"core/audits/accessibility/aria-required-children.js | description": {
|
|
216
216
|
"message": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more](https://web.dev/aria-required-children/)."
|
|
217
217
|
},
|
|
218
|
-
"
|
|
218
|
+
"core/audits/accessibility/aria-required-children.js | failureTitle": {
|
|
219
219
|
"message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children."
|
|
220
220
|
},
|
|
221
|
-
"
|
|
221
|
+
"core/audits/accessibility/aria-required-children.js | title": {
|
|
222
222
|
"message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children."
|
|
223
223
|
},
|
|
224
|
-
"
|
|
224
|
+
"core/audits/accessibility/aria-required-parent.js | description": {
|
|
225
225
|
"message": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more](https://web.dev/aria-required-parent/)."
|
|
226
226
|
},
|
|
227
|
-
"
|
|
227
|
+
"core/audits/accessibility/aria-required-parent.js | failureTitle": {
|
|
228
228
|
"message": "`[role]`s are not contained by their required parent element"
|
|
229
229
|
},
|
|
230
|
-
"
|
|
230
|
+
"core/audits/accessibility/aria-required-parent.js | title": {
|
|
231
231
|
"message": "`[role]`s are contained by their required parent element"
|
|
232
232
|
},
|
|
233
|
-
"
|
|
233
|
+
"core/audits/accessibility/aria-roles.js | description": {
|
|
234
234
|
"message": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more](https://web.dev/aria-roles/)."
|
|
235
235
|
},
|
|
236
|
-
"
|
|
236
|
+
"core/audits/accessibility/aria-roles.js | failureTitle": {
|
|
237
237
|
"message": "`[role]` values are not valid"
|
|
238
238
|
},
|
|
239
|
-
"
|
|
239
|
+
"core/audits/accessibility/aria-roles.js | title": {
|
|
240
240
|
"message": "`[role]` values are valid"
|
|
241
241
|
},
|
|
242
|
-
"
|
|
242
|
+
"core/audits/accessibility/aria-toggle-field-name.js | description": {
|
|
243
243
|
"message": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
244
244
|
},
|
|
245
|
-
"
|
|
245
|
+
"core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
|
|
246
246
|
"message": "ARIA toggle fields do not have accessible names"
|
|
247
247
|
},
|
|
248
|
-
"
|
|
248
|
+
"core/audits/accessibility/aria-toggle-field-name.js | title": {
|
|
249
249
|
"message": "ARIA toggle fields have accessible names"
|
|
250
250
|
},
|
|
251
|
-
"
|
|
251
|
+
"core/audits/accessibility/aria-tooltip-name.js | description": {
|
|
252
252
|
"message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
253
253
|
},
|
|
254
|
-
"
|
|
254
|
+
"core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
|
|
255
255
|
"message": "ARIA `tooltip` elements do not have accessible names."
|
|
256
256
|
},
|
|
257
|
-
"
|
|
257
|
+
"core/audits/accessibility/aria-tooltip-name.js | title": {
|
|
258
258
|
"message": "ARIA `tooltip` elements have accessible names"
|
|
259
259
|
},
|
|
260
|
-
"
|
|
260
|
+
"core/audits/accessibility/aria-treeitem-name.js | description": {
|
|
261
261
|
"message": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/)."
|
|
262
262
|
},
|
|
263
|
-
"
|
|
263
|
+
"core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
|
|
264
264
|
"message": "ARIA `treeitem` elements do not have accessible names."
|
|
265
265
|
},
|
|
266
|
-
"
|
|
266
|
+
"core/audits/accessibility/aria-treeitem-name.js | title": {
|
|
267
267
|
"message": "ARIA `treeitem` elements have accessible names"
|
|
268
268
|
},
|
|
269
|
-
"
|
|
269
|
+
"core/audits/accessibility/aria-valid-attr-value.js | description": {
|
|
270
270
|
"message": "Assistive technologies, such as screen readers, can't interpret ARIA attributes with invalid values. [Learn more](https://web.dev/aria-valid-attr-value/)."
|
|
271
271
|
},
|
|
272
|
-
"
|
|
272
|
+
"core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
|
|
273
273
|
"message": "`[aria-*]` attributes do not have valid values"
|
|
274
274
|
},
|
|
275
|
-
"
|
|
275
|
+
"core/audits/accessibility/aria-valid-attr-value.js | title": {
|
|
276
276
|
"message": "`[aria-*]` attributes have valid values"
|
|
277
277
|
},
|
|
278
|
-
"
|
|
278
|
+
"core/audits/accessibility/aria-valid-attr.js | description": {
|
|
279
279
|
"message": "Assistive technologies, such as screen readers, can't interpret ARIA attributes with invalid names. [Learn more](https://web.dev/aria-valid-attr/)."
|
|
280
280
|
},
|
|
281
|
-
"
|
|
281
|
+
"core/audits/accessibility/aria-valid-attr.js | failureTitle": {
|
|
282
282
|
"message": "`[aria-*]` attributes are not valid or misspelled"
|
|
283
283
|
},
|
|
284
|
-
"
|
|
284
|
+
"core/audits/accessibility/aria-valid-attr.js | title": {
|
|
285
285
|
"message": "`[aria-*]` attributes are valid and not misspelled"
|
|
286
286
|
},
|
|
287
|
-
"
|
|
287
|
+
"core/audits/accessibility/axe-audit.js | failingElementsHeader": {
|
|
288
288
|
"message": "Failing elements"
|
|
289
289
|
},
|
|
290
|
-
"
|
|
290
|
+
"core/audits/accessibility/button-name.js | description": {
|
|
291
291
|
"message": "When a button doesn't have an accessible name, screen readers announce it as 'button', making it unusable for users who rely on screen readers. [Learn more](https://web.dev/button-name/)."
|
|
292
292
|
},
|
|
293
|
-
"
|
|
293
|
+
"core/audits/accessibility/button-name.js | failureTitle": {
|
|
294
294
|
"message": "Buttons do not have an accessible name"
|
|
295
295
|
},
|
|
296
|
-
"
|
|
296
|
+
"core/audits/accessibility/button-name.js | title": {
|
|
297
297
|
"message": "Buttons have an accessible name"
|
|
298
298
|
},
|
|
299
|
-
"
|
|
299
|
+
"core/audits/accessibility/bypass.js | description": {
|
|
300
300
|
"message": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more](https://web.dev/bypass/)."
|
|
301
301
|
},
|
|
302
|
-
"
|
|
302
|
+
"core/audits/accessibility/bypass.js | failureTitle": {
|
|
303
303
|
"message": "The page does not contain a heading, skip link or landmark region"
|
|
304
304
|
},
|
|
305
|
-
"
|
|
305
|
+
"core/audits/accessibility/bypass.js | title": {
|
|
306
306
|
"message": "The page contains a heading, skip link or landmark region"
|
|
307
307
|
},
|
|
308
|
-
"
|
|
308
|
+
"core/audits/accessibility/color-contrast.js | description": {
|
|
309
309
|
"message": "Low-contrast text is difficult or impossible for many users to read. [Learn more](https://web.dev/color-contrast/)."
|
|
310
310
|
},
|
|
311
|
-
"
|
|
311
|
+
"core/audits/accessibility/color-contrast.js | failureTitle": {
|
|
312
312
|
"message": "Background and foreground colours do not have a sufficient contrast ratio."
|
|
313
313
|
},
|
|
314
|
-
"
|
|
314
|
+
"core/audits/accessibility/color-contrast.js | title": {
|
|
315
315
|
"message": "Background and foreground colours have a sufficient contrast ratio"
|
|
316
316
|
},
|
|
317
|
-
"
|
|
317
|
+
"core/audits/accessibility/definition-list.js | description": {
|
|
318
318
|
"message": "When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn more](https://web.dev/definition-list/)."
|
|
319
319
|
},
|
|
320
|
-
"
|
|
320
|
+
"core/audits/accessibility/definition-list.js | failureTitle": {
|
|
321
321
|
"message": "`<dl>`'s do not contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements."
|
|
322
322
|
},
|
|
323
|
-
"
|
|
323
|
+
"core/audits/accessibility/definition-list.js | title": {
|
|
324
324
|
"message": "`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements."
|
|
325
325
|
},
|
|
326
|
-
"
|
|
326
|
+
"core/audits/accessibility/dlitem.js | description": {
|
|
327
327
|
"message": "Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn more](https://web.dev/dlitem/)."
|
|
328
328
|
},
|
|
329
|
-
"
|
|
329
|
+
"core/audits/accessibility/dlitem.js | failureTitle": {
|
|
330
330
|
"message": "Definition list items are not wrapped in `<dl>` elements"
|
|
331
331
|
},
|
|
332
|
-
"
|
|
332
|
+
"core/audits/accessibility/dlitem.js | title": {
|
|
333
333
|
"message": "Definition list items are wrapped in `<dl>` elements"
|
|
334
334
|
},
|
|
335
|
-
"
|
|
335
|
+
"core/audits/accessibility/document-title.js | description": {
|
|
336
336
|
"message": "The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more](https://web.dev/document-title/)."
|
|
337
337
|
},
|
|
338
|
-
"
|
|
338
|
+
"core/audits/accessibility/document-title.js | failureTitle": {
|
|
339
339
|
"message": "Document doesn't have a `<title>` element"
|
|
340
340
|
},
|
|
341
|
-
"
|
|
341
|
+
"core/audits/accessibility/document-title.js | title": {
|
|
342
342
|
"message": "Document has a `<title>` element"
|
|
343
343
|
},
|
|
344
|
-
"
|
|
344
|
+
"core/audits/accessibility/duplicate-id-active.js | description": {
|
|
345
345
|
"message": "All focusable elements must have a unique `id` to ensure that they're visible to assistive technologies. [Learn more](https://web.dev/duplicate-id-active/)."
|
|
346
346
|
},
|
|
347
|
-
"
|
|
347
|
+
"core/audits/accessibility/duplicate-id-active.js | failureTitle": {
|
|
348
348
|
"message": "`[id]` attributes on active, focusable elements are not unique"
|
|
349
349
|
},
|
|
350
|
-
"
|
|
350
|
+
"core/audits/accessibility/duplicate-id-active.js | title": {
|
|
351
351
|
"message": "`[id]` attributes on active, focusable elements are unique"
|
|
352
352
|
},
|
|
353
|
-
"
|
|
353
|
+
"core/audits/accessibility/duplicate-id-aria.js | description": {
|
|
354
354
|
"message": "The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn more](https://web.dev/duplicate-id-aria/)."
|
|
355
355
|
},
|
|
356
|
-
"
|
|
356
|
+
"core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
|
|
357
357
|
"message": "ARIA IDs are not unique"
|
|
358
358
|
},
|
|
359
|
-
"
|
|
359
|
+
"core/audits/accessibility/duplicate-id-aria.js | title": {
|
|
360
360
|
"message": "ARIA IDs are unique"
|
|
361
361
|
},
|
|
362
|
-
"
|
|
362
|
+
"core/audits/accessibility/form-field-multiple-labels.js | description": {
|
|
363
363
|
"message": "Form fields with multiple labels can be confusingly announced by assistive technologies, like screen readers, which use either the first, the last or all of the labels. [Learn more](https://web.dev/form-field-multiple-labels/)."
|
|
364
364
|
},
|
|
365
|
-
"
|
|
365
|
+
"core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
|
|
366
366
|
"message": "Form fields have multiple labels"
|
|
367
367
|
},
|
|
368
|
-
"
|
|
368
|
+
"core/audits/accessibility/form-field-multiple-labels.js | title": {
|
|
369
369
|
"message": "No form fields have multiple labels"
|
|
370
370
|
},
|
|
371
|
-
"
|
|
371
|
+
"core/audits/accessibility/frame-title.js | description": {
|
|
372
372
|
"message": "Screen reader users rely on frame titles to describe the contents of frames. [Learn more](https://web.dev/frame-title/)."
|
|
373
373
|
},
|
|
374
|
-
"
|
|
374
|
+
"core/audits/accessibility/frame-title.js | failureTitle": {
|
|
375
375
|
"message": "`<frame>` or `<iframe>` elements do not have a title"
|
|
376
376
|
},
|
|
377
|
-
"
|
|
377
|
+
"core/audits/accessibility/frame-title.js | title": {
|
|
378
378
|
"message": "`<frame>` or `<iframe>` elements have a title"
|
|
379
379
|
},
|
|
380
|
-
"
|
|
380
|
+
"core/audits/accessibility/heading-order.js | description": {
|
|
381
381
|
"message": "Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more](https://web.dev/heading-order/)."
|
|
382
382
|
},
|
|
383
|
-
"
|
|
383
|
+
"core/audits/accessibility/heading-order.js | failureTitle": {
|
|
384
384
|
"message": "Heading elements are not in a sequentially-descending order"
|
|
385
385
|
},
|
|
386
|
-
"
|
|
386
|
+
"core/audits/accessibility/heading-order.js | title": {
|
|
387
387
|
"message": "Heading elements appear in a sequentially-descending order"
|
|
388
388
|
},
|
|
389
|
-
"
|
|
389
|
+
"core/audits/accessibility/html-has-lang.js | description": {
|
|
390
390
|
"message": "If a page doesn't specify a lang attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more](https://web.dev/html-has-lang/)."
|
|
391
391
|
},
|
|
392
|
-
"
|
|
392
|
+
"core/audits/accessibility/html-has-lang.js | failureTitle": {
|
|
393
393
|
"message": "`<html>` element does not have a `[lang]` attribute"
|
|
394
394
|
},
|
|
395
|
-
"
|
|
395
|
+
"core/audits/accessibility/html-has-lang.js | title": {
|
|
396
396
|
"message": "`<html>` element has a `[lang]` attribute"
|
|
397
397
|
},
|
|
398
|
-
"
|
|
398
|
+
"core/audits/accessibility/html-lang-valid.js | description": {
|
|
399
399
|
"message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn more](https://web.dev/html-lang-valid/)."
|
|
400
400
|
},
|
|
401
|
-
"
|
|
401
|
+
"core/audits/accessibility/html-lang-valid.js | failureTitle": {
|
|
402
402
|
"message": "`<html>` element does not have a valid value for its `[lang]` attribute."
|
|
403
403
|
},
|
|
404
|
-
"
|
|
404
|
+
"core/audits/accessibility/html-lang-valid.js | title": {
|
|
405
405
|
"message": "`<html>` element has a valid value for its `[lang]` attribute"
|
|
406
406
|
},
|
|
407
|
-
"
|
|
407
|
+
"core/audits/accessibility/image-alt.js | description": {
|
|
408
408
|
"message": "Informative elements should aim for short, descriptive alternative text. Decorative elements can be ignored with an empty alt attribute. [Learn more](https://web.dev/image-alt/)."
|
|
409
409
|
},
|
|
410
|
-
"
|
|
410
|
+
"core/audits/accessibility/image-alt.js | failureTitle": {
|
|
411
411
|
"message": "Image elements do not have `[alt]` attributes"
|
|
412
412
|
},
|
|
413
|
-
"
|
|
413
|
+
"core/audits/accessibility/image-alt.js | title": {
|
|
414
414
|
"message": "Image elements have `[alt]` attributes"
|
|
415
415
|
},
|
|
416
|
-
"
|
|
416
|
+
"core/audits/accessibility/input-image-alt.js | description": {
|
|
417
417
|
"message": "When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn more](https://web.dev/input-image-alt/)."
|
|
418
418
|
},
|
|
419
|
-
"
|
|
419
|
+
"core/audits/accessibility/input-image-alt.js | failureTitle": {
|
|
420
420
|
"message": "`<input type=\"image\">` elements do not have `[alt]` text"
|
|
421
421
|
},
|
|
422
|
-
"
|
|
422
|
+
"core/audits/accessibility/input-image-alt.js | title": {
|
|
423
423
|
"message": "`<input type=\"image\">` elements have `[alt]` text"
|
|
424
424
|
},
|
|
425
|
-
"
|
|
425
|
+
"core/audits/accessibility/label.js | description": {
|
|
426
426
|
"message": "Labels ensure that form controls are announced properly by assistive technologies, such as screen readers. [Learn more](https://web.dev/label/)."
|
|
427
427
|
},
|
|
428
|
-
"
|
|
428
|
+
"core/audits/accessibility/label.js | failureTitle": {
|
|
429
429
|
"message": "Form elements do not have associated labels"
|
|
430
430
|
},
|
|
431
|
-
"
|
|
431
|
+
"core/audits/accessibility/label.js | title": {
|
|
432
432
|
"message": "Form elements have associated labels"
|
|
433
433
|
},
|
|
434
|
-
"
|
|
434
|
+
"core/audits/accessibility/link-name.js | description": {
|
|
435
435
|
"message": "Link text (and alternative text for images, when used as links) that is discernible, unique and focusable improves the navigation experience for screen reader users. [Learn more](https://web.dev/link-name/)."
|
|
436
436
|
},
|
|
437
|
-
"
|
|
437
|
+
"core/audits/accessibility/link-name.js | failureTitle": {
|
|
438
438
|
"message": "Links do not have a discernible name"
|
|
439
439
|
},
|
|
440
|
-
"
|
|
440
|
+
"core/audits/accessibility/link-name.js | title": {
|
|
441
441
|
"message": "Links have a discernible name"
|
|
442
442
|
},
|
|
443
|
-
"
|
|
443
|
+
"core/audits/accessibility/list.js | description": {
|
|
444
444
|
"message": "Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more](https://web.dev/list/)."
|
|
445
445
|
},
|
|
446
|
-
"
|
|
446
|
+
"core/audits/accessibility/list.js | failureTitle": {
|
|
447
447
|
"message": "Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)."
|
|
448
448
|
},
|
|
449
|
-
"
|
|
449
|
+
"core/audits/accessibility/list.js | title": {
|
|
450
450
|
"message": "Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)."
|
|
451
451
|
},
|
|
452
|
-
"
|
|
452
|
+
"core/audits/accessibility/listitem.js | description": {
|
|
453
453
|
"message": "Screen readers require list items (`<li>`) to be contained within a parent `<ul>` or `<ol>` to be announced properly. [Learn more](https://web.dev/listitem/)."
|
|
454
454
|
},
|
|
455
|
-
"
|
|
455
|
+
"core/audits/accessibility/listitem.js | failureTitle": {
|
|
456
456
|
"message": "List items (`<li>`) are not contained within `<ul>` or `<ol>` parent elements."
|
|
457
457
|
},
|
|
458
|
-
"
|
|
458
|
+
"core/audits/accessibility/listitem.js | title": {
|
|
459
459
|
"message": "List items (`<li>`) are contained within `<ul>` or `<ol>` parent elements"
|
|
460
460
|
},
|
|
461
|
-
"
|
|
461
|
+
"core/audits/accessibility/meta-refresh.js | description": {
|
|
462
462
|
"message": "Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more](https://web.dev/meta-refresh/)."
|
|
463
463
|
},
|
|
464
|
-
"
|
|
464
|
+
"core/audits/accessibility/meta-refresh.js | failureTitle": {
|
|
465
465
|
"message": "The document uses `<meta http-equiv=\"refresh\">`"
|
|
466
466
|
},
|
|
467
|
-
"
|
|
467
|
+
"core/audits/accessibility/meta-refresh.js | title": {
|
|
468
468
|
"message": "The document does not use `<meta http-equiv=\"refresh\">`"
|
|
469
469
|
},
|
|
470
|
-
"
|
|
470
|
+
"core/audits/accessibility/meta-viewport.js | description": {
|
|
471
471
|
"message": "Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more](https://web.dev/meta-viewport/)."
|
|
472
472
|
},
|
|
473
|
-
"
|
|
473
|
+
"core/audits/accessibility/meta-viewport.js | failureTitle": {
|
|
474
474
|
"message": "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
|
|
475
475
|
},
|
|
476
|
-
"
|
|
476
|
+
"core/audits/accessibility/meta-viewport.js | title": {
|
|
477
477
|
"message": "`[user-scalable=\"no\"]` is not used in the `<meta name=\"viewport\">` element and the `[maximum-scale]` attribute is not less than 5."
|
|
478
478
|
},
|
|
479
|
-
"
|
|
479
|
+
"core/audits/accessibility/object-alt.js | description": {
|
|
480
480
|
"message": "Screen readers cannot translate non-text content. Adding alternative text to `<object>` elements helps screen readers convey meaning to users. [Learn more](https://web.dev/object-alt/)."
|
|
481
481
|
},
|
|
482
|
-
"
|
|
482
|
+
"core/audits/accessibility/object-alt.js | failureTitle": {
|
|
483
483
|
"message": "`<object>` elements do not have alternative text"
|
|
484
484
|
},
|
|
485
|
-
"
|
|
485
|
+
"core/audits/accessibility/object-alt.js | title": {
|
|
486
486
|
"message": "`<object>` elements have alternative text"
|
|
487
487
|
},
|
|
488
|
-
"
|
|
488
|
+
"core/audits/accessibility/tabindex.js | description": {
|
|
489
489
|
"message": "A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more](https://web.dev/tabindex/)."
|
|
490
490
|
},
|
|
491
|
-
"
|
|
491
|
+
"core/audits/accessibility/tabindex.js | failureTitle": {
|
|
492
492
|
"message": "Some elements have a `[tabindex]` value greater than 0"
|
|
493
493
|
},
|
|
494
|
-
"
|
|
494
|
+
"core/audits/accessibility/tabindex.js | title": {
|
|
495
495
|
"message": "No element has a `[tabindex]` value greater than 0"
|
|
496
496
|
},
|
|
497
|
-
"
|
|
497
|
+
"core/audits/accessibility/td-headers-attr.js | description": {
|
|
498
498
|
"message": "Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more](https://web.dev/td-headers-attr/)."
|
|
499
499
|
},
|
|
500
|
-
"
|
|
500
|
+
"core/audits/accessibility/td-headers-attr.js | failureTitle": {
|
|
501
501
|
"message": "Cells in a `<table>` element that use the `[headers]` attribute refer to an element `id` not found within the same table."
|
|
502
502
|
},
|
|
503
|
-
"
|
|
503
|
+
"core/audits/accessibility/td-headers-attr.js | title": {
|
|
504
504
|
"message": "Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table."
|
|
505
505
|
},
|
|
506
|
-
"
|
|
506
|
+
"core/audits/accessibility/th-has-data-cells.js | description": {
|
|
507
507
|
"message": "Screen readers have features to make navigating tables easier. Ensuring that table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more](https://web.dev/th-has-data-cells/)."
|
|
508
508
|
},
|
|
509
|
-
"
|
|
509
|
+
"core/audits/accessibility/th-has-data-cells.js | failureTitle": {
|
|
510
510
|
"message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` do not have data cells they describe."
|
|
511
511
|
},
|
|
512
|
-
"
|
|
512
|
+
"core/audits/accessibility/th-has-data-cells.js | title": {
|
|
513
513
|
"message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` have data cells they describe."
|
|
514
514
|
},
|
|
515
|
-
"
|
|
515
|
+
"core/audits/accessibility/valid-lang.js | description": {
|
|
516
516
|
"message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn more](https://web.dev/valid-lang/)."
|
|
517
517
|
},
|
|
518
|
-
"
|
|
518
|
+
"core/audits/accessibility/valid-lang.js | failureTitle": {
|
|
519
519
|
"message": "`[lang]` attributes do not have a valid value"
|
|
520
520
|
},
|
|
521
|
-
"
|
|
521
|
+
"core/audits/accessibility/valid-lang.js | title": {
|
|
522
522
|
"message": "`[lang]` attributes have a valid value"
|
|
523
523
|
},
|
|
524
|
-
"
|
|
524
|
+
"core/audits/accessibility/video-caption.js | description": {
|
|
525
525
|
"message": "When a video provides a caption it is easier for deaf and hearing-impaired users to access its information. [Learn more](https://web.dev/video-caption/)."
|
|
526
526
|
},
|
|
527
|
-
"
|
|
527
|
+
"core/audits/accessibility/video-caption.js | failureTitle": {
|
|
528
528
|
"message": "`<video>` elements do not contain a `<track>` element with `[kind=\"captions\"]`."
|
|
529
529
|
},
|
|
530
|
-
"
|
|
530
|
+
"core/audits/accessibility/video-caption.js | title": {
|
|
531
531
|
"message": "`<video>` elements contain a `<track>` element with `[kind=\"captions\"]`"
|
|
532
532
|
},
|
|
533
|
-
"
|
|
533
|
+
"core/audits/autocomplete.js | columnCurrent": {
|
|
534
534
|
"message": "Current value"
|
|
535
535
|
},
|
|
536
|
-
"
|
|
536
|
+
"core/audits/autocomplete.js | columnSuggestions": {
|
|
537
537
|
"message": "Suggested token"
|
|
538
538
|
},
|
|
539
|
-
"
|
|
539
|
+
"core/audits/autocomplete.js | description": {
|
|
540
540
|
"message": "`autocomplete` helps users submit forms more quickly. To reduce user effort, consider enabling by setting the `autocomplete` attribute to a valid value. [Learn more](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)"
|
|
541
541
|
},
|
|
542
|
-
"
|
|
542
|
+
"core/audits/autocomplete.js | failureTitle": {
|
|
543
543
|
"message": "`<input>` elements do not have correct `autocomplete` attributes"
|
|
544
544
|
},
|
|
545
|
-
"
|
|
545
|
+
"core/audits/autocomplete.js | manualReview": {
|
|
546
546
|
"message": "Requires manual review"
|
|
547
547
|
},
|
|
548
|
-
"
|
|
548
|
+
"core/audits/autocomplete.js | reviewOrder": {
|
|
549
549
|
"message": "Review order of tokens"
|
|
550
550
|
},
|
|
551
|
-
"
|
|
551
|
+
"core/audits/autocomplete.js | title": {
|
|
552
552
|
"message": "`<input>` elements correctly use `autocomplete`"
|
|
553
553
|
},
|
|
554
|
-
"
|
|
554
|
+
"core/audits/autocomplete.js | warningInvalid": {
|
|
555
555
|
"message": "`autocomplete` token(s): '{token}' is invalid in {snippet}"
|
|
556
556
|
},
|
|
557
|
-
"
|
|
557
|
+
"core/audits/autocomplete.js | warningOrder": {
|
|
558
558
|
"message": "Review order of tokens: '{tokens}' in {snippet}"
|
|
559
559
|
},
|
|
560
|
-
"
|
|
560
|
+
"core/audits/bootup-time.js | chromeExtensionsWarning": {
|
|
561
561
|
"message": "Chrome extensions negatively affected this page's load performance. Try auditing the page in incognito mode or from a Chrome profile without extensions."
|
|
562
562
|
},
|
|
563
|
-
"
|
|
563
|
+
"core/audits/bootup-time.js | columnScriptEval": {
|
|
564
564
|
"message": "Script Evaluation"
|
|
565
565
|
},
|
|
566
|
-
"
|
|
566
|
+
"core/audits/bootup-time.js | columnScriptParse": {
|
|
567
567
|
"message": "Script Parse"
|
|
568
568
|
},
|
|
569
|
-
"
|
|
569
|
+
"core/audits/bootup-time.js | columnTotal": {
|
|
570
570
|
"message": "Total CPU Time"
|
|
571
571
|
},
|
|
572
|
-
"
|
|
572
|
+
"core/audits/bootup-time.js | description": {
|
|
573
573
|
"message": "Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. [Learn more](https://web.dev/bootup-time/)."
|
|
574
574
|
},
|
|
575
|
-
"
|
|
575
|
+
"core/audits/bootup-time.js | failureTitle": {
|
|
576
576
|
"message": "Reduce JavaScript execution time"
|
|
577
577
|
},
|
|
578
|
-
"
|
|
578
|
+
"core/audits/bootup-time.js | title": {
|
|
579
579
|
"message": "JavaScript execution time"
|
|
580
580
|
},
|
|
581
|
-
"
|
|
581
|
+
"core/audits/byte-efficiency/duplicated-javascript.js | description": {
|
|
582
582
|
"message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity. "
|
|
583
583
|
},
|
|
584
|
-
"
|
|
584
|
+
"core/audits/byte-efficiency/duplicated-javascript.js | title": {
|
|
585
585
|
"message": "Remove duplicate modules in JavaScript bundles"
|
|
586
586
|
},
|
|
587
|
-
"
|
|
587
|
+
"core/audits/byte-efficiency/efficient-animated-content.js | description": {
|
|
588
588
|
"message": "Large GIFs are inefficient for delivering animated content. Consider using MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF to save network bytes. [Learn more](https://web.dev/efficient-animated-content/)"
|
|
589
589
|
},
|
|
590
|
-
"
|
|
590
|
+
"core/audits/byte-efficiency/efficient-animated-content.js | title": {
|
|
591
591
|
"message": "Use video formats for animated content"
|
|
592
592
|
},
|
|
593
|
-
"
|
|
593
|
+
"core/audits/byte-efficiency/legacy-javascript.js | description": {
|
|
594
594
|
"message": "Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. For your bundled JavaScript, adopt a modern script deployment strategy using module/nomodule feature detection to reduce the amount of code delivered to modern browsers, while retaining support for legacy browsers. [Learn more](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/)"
|
|
595
595
|
},
|
|
596
|
-
"
|
|
596
|
+
"core/audits/byte-efficiency/legacy-javascript.js | title": {
|
|
597
597
|
"message": "Avoid serving legacy JavaScript to modern browsers"
|
|
598
598
|
},
|
|
599
|
-
"
|
|
599
|
+
"core/audits/byte-efficiency/modern-image-formats.js | description": {
|
|
600
600
|
"message": "Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more](https://web.dev/uses-webp-images/)."
|
|
601
601
|
},
|
|
602
|
-
"
|
|
602
|
+
"core/audits/byte-efficiency/modern-image-formats.js | title": {
|
|
603
603
|
"message": "Serve images in next-gen formats"
|
|
604
604
|
},
|
|
605
|
-
"
|
|
605
|
+
"core/audits/byte-efficiency/offscreen-images.js | description": {
|
|
606
606
|
"message": "Consider lazy loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn more](https://web.dev/offscreen-images/)."
|
|
607
607
|
},
|
|
608
|
-
"
|
|
608
|
+
"core/audits/byte-efficiency/offscreen-images.js | title": {
|
|
609
609
|
"message": "Defer off-screen images"
|
|
610
610
|
},
|
|
611
|
-
"
|
|
611
|
+
"core/audits/byte-efficiency/render-blocking-resources.js | description": {
|
|
612
612
|
"message": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn more](https://web.dev/render-blocking-resources/)."
|
|
613
613
|
},
|
|
614
|
-
"
|
|
614
|
+
"core/audits/byte-efficiency/render-blocking-resources.js | title": {
|
|
615
615
|
"message": "Eliminate render-blocking resources"
|
|
616
616
|
},
|
|
617
|
-
"
|
|
617
|
+
"core/audits/byte-efficiency/total-byte-weight.js | description": {
|
|
618
618
|
"message": "Large network payloads cost users real money and are highly correlated with long load times. [Learn more](https://web.dev/total-byte-weight/)."
|
|
619
619
|
},
|
|
620
|
-
"
|
|
620
|
+
"core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
|
|
621
621
|
"message": "Total size was {totalBytes, number, bytes} KiB"
|
|
622
622
|
},
|
|
623
|
-
"
|
|
623
|
+
"core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
|
|
624
624
|
"message": "Avoid enormous network payloads"
|
|
625
625
|
},
|
|
626
|
-
"
|
|
626
|
+
"core/audits/byte-efficiency/total-byte-weight.js | title": {
|
|
627
627
|
"message": "Avoids enormous network payloads"
|
|
628
628
|
},
|
|
629
|
-
"
|
|
629
|
+
"core/audits/byte-efficiency/unminified-css.js | description": {
|
|
630
630
|
"message": "Minifying CSS files can reduce network payload sizes. [Learn more](https://web.dev/unminified-css/)."
|
|
631
631
|
},
|
|
632
|
-
"
|
|
632
|
+
"core/audits/byte-efficiency/unminified-css.js | title": {
|
|
633
633
|
"message": "Minify CSS"
|
|
634
634
|
},
|
|
635
|
-
"
|
|
635
|
+
"core/audits/byte-efficiency/unminified-javascript.js | description": {
|
|
636
636
|
"message": "Minifying JavaScript files can reduce payload sizes and script parse time. [Learn more](https://web.dev/unminified-javascript/)."
|
|
637
637
|
},
|
|
638
|
-
"
|
|
638
|
+
"core/audits/byte-efficiency/unminified-javascript.js | title": {
|
|
639
639
|
"message": "Minify JavaScript"
|
|
640
640
|
},
|
|
641
|
-
"
|
|
641
|
+
"core/audits/byte-efficiency/unused-css-rules.js | description": {
|
|
642
642
|
"message": "Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn more](https://web.dev/unused-css-rules/)."
|
|
643
643
|
},
|
|
644
|
-
"
|
|
644
|
+
"core/audits/byte-efficiency/unused-css-rules.js | title": {
|
|
645
645
|
"message": "Reduce unused CSS"
|
|
646
646
|
},
|
|
647
|
-
"
|
|
647
|
+
"core/audits/byte-efficiency/unused-javascript.js | description": {
|
|
648
648
|
"message": "Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn more](https://web.dev/unused-javascript/)."
|
|
649
649
|
},
|
|
650
|
-
"
|
|
650
|
+
"core/audits/byte-efficiency/unused-javascript.js | title": {
|
|
651
651
|
"message": "Reduce unused JavaScript"
|
|
652
652
|
},
|
|
653
|
-
"
|
|
653
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
|
|
654
654
|
"message": "A long cache lifetime can speed up repeat visits to your page. [Learn more](https://web.dev/uses-long-cache-ttl/)."
|
|
655
655
|
},
|
|
656
|
-
"
|
|
656
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
|
|
657
657
|
"message": "{itemCount,plural, =1{1 resource found}other{# resources found}}"
|
|
658
658
|
},
|
|
659
|
-
"
|
|
659
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
|
|
660
660
|
"message": "Serve static assets with an efficient cache policy"
|
|
661
661
|
},
|
|
662
|
-
"
|
|
662
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
|
|
663
663
|
"message": "Uses efficient cache policy on static assets"
|
|
664
664
|
},
|
|
665
|
-
"
|
|
665
|
+
"core/audits/byte-efficiency/uses-optimized-images.js | description": {
|
|
666
666
|
"message": "Optimised images load faster and consume less mobile data. [Learn more](https://web.dev/uses-optimized-images/)."
|
|
667
667
|
},
|
|
668
|
-
"
|
|
668
|
+
"core/audits/byte-efficiency/uses-optimized-images.js | title": {
|
|
669
669
|
"message": "Efficiently encode images"
|
|
670
670
|
},
|
|
671
|
-
"
|
|
671
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
|
|
672
672
|
"message": "Actual dimensions"
|
|
673
673
|
},
|
|
674
|
-
"
|
|
674
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
|
|
675
675
|
"message": "Displayed dimensions"
|
|
676
676
|
},
|
|
677
|
-
"
|
|
677
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
|
|
678
678
|
"message": "Images were larger than their displayed size"
|
|
679
679
|
},
|
|
680
|
-
"
|
|
680
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
|
|
681
681
|
"message": "Images were appropriate for their displayed size"
|
|
682
682
|
},
|
|
683
|
-
"
|
|
683
|
+
"core/audits/byte-efficiency/uses-responsive-images.js | description": {
|
|
684
684
|
"message": "Serve images that are appropriately-sized to save mobile data and improve load time. [Learn more](https://web.dev/uses-responsive-images/)."
|
|
685
685
|
},
|
|
686
|
-
"
|
|
686
|
+
"core/audits/byte-efficiency/uses-responsive-images.js | title": {
|
|
687
687
|
"message": "Properly size images"
|
|
688
688
|
},
|
|
689
|
-
"
|
|
689
|
+
"core/audits/byte-efficiency/uses-text-compression.js | description": {
|
|
690
690
|
"message": "Text-based resources should be served with compression (gzip, deflate or brotli) to minimise total network bytes. [Learn more](https://web.dev/uses-text-compression/)."
|
|
691
691
|
},
|
|
692
|
-
"
|
|
692
|
+
"core/audits/byte-efficiency/uses-text-compression.js | title": {
|
|
693
693
|
"message": "Enable text compression"
|
|
694
694
|
},
|
|
695
|
-
"
|
|
695
|
+
"core/audits/content-width.js | description": {
|
|
696
696
|
"message": "If the width of your app's content doesn't match the width of the viewport, your app might not be optimised for mobile screens. [Learn more](https://web.dev/content-width/)."
|
|
697
697
|
},
|
|
698
|
-
"
|
|
698
|
+
"core/audits/content-width.js | explanation": {
|
|
699
699
|
"message": "The viewport size of {innerWidth}px does not match the window size of {outerWidth}px."
|
|
700
700
|
},
|
|
701
|
-
"
|
|
701
|
+
"core/audits/content-width.js | failureTitle": {
|
|
702
702
|
"message": "Content is not sized correctly for the viewport"
|
|
703
703
|
},
|
|
704
|
-
"
|
|
704
|
+
"core/audits/content-width.js | title": {
|
|
705
705
|
"message": "Content is sized correctly for the viewport"
|
|
706
706
|
},
|
|
707
|
-
"
|
|
707
|
+
"core/audits/critical-request-chains.js | description": {
|
|
708
708
|
"message": "The critical request chains below show you what resources are loaded with a high priority. Consider reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load. [Learn more](https://web.dev/critical-request-chains/)."
|
|
709
709
|
},
|
|
710
|
-
"
|
|
710
|
+
"core/audits/critical-request-chains.js | displayValue": {
|
|
711
711
|
"message": "{itemCount,plural, =1{1 chain found}other{# chains found}}"
|
|
712
712
|
},
|
|
713
|
-
"
|
|
713
|
+
"core/audits/critical-request-chains.js | title": {
|
|
714
714
|
"message": "Avoid chaining critical requests"
|
|
715
715
|
},
|
|
716
|
-
"
|
|
716
|
+
"core/audits/csp-xss.js | columnDirective": {
|
|
717
717
|
"message": "Directive"
|
|
718
718
|
},
|
|
719
|
-
"
|
|
719
|
+
"core/audits/csp-xss.js | columnSeverity": {
|
|
720
720
|
"message": "Severity"
|
|
721
721
|
},
|
|
722
|
-
"
|
|
722
|
+
"core/audits/csp-xss.js | description": {
|
|
723
723
|
"message": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn more](https://web.dev/csp-xss/)"
|
|
724
724
|
},
|
|
725
|
-
"
|
|
725
|
+
"core/audits/csp-xss.js | itemSeveritySyntax": {
|
|
726
726
|
"message": "Syntax"
|
|
727
727
|
},
|
|
728
|
-
"
|
|
728
|
+
"core/audits/csp-xss.js | metaTagMessage": {
|
|
729
729
|
"message": "The page contains a CSP defined in a <meta> tag. Consider defining the CSP in a HTTP header if you can."
|
|
730
730
|
},
|
|
731
|
-
"
|
|
731
|
+
"core/audits/csp-xss.js | noCsp": {
|
|
732
732
|
"message": "No CSP found in enforcement mode"
|
|
733
733
|
},
|
|
734
|
-
"
|
|
734
|
+
"core/audits/csp-xss.js | title": {
|
|
735
735
|
"message": "Ensure CSP is effective against XSS attacks"
|
|
736
736
|
},
|
|
737
|
-
"
|
|
737
|
+
"core/audits/deprecations.js | columnDeprecate": {
|
|
738
738
|
"message": "Deprecation/Warning"
|
|
739
739
|
},
|
|
740
|
-
"
|
|
740
|
+
"core/audits/deprecations.js | columnLine": {
|
|
741
741
|
"message": "Line"
|
|
742
742
|
},
|
|
743
|
-
"
|
|
743
|
+
"core/audits/deprecations.js | description": {
|
|
744
744
|
"message": "Deprecated APIs will eventually be removed from the browser. [Learn more](https://web.dev/deprecations/)."
|
|
745
745
|
},
|
|
746
|
-
"
|
|
746
|
+
"core/audits/deprecations.js | displayValue": {
|
|
747
747
|
"message": "{itemCount,plural, =1{1 warning found}other{# warnings found}}"
|
|
748
748
|
},
|
|
749
|
-
"
|
|
749
|
+
"core/audits/deprecations.js | failureTitle": {
|
|
750
750
|
"message": "Uses deprecated APIs"
|
|
751
751
|
},
|
|
752
|
-
"
|
|
752
|
+
"core/audits/deprecations.js | title": {
|
|
753
753
|
"message": "Avoids deprecated APIs"
|
|
754
754
|
},
|
|
755
|
-
"
|
|
755
|
+
"core/audits/dobetterweb/charset.js | description": {
|
|
756
756
|
"message": "A character encoding declaration is required. It can be done with a `<meta>` tag in the first 1,024 bytes of the HTML or in the Content-Type HTTP response header. [Learn more](https://web.dev/charset/)."
|
|
757
757
|
},
|
|
758
|
-
"
|
|
758
|
+
"core/audits/dobetterweb/charset.js | failureTitle": {
|
|
759
759
|
"message": "Charset declaration is missing or occurs too late in the HTML"
|
|
760
760
|
},
|
|
761
|
-
"
|
|
761
|
+
"core/audits/dobetterweb/charset.js | title": {
|
|
762
762
|
"message": "Properly defines charset"
|
|
763
763
|
},
|
|
764
|
-
"
|
|
764
|
+
"core/audits/dobetterweb/doctype.js | description": {
|
|
765
765
|
"message": "Specifying a DOCTYPE prevents the browser from switching to quirks mode. [Learn more](https://web.dev/doctype/)."
|
|
766
766
|
},
|
|
767
|
-
"
|
|
767
|
+
"core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
|
|
768
768
|
"message": "Doctype name must be the lowercase string `html`"
|
|
769
769
|
},
|
|
770
|
-
"
|
|
770
|
+
"core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
|
|
771
771
|
"message": "Document must contain a doctype"
|
|
772
772
|
},
|
|
773
|
-
"
|
|
773
|
+
"core/audits/dobetterweb/doctype.js | explanationPublicId": {
|
|
774
774
|
"message": "Expected publicId to be an empty string"
|
|
775
775
|
},
|
|
776
|
-
"
|
|
776
|
+
"core/audits/dobetterweb/doctype.js | explanationSystemId": {
|
|
777
777
|
"message": "Expected systemId to be an empty string"
|
|
778
778
|
},
|
|
779
|
-
"
|
|
779
|
+
"core/audits/dobetterweb/doctype.js | failureTitle": {
|
|
780
780
|
"message": "Page lacks the HTML doctype, thus triggering quirks mode"
|
|
781
781
|
},
|
|
782
|
-
"
|
|
782
|
+
"core/audits/dobetterweb/doctype.js | title": {
|
|
783
783
|
"message": "Page has the HTML doctype"
|
|
784
784
|
},
|
|
785
|
-
"
|
|
785
|
+
"core/audits/dobetterweb/dom-size.js | columnStatistic": {
|
|
786
786
|
"message": "Statistic"
|
|
787
787
|
},
|
|
788
|
-
"
|
|
788
|
+
"core/audits/dobetterweb/dom-size.js | columnValue": {
|
|
789
789
|
"message": "Value"
|
|
790
790
|
},
|
|
791
|
-
"
|
|
791
|
+
"core/audits/dobetterweb/dom-size.js | description": {
|
|
792
792
|
"message": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations) and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn more](https://web.dev/dom-size/)."
|
|
793
793
|
},
|
|
794
|
-
"
|
|
794
|
+
"core/audits/dobetterweb/dom-size.js | displayValue": {
|
|
795
795
|
"message": "{itemCount,plural, =1{1 element}other{# elements}}"
|
|
796
796
|
},
|
|
797
|
-
"
|
|
797
|
+
"core/audits/dobetterweb/dom-size.js | failureTitle": {
|
|
798
798
|
"message": "Avoid an excessive DOM size"
|
|
799
799
|
},
|
|
800
|
-
"
|
|
800
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
|
|
801
801
|
"message": "Maximum DOM Depth"
|
|
802
802
|
},
|
|
803
|
-
"
|
|
803
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
|
|
804
804
|
"message": "Total DOM Elements"
|
|
805
805
|
},
|
|
806
|
-
"
|
|
806
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
|
|
807
807
|
"message": "Maximum Child Elements"
|
|
808
808
|
},
|
|
809
|
-
"
|
|
809
|
+
"core/audits/dobetterweb/dom-size.js | title": {
|
|
810
810
|
"message": "Avoids an excessive DOM size"
|
|
811
811
|
},
|
|
812
|
-
"
|
|
812
|
+
"core/audits/dobetterweb/geolocation-on-start.js | description": {
|
|
813
813
|
"message": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. [Learn more](https://web.dev/geolocation-on-start/)."
|
|
814
814
|
},
|
|
815
|
-
"
|
|
815
|
+
"core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
|
|
816
816
|
"message": "Requests the geolocation permission on page load"
|
|
817
817
|
},
|
|
818
|
-
"
|
|
818
|
+
"core/audits/dobetterweb/geolocation-on-start.js | title": {
|
|
819
819
|
"message": "Avoids requesting the geolocation permission on page load"
|
|
820
820
|
},
|
|
821
|
-
"
|
|
821
|
+
"core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
|
|
822
822
|
"message": "Issue type"
|
|
823
823
|
},
|
|
824
|
-
"
|
|
824
|
+
"core/audits/dobetterweb/inspector-issues.js | description": {
|
|
825
825
|
"message": "Issues logged to the `Issues` panel in Chrome DevTools indicate unresolved problems. They can come from network request failures, insufficient security controls and other browser concerns. Open up the Issues panel in Chrome DevTools for more details on each issue."
|
|
826
826
|
},
|
|
827
|
-
"
|
|
827
|
+
"core/audits/dobetterweb/inspector-issues.js | failureTitle": {
|
|
828
828
|
"message": "Issues were logged in the `Issues` panel in Chrome DevTools"
|
|
829
829
|
},
|
|
830
|
-
"
|
|
830
|
+
"core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
|
|
831
831
|
"message": "Blocked by cross-origin policy"
|
|
832
832
|
},
|
|
833
|
-
"
|
|
833
|
+
"core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
|
|
834
834
|
"message": "Heavy resource usage by ads"
|
|
835
835
|
},
|
|
836
|
-
"
|
|
836
|
+
"core/audits/dobetterweb/inspector-issues.js | title": {
|
|
837
837
|
"message": "No issues in the `Issues` panel in Chrome DevTools"
|
|
838
838
|
},
|
|
839
|
-
"
|
|
839
|
+
"core/audits/dobetterweb/js-libraries.js | columnVersion": {
|
|
840
840
|
"message": "Version"
|
|
841
841
|
},
|
|
842
|
-
"
|
|
842
|
+
"core/audits/dobetterweb/js-libraries.js | description": {
|
|
843
843
|
"message": "All front-end JavaScript libraries detected on the page. [Learn more](https://web.dev/js-libraries/)."
|
|
844
844
|
},
|
|
845
|
-
"
|
|
845
|
+
"core/audits/dobetterweb/js-libraries.js | title": {
|
|
846
846
|
"message": "Detected JavaScript libraries"
|
|
847
847
|
},
|
|
848
|
-
"
|
|
848
|
+
"core/audits/dobetterweb/no-document-write.js | description": {
|
|
849
849
|
"message": "For users on slow connections, external scripts dynamically injected via `document.write()` can delay page load by tens of seconds. [Learn more](https://web.dev/no-document-write/)."
|
|
850
850
|
},
|
|
851
|
-
"
|
|
851
|
+
"core/audits/dobetterweb/no-document-write.js | failureTitle": {
|
|
852
852
|
"message": "Avoid `document.write()`"
|
|
853
853
|
},
|
|
854
|
-
"
|
|
854
|
+
"core/audits/dobetterweb/no-document-write.js | title": {
|
|
855
855
|
"message": "Avoids `document.write()`"
|
|
856
856
|
},
|
|
857
|
-
"
|
|
857
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnSeverity": {
|
|
858
858
|
"message": "Highest Severity"
|
|
859
859
|
},
|
|
860
|
-
"
|
|
860
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnVersion": {
|
|
861
861
|
"message": "Library version"
|
|
862
862
|
},
|
|
863
|
-
"
|
|
863
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnVuln": {
|
|
864
864
|
"message": "Vulnerability count"
|
|
865
865
|
},
|
|
866
|
-
"
|
|
866
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | description": {
|
|
867
867
|
"message": "Some third-party scripts may contain known security vulnerabilities that are easily identified and exploited by attackers. [Learn more](https://web.dev/no-vulnerable-libraries/)."
|
|
868
868
|
},
|
|
869
|
-
"
|
|
869
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | displayValue": {
|
|
870
870
|
"message": "{itemCount,plural, =1{1 vulnerability detected}other{# vulnerabilities detected}}"
|
|
871
871
|
},
|
|
872
|
-
"
|
|
872
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | failureTitle": {
|
|
873
873
|
"message": "Includes front-end JavaScript libraries with known security vulnerabilities"
|
|
874
874
|
},
|
|
875
|
-
"
|
|
875
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | title": {
|
|
876
876
|
"message": "Avoids front-end JavaScript libraries with known security vulnerabilities"
|
|
877
877
|
},
|
|
878
|
-
"
|
|
878
|
+
"core/audits/dobetterweb/notification-on-start.js | description": {
|
|
879
879
|
"message": "Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. [Learn more](https://web.dev/notification-on-start/)."
|
|
880
880
|
},
|
|
881
|
-
"
|
|
881
|
+
"core/audits/dobetterweb/notification-on-start.js | failureTitle": {
|
|
882
882
|
"message": "Requests the notification permission on page load"
|
|
883
883
|
},
|
|
884
|
-
"
|
|
884
|
+
"core/audits/dobetterweb/notification-on-start.js | title": {
|
|
885
885
|
"message": "Avoids requesting the notification permission on page load"
|
|
886
886
|
},
|
|
887
|
-
"
|
|
887
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | description": {
|
|
888
888
|
"message": "Preventing password pasting undermines good security policy. [Learn more](https://web.dev/password-inputs-can-be-pasted-into/)."
|
|
889
889
|
},
|
|
890
|
-
"
|
|
890
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | failureTitle": {
|
|
891
891
|
"message": "Prevents users to paste into password fields"
|
|
892
892
|
},
|
|
893
|
-
"
|
|
893
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | title": {
|
|
894
894
|
"message": "Allows users to paste into password fields"
|
|
895
895
|
},
|
|
896
|
-
"
|
|
896
|
+
"core/audits/dobetterweb/uses-http2.js | columnProtocol": {
|
|
897
897
|
"message": "Protocol"
|
|
898
898
|
},
|
|
899
|
-
"
|
|
899
|
+
"core/audits/dobetterweb/uses-http2.js | description": {
|
|
900
900
|
"message": "HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing. [Learn more](https://web.dev/uses-http2/)."
|
|
901
901
|
},
|
|
902
|
-
"
|
|
902
|
+
"core/audits/dobetterweb/uses-http2.js | displayValue": {
|
|
903
903
|
"message": "{itemCount,plural, =1{1 request not served via HTTP/2}other{# requests not served via HTTP/2}}"
|
|
904
904
|
},
|
|
905
|
-
"
|
|
905
|
+
"core/audits/dobetterweb/uses-http2.js | title": {
|
|
906
906
|
"message": "Use HTTP/2"
|
|
907
907
|
},
|
|
908
|
-
"
|
|
908
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
|
|
909
909
|
"message": "Consider marking your touch and wheel event listeners as `passive` to improve your page's scroll performance. [Learn more](https://web.dev/uses-passive-event-listeners/)."
|
|
910
910
|
},
|
|
911
|
-
"
|
|
911
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
|
|
912
912
|
"message": "Does not use passive listeners to improve scrolling performance"
|
|
913
913
|
},
|
|
914
|
-
"
|
|
914
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
|
|
915
915
|
"message": "Uses passive listeners to improve scrolling performance"
|
|
916
916
|
},
|
|
917
|
-
"
|
|
917
|
+
"core/audits/errors-in-console.js | description": {
|
|
918
918
|
"message": "Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. [Learn more](https://web.dev/errors-in-console/)"
|
|
919
919
|
},
|
|
920
|
-
"
|
|
920
|
+
"core/audits/errors-in-console.js | failureTitle": {
|
|
921
921
|
"message": "Browser errors were logged to the console"
|
|
922
922
|
},
|
|
923
|
-
"
|
|
923
|
+
"core/audits/errors-in-console.js | title": {
|
|
924
924
|
"message": "No browser errors logged to the console"
|
|
925
925
|
},
|
|
926
|
-
"
|
|
926
|
+
"core/audits/font-display.js | description": {
|
|
927
927
|
"message": "Leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading. [Learn more](https://web.dev/font-display/)."
|
|
928
928
|
},
|
|
929
|
-
"
|
|
929
|
+
"core/audits/font-display.js | failureTitle": {
|
|
930
930
|
"message": "Ensure text remains visible during webfont load"
|
|
931
931
|
},
|
|
932
|
-
"
|
|
932
|
+
"core/audits/font-display.js | title": {
|
|
933
933
|
"message": "All text remains visible during webfont loads"
|
|
934
934
|
},
|
|
935
|
-
"
|
|
935
|
+
"core/audits/font-display.js | undeclaredFontOriginWarning": {
|
|
936
936
|
"message": "{fontCountForOrigin,plural, =1{Lighthouse was unable to automatically check the `font-display` value for the origin {fontOrigin}.}other{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}}"
|
|
937
937
|
},
|
|
938
|
-
"
|
|
938
|
+
"core/audits/image-aspect-ratio.js | columnActual": {
|
|
939
939
|
"message": "Aspect ratio (actual)"
|
|
940
940
|
},
|
|
941
|
-
"
|
|
941
|
+
"core/audits/image-aspect-ratio.js | columnDisplayed": {
|
|
942
942
|
"message": "Aspect ratio (displayed)"
|
|
943
943
|
},
|
|
944
|
-
"
|
|
944
|
+
"core/audits/image-aspect-ratio.js | description": {
|
|
945
945
|
"message": "Image display dimensions should match natural aspect ratio. [Learn more](https://web.dev/image-aspect-ratio/)."
|
|
946
946
|
},
|
|
947
|
-
"
|
|
947
|
+
"core/audits/image-aspect-ratio.js | failureTitle": {
|
|
948
948
|
"message": "Displays images with incorrect aspect ratio"
|
|
949
949
|
},
|
|
950
|
-
"
|
|
950
|
+
"core/audits/image-aspect-ratio.js | title": {
|
|
951
951
|
"message": "Displays images with correct aspect ratio"
|
|
952
952
|
},
|
|
953
|
-
"
|
|
953
|
+
"core/audits/image-size-responsive.js | columnActual": {
|
|
954
954
|
"message": "Actual size"
|
|
955
955
|
},
|
|
956
|
-
"
|
|
956
|
+
"core/audits/image-size-responsive.js | columnDisplayed": {
|
|
957
957
|
"message": "Displayed size"
|
|
958
958
|
},
|
|
959
|
-
"
|
|
959
|
+
"core/audits/image-size-responsive.js | columnExpected": {
|
|
960
960
|
"message": "Expected size"
|
|
961
961
|
},
|
|
962
|
-
"
|
|
962
|
+
"core/audits/image-size-responsive.js | description": {
|
|
963
963
|
"message": "Image natural dimensions should be proportional to the display size and the pixel ratio to maximise image clarity. [Learn more](https://web.dev/serve-responsive-images/)."
|
|
964
964
|
},
|
|
965
|
-
"
|
|
965
|
+
"core/audits/image-size-responsive.js | failureTitle": {
|
|
966
966
|
"message": "Serves images with low resolution"
|
|
967
967
|
},
|
|
968
|
-
"
|
|
968
|
+
"core/audits/image-size-responsive.js | title": {
|
|
969
969
|
"message": "Serves images with appropriate resolution"
|
|
970
970
|
},
|
|
971
|
-
"
|
|
971
|
+
"core/audits/installable-manifest.js | already-installed": {
|
|
972
972
|
"message": "The app is already installed"
|
|
973
973
|
},
|
|
974
|
-
"
|
|
974
|
+
"core/audits/installable-manifest.js | cannot-download-icon": {
|
|
975
975
|
"message": "Could not download a required icon from the manifest"
|
|
976
976
|
},
|
|
977
|
-
"
|
|
977
|
+
"core/audits/installable-manifest.js | columnValue": {
|
|
978
978
|
"message": "Reason for failure"
|
|
979
979
|
},
|
|
980
|
-
"
|
|
980
|
+
"core/audits/installable-manifest.js | description": {
|
|
981
981
|
"message": "Service worker is the technology that enables your app to use many progressive web app features, such as offline, add to homescreen and push notifications. With proper service worker and manifest implementations, browsers can proactively prompt users to add your app to their homescreen, which can lead to higher engagement. [Learn more](https://web.dev/installable-manifest/)."
|
|
982
982
|
},
|
|
983
|
-
"
|
|
983
|
+
"core/audits/installable-manifest.js | displayValue": {
|
|
984
984
|
"message": "{itemCount,plural, =1{1 reason}other{# reasons}}"
|
|
985
985
|
},
|
|
986
|
-
"
|
|
986
|
+
"core/audits/installable-manifest.js | failureTitle": {
|
|
987
987
|
"message": "Web app manifest or service worker do not meet the installability requirements"
|
|
988
988
|
},
|
|
989
|
-
"
|
|
989
|
+
"core/audits/installable-manifest.js | ids-do-not-match": {
|
|
990
990
|
"message": "The Play Store app URL and Play Store ID do not match"
|
|
991
991
|
},
|
|
992
|
-
"
|
|
992
|
+
"core/audits/installable-manifest.js | in-incognito": {
|
|
993
993
|
"message": "Page is loaded in an incognito window"
|
|
994
994
|
},
|
|
995
|
-
"
|
|
995
|
+
"core/audits/installable-manifest.js | manifest-display-not-supported": {
|
|
996
996
|
"message": "Manifest 'display' property must be one of 'standalone', 'fullscreen' or 'minimal-UI'"
|
|
997
997
|
},
|
|
998
|
-
"
|
|
998
|
+
"core/audits/installable-manifest.js | manifest-display-override-not-supported": {
|
|
999
999
|
"message": "Manifest contains 'display_override' field, and the first supported display mode must be one of 'standalone', 'fullscreen' or 'minimal-ui'"
|
|
1000
1000
|
},
|
|
1001
|
-
"
|
|
1001
|
+
"core/audits/installable-manifest.js | manifest-empty": {
|
|
1002
1002
|
"message": "Manifest could not be fetched, is empty or could not be parsed"
|
|
1003
1003
|
},
|
|
1004
|
-
"
|
|
1004
|
+
"core/audits/installable-manifest.js | manifest-location-changed": {
|
|
1005
1005
|
"message": "Manifest URL changed while the manifest was being fetched."
|
|
1006
1006
|
},
|
|
1007
|
-
"
|
|
1007
|
+
"core/audits/installable-manifest.js | manifest-missing-name-or-short-name": {
|
|
1008
1008
|
"message": "Manifest does not contain a 'name' or 'short_name' field"
|
|
1009
1009
|
},
|
|
1010
|
-
"
|
|
1010
|
+
"core/audits/installable-manifest.js | manifest-missing-suitable-icon": {
|
|
1011
1011
|
"message": "Manifest does not contain a suitable icon – PNG, SVG or WebP format of at least {value0} px is required, the sizes attribute must be set, and the purpose attribute, if set, must include 'any'."
|
|
1012
1012
|
},
|
|
1013
|
-
"
|
|
1013
|
+
"core/audits/installable-manifest.js | no-acceptable-icon": {
|
|
1014
1014
|
"message": "No supplied icon is at least {value0} px square in PNG, SVG or WebP format, with the purpose attribute unset or set to 'any'"
|
|
1015
1015
|
},
|
|
1016
|
-
"
|
|
1016
|
+
"core/audits/installable-manifest.js | no-icon-available": {
|
|
1017
1017
|
"message": "Downloaded icon was empty or corrupted"
|
|
1018
1018
|
},
|
|
1019
|
-
"
|
|
1019
|
+
"core/audits/installable-manifest.js | no-id-specified": {
|
|
1020
1020
|
"message": "No Play Store ID provided"
|
|
1021
1021
|
},
|
|
1022
|
-
"
|
|
1022
|
+
"core/audits/installable-manifest.js | no-manifest": {
|
|
1023
1023
|
"message": "Page has no manifest <link> URL"
|
|
1024
1024
|
},
|
|
1025
|
-
"
|
|
1025
|
+
"core/audits/installable-manifest.js | no-matching-service-worker": {
|
|
1026
1026
|
"message": "No matching service worker detected. You may need to reload the page, or check that the scope of the service worker for the current page encloses the scope and start URL from the manifest."
|
|
1027
1027
|
},
|
|
1028
|
-
"
|
|
1028
|
+
"core/audits/installable-manifest.js | no-url-for-service-worker": {
|
|
1029
1029
|
"message": "Could not check service worker without a 'start_url' field in the manifest"
|
|
1030
1030
|
},
|
|
1031
|
-
"
|
|
1031
|
+
"core/audits/installable-manifest.js | noErrorId": {
|
|
1032
1032
|
"message": "Installability error ID '{errorId}' is not recognised"
|
|
1033
1033
|
},
|
|
1034
|
-
"
|
|
1034
|
+
"core/audits/installable-manifest.js | not-from-secure-origin": {
|
|
1035
1035
|
"message": "Page is not served from a secure origin"
|
|
1036
1036
|
},
|
|
1037
|
-
"
|
|
1037
|
+
"core/audits/installable-manifest.js | not-in-main-frame": {
|
|
1038
1038
|
"message": "Page is not loaded in the main frame"
|
|
1039
1039
|
},
|
|
1040
|
-
"
|
|
1040
|
+
"core/audits/installable-manifest.js | not-offline-capable": {
|
|
1041
1041
|
"message": "Page does not work offline"
|
|
1042
1042
|
},
|
|
1043
|
-
"
|
|
1043
|
+
"core/audits/installable-manifest.js | pipeline-restarted": {
|
|
1044
1044
|
"message": "PWA has been uninstalled and installability checks resetting."
|
|
1045
1045
|
},
|
|
1046
|
-
"
|
|
1046
|
+
"core/audits/installable-manifest.js | platform-not-supported-on-android": {
|
|
1047
1047
|
"message": "The specified application platform is not supported on Android"
|
|
1048
1048
|
},
|
|
1049
|
-
"
|
|
1049
|
+
"core/audits/installable-manifest.js | prefer-related-applications": {
|
|
1050
1050
|
"message": "Manifest specifies prefer_related_applications: true"
|
|
1051
1051
|
},
|
|
1052
|
-
"
|
|
1052
|
+
"core/audits/installable-manifest.js | prefer-related-applications-only-beta-stable": {
|
|
1053
1053
|
"message": "prefer_related_applications is only supported on Chrome Beta and Stable channels on Android."
|
|
1054
1054
|
},
|
|
1055
|
-
"
|
|
1055
|
+
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1056
1056
|
"message": "Lighthouse could not determine if there was a service worker. Please try with a newer version of Chrome."
|
|
1057
1057
|
},
|
|
1058
|
-
"
|
|
1058
|
+
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1059
1059
|
"message": "Manifest start URL is not valid"
|
|
1060
1060
|
},
|
|
1061
|
-
"
|
|
1061
|
+
"core/audits/installable-manifest.js | title": {
|
|
1062
1062
|
"message": "Web app manifest and service worker meet the installability requirements"
|
|
1063
1063
|
},
|
|
1064
|
-
"
|
|
1064
|
+
"core/audits/installable-manifest.js | url-not-supported-for-webapk": {
|
|
1065
1065
|
"message": "A URL in the manifest contains a username, password or port"
|
|
1066
1066
|
},
|
|
1067
|
-
"
|
|
1067
|
+
"core/audits/installable-manifest.js | warn-not-offline-capable": {
|
|
1068
1068
|
"message": "Page does not work offline. The page will not be regarded as installable after Chrome 93, stable release August 2021."
|
|
1069
1069
|
},
|
|
1070
|
-
"
|
|
1070
|
+
"core/audits/is-on-https.js | allowed": {
|
|
1071
1071
|
"message": "Allowed"
|
|
1072
1072
|
},
|
|
1073
|
-
"
|
|
1073
|
+
"core/audits/is-on-https.js | blocked": {
|
|
1074
1074
|
"message": "Blocked"
|
|
1075
1075
|
},
|
|
1076
|
-
"
|
|
1076
|
+
"core/audits/is-on-https.js | columnInsecureURL": {
|
|
1077
1077
|
"message": "Insecure URL"
|
|
1078
1078
|
},
|
|
1079
|
-
"
|
|
1079
|
+
"core/audits/is-on-https.js | columnResolution": {
|
|
1080
1080
|
"message": "Request resolution"
|
|
1081
1081
|
},
|
|
1082
|
-
"
|
|
1082
|
+
"core/audits/is-on-https.js | description": {
|
|
1083
1083
|
"message": "All sites should be protected with HTTPS, even ones that don't handle sensitive data. This includes avoiding [mixed content](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), where some resources are loaded over HTTP despite the initial request being served over HTTPS. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. [Learn more](https://web.dev/is-on-https/)."
|
|
1084
1084
|
},
|
|
1085
|
-
"
|
|
1085
|
+
"core/audits/is-on-https.js | displayValue": {
|
|
1086
1086
|
"message": "{itemCount,plural, =1{1 insecure request found}other{# insecure requests found}}"
|
|
1087
1087
|
},
|
|
1088
|
-
"
|
|
1088
|
+
"core/audits/is-on-https.js | failureTitle": {
|
|
1089
1089
|
"message": "Does not use HTTPS"
|
|
1090
1090
|
},
|
|
1091
|
-
"
|
|
1091
|
+
"core/audits/is-on-https.js | title": {
|
|
1092
1092
|
"message": "Uses HTTPS"
|
|
1093
1093
|
},
|
|
1094
|
-
"
|
|
1094
|
+
"core/audits/is-on-https.js | upgraded": {
|
|
1095
1095
|
"message": "Automatically upgraded to HTTPS"
|
|
1096
1096
|
},
|
|
1097
|
-
"
|
|
1097
|
+
"core/audits/is-on-https.js | warning": {
|
|
1098
1098
|
"message": "Allowed with warning"
|
|
1099
1099
|
},
|
|
1100
|
-
"
|
|
1100
|
+
"core/audits/largest-contentful-paint-element.js | description": {
|
|
1101
1101
|
"message": "This is the largest contentful element painted within the viewport. [Learn more](https://web.dev/lighthouse-largest-contentful-paint/)"
|
|
1102
1102
|
},
|
|
1103
|
-
"
|
|
1103
|
+
"core/audits/largest-contentful-paint-element.js | title": {
|
|
1104
1104
|
"message": "Largest contentful paint element"
|
|
1105
1105
|
},
|
|
1106
|
-
"
|
|
1106
|
+
"core/audits/layout-shift-elements.js | columnContribution": {
|
|
1107
1107
|
"message": "CLS contribution"
|
|
1108
1108
|
},
|
|
1109
|
-
"
|
|
1109
|
+
"core/audits/layout-shift-elements.js | description": {
|
|
1110
1110
|
"message": "These DOM elements contribute most to the CLS of the page."
|
|
1111
1111
|
},
|
|
1112
|
-
"
|
|
1112
|
+
"core/audits/layout-shift-elements.js | title": {
|
|
1113
1113
|
"message": "Avoid large layout shifts"
|
|
1114
1114
|
},
|
|
1115
|
-
"
|
|
1115
|
+
"core/audits/lcp-lazy-loaded.js | description": {
|
|
1116
1116
|
"message": "Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint. [Learn more](https://web.dev/lcp-lazy-loading/)."
|
|
1117
1117
|
},
|
|
1118
|
-
"
|
|
1118
|
+
"core/audits/lcp-lazy-loaded.js | failureTitle": {
|
|
1119
1119
|
"message": "Largest contentful paint image was lazily loaded"
|
|
1120
1120
|
},
|
|
1121
|
-
"
|
|
1121
|
+
"core/audits/lcp-lazy-loaded.js | title": {
|
|
1122
1122
|
"message": "Largest contentful paint image was not lazily loaded"
|
|
1123
1123
|
},
|
|
1124
|
-
"
|
|
1124
|
+
"core/audits/long-tasks.js | description": {
|
|
1125
1125
|
"message": "Lists the longest tasks on the main thread –useful for identifying worst contributors to input delay. [Learn more](https://web.dev/long-tasks-devtools/)"
|
|
1126
1126
|
},
|
|
1127
|
-
"
|
|
1127
|
+
"core/audits/long-tasks.js | displayValue": {
|
|
1128
1128
|
"message": "{itemCount,plural, =1{# long task found}other{# long tasks found}}"
|
|
1129
1129
|
},
|
|
1130
|
-
"
|
|
1130
|
+
"core/audits/long-tasks.js | title": {
|
|
1131
1131
|
"message": "Avoid long main-thread tasks"
|
|
1132
1132
|
},
|
|
1133
|
-
"
|
|
1133
|
+
"core/audits/mainthread-work-breakdown.js | columnCategory": {
|
|
1134
1134
|
"message": "Category"
|
|
1135
1135
|
},
|
|
1136
|
-
"
|
|
1136
|
+
"core/audits/mainthread-work-breakdown.js | description": {
|
|
1137
1137
|
"message": "Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. [Learn more](https://web.dev/mainthread-work-breakdown/)"
|
|
1138
1138
|
},
|
|
1139
|
-
"
|
|
1139
|
+
"core/audits/mainthread-work-breakdown.js | failureTitle": {
|
|
1140
1140
|
"message": "Minimise main-thread work"
|
|
1141
1141
|
},
|
|
1142
|
-
"
|
|
1142
|
+
"core/audits/mainthread-work-breakdown.js | title": {
|
|
1143
1143
|
"message": "Minimises main-thread work"
|
|
1144
1144
|
},
|
|
1145
|
-
"
|
|
1145
|
+
"core/audits/manual/pwa-cross-browser.js | description": {
|
|
1146
1146
|
"message": "To reach the most users, sites should work across every major browser. [Learn more](https://web.dev/pwa-cross-browser/)."
|
|
1147
1147
|
},
|
|
1148
|
-
"
|
|
1148
|
+
"core/audits/manual/pwa-cross-browser.js | title": {
|
|
1149
1149
|
"message": "Site works cross-browser"
|
|
1150
1150
|
},
|
|
1151
|
-
"
|
|
1151
|
+
"core/audits/manual/pwa-each-page-has-url.js | description": {
|
|
1152
1152
|
"message": "Ensure individual pages are deep linkable via URL and that URLs are unique for the purpose of shareability on social media. [Learn more](https://web.dev/pwa-each-page-has-url/)."
|
|
1153
1153
|
},
|
|
1154
|
-
"
|
|
1154
|
+
"core/audits/manual/pwa-each-page-has-url.js | title": {
|
|
1155
1155
|
"message": "Each page has a URL"
|
|
1156
1156
|
},
|
|
1157
|
-
"
|
|
1157
|
+
"core/audits/manual/pwa-page-transitions.js | description": {
|
|
1158
1158
|
"message": "Transitions should feel snappy as you tap around, even on a slow network. This experience is key to a user's perception of performance. [Learn more](https://web.dev/pwa-page-transitions/)."
|
|
1159
1159
|
},
|
|
1160
|
-
"
|
|
1160
|
+
"core/audits/manual/pwa-page-transitions.js | title": {
|
|
1161
1161
|
"message": "Page transitions don't feel like they block on the network"
|
|
1162
1162
|
},
|
|
1163
|
-
"
|
|
1163
|
+
"core/audits/maskable-icon.js | description": {
|
|
1164
1164
|
"message": "A maskable icon ensures that the image fills the entire shape without being letterboxed when installing the app on a device. [Learn more](https://web.dev/maskable-icon-audit/)."
|
|
1165
1165
|
},
|
|
1166
|
-
"
|
|
1166
|
+
"core/audits/maskable-icon.js | failureTitle": {
|
|
1167
1167
|
"message": "Manifest doesn't have a maskable icon"
|
|
1168
1168
|
},
|
|
1169
|
-
"
|
|
1169
|
+
"core/audits/maskable-icon.js | title": {
|
|
1170
1170
|
"message": "Manifest has a maskable icon"
|
|
1171
1171
|
},
|
|
1172
|
-
"
|
|
1172
|
+
"core/audits/metrics/cumulative-layout-shift.js | description": {
|
|
1173
1173
|
"message": "Cumulative layout shift measures the movement of visible elements within the viewport. [Learn more](https://web.dev/cls/)."
|
|
1174
1174
|
},
|
|
1175
|
-
"
|
|
1175
|
+
"core/audits/metrics/first-contentful-paint.js | description": {
|
|
1176
1176
|
"message": "First contentful paint marks the time at which the first text or image is painted. [Learn more](https://web.dev/first-contentful-paint/)."
|
|
1177
1177
|
},
|
|
1178
|
-
"
|
|
1178
|
+
"core/audits/metrics/first-meaningful-paint.js | description": {
|
|
1179
1179
|
"message": "First meaningful paint measures when the primary content of a page is visible. [Learn more](https://web.dev/first-meaningful-paint/)."
|
|
1180
1180
|
},
|
|
1181
|
-
"
|
|
1181
|
+
"core/audits/metrics/interactive.js | description": {
|
|
1182
1182
|
"message": "Time to interactive is the amount of time it takes for the page to become fully interactive. [Learn more](https://web.dev/interactive/)."
|
|
1183
1183
|
},
|
|
1184
|
-
"
|
|
1184
|
+
"core/audits/metrics/largest-contentful-paint.js | description": {
|
|
1185
1185
|
"message": "Largest contentful paint marks the time at which the largest text or image is painted. [Learn more](https://web.dev/lighthouse-largest-contentful-paint/)"
|
|
1186
1186
|
},
|
|
1187
|
-
"
|
|
1187
|
+
"core/audits/metrics/max-potential-fid.js | description": {
|
|
1188
1188
|
"message": "The maximum potential first input delay that your users could experience is the duration of the longest task. [Learn more](https://web.dev/lighthouse-max-potential-fid/)."
|
|
1189
1189
|
},
|
|
1190
|
-
"
|
|
1190
|
+
"core/audits/metrics/speed-index.js | description": {
|
|
1191
1191
|
"message": "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more](https://web.dev/speed-index/)."
|
|
1192
1192
|
},
|
|
1193
|
-
"
|
|
1193
|
+
"core/audits/metrics/total-blocking-time.js | description": {
|
|
1194
1194
|
"message": "Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. [Learn more](https://web.dev/lighthouse-total-blocking-time/)."
|
|
1195
1195
|
},
|
|
1196
|
-
"
|
|
1196
|
+
"core/audits/network-rtt.js | description": {
|
|
1197
1197
|
"message": "Network round trip times (RTT) have a large impact on performance. If the RTT to an origin is high, it's an indication that servers closer to the user could improve performance. [Learn more](https://hpbn.co/primer-on-latency-and-bandwidth/)."
|
|
1198
1198
|
},
|
|
1199
|
-
"
|
|
1199
|
+
"core/audits/network-rtt.js | title": {
|
|
1200
1200
|
"message": "Network Return Times"
|
|
1201
1201
|
},
|
|
1202
|
-
"
|
|
1202
|
+
"core/audits/network-server-latency.js | description": {
|
|
1203
1203
|
"message": "Server latencies can impact web performance. If the server latency of an origin is high, it's an indication that the server is overloaded or has poor back-end performance. [Learn more](https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall)."
|
|
1204
1204
|
},
|
|
1205
|
-
"
|
|
1205
|
+
"core/audits/network-server-latency.js | title": {
|
|
1206
1206
|
"message": "Server Back-end Latencies"
|
|
1207
1207
|
},
|
|
1208
|
-
"
|
|
1208
|
+
"core/audits/no-unload-listeners.js | description": {
|
|
1209
1209
|
"message": "The `unload` event does not fire reliably and listening for it can prevent browser optimisations like the back-forward cache. Use `pagehide` or `visibilitychange` events instead. [Learn more](https://web.dev/bfcache/#never-use-the-unload-event)"
|
|
1210
1210
|
},
|
|
1211
|
-
"
|
|
1211
|
+
"core/audits/no-unload-listeners.js | failureTitle": {
|
|
1212
1212
|
"message": "Registers an `unload` listener"
|
|
1213
1213
|
},
|
|
1214
|
-
"
|
|
1214
|
+
"core/audits/no-unload-listeners.js | title": {
|
|
1215
1215
|
"message": "Avoids `unload` event listeners"
|
|
1216
1216
|
},
|
|
1217
|
-
"
|
|
1217
|
+
"core/audits/non-composited-animations.js | description": {
|
|
1218
1218
|
"message": "Animations which are not composited can be poor, slow and increase CLS. [Learn more](https://web.dev/non-composited-animations)"
|
|
1219
1219
|
},
|
|
1220
|
-
"
|
|
1220
|
+
"core/audits/non-composited-animations.js | displayValue": {
|
|
1221
1221
|
"message": "{itemCount,plural, =1{# animated element found}other{# animated elements found}}"
|
|
1222
1222
|
},
|
|
1223
|
-
"
|
|
1223
|
+
"core/audits/non-composited-animations.js | filterMayMovePixels": {
|
|
1224
1224
|
"message": "Filter-related property may move pixels"
|
|
1225
1225
|
},
|
|
1226
|
-
"
|
|
1226
|
+
"core/audits/non-composited-animations.js | incompatibleAnimations": {
|
|
1227
1227
|
"message": "Target has another animation which is incompatible"
|
|
1228
1228
|
},
|
|
1229
|
-
"
|
|
1229
|
+
"core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
|
|
1230
1230
|
"message": "Effect has composite mode other than 'replace'"
|
|
1231
1231
|
},
|
|
1232
|
-
"
|
|
1232
|
+
"core/audits/non-composited-animations.js | title": {
|
|
1233
1233
|
"message": "Avoid non-composited animations"
|
|
1234
1234
|
},
|
|
1235
|
-
"
|
|
1235
|
+
"core/audits/non-composited-animations.js | transformDependsBoxSize": {
|
|
1236
1236
|
"message": "Transform-related property depends on box size"
|
|
1237
1237
|
},
|
|
1238
|
-
"
|
|
1238
|
+
"core/audits/non-composited-animations.js | unsupportedCSSProperty": {
|
|
1239
1239
|
"message": "{propertyCount,plural, =1{Unsupported CSS property: {properties}}other{Unsupported CSS properties: {properties}}}"
|
|
1240
1240
|
},
|
|
1241
|
-
"
|
|
1241
|
+
"core/audits/non-composited-animations.js | unsupportedTimingParameters": {
|
|
1242
1242
|
"message": "Effect has unsupported timing parameters"
|
|
1243
1243
|
},
|
|
1244
|
-
"
|
|
1244
|
+
"core/audits/performance-budget.js | description": {
|
|
1245
1245
|
"message": "Keep the quantity and size of network requests under the targets set by the provided performance budget. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
|
|
1246
1246
|
},
|
|
1247
|
-
"
|
|
1247
|
+
"core/audits/performance-budget.js | requestCountOverBudget": {
|
|
1248
1248
|
"message": "{count,plural, =1{1 request}other{# requests}}"
|
|
1249
1249
|
},
|
|
1250
|
-
"
|
|
1250
|
+
"core/audits/performance-budget.js | title": {
|
|
1251
1251
|
"message": "Performance budget"
|
|
1252
1252
|
},
|
|
1253
|
-
"
|
|
1253
|
+
"core/audits/preload-fonts.js | description": {
|
|
1254
1254
|
"message": "Preload `optional` fonts so that first-time visitors may use them. [Learn more](https://web.dev/preload-optional-fonts/)"
|
|
1255
1255
|
},
|
|
1256
|
-
"
|
|
1256
|
+
"core/audits/preload-fonts.js | failureTitle": {
|
|
1257
1257
|
"message": "Fonts with `font-display: optional` are not preloaded"
|
|
1258
1258
|
},
|
|
1259
|
-
"
|
|
1259
|
+
"core/audits/preload-fonts.js | title": {
|
|
1260
1260
|
"message": "Fonts with `font-display: optional` are preloaded"
|
|
1261
1261
|
},
|
|
1262
|
-
"
|
|
1262
|
+
"core/audits/preload-lcp-image.js | description": {
|
|
1263
1263
|
"message": "Preload the image used by the LCP element in order to improve your LCP time. [Learn more](https://web.dev/optimize-lcp/#preload-important-resources)."
|
|
1264
1264
|
},
|
|
1265
|
-
"
|
|
1265
|
+
"core/audits/preload-lcp-image.js | title": {
|
|
1266
1266
|
"message": "Preload largest contentful paint image"
|
|
1267
1267
|
},
|
|
1268
|
-
"
|
|
1268
|
+
"core/audits/redirects.js | description": {
|
|
1269
1269
|
"message": "Redirects introduce additional delays before the page can be loaded. [Learn more](https://web.dev/redirects/)."
|
|
1270
1270
|
},
|
|
1271
|
-
"
|
|
1271
|
+
"core/audits/redirects.js | title": {
|
|
1272
1272
|
"message": "Avoid multiple page redirects"
|
|
1273
1273
|
},
|
|
1274
|
-
"
|
|
1274
|
+
"core/audits/resource-summary.js | description": {
|
|
1275
1275
|
"message": "To set budgets for the quantity and size of page resources, add a budget.json file. [Learn more](https://web.dev/use-lighthouse-for-performance-budgets/)."
|
|
1276
1276
|
},
|
|
1277
|
-
"
|
|
1277
|
+
"core/audits/resource-summary.js | displayValue": {
|
|
1278
1278
|
"message": "{requestCount,plural, =1{1 request • {byteCount, number, bytes} KiB}other{# requests • {byteCount, number, bytes} KiB}}"
|
|
1279
1279
|
},
|
|
1280
|
-
"
|
|
1280
|
+
"core/audits/resource-summary.js | title": {
|
|
1281
1281
|
"message": "Keep request counts low and transfer sizes small"
|
|
1282
1282
|
},
|
|
1283
|
-
"
|
|
1283
|
+
"core/audits/seo/canonical.js | description": {
|
|
1284
1284
|
"message": "Canonical links suggest which URL to show in search results. [Learn more](https://web.dev/canonical/)."
|
|
1285
1285
|
},
|
|
1286
|
-
"
|
|
1286
|
+
"core/audits/seo/canonical.js | explanationConflict": {
|
|
1287
1287
|
"message": "Multiple conflicting URLs ({urlList})"
|
|
1288
1288
|
},
|
|
1289
|
-
"
|
|
1289
|
+
"core/audits/seo/canonical.js | explanationInvalid": {
|
|
1290
1290
|
"message": "Invalid URL ({url})"
|
|
1291
1291
|
},
|
|
1292
|
-
"
|
|
1292
|
+
"core/audits/seo/canonical.js | explanationPointsElsewhere": {
|
|
1293
1293
|
"message": "Points to another `hreflang` location ({url})"
|
|
1294
1294
|
},
|
|
1295
|
-
"
|
|
1295
|
+
"core/audits/seo/canonical.js | explanationRelative": {
|
|
1296
1296
|
"message": "Is not an absolute URL ({url})"
|
|
1297
1297
|
},
|
|
1298
|
-
"
|
|
1298
|
+
"core/audits/seo/canonical.js | explanationRoot": {
|
|
1299
1299
|
"message": "Points to the domain's root URL (the home page), instead of an equivalent page of content"
|
|
1300
1300
|
},
|
|
1301
|
-
"
|
|
1301
|
+
"core/audits/seo/canonical.js | failureTitle": {
|
|
1302
1302
|
"message": "Document does not have a valid `rel=canonical`"
|
|
1303
1303
|
},
|
|
1304
|
-
"
|
|
1304
|
+
"core/audits/seo/canonical.js | title": {
|
|
1305
1305
|
"message": "Document has a valid `rel=canonical`"
|
|
1306
1306
|
},
|
|
1307
|
-
"
|
|
1307
|
+
"core/audits/seo/crawlable-anchors.js | columnFailingLink": {
|
|
1308
1308
|
"message": "Uncrawlable link"
|
|
1309
1309
|
},
|
|
1310
|
-
"
|
|
1310
|
+
"core/audits/seo/crawlable-anchors.js | description": {
|
|
1311
1311
|
"message": "Search engines may use `href` attributes on links to crawl websites. Ensure that the `href` attribute of anchor elements links to an appropriate destination, so that more pages of the site can be discovered. [Learn more](https://support.google.com/webmasters/answer/9112205)"
|
|
1312
1312
|
},
|
|
1313
|
-
"
|
|
1313
|
+
"core/audits/seo/crawlable-anchors.js | failureTitle": {
|
|
1314
1314
|
"message": "Links are not crawlable"
|
|
1315
1315
|
},
|
|
1316
|
-
"
|
|
1316
|
+
"core/audits/seo/crawlable-anchors.js | title": {
|
|
1317
1317
|
"message": "Links are crawlable"
|
|
1318
1318
|
},
|
|
1319
|
-
"
|
|
1319
|
+
"core/audits/seo/font-size.js | additionalIllegibleText": {
|
|
1320
1320
|
"message": "Add'l illegible text"
|
|
1321
1321
|
},
|
|
1322
|
-
"
|
|
1322
|
+
"core/audits/seo/font-size.js | columnFontSize": {
|
|
1323
1323
|
"message": "Font size"
|
|
1324
1324
|
},
|
|
1325
|
-
"
|
|
1325
|
+
"core/audits/seo/font-size.js | columnPercentPageText": {
|
|
1326
1326
|
"message": "% of page text"
|
|
1327
1327
|
},
|
|
1328
|
-
"
|
|
1328
|
+
"core/audits/seo/font-size.js | columnSelector": {
|
|
1329
1329
|
"message": "Selector"
|
|
1330
1330
|
},
|
|
1331
|
-
"
|
|
1331
|
+
"core/audits/seo/font-size.js | description": {
|
|
1332
1332
|
"message": "Font sizes less than 12px are too small to be legible and require mobile visitors to 'pinch to zoom' in order to read. Strive to have >60% of page text ≥12px. [Learn more](https://web.dev/font-size/)."
|
|
1333
1333
|
},
|
|
1334
|
-
"
|
|
1334
|
+
"core/audits/seo/font-size.js | displayValue": {
|
|
1335
1335
|
"message": "{decimalProportion, number, extendedPercent} legible text"
|
|
1336
1336
|
},
|
|
1337
|
-
"
|
|
1337
|
+
"core/audits/seo/font-size.js | explanationViewport": {
|
|
1338
1338
|
"message": "Text is illegible because there's no viewport meta tag optimised for mobile screens."
|
|
1339
1339
|
},
|
|
1340
|
-
"
|
|
1340
|
+
"core/audits/seo/font-size.js | failureTitle": {
|
|
1341
1341
|
"message": "Document doesn't use legible font sizes"
|
|
1342
1342
|
},
|
|
1343
|
-
"
|
|
1343
|
+
"core/audits/seo/font-size.js | legibleText": {
|
|
1344
1344
|
"message": "Legible text"
|
|
1345
1345
|
},
|
|
1346
|
-
"
|
|
1346
|
+
"core/audits/seo/font-size.js | title": {
|
|
1347
1347
|
"message": "Document uses legible font sizes"
|
|
1348
1348
|
},
|
|
1349
|
-
"
|
|
1349
|
+
"core/audits/seo/hreflang.js | description": {
|
|
1350
1350
|
"message": "hreflang links tell search engines what version of a page they should list in search results for a given language or region. [Learn more](https://web.dev/hreflang/)."
|
|
1351
1351
|
},
|
|
1352
|
-
"
|
|
1352
|
+
"core/audits/seo/hreflang.js | failureTitle": {
|
|
1353
1353
|
"message": "Document doesn't have a valid `hreflang`"
|
|
1354
1354
|
},
|
|
1355
|
-
"
|
|
1355
|
+
"core/audits/seo/hreflang.js | notFullyQualified": {
|
|
1356
1356
|
"message": "Relative href value"
|
|
1357
1357
|
},
|
|
1358
|
-
"
|
|
1358
|
+
"core/audits/seo/hreflang.js | title": {
|
|
1359
1359
|
"message": "Document has a valid `hreflang`"
|
|
1360
1360
|
},
|
|
1361
|
-
"
|
|
1361
|
+
"core/audits/seo/hreflang.js | unexpectedLanguage": {
|
|
1362
1362
|
"message": "Unexpected language code"
|
|
1363
1363
|
},
|
|
1364
|
-
"
|
|
1364
|
+
"core/audits/seo/http-status-code.js | description": {
|
|
1365
1365
|
"message": "Pages with unsuccessful HTTP status codes may not be indexed properly. [Learn more](https://web.dev/http-status-code/)."
|
|
1366
1366
|
},
|
|
1367
|
-
"
|
|
1367
|
+
"core/audits/seo/http-status-code.js | failureTitle": {
|
|
1368
1368
|
"message": "Page has unsuccessful HTTP status code"
|
|
1369
1369
|
},
|
|
1370
|
-
"
|
|
1370
|
+
"core/audits/seo/http-status-code.js | title": {
|
|
1371
1371
|
"message": "Page has successful HTTP status code"
|
|
1372
1372
|
},
|
|
1373
|
-
"
|
|
1373
|
+
"core/audits/seo/is-crawlable.js | description": {
|
|
1374
1374
|
"message": "Search engines are unable to include your pages in search results if they don't have permission to crawl them. [Learn more](https://web.dev/is-crawable/)."
|
|
1375
1375
|
},
|
|
1376
|
-
"
|
|
1376
|
+
"core/audits/seo/is-crawlable.js | failureTitle": {
|
|
1377
1377
|
"message": "Page is blocked from indexing"
|
|
1378
1378
|
},
|
|
1379
|
-
"
|
|
1379
|
+
"core/audits/seo/is-crawlable.js | title": {
|
|
1380
1380
|
"message": "Page isn’t blocked from indexing"
|
|
1381
1381
|
},
|
|
1382
|
-
"
|
|
1382
|
+
"core/audits/seo/link-text.js | description": {
|
|
1383
1383
|
"message": "Descriptive link text helps search engines understand your content. [Learn more](https://web.dev/link-text/)."
|
|
1384
1384
|
},
|
|
1385
|
-
"
|
|
1385
|
+
"core/audits/seo/link-text.js | displayValue": {
|
|
1386
1386
|
"message": "{itemCount,plural, =1{1 link found}other{# links found}}"
|
|
1387
1387
|
},
|
|
1388
|
-
"
|
|
1388
|
+
"core/audits/seo/link-text.js | failureTitle": {
|
|
1389
1389
|
"message": "Links do not have descriptive text"
|
|
1390
1390
|
},
|
|
1391
|
-
"
|
|
1391
|
+
"core/audits/seo/link-text.js | title": {
|
|
1392
1392
|
"message": "Links have descriptive text"
|
|
1393
1393
|
},
|
|
1394
|
-
"
|
|
1394
|
+
"core/audits/seo/manual/structured-data.js | description": {
|
|
1395
1395
|
"message": "Run the [Structured Data Testing Tool](https://search.google.com/structured-data/testing-tool/) and the [Structured Data Linter](http://linter.structured-data.org/) to validate structured data. [Learn more](https://web.dev/structured-data/)."
|
|
1396
1396
|
},
|
|
1397
|
-
"
|
|
1397
|
+
"core/audits/seo/manual/structured-data.js | title": {
|
|
1398
1398
|
"message": "Structured data is valid"
|
|
1399
1399
|
},
|
|
1400
|
-
"
|
|
1400
|
+
"core/audits/seo/meta-description.js | description": {
|
|
1401
1401
|
"message": "Meta descriptions may be included in search results to concisely summarise page content. [Learn more](https://web.dev/meta-description/)."
|
|
1402
1402
|
},
|
|
1403
|
-
"
|
|
1403
|
+
"core/audits/seo/meta-description.js | explanation": {
|
|
1404
1404
|
"message": "Description text is empty."
|
|
1405
1405
|
},
|
|
1406
|
-
"
|
|
1406
|
+
"core/audits/seo/meta-description.js | failureTitle": {
|
|
1407
1407
|
"message": "Document does not have a meta description"
|
|
1408
1408
|
},
|
|
1409
|
-
"
|
|
1409
|
+
"core/audits/seo/meta-description.js | title": {
|
|
1410
1410
|
"message": "Document has a meta description"
|
|
1411
1411
|
},
|
|
1412
|
-
"
|
|
1412
|
+
"core/audits/seo/plugins.js | description": {
|
|
1413
1413
|
"message": "Search engines can't index plug-in content, and many devices restrict plug-ins or don't support them. [Learn more](https://web.dev/plugins/)."
|
|
1414
1414
|
},
|
|
1415
|
-
"
|
|
1415
|
+
"core/audits/seo/plugins.js | failureTitle": {
|
|
1416
1416
|
"message": "Document uses plugins"
|
|
1417
1417
|
},
|
|
1418
|
-
"
|
|
1418
|
+
"core/audits/seo/plugins.js | title": {
|
|
1419
1419
|
"message": "Document avoids plugins"
|
|
1420
1420
|
},
|
|
1421
|
-
"
|
|
1421
|
+
"core/audits/seo/robots-txt.js | description": {
|
|
1422
1422
|
"message": "If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. [Learn more](https://web.dev/robots-txt/)."
|
|
1423
1423
|
},
|
|
1424
|
-
"
|
|
1424
|
+
"core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
|
|
1425
1425
|
"message": "Request for robots.txt returned HTTP status: {statusCode}"
|
|
1426
1426
|
},
|
|
1427
|
-
"
|
|
1427
|
+
"core/audits/seo/robots-txt.js | displayValueValidationError": {
|
|
1428
1428
|
"message": "{itemCount,plural, =1{1 error found}other{# errors found}}"
|
|
1429
1429
|
},
|
|
1430
|
-
"
|
|
1430
|
+
"core/audits/seo/robots-txt.js | explanation": {
|
|
1431
1431
|
"message": "Lighthouse was unable to download a robots.txt file"
|
|
1432
1432
|
},
|
|
1433
|
-
"
|
|
1433
|
+
"core/audits/seo/robots-txt.js | failureTitle": {
|
|
1434
1434
|
"message": "robots.txt is not valid"
|
|
1435
1435
|
},
|
|
1436
|
-
"
|
|
1436
|
+
"core/audits/seo/robots-txt.js | title": {
|
|
1437
1437
|
"message": "robots.txt is valid"
|
|
1438
1438
|
},
|
|
1439
|
-
"
|
|
1439
|
+
"core/audits/seo/tap-targets.js | description": {
|
|
1440
1440
|
"message": "Interactive elements such as buttons and links should be large enough (48 x 48px) and have enough space around them to be easy enough to tap without overlapping onto other elements. [Learn more](https://web.dev/tap-targets/)."
|
|
1441
1441
|
},
|
|
1442
|
-
"
|
|
1442
|
+
"core/audits/seo/tap-targets.js | displayValue": {
|
|
1443
1443
|
"message": "{decimalProportion, number, percent} appropriately sized tap targets"
|
|
1444
1444
|
},
|
|
1445
|
-
"
|
|
1445
|
+
"core/audits/seo/tap-targets.js | explanationViewportMetaNotOptimized": {
|
|
1446
1446
|
"message": "Tap targets are too small because there's no viewport meta tag optimised for mobile screens"
|
|
1447
1447
|
},
|
|
1448
|
-
"
|
|
1448
|
+
"core/audits/seo/tap-targets.js | failureTitle": {
|
|
1449
1449
|
"message": "Tap targets are not sized appropriately"
|
|
1450
1450
|
},
|
|
1451
|
-
"
|
|
1451
|
+
"core/audits/seo/tap-targets.js | overlappingTargetHeader": {
|
|
1452
1452
|
"message": "Overlapping target"
|
|
1453
1453
|
},
|
|
1454
|
-
"
|
|
1454
|
+
"core/audits/seo/tap-targets.js | tapTargetHeader": {
|
|
1455
1455
|
"message": "Tap target"
|
|
1456
1456
|
},
|
|
1457
|
-
"
|
|
1457
|
+
"core/audits/seo/tap-targets.js | title": {
|
|
1458
1458
|
"message": "Tap targets are sized appropriately"
|
|
1459
1459
|
},
|
|
1460
|
-
"
|
|
1460
|
+
"core/audits/server-response-time.js | description": {
|
|
1461
1461
|
"message": "Keep the server response time for the main document short because all other requests depend on it. [Learn more](https://web.dev/time-to-first-byte/)."
|
|
1462
1462
|
},
|
|
1463
|
-
"
|
|
1463
|
+
"core/audits/server-response-time.js | displayValue": {
|
|
1464
1464
|
"message": "Root document took {timeInMs, number, milliseconds} ms"
|
|
1465
1465
|
},
|
|
1466
|
-
"
|
|
1466
|
+
"core/audits/server-response-time.js | failureTitle": {
|
|
1467
1467
|
"message": "Reduce initial server response time"
|
|
1468
1468
|
},
|
|
1469
|
-
"
|
|
1469
|
+
"core/audits/server-response-time.js | title": {
|
|
1470
1470
|
"message": "Initial server response time was short"
|
|
1471
1471
|
},
|
|
1472
|
-
"
|
|
1472
|
+
"core/audits/service-worker.js | description": {
|
|
1473
1473
|
"message": "The service worker is the technology that enables your app to use many progressive web app features, such as offline, add to home screen and push notifications. [Learn more](https://web.dev/service-worker/)."
|
|
1474
1474
|
},
|
|
1475
|
-
"
|
|
1475
|
+
"core/audits/service-worker.js | explanationBadManifest": {
|
|
1476
1476
|
"message": "This page is controlled by a service worker, however no `start_url` was found because manifest failed to parse as valid JSON"
|
|
1477
1477
|
},
|
|
1478
|
-
"
|
|
1478
|
+
"core/audits/service-worker.js | explanationBadStartUrl": {
|
|
1479
1479
|
"message": "This page is controlled by a service worker, however the `start_url` ({startUrl}) is not in the service worker's scope ({scopeUrl})"
|
|
1480
1480
|
},
|
|
1481
|
-
"
|
|
1481
|
+
"core/audits/service-worker.js | explanationNoManifest": {
|
|
1482
1482
|
"message": "This page is controlled by a service worker, however no `start_url` was found because no manifest was fetched."
|
|
1483
1483
|
},
|
|
1484
|
-
"
|
|
1484
|
+
"core/audits/service-worker.js | explanationOutOfScope": {
|
|
1485
1485
|
"message": "This origin has one or more service workers, however the page ({pageUrl}) is not in scope."
|
|
1486
1486
|
},
|
|
1487
|
-
"
|
|
1487
|
+
"core/audits/service-worker.js | failureTitle": {
|
|
1488
1488
|
"message": "Does not register a service worker that controls page and `start_url`"
|
|
1489
1489
|
},
|
|
1490
|
-
"
|
|
1490
|
+
"core/audits/service-worker.js | title": {
|
|
1491
1491
|
"message": "Registers a service worker that controls page and `start_url`"
|
|
1492
1492
|
},
|
|
1493
|
-
"
|
|
1493
|
+
"core/audits/splash-screen.js | description": {
|
|
1494
1494
|
"message": "A themed splash screen ensures a high-quality experience when users launch your app from their home screens. [Learn more](https://web.dev/splash-screen/)."
|
|
1495
1495
|
},
|
|
1496
|
-
"
|
|
1496
|
+
"core/audits/splash-screen.js | failureTitle": {
|
|
1497
1497
|
"message": "Is not configured for a custom splash screen"
|
|
1498
1498
|
},
|
|
1499
|
-
"
|
|
1499
|
+
"core/audits/splash-screen.js | title": {
|
|
1500
1500
|
"message": "Configured for a custom splash screen"
|
|
1501
1501
|
},
|
|
1502
|
-
"
|
|
1502
|
+
"core/audits/themed-omnibox.js | description": {
|
|
1503
1503
|
"message": "The browser address bar can be themed to match your site. [Learn more](https://web.dev/themed-omnibox/)."
|
|
1504
1504
|
},
|
|
1505
|
-
"
|
|
1505
|
+
"core/audits/themed-omnibox.js | failureTitle": {
|
|
1506
1506
|
"message": "Does not set a theme colour for the address bar."
|
|
1507
1507
|
},
|
|
1508
|
-
"
|
|
1508
|
+
"core/audits/themed-omnibox.js | title": {
|
|
1509
1509
|
"message": "Sets a theme colour for the address bar."
|
|
1510
1510
|
},
|
|
1511
|
-
"
|
|
1511
|
+
"core/audits/third-party-facades.js | categoryCustomerSuccess": {
|
|
1512
1512
|
"message": "{productName} (Customer success)"
|
|
1513
1513
|
},
|
|
1514
|
-
"
|
|
1514
|
+
"core/audits/third-party-facades.js | categoryMarketing": {
|
|
1515
1515
|
"message": "{productName} (Marketing)"
|
|
1516
1516
|
},
|
|
1517
|
-
"
|
|
1517
|
+
"core/audits/third-party-facades.js | categorySocial": {
|
|
1518
1518
|
"message": "{productName} (Social)"
|
|
1519
1519
|
},
|
|
1520
|
-
"
|
|
1520
|
+
"core/audits/third-party-facades.js | categoryVideo": {
|
|
1521
1521
|
"message": "{productName} (Video)"
|
|
1522
1522
|
},
|
|
1523
|
-
"
|
|
1523
|
+
"core/audits/third-party-facades.js | columnProduct": {
|
|
1524
1524
|
"message": "Product"
|
|
1525
1525
|
},
|
|
1526
|
-
"
|
|
1526
|
+
"core/audits/third-party-facades.js | description": {
|
|
1527
1527
|
"message": "Some third-party embeds can be lazy loaded. Consider replacing them with a facade until they are required. [Learn more](https://web.dev/third-party-facades/)."
|
|
1528
1528
|
},
|
|
1529
|
-
"
|
|
1529
|
+
"core/audits/third-party-facades.js | displayValue": {
|
|
1530
1530
|
"message": "{itemCount,plural, =1{# facade alternative available}other{# facade alternatives available}}"
|
|
1531
1531
|
},
|
|
1532
|
-
"
|
|
1532
|
+
"core/audits/third-party-facades.js | failureTitle": {
|
|
1533
1533
|
"message": "Some third-party resources can be lazy loaded with a facade"
|
|
1534
1534
|
},
|
|
1535
|
-
"
|
|
1535
|
+
"core/audits/third-party-facades.js | title": {
|
|
1536
1536
|
"message": "Lazy load third-party resources with facades"
|
|
1537
1537
|
},
|
|
1538
|
-
"
|
|
1538
|
+
"core/audits/third-party-summary.js | columnThirdParty": {
|
|
1539
1539
|
"message": "Third-party"
|
|
1540
1540
|
},
|
|
1541
|
-
"
|
|
1541
|
+
"core/audits/third-party-summary.js | description": {
|
|
1542
1542
|
"message": "Third-party code can significantly impact load performance. Limit the number of redundant third-party providers and try to load third-party code after your page has primarily finished loading. [Learn more](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)."
|
|
1543
1543
|
},
|
|
1544
|
-
"
|
|
1544
|
+
"core/audits/third-party-summary.js | displayValue": {
|
|
1545
1545
|
"message": "Third-party code blocked the main thread for {timeInMs, number, milliseconds} ms"
|
|
1546
1546
|
},
|
|
1547
|
-
"
|
|
1547
|
+
"core/audits/third-party-summary.js | failureTitle": {
|
|
1548
1548
|
"message": "Reduce the impact of third-party code"
|
|
1549
1549
|
},
|
|
1550
|
-
"
|
|
1550
|
+
"core/audits/third-party-summary.js | title": {
|
|
1551
1551
|
"message": "Minimise third-party usage"
|
|
1552
1552
|
},
|
|
1553
|
-
"
|
|
1553
|
+
"core/audits/timing-budget.js | columnMeasurement": {
|
|
1554
1554
|
"message": "Measurement"
|
|
1555
1555
|
},
|
|
1556
|
-
"
|
|
1556
|
+
"core/audits/timing-budget.js | columnTimingMetric": {
|
|
1557
1557
|
"message": "Metric"
|
|
1558
1558
|
},
|
|
1559
|
-
"
|
|
1559
|
+
"core/audits/timing-budget.js | description": {
|
|
1560
1560
|
"message": "Set a timing budget to help you keep an eye on the performance of your site. Performant sites load fast and respond to user input events quickly. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
|
|
1561
1561
|
},
|
|
1562
|
-
"
|
|
1562
|
+
"core/audits/timing-budget.js | title": {
|
|
1563
1563
|
"message": "Timing budget"
|
|
1564
1564
|
},
|
|
1565
|
-
"
|
|
1565
|
+
"core/audits/unsized-images.js | description": {
|
|
1566
1566
|
"message": "Set an explicit width and height on image elements to reduce layout shifts and improve CLS. [Learn more](https://web.dev/optimize-cls/#images-without-dimensions)"
|
|
1567
1567
|
},
|
|
1568
|
-
"
|
|
1568
|
+
"core/audits/unsized-images.js | failureTitle": {
|
|
1569
1569
|
"message": "Image elements do not have explicit `width` and `height`"
|
|
1570
1570
|
},
|
|
1571
|
-
"
|
|
1571
|
+
"core/audits/unsized-images.js | title": {
|
|
1572
1572
|
"message": "Image elements have explicit `width` and `height`"
|
|
1573
1573
|
},
|
|
1574
|
-
"
|
|
1574
|
+
"core/audits/user-timings.js | columnType": {
|
|
1575
1575
|
"message": "Type"
|
|
1576
1576
|
},
|
|
1577
|
-
"
|
|
1577
|
+
"core/audits/user-timings.js | description": {
|
|
1578
1578
|
"message": "Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. [Learn more](https://web.dev/user-timings/)."
|
|
1579
1579
|
},
|
|
1580
|
-
"
|
|
1580
|
+
"core/audits/user-timings.js | displayValue": {
|
|
1581
1581
|
"message": "{itemCount,plural, =1{1 user timing}other{# user timings}}"
|
|
1582
1582
|
},
|
|
1583
|
-
"
|
|
1583
|
+
"core/audits/user-timings.js | title": {
|
|
1584
1584
|
"message": "User Timing marks and measures"
|
|
1585
1585
|
},
|
|
1586
|
-
"
|
|
1586
|
+
"core/audits/uses-rel-preconnect.js | crossoriginWarning": {
|
|
1587
1587
|
"message": "A `<link rel=preconnect>` was found for '{securityOrigin}' but was not used by the browser. Check that you are using the `crossorigin` attribute properly."
|
|
1588
1588
|
},
|
|
1589
|
-
"
|
|
1589
|
+
"core/audits/uses-rel-preconnect.js | description": {
|
|
1590
1590
|
"message": "Consider adding `preconnect` or `dns-prefetch` resource hints to establish early connections to important third-party origins. [Learn more](https://web.dev/uses-rel-preconnect/)."
|
|
1591
1591
|
},
|
|
1592
|
-
"
|
|
1592
|
+
"core/audits/uses-rel-preconnect.js | title": {
|
|
1593
1593
|
"message": "Pre-connect to required origins"
|
|
1594
1594
|
},
|
|
1595
|
-
"
|
|
1595
|
+
"core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
|
|
1596
1596
|
"message": "More than two `<link rel=preconnect>` connections were found. These should be used sparingly and only to the most important origins."
|
|
1597
1597
|
},
|
|
1598
|
-
"
|
|
1598
|
+
"core/audits/uses-rel-preconnect.js | unusedWarning": {
|
|
1599
1599
|
"message": "A `<link rel=preconnect>` was found for '{securityOrigin}' but was not used by the browser. Only use `preconnect` for important origins that the page will certainly request."
|
|
1600
1600
|
},
|
|
1601
|
-
"
|
|
1601
|
+
"core/audits/uses-rel-preload.js | crossoriginWarning": {
|
|
1602
1602
|
"message": "A preload `<link>` was found for '{preloadURL}' but was not used by the browser. Check that you are using the `crossorigin` attribute properly."
|
|
1603
1603
|
},
|
|
1604
|
-
"
|
|
1604
|
+
"core/audits/uses-rel-preload.js | description": {
|
|
1605
1605
|
"message": "Consider using `<link rel=preload>` to prioritise fetching resources that are currently requested later in page load. [Learn more](https://web.dev/uses-rel-preload/)."
|
|
1606
1606
|
},
|
|
1607
|
-
"
|
|
1607
|
+
"core/audits/uses-rel-preload.js | title": {
|
|
1608
1608
|
"message": "Pre-load key requests"
|
|
1609
1609
|
},
|
|
1610
|
-
"
|
|
1610
|
+
"core/audits/valid-source-maps.js | columnMapURL": {
|
|
1611
1611
|
"message": "Map URL"
|
|
1612
1612
|
},
|
|
1613
|
-
"
|
|
1613
|
+
"core/audits/valid-source-maps.js | description": {
|
|
1614
1614
|
"message": "Source maps translate minified code to the original source code. This helps developers to debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. [Learn more](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps)."
|
|
1615
1615
|
},
|
|
1616
|
-
"
|
|
1616
|
+
"core/audits/valid-source-maps.js | failureTitle": {
|
|
1617
1617
|
"message": "Missing source maps for large first-party JavaScript"
|
|
1618
1618
|
},
|
|
1619
|
-
"
|
|
1619
|
+
"core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
|
|
1620
1620
|
"message": "Large JavaScript file is missing a source map"
|
|
1621
1621
|
},
|
|
1622
|
-
"
|
|
1622
|
+
"core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
|
|
1623
1623
|
"message": "{missingItems,plural, =1{Warning: missing 1 item in `.sourcesContent`}other{Warning: missing # items in `.sourcesContent`}}"
|
|
1624
1624
|
},
|
|
1625
|
-
"
|
|
1625
|
+
"core/audits/valid-source-maps.js | title": {
|
|
1626
1626
|
"message": "Page has valid source maps"
|
|
1627
1627
|
},
|
|
1628
|
-
"
|
|
1628
|
+
"core/audits/viewport.js | description": {
|
|
1629
1629
|
"message": "A `<meta name=\"viewport\">` not only optimises your app for mobile screen sizes, but also prevents [a 300 millisecond delay to user input](https://developers.google.com/web/updates/2013/12/300ms-tap-delay-gone-away). [Learn more](https://web.dev/viewport/)."
|
|
1630
1630
|
},
|
|
1631
|
-
"
|
|
1631
|
+
"core/audits/viewport.js | explanationNoTag": {
|
|
1632
1632
|
"message": "No `<meta name=\"viewport\">` tag found"
|
|
1633
1633
|
},
|
|
1634
|
-
"
|
|
1634
|
+
"core/audits/viewport.js | failureTitle": {
|
|
1635
1635
|
"message": "Does not have a `<meta name=\"viewport\">` tag with `width` or `initial-scale`"
|
|
1636
1636
|
},
|
|
1637
|
-
"
|
|
1637
|
+
"core/audits/viewport.js | title": {
|
|
1638
1638
|
"message": "Has a `<meta name=\"viewport\">` tag with `width` or `initial-scale`"
|
|
1639
1639
|
},
|
|
1640
|
-
"
|
|
1640
|
+
"core/config/default-config.js | a11yAriaGroupDescription": {
|
|
1641
1641
|
"message": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, such as a screen reader."
|
|
1642
1642
|
},
|
|
1643
|
-
"
|
|
1643
|
+
"core/config/default-config.js | a11yAriaGroupTitle": {
|
|
1644
1644
|
"message": "ARIA"
|
|
1645
1645
|
},
|
|
1646
|
-
"
|
|
1646
|
+
"core/config/default-config.js | a11yAudioVideoGroupDescription": {
|
|
1647
1647
|
"message": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments."
|
|
1648
1648
|
},
|
|
1649
|
-
"
|
|
1649
|
+
"core/config/default-config.js | a11yAudioVideoGroupTitle": {
|
|
1650
1650
|
"message": "Audio and video"
|
|
1651
1651
|
},
|
|
1652
|
-
"
|
|
1652
|
+
"core/config/default-config.js | a11yBestPracticesGroupDescription": {
|
|
1653
1653
|
"message": "These items highlight common accessibility best practices."
|
|
1654
1654
|
},
|
|
1655
|
-
"
|
|
1655
|
+
"core/config/default-config.js | a11yBestPracticesGroupTitle": {
|
|
1656
1656
|
"message": "Best practices"
|
|
1657
1657
|
},
|
|
1658
|
-
"
|
|
1658
|
+
"core/config/default-config.js | a11yCategoryDescription": {
|
|
1659
1659
|
"message": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged."
|
|
1660
1660
|
},
|
|
1661
|
-
"
|
|
1661
|
+
"core/config/default-config.js | a11yCategoryManualDescription": {
|
|
1662
1662
|
"message": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review)."
|
|
1663
1663
|
},
|
|
1664
|
-
"
|
|
1664
|
+
"core/config/default-config.js | a11yCategoryTitle": {
|
|
1665
1665
|
"message": "Accessibility"
|
|
1666
1666
|
},
|
|
1667
|
-
"
|
|
1667
|
+
"core/config/default-config.js | a11yColorContrastGroupDescription": {
|
|
1668
1668
|
"message": "These are opportunities to improve the legibility of your content."
|
|
1669
1669
|
},
|
|
1670
|
-
"
|
|
1670
|
+
"core/config/default-config.js | a11yColorContrastGroupTitle": {
|
|
1671
1671
|
"message": "Contrast"
|
|
1672
1672
|
},
|
|
1673
|
-
"
|
|
1673
|
+
"core/config/default-config.js | a11yLanguageGroupDescription": {
|
|
1674
1674
|
"message": "These are opportunities to improve the interpretation of your content by users in different locales."
|
|
1675
1675
|
},
|
|
1676
|
-
"
|
|
1676
|
+
"core/config/default-config.js | a11yLanguageGroupTitle": {
|
|
1677
1677
|
"message": "Internationalisation and localisation"
|
|
1678
1678
|
},
|
|
1679
|
-
"
|
|
1679
|
+
"core/config/default-config.js | a11yNamesLabelsGroupDescription": {
|
|
1680
1680
|
"message": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, such as a screen reader."
|
|
1681
1681
|
},
|
|
1682
|
-
"
|
|
1682
|
+
"core/config/default-config.js | a11yNamesLabelsGroupTitle": {
|
|
1683
1683
|
"message": "Names and labels"
|
|
1684
1684
|
},
|
|
1685
|
-
"
|
|
1685
|
+
"core/config/default-config.js | a11yNavigationGroupDescription": {
|
|
1686
1686
|
"message": "These are opportunities to improve keyboard navigation in your application."
|
|
1687
1687
|
},
|
|
1688
|
-
"
|
|
1688
|
+
"core/config/default-config.js | a11yNavigationGroupTitle": {
|
|
1689
1689
|
"message": "Navigation"
|
|
1690
1690
|
},
|
|
1691
|
-
"
|
|
1691
|
+
"core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
|
|
1692
1692
|
"message": "These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader."
|
|
1693
1693
|
},
|
|
1694
|
-
"
|
|
1694
|
+
"core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
|
|
1695
1695
|
"message": "Tables and lists"
|
|
1696
1696
|
},
|
|
1697
|
-
"
|
|
1697
|
+
"core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
|
|
1698
1698
|
"message": "Browser compatibility"
|
|
1699
1699
|
},
|
|
1700
|
-
"
|
|
1700
|
+
"core/config/default-config.js | bestPracticesCategoryTitle": {
|
|
1701
1701
|
"message": "Best Practices"
|
|
1702
1702
|
},
|
|
1703
|
-
"
|
|
1703
|
+
"core/config/default-config.js | bestPracticesGeneralGroupTitle": {
|
|
1704
1704
|
"message": "General"
|
|
1705
1705
|
},
|
|
1706
|
-
"
|
|
1706
|
+
"core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
|
|
1707
1707
|
"message": "Trust and safety"
|
|
1708
1708
|
},
|
|
1709
|
-
"
|
|
1709
|
+
"core/config/default-config.js | bestPracticesUXGroupTitle": {
|
|
1710
1710
|
"message": "User experience"
|
|
1711
1711
|
},
|
|
1712
|
-
"
|
|
1712
|
+
"core/config/default-config.js | budgetsGroupDescription": {
|
|
1713
1713
|
"message": "Performance budgets set standards for the performance of your site."
|
|
1714
1714
|
},
|
|
1715
|
-
"
|
|
1715
|
+
"core/config/default-config.js | budgetsGroupTitle": {
|
|
1716
1716
|
"message": "Budgets"
|
|
1717
1717
|
},
|
|
1718
|
-
"
|
|
1718
|
+
"core/config/default-config.js | diagnosticsGroupDescription": {
|
|
1719
1719
|
"message": "More information about the performance of your application. These numbers don't [directly affect](https://web.dev/performance-scoring/) the performance score."
|
|
1720
1720
|
},
|
|
1721
|
-
"
|
|
1721
|
+
"core/config/default-config.js | diagnosticsGroupTitle": {
|
|
1722
1722
|
"message": "Diagnostics"
|
|
1723
1723
|
},
|
|
1724
|
-
"
|
|
1724
|
+
"core/config/default-config.js | firstPaintImprovementsGroupDescription": {
|
|
1725
1725
|
"message": "The most critical aspect of performance is how quickly pixels are rendered onscreen. Key metrics: First Contentful Paint, First Meaningful Paint"
|
|
1726
1726
|
},
|
|
1727
|
-
"
|
|
1727
|
+
"core/config/default-config.js | firstPaintImprovementsGroupTitle": {
|
|
1728
1728
|
"message": "First Paint Improvements"
|
|
1729
1729
|
},
|
|
1730
|
-
"
|
|
1730
|
+
"core/config/default-config.js | loadOpportunitiesGroupDescription": {
|
|
1731
1731
|
"message": "These suggestions can help your page load faster. They don't [directly affect](https://web.dev/performance-scoring/) the performance score."
|
|
1732
1732
|
},
|
|
1733
|
-
"
|
|
1733
|
+
"core/config/default-config.js | loadOpportunitiesGroupTitle": {
|
|
1734
1734
|
"message": "Opportunities"
|
|
1735
1735
|
},
|
|
1736
|
-
"
|
|
1736
|
+
"core/config/default-config.js | metricGroupTitle": {
|
|
1737
1737
|
"message": "Metrics"
|
|
1738
1738
|
},
|
|
1739
|
-
"
|
|
1739
|
+
"core/config/default-config.js | overallImprovementsGroupDescription": {
|
|
1740
1740
|
"message": "Enhance the overall loading experience, so the page is responsive and ready to use as soon as possible. Key metrics: Time to Interactive, Speed Index"
|
|
1741
1741
|
},
|
|
1742
|
-
"
|
|
1742
|
+
"core/config/default-config.js | overallImprovementsGroupTitle": {
|
|
1743
1743
|
"message": "Overall Improvements"
|
|
1744
1744
|
},
|
|
1745
|
-
"
|
|
1745
|
+
"core/config/default-config.js | performanceCategoryTitle": {
|
|
1746
1746
|
"message": "Performance"
|
|
1747
1747
|
},
|
|
1748
|
-
"
|
|
1748
|
+
"core/config/default-config.js | pwaCategoryDescription": {
|
|
1749
1749
|
"message": "These checks validate the aspects of a progressive web app. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist)."
|
|
1750
1750
|
},
|
|
1751
|
-
"
|
|
1751
|
+
"core/config/default-config.js | pwaCategoryManualDescription": {
|
|
1752
1752
|
"message": "These checks are required by the baseline [PWA checklist](https://developers.google.com/web/progressive-web-apps/checklist) but are not automatically checked by Lighthouse. They do not affect your score but it's important that you verify them manually."
|
|
1753
1753
|
},
|
|
1754
|
-
"
|
|
1754
|
+
"core/config/default-config.js | pwaCategoryTitle": {
|
|
1755
1755
|
"message": "PWA"
|
|
1756
1756
|
},
|
|
1757
|
-
"
|
|
1757
|
+
"core/config/default-config.js | pwaInstallableGroupTitle": {
|
|
1758
1758
|
"message": "Installable"
|
|
1759
1759
|
},
|
|
1760
|
-
"
|
|
1760
|
+
"core/config/default-config.js | pwaOptimizedGroupTitle": {
|
|
1761
1761
|
"message": "PWA Optimised"
|
|
1762
1762
|
},
|
|
1763
|
-
"
|
|
1763
|
+
"core/config/default-config.js | seoCategoryDescription": {
|
|
1764
1764
|
"message": "These checks ensure that your page is following basic search engine optimisation advice. There are many additional factors that Lighthouse does not score here that may affect your search ranking, including performance on [Core Web Vitals](https://web.dev/learn-web-vitals/). [Learn more](https://support.google.com/webmasters/answer/35769)."
|
|
1765
1765
|
},
|
|
1766
|
-
"
|
|
1766
|
+
"core/config/default-config.js | seoCategoryManualDescription": {
|
|
1767
1767
|
"message": "Run these additional validators on your site to check additional SEO best practices."
|
|
1768
1768
|
},
|
|
1769
|
-
"
|
|
1769
|
+
"core/config/default-config.js | seoCategoryTitle": {
|
|
1770
1770
|
"message": "SEO"
|
|
1771
1771
|
},
|
|
1772
|
-
"
|
|
1772
|
+
"core/config/default-config.js | seoContentGroupDescription": {
|
|
1773
1773
|
"message": "Format your HTML in a way that enables crawlers to better understand your app’s content."
|
|
1774
1774
|
},
|
|
1775
|
-
"
|
|
1775
|
+
"core/config/default-config.js | seoContentGroupTitle": {
|
|
1776
1776
|
"message": "Content Best Practices"
|
|
1777
1777
|
},
|
|
1778
|
-
"
|
|
1778
|
+
"core/config/default-config.js | seoCrawlingGroupDescription": {
|
|
1779
1779
|
"message": "To appear in search results, crawlers need access to your app."
|
|
1780
1780
|
},
|
|
1781
|
-
"
|
|
1781
|
+
"core/config/default-config.js | seoCrawlingGroupTitle": {
|
|
1782
1782
|
"message": "Crawling and Indexing"
|
|
1783
1783
|
},
|
|
1784
|
-
"
|
|
1784
|
+
"core/config/default-config.js | seoMobileGroupDescription": {
|
|
1785
1785
|
"message": "Make sure that your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/)."
|
|
1786
1786
|
},
|
|
1787
|
-
"
|
|
1787
|
+
"core/config/default-config.js | seoMobileGroupTitle": {
|
|
1788
1788
|
"message": "Mobile friendly"
|
|
1789
1789
|
},
|
|
1790
|
-
"
|
|
1790
|
+
"core/gather/driver/environment.js | warningSlowHostCpu": {
|
|
1791
1791
|
"message": "The tested device appears to have a slower CPU than Lighthouse expects. This can negatively affect your performance score. Learn more about [calibrating an appropriate CPU slowdown multiplier](https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#cpu-throttling)."
|
|
1792
1792
|
},
|
|
1793
|
-
"
|
|
1793
|
+
"core/gather/driver/navigation.js | warningRedirected": {
|
|
1794
1794
|
"message": "The page may not be loading as expected because your test URL ({requested}) was redirected to {final}. Try testing the second URL directly."
|
|
1795
1795
|
},
|
|
1796
|
-
"
|
|
1796
|
+
"core/gather/driver/navigation.js | warningTimeout": {
|
|
1797
1797
|
"message": "The page loaded too slowly to finish within the time limit. Results may be incomplete."
|
|
1798
1798
|
},
|
|
1799
|
-
"
|
|
1799
|
+
"core/gather/driver/storage.js | warningData": {
|
|
1800
1800
|
"message": "{locationCount,plural, =1{There may be stored data affecting loading performance in this location: {locations}. Audit this page in an incognito window to prevent those resources from affecting your scores.}other{There may be stored data affecting loading performance in these locations: {locations}. Audit this page in an incognito window to prevent those resources from affecting your scores.}}"
|
|
1801
1801
|
},
|
|
1802
|
-
"
|
|
1802
|
+
"core/lib/csp-evaluator.js | allowlistFallback": {
|
|
1803
1803
|
"message": "Consider adding https: and http: URL schemes (ignored by browsers supporting 'strict-dynamic') to be backward compatible with older browsers."
|
|
1804
1804
|
},
|
|
1805
|
-
"
|
|
1805
|
+
"core/lib/csp-evaluator.js | deprecatedDisownOpener": {
|
|
1806
1806
|
"message": "disown-opener is deprecated since CSP3. Please use the Cross-Origin-Opener-Policy header instead."
|
|
1807
1807
|
},
|
|
1808
|
-
"
|
|
1808
|
+
"core/lib/csp-evaluator.js | deprecatedReferrer": {
|
|
1809
1809
|
"message": "referrer is deprecated since CSP2. Please use the Referrer-Policy header instead."
|
|
1810
1810
|
},
|
|
1811
|
-
"
|
|
1811
|
+
"core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
|
|
1812
1812
|
"message": "reflected-xss is deprecated since CSP2. Please use the X-XSS-Protection header instead."
|
|
1813
1813
|
},
|
|
1814
|
-
"
|
|
1814
|
+
"core/lib/csp-evaluator.js | missingBaseUri": {
|
|
1815
1815
|
"message": "Missing base-uri allows injected <base> tags to set the base URL for all relative URLs (e.g. scripts) to an attacker-controlled domain. Consider setting base-uri to 'none' or 'self'."
|
|
1816
1816
|
},
|
|
1817
|
-
"
|
|
1817
|
+
"core/lib/csp-evaluator.js | missingObjectSrc": {
|
|
1818
1818
|
"message": "Missing object-src allows the injection of plug-ins that execute unsafe scripts. Consider setting object-src to 'none' if you can."
|
|
1819
1819
|
},
|
|
1820
|
-
"
|
|
1820
|
+
"core/lib/csp-evaluator.js | missingScriptSrc": {
|
|
1821
1821
|
"message": "script-src directive is missing. This can allow the execution of unsafe scripts."
|
|
1822
1822
|
},
|
|
1823
|
-
"
|
|
1823
|
+
"core/lib/csp-evaluator.js | missingSemicolon": {
|
|
1824
1824
|
"message": "Did you forget the semicolon? {keyword} seems to be a directive, not a keyword."
|
|
1825
1825
|
},
|
|
1826
|
-
"
|
|
1826
|
+
"core/lib/csp-evaluator.js | nonceCharset": {
|
|
1827
1827
|
"message": "Nonces should use the base64 charset."
|
|
1828
1828
|
},
|
|
1829
|
-
"
|
|
1829
|
+
"core/lib/csp-evaluator.js | nonceLength": {
|
|
1830
1830
|
"message": "Nonces should be at least eight characters long."
|
|
1831
1831
|
},
|
|
1832
|
-
"
|
|
1832
|
+
"core/lib/csp-evaluator.js | plainUrlScheme": {
|
|
1833
1833
|
"message": "Avoid using plain URL schemes ({keyword}) in this directive. Plain URL schemes allow scripts to be sourced from an unsafe domain."
|
|
1834
1834
|
},
|
|
1835
|
-
"
|
|
1835
|
+
"core/lib/csp-evaluator.js | plainWildcards": {
|
|
1836
1836
|
"message": "Avoid using plain wildcards ({keyword}) in this directive. Plain wildcards allow scripts to be sourced from an unsafe domain."
|
|
1837
1837
|
},
|
|
1838
|
-
"
|
|
1838
|
+
"core/lib/csp-evaluator.js | reportToOnly": {
|
|
1839
1839
|
"message": "The reporting destination is only configured via the report-to directive. This directive is only supported in Chromium-based browsers so the use of a report-uri directive is also recommended."
|
|
1840
1840
|
},
|
|
1841
|
-
"
|
|
1841
|
+
"core/lib/csp-evaluator.js | reportingDestinationMissing": {
|
|
1842
1842
|
"message": "No CSP configures a reporting destination. This makes it difficult to maintain the CSP over time and monitor for any breakages."
|
|
1843
1843
|
},
|
|
1844
|
-
"
|
|
1844
|
+
"core/lib/csp-evaluator.js | strictDynamic": {
|
|
1845
1845
|
"message": "Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with 'strict-dynamic' if necessary."
|
|
1846
1846
|
},
|
|
1847
|
-
"
|
|
1847
|
+
"core/lib/csp-evaluator.js | unknownDirective": {
|
|
1848
1848
|
"message": "Unknown CSP directive."
|
|
1849
1849
|
},
|
|
1850
|
-
"
|
|
1850
|
+
"core/lib/csp-evaluator.js | unknownKeyword": {
|
|
1851
1851
|
"message": "{keyword} seems to be an invalid keyword."
|
|
1852
1852
|
},
|
|
1853
|
-
"
|
|
1853
|
+
"core/lib/csp-evaluator.js | unsafeInline": {
|
|
1854
1854
|
"message": "'unsafe-inline' allows the execution of unsafe in-page scripts and event handlers. Consider using CSP nonces or hashes to allow scripts individually."
|
|
1855
1855
|
},
|
|
1856
|
-
"
|
|
1856
|
+
"core/lib/csp-evaluator.js | unsafeInlineFallback": {
|
|
1857
1857
|
"message": "Consider adding 'unsafe-inline' (ignored by browsers supporting nonces/hashes) to be backward compatible with older browsers."
|
|
1858
1858
|
},
|
|
1859
|
-
"
|
|
1859
|
+
"core/lib/i18n/i18n.js | columnBlockingTime": {
|
|
1860
1860
|
"message": "Main-thread blocking time"
|
|
1861
1861
|
},
|
|
1862
|
-
"
|
|
1862
|
+
"core/lib/i18n/i18n.js | columnCacheTTL": {
|
|
1863
1863
|
"message": "Cache TTL"
|
|
1864
1864
|
},
|
|
1865
|
-
"
|
|
1865
|
+
"core/lib/i18n/i18n.js | columnDescription": {
|
|
1866
1866
|
"message": "Description"
|
|
1867
1867
|
},
|
|
1868
|
-
"
|
|
1868
|
+
"core/lib/i18n/i18n.js | columnDuration": {
|
|
1869
1869
|
"message": "Duration"
|
|
1870
1870
|
},
|
|
1871
|
-
"
|
|
1871
|
+
"core/lib/i18n/i18n.js | columnElement": {
|
|
1872
1872
|
"message": "Element"
|
|
1873
1873
|
},
|
|
1874
|
-
"
|
|
1874
|
+
"core/lib/i18n/i18n.js | columnFailingElem": {
|
|
1875
1875
|
"message": "Failing elements"
|
|
1876
1876
|
},
|
|
1877
|
-
"
|
|
1877
|
+
"core/lib/i18n/i18n.js | columnLocation": {
|
|
1878
1878
|
"message": "Location"
|
|
1879
1879
|
},
|
|
1880
|
-
"
|
|
1880
|
+
"core/lib/i18n/i18n.js | columnName": {
|
|
1881
1881
|
"message": "Name"
|
|
1882
1882
|
},
|
|
1883
|
-
"
|
|
1883
|
+
"core/lib/i18n/i18n.js | columnOverBudget": {
|
|
1884
1884
|
"message": "Over budget"
|
|
1885
1885
|
},
|
|
1886
|
-
"
|
|
1886
|
+
"core/lib/i18n/i18n.js | columnRequests": {
|
|
1887
1887
|
"message": "Requests"
|
|
1888
1888
|
},
|
|
1889
|
-
"
|
|
1889
|
+
"core/lib/i18n/i18n.js | columnResourceSize": {
|
|
1890
1890
|
"message": "Resource size"
|
|
1891
1891
|
},
|
|
1892
|
-
"
|
|
1892
|
+
"core/lib/i18n/i18n.js | columnResourceType": {
|
|
1893
1893
|
"message": "Resource type"
|
|
1894
1894
|
},
|
|
1895
|
-
"
|
|
1895
|
+
"core/lib/i18n/i18n.js | columnSize": {
|
|
1896
1896
|
"message": "Size"
|
|
1897
1897
|
},
|
|
1898
|
-
"
|
|
1898
|
+
"core/lib/i18n/i18n.js | columnSource": {
|
|
1899
1899
|
"message": "Source"
|
|
1900
1900
|
},
|
|
1901
|
-
"
|
|
1901
|
+
"core/lib/i18n/i18n.js | columnStartTime": {
|
|
1902
1902
|
"message": "Start Time"
|
|
1903
1903
|
},
|
|
1904
|
-
"
|
|
1904
|
+
"core/lib/i18n/i18n.js | columnTimeSpent": {
|
|
1905
1905
|
"message": "Time Spent"
|
|
1906
1906
|
},
|
|
1907
|
-
"
|
|
1907
|
+
"core/lib/i18n/i18n.js | columnTransferSize": {
|
|
1908
1908
|
"message": "Transfer size"
|
|
1909
1909
|
},
|
|
1910
|
-
"
|
|
1910
|
+
"core/lib/i18n/i18n.js | columnURL": {
|
|
1911
1911
|
"message": "URL"
|
|
1912
1912
|
},
|
|
1913
|
-
"
|
|
1913
|
+
"core/lib/i18n/i18n.js | columnWastedBytes": {
|
|
1914
1914
|
"message": "Potential savings"
|
|
1915
1915
|
},
|
|
1916
|
-
"
|
|
1916
|
+
"core/lib/i18n/i18n.js | columnWastedMs": {
|
|
1917
1917
|
"message": "Potential Savings"
|
|
1918
1918
|
},
|
|
1919
|
-
"
|
|
1919
|
+
"core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
|
|
1920
1920
|
"message": "Cumulative Layout Shift"
|
|
1921
1921
|
},
|
|
1922
|
-
"
|
|
1922
|
+
"core/lib/i18n/i18n.js | displayValueByteSavings": {
|
|
1923
1923
|
"message": "Potential savings of {wastedBytes, number, bytes} KiB"
|
|
1924
1924
|
},
|
|
1925
|
-
"
|
|
1925
|
+
"core/lib/i18n/i18n.js | displayValueElementsFound": {
|
|
1926
1926
|
"message": "{nodeCount,plural, =1{1 element found}other{# elements found}}"
|
|
1927
1927
|
},
|
|
1928
|
-
"
|
|
1928
|
+
"core/lib/i18n/i18n.js | displayValueMsSavings": {
|
|
1929
1929
|
"message": "Potential savings of {wastedMs, number, milliseconds} ms"
|
|
1930
1930
|
},
|
|
1931
|
-
"
|
|
1931
|
+
"core/lib/i18n/i18n.js | documentResourceType": {
|
|
1932
1932
|
"message": "Document"
|
|
1933
1933
|
},
|
|
1934
|
-
"
|
|
1934
|
+
"core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
|
|
1935
1935
|
"message": "First Contentful Paint"
|
|
1936
1936
|
},
|
|
1937
|
-
"
|
|
1937
|
+
"core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
|
|
1938
1938
|
"message": "First Meaningful Paint"
|
|
1939
1939
|
},
|
|
1940
|
-
"
|
|
1940
|
+
"core/lib/i18n/i18n.js | fontResourceType": {
|
|
1941
1941
|
"message": "Font"
|
|
1942
1942
|
},
|
|
1943
|
-
"
|
|
1943
|
+
"core/lib/i18n/i18n.js | imageResourceType": {
|
|
1944
1944
|
"message": "Image"
|
|
1945
1945
|
},
|
|
1946
|
-
"
|
|
1946
|
+
"core/lib/i18n/i18n.js | interactiveMetric": {
|
|
1947
1947
|
"message": "Time to Interactive"
|
|
1948
1948
|
},
|
|
1949
|
-
"
|
|
1949
|
+
"core/lib/i18n/i18n.js | itemSeverityHigh": {
|
|
1950
1950
|
"message": "High"
|
|
1951
1951
|
},
|
|
1952
|
-
"
|
|
1952
|
+
"core/lib/i18n/i18n.js | itemSeverityLow": {
|
|
1953
1953
|
"message": "Low"
|
|
1954
1954
|
},
|
|
1955
|
-
"
|
|
1955
|
+
"core/lib/i18n/i18n.js | itemSeverityMedium": {
|
|
1956
1956
|
"message": "Medium"
|
|
1957
1957
|
},
|
|
1958
|
-
"
|
|
1958
|
+
"core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
|
|
1959
1959
|
"message": "Largest Contentful Paint"
|
|
1960
1960
|
},
|
|
1961
|
-
"
|
|
1961
|
+
"core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
|
|
1962
1962
|
"message": "Max potential first input delay"
|
|
1963
1963
|
},
|
|
1964
|
-
"
|
|
1964
|
+
"core/lib/i18n/i18n.js | mediaResourceType": {
|
|
1965
1965
|
"message": "Media"
|
|
1966
1966
|
},
|
|
1967
|
-
"
|
|
1967
|
+
"core/lib/i18n/i18n.js | ms": {
|
|
1968
1968
|
"message": "{timeInMs, number, milliseconds} ms"
|
|
1969
1969
|
},
|
|
1970
|
-
"
|
|
1970
|
+
"core/lib/i18n/i18n.js | otherResourceType": {
|
|
1971
1971
|
"message": "Other"
|
|
1972
1972
|
},
|
|
1973
|
-
"
|
|
1973
|
+
"core/lib/i18n/i18n.js | otherResourcesLabel": {
|
|
1974
1974
|
"message": "Other resources"
|
|
1975
1975
|
},
|
|
1976
|
-
"
|
|
1976
|
+
"core/lib/i18n/i18n.js | scriptResourceType": {
|
|
1977
1977
|
"message": "Script"
|
|
1978
1978
|
},
|
|
1979
|
-
"
|
|
1979
|
+
"core/lib/i18n/i18n.js | seconds": {
|
|
1980
1980
|
"message": "{timeInMs, number, seconds} s"
|
|
1981
1981
|
},
|
|
1982
|
-
"
|
|
1982
|
+
"core/lib/i18n/i18n.js | speedIndexMetric": {
|
|
1983
1983
|
"message": "Speed Index"
|
|
1984
1984
|
},
|
|
1985
|
-
"
|
|
1985
|
+
"core/lib/i18n/i18n.js | stylesheetResourceType": {
|
|
1986
1986
|
"message": "Stylesheet"
|
|
1987
1987
|
},
|
|
1988
|
-
"
|
|
1988
|
+
"core/lib/i18n/i18n.js | thirdPartyResourceType": {
|
|
1989
1989
|
"message": "Third-party"
|
|
1990
1990
|
},
|
|
1991
|
-
"
|
|
1991
|
+
"core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
|
|
1992
1992
|
"message": "Total Blocking Time"
|
|
1993
1993
|
},
|
|
1994
|
-
"
|
|
1994
|
+
"core/lib/i18n/i18n.js | totalResourceType": {
|
|
1995
1995
|
"message": "Total"
|
|
1996
1996
|
},
|
|
1997
|
-
"
|
|
1997
|
+
"core/lib/lh-error.js | badTraceRecording": {
|
|
1998
1998
|
"message": "Something went wrong with recording the trace over your page load. Please run Lighthouse again. ({errorCode})"
|
|
1999
1999
|
},
|
|
2000
|
-
"
|
|
2000
|
+
"core/lib/lh-error.js | criTimeout": {
|
|
2001
2001
|
"message": "Timeout waiting for initial Debugger Protocol connection."
|
|
2002
2002
|
},
|
|
2003
|
-
"
|
|
2003
|
+
"core/lib/lh-error.js | didntCollectScreenshots": {
|
|
2004
2004
|
"message": "Chrome didn't collect any screenshots during the page load. Please make sure that there is content visible on the page, and then try re-running Lighthouse. ({errorCode})"
|
|
2005
2005
|
},
|
|
2006
|
-
"
|
|
2006
|
+
"core/lib/lh-error.js | dnsFailure": {
|
|
2007
2007
|
"message": "DNS servers could not resolve the provided domain."
|
|
2008
2008
|
},
|
|
2009
|
-
"
|
|
2009
|
+
"core/lib/lh-error.js | erroredRequiredArtifact": {
|
|
2010
2010
|
"message": "Required {artifactName} gatherer encountered an error: {errorMessage}"
|
|
2011
2011
|
},
|
|
2012
|
-
"
|
|
2012
|
+
"core/lib/lh-error.js | internalChromeError": {
|
|
2013
2013
|
"message": "An internal Chrome error occurred. Please restart Chrome and try re-running Lighthouse."
|
|
2014
2014
|
},
|
|
2015
|
-
"
|
|
2015
|
+
"core/lib/lh-error.js | missingRequiredArtifact": {
|
|
2016
2016
|
"message": "Required {artifactName} gatherer did not run."
|
|
2017
2017
|
},
|
|
2018
|
-
"
|
|
2018
|
+
"core/lib/lh-error.js | noFcp": {
|
|
2019
2019
|
"message": "The page did not paint any content. Please ensure that you keep the browser window in the foreground during the load and try again. ({errorCode})"
|
|
2020
2020
|
},
|
|
2021
|
-
"
|
|
2021
|
+
"core/lib/lh-error.js | notHtml": {
|
|
2022
2022
|
"message": "The page provided is not HTML (served as MIME type {mimeType})."
|
|
2023
2023
|
},
|
|
2024
|
-
"
|
|
2024
|
+
"core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
|
|
2025
2025
|
"message": "This version of Chrome is too old to support '{featureName}'. Use a newer version to see full results."
|
|
2026
2026
|
},
|
|
2027
|
-
"
|
|
2027
|
+
"core/lib/lh-error.js | pageLoadFailed": {
|
|
2028
2028
|
"message": "Lighthouse was unable to reliably load the page that you requested. Make sure that you are testing the correct URL and that the server is properly responding to all requests."
|
|
2029
2029
|
},
|
|
2030
|
-
"
|
|
2030
|
+
"core/lib/lh-error.js | pageLoadFailedHung": {
|
|
2031
2031
|
"message": "Lighthouse was unable to reliably load the URL that you requested because the page stopped responding."
|
|
2032
2032
|
},
|
|
2033
|
-
"
|
|
2033
|
+
"core/lib/lh-error.js | pageLoadFailedInsecure": {
|
|
2034
2034
|
"message": "The URL you have provided does not have a valid security certificate. {securityMessages}"
|
|
2035
2035
|
},
|
|
2036
|
-
"
|
|
2036
|
+
"core/lib/lh-error.js | pageLoadFailedInterstitial": {
|
|
2037
2037
|
"message": "Chrome prevented page load with an interstitial. Make sure that you are testing the correct URL and that the server is properly responding to all requests."
|
|
2038
2038
|
},
|
|
2039
|
-
"
|
|
2039
|
+
"core/lib/lh-error.js | pageLoadFailedWithDetails": {
|
|
2040
2040
|
"message": "Lighthouse was unable to reliably load the page that you requested. Make sure that you are testing the correct URL and that the server is properly responding to all requests. (Details: {errorDetails})"
|
|
2041
2041
|
},
|
|
2042
|
-
"
|
|
2042
|
+
"core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
|
|
2043
2043
|
"message": "Lighthouse was unable to reliably load the page that you requested. Make sure that you are testing the correct URL and that the server is properly responding to all requests. (Status code: {statusCode})"
|
|
2044
2044
|
},
|
|
2045
|
-
"
|
|
2045
|
+
"core/lib/lh-error.js | pageLoadTookTooLong": {
|
|
2046
2046
|
"message": "Your page took too long to load. Please follow the opportunities in the report to reduce your page load time, and then try re-running Lighthouse. ({errorCode})"
|
|
2047
2047
|
},
|
|
2048
|
-
"
|
|
2048
|
+
"core/lib/lh-error.js | protocolTimeout": {
|
|
2049
2049
|
"message": "Waiting for DevTools protocol response has exceeded the allotted time. (Method: {protocolMethod})"
|
|
2050
2050
|
},
|
|
2051
|
-
"
|
|
2051
|
+
"core/lib/lh-error.js | requestContentTimeout": {
|
|
2052
2052
|
"message": "Fetching resource content has exceeded the allotted time"
|
|
2053
2053
|
},
|
|
2054
|
-
"
|
|
2054
|
+
"core/lib/lh-error.js | urlInvalid": {
|
|
2055
2055
|
"message": "The URL that you have provided appears to be invalid."
|
|
2056
2056
|
},
|
|
2057
2057
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|