lighthouse 9.5.0-dev.20220727 → 9.5.0-dev.20220730
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 -2
- 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 +3 -3
- package/report/test/renderer/category-renderer-test.js +4 -4
- 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 -653
- package/shared/localization/locales/ar.json +641 -653
- package/shared/localization/locales/bg.json +641 -653
- package/shared/localization/locales/ca.json +641 -653
- package/shared/localization/locales/cs.json +641 -653
- package/shared/localization/locales/da.json +641 -653
- package/shared/localization/locales/de.json +641 -653
- package/shared/localization/locales/el.json +641 -653
- package/shared/localization/locales/en-GB.json +641 -653
- package/shared/localization/locales/en-US.json +830 -842
- package/shared/localization/locales/en-XA.json +641 -653
- package/shared/localization/locales/en-XL.json +830 -842
- package/shared/localization/locales/es-419.json +641 -653
- package/shared/localization/locales/es.json +641 -653
- package/shared/localization/locales/fi.json +641 -653
- package/shared/localization/locales/fil.json +641 -653
- package/shared/localization/locales/fr.json +641 -653
- package/shared/localization/locales/he.json +641 -653
- package/shared/localization/locales/hi.json +641 -653
- package/shared/localization/locales/hr.json +641 -653
- package/shared/localization/locales/hu.json +641 -653
- package/shared/localization/locales/id.json +641 -653
- package/shared/localization/locales/it.json +641 -653
- package/shared/localization/locales/ja.json +641 -653
- package/shared/localization/locales/ko.json +641 -653
- package/shared/localization/locales/lt.json +641 -653
- package/shared/localization/locales/lv.json +641 -653
- package/shared/localization/locales/nl.json +641 -653
- package/shared/localization/locales/no.json +641 -653
- package/shared/localization/locales/pl.json +641 -653
- package/shared/localization/locales/pt-PT.json +641 -653
- package/shared/localization/locales/pt.json +641 -653
- package/shared/localization/locales/ro.json +641 -653
- package/shared/localization/locales/ru.json +641 -653
- package/shared/localization/locales/sk.json +641 -653
- package/shared/localization/locales/sl.json +641 -653
- package/shared/localization/locales/sr-Latn.json +641 -653
- package/shared/localization/locales/sr.json +641 -653
- package/shared/localization/locales/sv.json +641 -653
- package/shared/localization/locales/ta.json +641 -653
- package/shared/localization/locales/te.json +641 -653
- package/shared/localization/locales/th.json +641 -653
- package/shared/localization/locales/tr.json +641 -653
- package/shared/localization/locales/uk.json +641 -653
- package/shared/localization/locales/vi.json +641 -653
- package/shared/localization/locales/zh-HK.json +641 -653
- package/shared/localization/locales/zh-TW.json +641 -653
- package/shared/localization/locales/zh.json +641 -653
- 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
- package/lighthouse-core/audits/apple-touch-icon.js +0 -72
|
@@ -131,1939 +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
|
-
"
|
|
534
|
-
"message": "For ideal appearance on iOS when users add a progressive web app to the home screen, define an `apple-touch-icon`. It must point to a non-transparent 192px (or 180px) square PNG. [Learn More](https://web.dev/apple-touch-icon/)."
|
|
535
|
-
},
|
|
536
|
-
"lighthouse-core/audits/apple-touch-icon.js | failureTitle": {
|
|
537
|
-
"message": "Does not provide a valid `apple-touch-icon`"
|
|
538
|
-
},
|
|
539
|
-
"lighthouse-core/audits/apple-touch-icon.js | precomposedWarning": {
|
|
540
|
-
"message": "`apple-touch-icon-precomposed` is out of date; `apple-touch-icon` is preferred."
|
|
541
|
-
},
|
|
542
|
-
"lighthouse-core/audits/apple-touch-icon.js | title": {
|
|
543
|
-
"message": "Provides a valid `apple-touch-icon`"
|
|
544
|
-
},
|
|
545
|
-
"lighthouse-core/audits/autocomplete.js | columnCurrent": {
|
|
533
|
+
"core/audits/autocomplete.js | columnCurrent": {
|
|
546
534
|
"message": "Current value"
|
|
547
535
|
},
|
|
548
|
-
"
|
|
536
|
+
"core/audits/autocomplete.js | columnSuggestions": {
|
|
549
537
|
"message": "Suggested token"
|
|
550
538
|
},
|
|
551
|
-
"
|
|
539
|
+
"core/audits/autocomplete.js | description": {
|
|
552
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)"
|
|
553
541
|
},
|
|
554
|
-
"
|
|
542
|
+
"core/audits/autocomplete.js | failureTitle": {
|
|
555
543
|
"message": "`<input>` elements do not have correct `autocomplete` attributes"
|
|
556
544
|
},
|
|
557
|
-
"
|
|
545
|
+
"core/audits/autocomplete.js | manualReview": {
|
|
558
546
|
"message": "Requires manual review"
|
|
559
547
|
},
|
|
560
|
-
"
|
|
548
|
+
"core/audits/autocomplete.js | reviewOrder": {
|
|
561
549
|
"message": "Review order of tokens"
|
|
562
550
|
},
|
|
563
|
-
"
|
|
551
|
+
"core/audits/autocomplete.js | title": {
|
|
564
552
|
"message": "`<input>` elements correctly use `autocomplete`"
|
|
565
553
|
},
|
|
566
|
-
"
|
|
554
|
+
"core/audits/autocomplete.js | warningInvalid": {
|
|
567
555
|
"message": "`autocomplete` token(s): '{token}' is invalid in {snippet}"
|
|
568
556
|
},
|
|
569
|
-
"
|
|
557
|
+
"core/audits/autocomplete.js | warningOrder": {
|
|
570
558
|
"message": "Review order of tokens: '{tokens}' in {snippet}"
|
|
571
559
|
},
|
|
572
|
-
"
|
|
560
|
+
"core/audits/bootup-time.js | chromeExtensionsWarning": {
|
|
573
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."
|
|
574
562
|
},
|
|
575
|
-
"
|
|
563
|
+
"core/audits/bootup-time.js | columnScriptEval": {
|
|
576
564
|
"message": "Script Evaluation"
|
|
577
565
|
},
|
|
578
|
-
"
|
|
566
|
+
"core/audits/bootup-time.js | columnScriptParse": {
|
|
579
567
|
"message": "Script Parse"
|
|
580
568
|
},
|
|
581
|
-
"
|
|
569
|
+
"core/audits/bootup-time.js | columnTotal": {
|
|
582
570
|
"message": "Total CPU Time"
|
|
583
571
|
},
|
|
584
|
-
"
|
|
572
|
+
"core/audits/bootup-time.js | description": {
|
|
585
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/)."
|
|
586
574
|
},
|
|
587
|
-
"
|
|
575
|
+
"core/audits/bootup-time.js | failureTitle": {
|
|
588
576
|
"message": "Reduce JavaScript execution time"
|
|
589
577
|
},
|
|
590
|
-
"
|
|
578
|
+
"core/audits/bootup-time.js | title": {
|
|
591
579
|
"message": "JavaScript execution time"
|
|
592
580
|
},
|
|
593
|
-
"
|
|
581
|
+
"core/audits/byte-efficiency/duplicated-javascript.js | description": {
|
|
594
582
|
"message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity. "
|
|
595
583
|
},
|
|
596
|
-
"
|
|
584
|
+
"core/audits/byte-efficiency/duplicated-javascript.js | title": {
|
|
597
585
|
"message": "Remove duplicate modules in JavaScript bundles"
|
|
598
586
|
},
|
|
599
|
-
"
|
|
587
|
+
"core/audits/byte-efficiency/efficient-animated-content.js | description": {
|
|
600
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/)"
|
|
601
589
|
},
|
|
602
|
-
"
|
|
590
|
+
"core/audits/byte-efficiency/efficient-animated-content.js | title": {
|
|
603
591
|
"message": "Use video formats for animated content"
|
|
604
592
|
},
|
|
605
|
-
"
|
|
593
|
+
"core/audits/byte-efficiency/legacy-javascript.js | description": {
|
|
606
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/)"
|
|
607
595
|
},
|
|
608
|
-
"
|
|
596
|
+
"core/audits/byte-efficiency/legacy-javascript.js | title": {
|
|
609
597
|
"message": "Avoid serving legacy JavaScript to modern browsers"
|
|
610
598
|
},
|
|
611
|
-
"
|
|
599
|
+
"core/audits/byte-efficiency/modern-image-formats.js | description": {
|
|
612
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/)."
|
|
613
601
|
},
|
|
614
|
-
"
|
|
602
|
+
"core/audits/byte-efficiency/modern-image-formats.js | title": {
|
|
615
603
|
"message": "Serve images in next-gen formats"
|
|
616
604
|
},
|
|
617
|
-
"
|
|
605
|
+
"core/audits/byte-efficiency/offscreen-images.js | description": {
|
|
618
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/)."
|
|
619
607
|
},
|
|
620
|
-
"
|
|
608
|
+
"core/audits/byte-efficiency/offscreen-images.js | title": {
|
|
621
609
|
"message": "Defer off-screen images"
|
|
622
610
|
},
|
|
623
|
-
"
|
|
611
|
+
"core/audits/byte-efficiency/render-blocking-resources.js | description": {
|
|
624
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/)."
|
|
625
613
|
},
|
|
626
|
-
"
|
|
614
|
+
"core/audits/byte-efficiency/render-blocking-resources.js | title": {
|
|
627
615
|
"message": "Eliminate render-blocking resources"
|
|
628
616
|
},
|
|
629
|
-
"
|
|
617
|
+
"core/audits/byte-efficiency/total-byte-weight.js | description": {
|
|
630
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/)."
|
|
631
619
|
},
|
|
632
|
-
"
|
|
620
|
+
"core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
|
|
633
621
|
"message": "Total size was {totalBytes, number, bytes} KiB"
|
|
634
622
|
},
|
|
635
|
-
"
|
|
623
|
+
"core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
|
|
636
624
|
"message": "Avoid enormous network payloads"
|
|
637
625
|
},
|
|
638
|
-
"
|
|
626
|
+
"core/audits/byte-efficiency/total-byte-weight.js | title": {
|
|
639
627
|
"message": "Avoids enormous network payloads"
|
|
640
628
|
},
|
|
641
|
-
"
|
|
629
|
+
"core/audits/byte-efficiency/unminified-css.js | description": {
|
|
642
630
|
"message": "Minifying CSS files can reduce network payload sizes. [Learn more](https://web.dev/unminified-css/)."
|
|
643
631
|
},
|
|
644
|
-
"
|
|
632
|
+
"core/audits/byte-efficiency/unminified-css.js | title": {
|
|
645
633
|
"message": "Minify CSS"
|
|
646
634
|
},
|
|
647
|
-
"
|
|
635
|
+
"core/audits/byte-efficiency/unminified-javascript.js | description": {
|
|
648
636
|
"message": "Minifying JavaScript files can reduce payload sizes and script parse time. [Learn more](https://web.dev/unminified-javascript/)."
|
|
649
637
|
},
|
|
650
|
-
"
|
|
638
|
+
"core/audits/byte-efficiency/unminified-javascript.js | title": {
|
|
651
639
|
"message": "Minify JavaScript"
|
|
652
640
|
},
|
|
653
|
-
"
|
|
641
|
+
"core/audits/byte-efficiency/unused-css-rules.js | description": {
|
|
654
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/)."
|
|
655
643
|
},
|
|
656
|
-
"
|
|
644
|
+
"core/audits/byte-efficiency/unused-css-rules.js | title": {
|
|
657
645
|
"message": "Reduce unused CSS"
|
|
658
646
|
},
|
|
659
|
-
"
|
|
647
|
+
"core/audits/byte-efficiency/unused-javascript.js | description": {
|
|
660
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/)."
|
|
661
649
|
},
|
|
662
|
-
"
|
|
650
|
+
"core/audits/byte-efficiency/unused-javascript.js | title": {
|
|
663
651
|
"message": "Reduce unused JavaScript"
|
|
664
652
|
},
|
|
665
|
-
"
|
|
653
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
|
|
666
654
|
"message": "A long cache lifetime can speed up repeat visits to your page. [Learn more](https://web.dev/uses-long-cache-ttl/)."
|
|
667
655
|
},
|
|
668
|
-
"
|
|
656
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
|
|
669
657
|
"message": "{itemCount,plural, =1{1 resource found}other{# resources found}}"
|
|
670
658
|
},
|
|
671
|
-
"
|
|
659
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
|
|
672
660
|
"message": "Serve static assets with an efficient cache policy"
|
|
673
661
|
},
|
|
674
|
-
"
|
|
662
|
+
"core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
|
|
675
663
|
"message": "Uses efficient cache policy on static assets"
|
|
676
664
|
},
|
|
677
|
-
"
|
|
665
|
+
"core/audits/byte-efficiency/uses-optimized-images.js | description": {
|
|
678
666
|
"message": "Optimised images load faster and consume less mobile data. [Learn more](https://web.dev/uses-optimized-images/)."
|
|
679
667
|
},
|
|
680
|
-
"
|
|
668
|
+
"core/audits/byte-efficiency/uses-optimized-images.js | title": {
|
|
681
669
|
"message": "Efficiently encode images"
|
|
682
670
|
},
|
|
683
|
-
"
|
|
671
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
|
|
684
672
|
"message": "Actual dimensions"
|
|
685
673
|
},
|
|
686
|
-
"
|
|
674
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
|
|
687
675
|
"message": "Displayed dimensions"
|
|
688
676
|
},
|
|
689
|
-
"
|
|
677
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
|
|
690
678
|
"message": "Images were larger than their displayed size"
|
|
691
679
|
},
|
|
692
|
-
"
|
|
680
|
+
"core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
|
|
693
681
|
"message": "Images were appropriate for their displayed size"
|
|
694
682
|
},
|
|
695
|
-
"
|
|
683
|
+
"core/audits/byte-efficiency/uses-responsive-images.js | description": {
|
|
696
684
|
"message": "Serve images that are appropriately-sized to save mobile data and improve load time. [Learn more](https://web.dev/uses-responsive-images/)."
|
|
697
685
|
},
|
|
698
|
-
"
|
|
686
|
+
"core/audits/byte-efficiency/uses-responsive-images.js | title": {
|
|
699
687
|
"message": "Properly size images"
|
|
700
688
|
},
|
|
701
|
-
"
|
|
689
|
+
"core/audits/byte-efficiency/uses-text-compression.js | description": {
|
|
702
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/)."
|
|
703
691
|
},
|
|
704
|
-
"
|
|
692
|
+
"core/audits/byte-efficiency/uses-text-compression.js | title": {
|
|
705
693
|
"message": "Enable text compression"
|
|
706
694
|
},
|
|
707
|
-
"
|
|
695
|
+
"core/audits/content-width.js | description": {
|
|
708
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/)."
|
|
709
697
|
},
|
|
710
|
-
"
|
|
698
|
+
"core/audits/content-width.js | explanation": {
|
|
711
699
|
"message": "The viewport size of {innerWidth}px does not match the window size of {outerWidth}px."
|
|
712
700
|
},
|
|
713
|
-
"
|
|
701
|
+
"core/audits/content-width.js | failureTitle": {
|
|
714
702
|
"message": "Content is not sized correctly for the viewport"
|
|
715
703
|
},
|
|
716
|
-
"
|
|
704
|
+
"core/audits/content-width.js | title": {
|
|
717
705
|
"message": "Content is sized correctly for the viewport"
|
|
718
706
|
},
|
|
719
|
-
"
|
|
707
|
+
"core/audits/critical-request-chains.js | description": {
|
|
720
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/)."
|
|
721
709
|
},
|
|
722
|
-
"
|
|
710
|
+
"core/audits/critical-request-chains.js | displayValue": {
|
|
723
711
|
"message": "{itemCount,plural, =1{1 chain found}other{# chains found}}"
|
|
724
712
|
},
|
|
725
|
-
"
|
|
713
|
+
"core/audits/critical-request-chains.js | title": {
|
|
726
714
|
"message": "Avoid chaining critical requests"
|
|
727
715
|
},
|
|
728
|
-
"
|
|
716
|
+
"core/audits/csp-xss.js | columnDirective": {
|
|
729
717
|
"message": "Directive"
|
|
730
718
|
},
|
|
731
|
-
"
|
|
719
|
+
"core/audits/csp-xss.js | columnSeverity": {
|
|
732
720
|
"message": "Severity"
|
|
733
721
|
},
|
|
734
|
-
"
|
|
722
|
+
"core/audits/csp-xss.js | description": {
|
|
735
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/)"
|
|
736
724
|
},
|
|
737
|
-
"
|
|
725
|
+
"core/audits/csp-xss.js | itemSeveritySyntax": {
|
|
738
726
|
"message": "Syntax"
|
|
739
727
|
},
|
|
740
|
-
"
|
|
728
|
+
"core/audits/csp-xss.js | metaTagMessage": {
|
|
741
729
|
"message": "The page contains a CSP defined in a <meta> tag. Consider defining the CSP in a HTTP header if you can."
|
|
742
730
|
},
|
|
743
|
-
"
|
|
731
|
+
"core/audits/csp-xss.js | noCsp": {
|
|
744
732
|
"message": "No CSP found in enforcement mode"
|
|
745
733
|
},
|
|
746
|
-
"
|
|
734
|
+
"core/audits/csp-xss.js | title": {
|
|
747
735
|
"message": "Ensure CSP is effective against XSS attacks"
|
|
748
736
|
},
|
|
749
|
-
"
|
|
737
|
+
"core/audits/deprecations.js | columnDeprecate": {
|
|
750
738
|
"message": "Deprecation/Warning"
|
|
751
739
|
},
|
|
752
|
-
"
|
|
740
|
+
"core/audits/deprecations.js | columnLine": {
|
|
753
741
|
"message": "Line"
|
|
754
742
|
},
|
|
755
|
-
"
|
|
743
|
+
"core/audits/deprecations.js | description": {
|
|
756
744
|
"message": "Deprecated APIs will eventually be removed from the browser. [Learn more](https://web.dev/deprecations/)."
|
|
757
745
|
},
|
|
758
|
-
"
|
|
746
|
+
"core/audits/deprecations.js | displayValue": {
|
|
759
747
|
"message": "{itemCount,plural, =1{1 warning found}other{# warnings found}}"
|
|
760
748
|
},
|
|
761
|
-
"
|
|
749
|
+
"core/audits/deprecations.js | failureTitle": {
|
|
762
750
|
"message": "Uses deprecated APIs"
|
|
763
751
|
},
|
|
764
|
-
"
|
|
752
|
+
"core/audits/deprecations.js | title": {
|
|
765
753
|
"message": "Avoids deprecated APIs"
|
|
766
754
|
},
|
|
767
|
-
"
|
|
755
|
+
"core/audits/dobetterweb/charset.js | description": {
|
|
768
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/)."
|
|
769
757
|
},
|
|
770
|
-
"
|
|
758
|
+
"core/audits/dobetterweb/charset.js | failureTitle": {
|
|
771
759
|
"message": "Charset declaration is missing or occurs too late in the HTML"
|
|
772
760
|
},
|
|
773
|
-
"
|
|
761
|
+
"core/audits/dobetterweb/charset.js | title": {
|
|
774
762
|
"message": "Properly defines charset"
|
|
775
763
|
},
|
|
776
|
-
"
|
|
764
|
+
"core/audits/dobetterweb/doctype.js | description": {
|
|
777
765
|
"message": "Specifying a DOCTYPE prevents the browser from switching to quirks mode. [Learn more](https://web.dev/doctype/)."
|
|
778
766
|
},
|
|
779
|
-
"
|
|
767
|
+
"core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
|
|
780
768
|
"message": "Doctype name must be the lowercase string `html`"
|
|
781
769
|
},
|
|
782
|
-
"
|
|
770
|
+
"core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
|
|
783
771
|
"message": "Document must contain a doctype"
|
|
784
772
|
},
|
|
785
|
-
"
|
|
773
|
+
"core/audits/dobetterweb/doctype.js | explanationPublicId": {
|
|
786
774
|
"message": "Expected publicId to be an empty string"
|
|
787
775
|
},
|
|
788
|
-
"
|
|
776
|
+
"core/audits/dobetterweb/doctype.js | explanationSystemId": {
|
|
789
777
|
"message": "Expected systemId to be an empty string"
|
|
790
778
|
},
|
|
791
|
-
"
|
|
779
|
+
"core/audits/dobetterweb/doctype.js | failureTitle": {
|
|
792
780
|
"message": "Page lacks the HTML doctype, thus triggering quirks mode"
|
|
793
781
|
},
|
|
794
|
-
"
|
|
782
|
+
"core/audits/dobetterweb/doctype.js | title": {
|
|
795
783
|
"message": "Page has the HTML doctype"
|
|
796
784
|
},
|
|
797
|
-
"
|
|
785
|
+
"core/audits/dobetterweb/dom-size.js | columnStatistic": {
|
|
798
786
|
"message": "Statistic"
|
|
799
787
|
},
|
|
800
|
-
"
|
|
788
|
+
"core/audits/dobetterweb/dom-size.js | columnValue": {
|
|
801
789
|
"message": "Value"
|
|
802
790
|
},
|
|
803
|
-
"
|
|
791
|
+
"core/audits/dobetterweb/dom-size.js | description": {
|
|
804
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/)."
|
|
805
793
|
},
|
|
806
|
-
"
|
|
794
|
+
"core/audits/dobetterweb/dom-size.js | displayValue": {
|
|
807
795
|
"message": "{itemCount,plural, =1{1 element}other{# elements}}"
|
|
808
796
|
},
|
|
809
|
-
"
|
|
797
|
+
"core/audits/dobetterweb/dom-size.js | failureTitle": {
|
|
810
798
|
"message": "Avoid an excessive DOM size"
|
|
811
799
|
},
|
|
812
|
-
"
|
|
800
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
|
|
813
801
|
"message": "Maximum DOM Depth"
|
|
814
802
|
},
|
|
815
|
-
"
|
|
803
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
|
|
816
804
|
"message": "Total DOM Elements"
|
|
817
805
|
},
|
|
818
|
-
"
|
|
806
|
+
"core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
|
|
819
807
|
"message": "Maximum Child Elements"
|
|
820
808
|
},
|
|
821
|
-
"
|
|
809
|
+
"core/audits/dobetterweb/dom-size.js | title": {
|
|
822
810
|
"message": "Avoids an excessive DOM size"
|
|
823
811
|
},
|
|
824
|
-
"
|
|
812
|
+
"core/audits/dobetterweb/geolocation-on-start.js | description": {
|
|
825
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/)."
|
|
826
814
|
},
|
|
827
|
-
"
|
|
815
|
+
"core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
|
|
828
816
|
"message": "Requests the geolocation permission on page load"
|
|
829
817
|
},
|
|
830
|
-
"
|
|
818
|
+
"core/audits/dobetterweb/geolocation-on-start.js | title": {
|
|
831
819
|
"message": "Avoids requesting the geolocation permission on page load"
|
|
832
820
|
},
|
|
833
|
-
"
|
|
821
|
+
"core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
|
|
834
822
|
"message": "Issue type"
|
|
835
823
|
},
|
|
836
|
-
"
|
|
824
|
+
"core/audits/dobetterweb/inspector-issues.js | description": {
|
|
837
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."
|
|
838
826
|
},
|
|
839
|
-
"
|
|
827
|
+
"core/audits/dobetterweb/inspector-issues.js | failureTitle": {
|
|
840
828
|
"message": "Issues were logged in the `Issues` panel in Chrome DevTools"
|
|
841
829
|
},
|
|
842
|
-
"
|
|
830
|
+
"core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
|
|
843
831
|
"message": "Blocked by cross-origin policy"
|
|
844
832
|
},
|
|
845
|
-
"
|
|
833
|
+
"core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
|
|
846
834
|
"message": "Heavy resource usage by ads"
|
|
847
835
|
},
|
|
848
|
-
"
|
|
836
|
+
"core/audits/dobetterweb/inspector-issues.js | title": {
|
|
849
837
|
"message": "No issues in the `Issues` panel in Chrome DevTools"
|
|
850
838
|
},
|
|
851
|
-
"
|
|
839
|
+
"core/audits/dobetterweb/js-libraries.js | columnVersion": {
|
|
852
840
|
"message": "Version"
|
|
853
841
|
},
|
|
854
|
-
"
|
|
842
|
+
"core/audits/dobetterweb/js-libraries.js | description": {
|
|
855
843
|
"message": "All front-end JavaScript libraries detected on the page. [Learn more](https://web.dev/js-libraries/)."
|
|
856
844
|
},
|
|
857
|
-
"
|
|
845
|
+
"core/audits/dobetterweb/js-libraries.js | title": {
|
|
858
846
|
"message": "Detected JavaScript libraries"
|
|
859
847
|
},
|
|
860
|
-
"
|
|
848
|
+
"core/audits/dobetterweb/no-document-write.js | description": {
|
|
861
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/)."
|
|
862
850
|
},
|
|
863
|
-
"
|
|
851
|
+
"core/audits/dobetterweb/no-document-write.js | failureTitle": {
|
|
864
852
|
"message": "Avoid `document.write()`"
|
|
865
853
|
},
|
|
866
|
-
"
|
|
854
|
+
"core/audits/dobetterweb/no-document-write.js | title": {
|
|
867
855
|
"message": "Avoids `document.write()`"
|
|
868
856
|
},
|
|
869
|
-
"
|
|
857
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnSeverity": {
|
|
870
858
|
"message": "Highest Severity"
|
|
871
859
|
},
|
|
872
|
-
"
|
|
860
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnVersion": {
|
|
873
861
|
"message": "Library version"
|
|
874
862
|
},
|
|
875
|
-
"
|
|
863
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | columnVuln": {
|
|
876
864
|
"message": "Vulnerability count"
|
|
877
865
|
},
|
|
878
|
-
"
|
|
866
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | description": {
|
|
879
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/)."
|
|
880
868
|
},
|
|
881
|
-
"
|
|
869
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | displayValue": {
|
|
882
870
|
"message": "{itemCount,plural, =1{1 vulnerability detected}other{# vulnerabilities detected}}"
|
|
883
871
|
},
|
|
884
|
-
"
|
|
872
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | failureTitle": {
|
|
885
873
|
"message": "Includes front-end JavaScript libraries with known security vulnerabilities"
|
|
886
874
|
},
|
|
887
|
-
"
|
|
875
|
+
"core/audits/dobetterweb/no-vulnerable-libraries.js | title": {
|
|
888
876
|
"message": "Avoids front-end JavaScript libraries with known security vulnerabilities"
|
|
889
877
|
},
|
|
890
|
-
"
|
|
878
|
+
"core/audits/dobetterweb/notification-on-start.js | description": {
|
|
891
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/)."
|
|
892
880
|
},
|
|
893
|
-
"
|
|
881
|
+
"core/audits/dobetterweb/notification-on-start.js | failureTitle": {
|
|
894
882
|
"message": "Requests the notification permission on page load"
|
|
895
883
|
},
|
|
896
|
-
"
|
|
884
|
+
"core/audits/dobetterweb/notification-on-start.js | title": {
|
|
897
885
|
"message": "Avoids requesting the notification permission on page load"
|
|
898
886
|
},
|
|
899
|
-
"
|
|
887
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | description": {
|
|
900
888
|
"message": "Preventing password pasting undermines good security policy. [Learn more](https://web.dev/password-inputs-can-be-pasted-into/)."
|
|
901
889
|
},
|
|
902
|
-
"
|
|
890
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | failureTitle": {
|
|
903
891
|
"message": "Prevents users to paste into password fields"
|
|
904
892
|
},
|
|
905
|
-
"
|
|
893
|
+
"core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | title": {
|
|
906
894
|
"message": "Allows users to paste into password fields"
|
|
907
895
|
},
|
|
908
|
-
"
|
|
896
|
+
"core/audits/dobetterweb/uses-http2.js | columnProtocol": {
|
|
909
897
|
"message": "Protocol"
|
|
910
898
|
},
|
|
911
|
-
"
|
|
899
|
+
"core/audits/dobetterweb/uses-http2.js | description": {
|
|
912
900
|
"message": "HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing. [Learn more](https://web.dev/uses-http2/)."
|
|
913
901
|
},
|
|
914
|
-
"
|
|
902
|
+
"core/audits/dobetterweb/uses-http2.js | displayValue": {
|
|
915
903
|
"message": "{itemCount,plural, =1{1 request not served via HTTP/2}other{# requests not served via HTTP/2}}"
|
|
916
904
|
},
|
|
917
|
-
"
|
|
905
|
+
"core/audits/dobetterweb/uses-http2.js | title": {
|
|
918
906
|
"message": "Use HTTP/2"
|
|
919
907
|
},
|
|
920
|
-
"
|
|
908
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
|
|
921
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/)."
|
|
922
910
|
},
|
|
923
|
-
"
|
|
911
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
|
|
924
912
|
"message": "Does not use passive listeners to improve scrolling performance"
|
|
925
913
|
},
|
|
926
|
-
"
|
|
914
|
+
"core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
|
|
927
915
|
"message": "Uses passive listeners to improve scrolling performance"
|
|
928
916
|
},
|
|
929
|
-
"
|
|
917
|
+
"core/audits/errors-in-console.js | description": {
|
|
930
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/)"
|
|
931
919
|
},
|
|
932
|
-
"
|
|
920
|
+
"core/audits/errors-in-console.js | failureTitle": {
|
|
933
921
|
"message": "Browser errors were logged to the console"
|
|
934
922
|
},
|
|
935
|
-
"
|
|
923
|
+
"core/audits/errors-in-console.js | title": {
|
|
936
924
|
"message": "No browser errors logged to the console"
|
|
937
925
|
},
|
|
938
|
-
"
|
|
926
|
+
"core/audits/font-display.js | description": {
|
|
939
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/)."
|
|
940
928
|
},
|
|
941
|
-
"
|
|
929
|
+
"core/audits/font-display.js | failureTitle": {
|
|
942
930
|
"message": "Ensure text remains visible during webfont load"
|
|
943
931
|
},
|
|
944
|
-
"
|
|
932
|
+
"core/audits/font-display.js | title": {
|
|
945
933
|
"message": "All text remains visible during webfont loads"
|
|
946
934
|
},
|
|
947
|
-
"
|
|
935
|
+
"core/audits/font-display.js | undeclaredFontOriginWarning": {
|
|
948
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}.}}"
|
|
949
937
|
},
|
|
950
|
-
"
|
|
938
|
+
"core/audits/image-aspect-ratio.js | columnActual": {
|
|
951
939
|
"message": "Aspect ratio (actual)"
|
|
952
940
|
},
|
|
953
|
-
"
|
|
941
|
+
"core/audits/image-aspect-ratio.js | columnDisplayed": {
|
|
954
942
|
"message": "Aspect ratio (displayed)"
|
|
955
943
|
},
|
|
956
|
-
"
|
|
944
|
+
"core/audits/image-aspect-ratio.js | description": {
|
|
957
945
|
"message": "Image display dimensions should match natural aspect ratio. [Learn more](https://web.dev/image-aspect-ratio/)."
|
|
958
946
|
},
|
|
959
|
-
"
|
|
947
|
+
"core/audits/image-aspect-ratio.js | failureTitle": {
|
|
960
948
|
"message": "Displays images with incorrect aspect ratio"
|
|
961
949
|
},
|
|
962
|
-
"
|
|
950
|
+
"core/audits/image-aspect-ratio.js | title": {
|
|
963
951
|
"message": "Displays images with correct aspect ratio"
|
|
964
952
|
},
|
|
965
|
-
"
|
|
953
|
+
"core/audits/image-size-responsive.js | columnActual": {
|
|
966
954
|
"message": "Actual size"
|
|
967
955
|
},
|
|
968
|
-
"
|
|
956
|
+
"core/audits/image-size-responsive.js | columnDisplayed": {
|
|
969
957
|
"message": "Displayed size"
|
|
970
958
|
},
|
|
971
|
-
"
|
|
959
|
+
"core/audits/image-size-responsive.js | columnExpected": {
|
|
972
960
|
"message": "Expected size"
|
|
973
961
|
},
|
|
974
|
-
"
|
|
962
|
+
"core/audits/image-size-responsive.js | description": {
|
|
975
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/)."
|
|
976
964
|
},
|
|
977
|
-
"
|
|
965
|
+
"core/audits/image-size-responsive.js | failureTitle": {
|
|
978
966
|
"message": "Serves images with low resolution"
|
|
979
967
|
},
|
|
980
|
-
"
|
|
968
|
+
"core/audits/image-size-responsive.js | title": {
|
|
981
969
|
"message": "Serves images with appropriate resolution"
|
|
982
970
|
},
|
|
983
|
-
"
|
|
971
|
+
"core/audits/installable-manifest.js | already-installed": {
|
|
984
972
|
"message": "The app is already installed"
|
|
985
973
|
},
|
|
986
|
-
"
|
|
974
|
+
"core/audits/installable-manifest.js | cannot-download-icon": {
|
|
987
975
|
"message": "Could not download a required icon from the manifest"
|
|
988
976
|
},
|
|
989
|
-
"
|
|
977
|
+
"core/audits/installable-manifest.js | columnValue": {
|
|
990
978
|
"message": "Reason for failure"
|
|
991
979
|
},
|
|
992
|
-
"
|
|
980
|
+
"core/audits/installable-manifest.js | description": {
|
|
993
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/)."
|
|
994
982
|
},
|
|
995
|
-
"
|
|
983
|
+
"core/audits/installable-manifest.js | displayValue": {
|
|
996
984
|
"message": "{itemCount,plural, =1{1 reason}other{# reasons}}"
|
|
997
985
|
},
|
|
998
|
-
"
|
|
986
|
+
"core/audits/installable-manifest.js | failureTitle": {
|
|
999
987
|
"message": "Web app manifest or service worker do not meet the installability requirements"
|
|
1000
988
|
},
|
|
1001
|
-
"
|
|
989
|
+
"core/audits/installable-manifest.js | ids-do-not-match": {
|
|
1002
990
|
"message": "The Play Store app URL and Play Store ID do not match"
|
|
1003
991
|
},
|
|
1004
|
-
"
|
|
992
|
+
"core/audits/installable-manifest.js | in-incognito": {
|
|
1005
993
|
"message": "Page is loaded in an incognito window"
|
|
1006
994
|
},
|
|
1007
|
-
"
|
|
995
|
+
"core/audits/installable-manifest.js | manifest-display-not-supported": {
|
|
1008
996
|
"message": "Manifest 'display' property must be one of 'standalone', 'fullscreen' or 'minimal-UI'"
|
|
1009
997
|
},
|
|
1010
|
-
"
|
|
998
|
+
"core/audits/installable-manifest.js | manifest-display-override-not-supported": {
|
|
1011
999
|
"message": "Manifest contains 'display_override' field, and the first supported display mode must be one of 'standalone', 'fullscreen' or 'minimal-ui'"
|
|
1012
1000
|
},
|
|
1013
|
-
"
|
|
1001
|
+
"core/audits/installable-manifest.js | manifest-empty": {
|
|
1014
1002
|
"message": "Manifest could not be fetched, is empty or could not be parsed"
|
|
1015
1003
|
},
|
|
1016
|
-
"
|
|
1004
|
+
"core/audits/installable-manifest.js | manifest-location-changed": {
|
|
1017
1005
|
"message": "Manifest URL changed while the manifest was being fetched."
|
|
1018
1006
|
},
|
|
1019
|
-
"
|
|
1007
|
+
"core/audits/installable-manifest.js | manifest-missing-name-or-short-name": {
|
|
1020
1008
|
"message": "Manifest does not contain a 'name' or 'short_name' field"
|
|
1021
1009
|
},
|
|
1022
|
-
"
|
|
1010
|
+
"core/audits/installable-manifest.js | manifest-missing-suitable-icon": {
|
|
1023
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'."
|
|
1024
1012
|
},
|
|
1025
|
-
"
|
|
1013
|
+
"core/audits/installable-manifest.js | no-acceptable-icon": {
|
|
1026
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'"
|
|
1027
1015
|
},
|
|
1028
|
-
"
|
|
1016
|
+
"core/audits/installable-manifest.js | no-icon-available": {
|
|
1029
1017
|
"message": "Downloaded icon was empty or corrupted"
|
|
1030
1018
|
},
|
|
1031
|
-
"
|
|
1019
|
+
"core/audits/installable-manifest.js | no-id-specified": {
|
|
1032
1020
|
"message": "No Play Store ID provided"
|
|
1033
1021
|
},
|
|
1034
|
-
"
|
|
1022
|
+
"core/audits/installable-manifest.js | no-manifest": {
|
|
1035
1023
|
"message": "Page has no manifest <link> URL"
|
|
1036
1024
|
},
|
|
1037
|
-
"
|
|
1025
|
+
"core/audits/installable-manifest.js | no-matching-service-worker": {
|
|
1038
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."
|
|
1039
1027
|
},
|
|
1040
|
-
"
|
|
1028
|
+
"core/audits/installable-manifest.js | no-url-for-service-worker": {
|
|
1041
1029
|
"message": "Could not check service worker without a 'start_url' field in the manifest"
|
|
1042
1030
|
},
|
|
1043
|
-
"
|
|
1031
|
+
"core/audits/installable-manifest.js | noErrorId": {
|
|
1044
1032
|
"message": "Installability error ID '{errorId}' is not recognised"
|
|
1045
1033
|
},
|
|
1046
|
-
"
|
|
1034
|
+
"core/audits/installable-manifest.js | not-from-secure-origin": {
|
|
1047
1035
|
"message": "Page is not served from a secure origin"
|
|
1048
1036
|
},
|
|
1049
|
-
"
|
|
1037
|
+
"core/audits/installable-manifest.js | not-in-main-frame": {
|
|
1050
1038
|
"message": "Page is not loaded in the main frame"
|
|
1051
1039
|
},
|
|
1052
|
-
"
|
|
1040
|
+
"core/audits/installable-manifest.js | not-offline-capable": {
|
|
1053
1041
|
"message": "Page does not work offline"
|
|
1054
1042
|
},
|
|
1055
|
-
"
|
|
1043
|
+
"core/audits/installable-manifest.js | pipeline-restarted": {
|
|
1056
1044
|
"message": "PWA has been uninstalled and installability checks resetting."
|
|
1057
1045
|
},
|
|
1058
|
-
"
|
|
1046
|
+
"core/audits/installable-manifest.js | platform-not-supported-on-android": {
|
|
1059
1047
|
"message": "The specified application platform is not supported on Android"
|
|
1060
1048
|
},
|
|
1061
|
-
"
|
|
1049
|
+
"core/audits/installable-manifest.js | prefer-related-applications": {
|
|
1062
1050
|
"message": "Manifest specifies prefer_related_applications: true"
|
|
1063
1051
|
},
|
|
1064
|
-
"
|
|
1052
|
+
"core/audits/installable-manifest.js | prefer-related-applications-only-beta-stable": {
|
|
1065
1053
|
"message": "prefer_related_applications is only supported on Chrome Beta and Stable channels on Android."
|
|
1066
1054
|
},
|
|
1067
|
-
"
|
|
1055
|
+
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1068
1056
|
"message": "Lighthouse could not determine if there was a service worker. Please try with a newer version of Chrome."
|
|
1069
1057
|
},
|
|
1070
|
-
"
|
|
1058
|
+
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1071
1059
|
"message": "Manifest start URL is not valid"
|
|
1072
1060
|
},
|
|
1073
|
-
"
|
|
1061
|
+
"core/audits/installable-manifest.js | title": {
|
|
1074
1062
|
"message": "Web app manifest and service worker meet the installability requirements"
|
|
1075
1063
|
},
|
|
1076
|
-
"
|
|
1064
|
+
"core/audits/installable-manifest.js | url-not-supported-for-webapk": {
|
|
1077
1065
|
"message": "A URL in the manifest contains a username, password or port"
|
|
1078
1066
|
},
|
|
1079
|
-
"
|
|
1067
|
+
"core/audits/installable-manifest.js | warn-not-offline-capable": {
|
|
1080
1068
|
"message": "Page does not work offline. The page will not be regarded as installable after Chrome 93, stable release August 2021."
|
|
1081
1069
|
},
|
|
1082
|
-
"
|
|
1070
|
+
"core/audits/is-on-https.js | allowed": {
|
|
1083
1071
|
"message": "Allowed"
|
|
1084
1072
|
},
|
|
1085
|
-
"
|
|
1073
|
+
"core/audits/is-on-https.js | blocked": {
|
|
1086
1074
|
"message": "Blocked"
|
|
1087
1075
|
},
|
|
1088
|
-
"
|
|
1076
|
+
"core/audits/is-on-https.js | columnInsecureURL": {
|
|
1089
1077
|
"message": "Insecure URL"
|
|
1090
1078
|
},
|
|
1091
|
-
"
|
|
1079
|
+
"core/audits/is-on-https.js | columnResolution": {
|
|
1092
1080
|
"message": "Request resolution"
|
|
1093
1081
|
},
|
|
1094
|
-
"
|
|
1082
|
+
"core/audits/is-on-https.js | description": {
|
|
1095
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/)."
|
|
1096
1084
|
},
|
|
1097
|
-
"
|
|
1085
|
+
"core/audits/is-on-https.js | displayValue": {
|
|
1098
1086
|
"message": "{itemCount,plural, =1{1 insecure request found}other{# insecure requests found}}"
|
|
1099
1087
|
},
|
|
1100
|
-
"
|
|
1088
|
+
"core/audits/is-on-https.js | failureTitle": {
|
|
1101
1089
|
"message": "Does not use HTTPS"
|
|
1102
1090
|
},
|
|
1103
|
-
"
|
|
1091
|
+
"core/audits/is-on-https.js | title": {
|
|
1104
1092
|
"message": "Uses HTTPS"
|
|
1105
1093
|
},
|
|
1106
|
-
"
|
|
1094
|
+
"core/audits/is-on-https.js | upgraded": {
|
|
1107
1095
|
"message": "Automatically upgraded to HTTPS"
|
|
1108
1096
|
},
|
|
1109
|
-
"
|
|
1097
|
+
"core/audits/is-on-https.js | warning": {
|
|
1110
1098
|
"message": "Allowed with warning"
|
|
1111
1099
|
},
|
|
1112
|
-
"
|
|
1100
|
+
"core/audits/largest-contentful-paint-element.js | description": {
|
|
1113
1101
|
"message": "This is the largest contentful element painted within the viewport. [Learn more](https://web.dev/lighthouse-largest-contentful-paint/)"
|
|
1114
1102
|
},
|
|
1115
|
-
"
|
|
1103
|
+
"core/audits/largest-contentful-paint-element.js | title": {
|
|
1116
1104
|
"message": "Largest contentful paint element"
|
|
1117
1105
|
},
|
|
1118
|
-
"
|
|
1106
|
+
"core/audits/layout-shift-elements.js | columnContribution": {
|
|
1119
1107
|
"message": "CLS contribution"
|
|
1120
1108
|
},
|
|
1121
|
-
"
|
|
1109
|
+
"core/audits/layout-shift-elements.js | description": {
|
|
1122
1110
|
"message": "These DOM elements contribute most to the CLS of the page."
|
|
1123
1111
|
},
|
|
1124
|
-
"
|
|
1112
|
+
"core/audits/layout-shift-elements.js | title": {
|
|
1125
1113
|
"message": "Avoid large layout shifts"
|
|
1126
1114
|
},
|
|
1127
|
-
"
|
|
1115
|
+
"core/audits/lcp-lazy-loaded.js | description": {
|
|
1128
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/)."
|
|
1129
1117
|
},
|
|
1130
|
-
"
|
|
1118
|
+
"core/audits/lcp-lazy-loaded.js | failureTitle": {
|
|
1131
1119
|
"message": "Largest contentful paint image was lazily loaded"
|
|
1132
1120
|
},
|
|
1133
|
-
"
|
|
1121
|
+
"core/audits/lcp-lazy-loaded.js | title": {
|
|
1134
1122
|
"message": "Largest contentful paint image was not lazily loaded"
|
|
1135
1123
|
},
|
|
1136
|
-
"
|
|
1124
|
+
"core/audits/long-tasks.js | description": {
|
|
1137
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/)"
|
|
1138
1126
|
},
|
|
1139
|
-
"
|
|
1127
|
+
"core/audits/long-tasks.js | displayValue": {
|
|
1140
1128
|
"message": "{itemCount,plural, =1{# long task found}other{# long tasks found}}"
|
|
1141
1129
|
},
|
|
1142
|
-
"
|
|
1130
|
+
"core/audits/long-tasks.js | title": {
|
|
1143
1131
|
"message": "Avoid long main-thread tasks"
|
|
1144
1132
|
},
|
|
1145
|
-
"
|
|
1133
|
+
"core/audits/mainthread-work-breakdown.js | columnCategory": {
|
|
1146
1134
|
"message": "Category"
|
|
1147
1135
|
},
|
|
1148
|
-
"
|
|
1136
|
+
"core/audits/mainthread-work-breakdown.js | description": {
|
|
1149
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/)"
|
|
1150
1138
|
},
|
|
1151
|
-
"
|
|
1139
|
+
"core/audits/mainthread-work-breakdown.js | failureTitle": {
|
|
1152
1140
|
"message": "Minimise main-thread work"
|
|
1153
1141
|
},
|
|
1154
|
-
"
|
|
1142
|
+
"core/audits/mainthread-work-breakdown.js | title": {
|
|
1155
1143
|
"message": "Minimises main-thread work"
|
|
1156
1144
|
},
|
|
1157
|
-
"
|
|
1145
|
+
"core/audits/manual/pwa-cross-browser.js | description": {
|
|
1158
1146
|
"message": "To reach the most users, sites should work across every major browser. [Learn more](https://web.dev/pwa-cross-browser/)."
|
|
1159
1147
|
},
|
|
1160
|
-
"
|
|
1148
|
+
"core/audits/manual/pwa-cross-browser.js | title": {
|
|
1161
1149
|
"message": "Site works cross-browser"
|
|
1162
1150
|
},
|
|
1163
|
-
"
|
|
1151
|
+
"core/audits/manual/pwa-each-page-has-url.js | description": {
|
|
1164
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/)."
|
|
1165
1153
|
},
|
|
1166
|
-
"
|
|
1154
|
+
"core/audits/manual/pwa-each-page-has-url.js | title": {
|
|
1167
1155
|
"message": "Each page has a URL"
|
|
1168
1156
|
},
|
|
1169
|
-
"
|
|
1157
|
+
"core/audits/manual/pwa-page-transitions.js | description": {
|
|
1170
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/)."
|
|
1171
1159
|
},
|
|
1172
|
-
"
|
|
1160
|
+
"core/audits/manual/pwa-page-transitions.js | title": {
|
|
1173
1161
|
"message": "Page transitions don't feel like they block on the network"
|
|
1174
1162
|
},
|
|
1175
|
-
"
|
|
1163
|
+
"core/audits/maskable-icon.js | description": {
|
|
1176
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/)."
|
|
1177
1165
|
},
|
|
1178
|
-
"
|
|
1166
|
+
"core/audits/maskable-icon.js | failureTitle": {
|
|
1179
1167
|
"message": "Manifest doesn't have a maskable icon"
|
|
1180
1168
|
},
|
|
1181
|
-
"
|
|
1169
|
+
"core/audits/maskable-icon.js | title": {
|
|
1182
1170
|
"message": "Manifest has a maskable icon"
|
|
1183
1171
|
},
|
|
1184
|
-
"
|
|
1172
|
+
"core/audits/metrics/cumulative-layout-shift.js | description": {
|
|
1185
1173
|
"message": "Cumulative layout shift measures the movement of visible elements within the viewport. [Learn more](https://web.dev/cls/)."
|
|
1186
1174
|
},
|
|
1187
|
-
"
|
|
1175
|
+
"core/audits/metrics/first-contentful-paint.js | description": {
|
|
1188
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/)."
|
|
1189
1177
|
},
|
|
1190
|
-
"
|
|
1178
|
+
"core/audits/metrics/first-meaningful-paint.js | description": {
|
|
1191
1179
|
"message": "First meaningful paint measures when the primary content of a page is visible. [Learn more](https://web.dev/first-meaningful-paint/)."
|
|
1192
1180
|
},
|
|
1193
|
-
"
|
|
1181
|
+
"core/audits/metrics/interactive.js | description": {
|
|
1194
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/)."
|
|
1195
1183
|
},
|
|
1196
|
-
"
|
|
1184
|
+
"core/audits/metrics/largest-contentful-paint.js | description": {
|
|
1197
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/)"
|
|
1198
1186
|
},
|
|
1199
|
-
"
|
|
1187
|
+
"core/audits/metrics/max-potential-fid.js | description": {
|
|
1200
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/)."
|
|
1201
1189
|
},
|
|
1202
|
-
"
|
|
1190
|
+
"core/audits/metrics/speed-index.js | description": {
|
|
1203
1191
|
"message": "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more](https://web.dev/speed-index/)."
|
|
1204
1192
|
},
|
|
1205
|
-
"
|
|
1193
|
+
"core/audits/metrics/total-blocking-time.js | description": {
|
|
1206
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/)."
|
|
1207
1195
|
},
|
|
1208
|
-
"
|
|
1196
|
+
"core/audits/network-rtt.js | description": {
|
|
1209
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/)."
|
|
1210
1198
|
},
|
|
1211
|
-
"
|
|
1199
|
+
"core/audits/network-rtt.js | title": {
|
|
1212
1200
|
"message": "Network Return Times"
|
|
1213
1201
|
},
|
|
1214
|
-
"
|
|
1202
|
+
"core/audits/network-server-latency.js | description": {
|
|
1215
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)."
|
|
1216
1204
|
},
|
|
1217
|
-
"
|
|
1205
|
+
"core/audits/network-server-latency.js | title": {
|
|
1218
1206
|
"message": "Server Back-end Latencies"
|
|
1219
1207
|
},
|
|
1220
|
-
"
|
|
1208
|
+
"core/audits/no-unload-listeners.js | description": {
|
|
1221
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)"
|
|
1222
1210
|
},
|
|
1223
|
-
"
|
|
1211
|
+
"core/audits/no-unload-listeners.js | failureTitle": {
|
|
1224
1212
|
"message": "Registers an `unload` listener"
|
|
1225
1213
|
},
|
|
1226
|
-
"
|
|
1214
|
+
"core/audits/no-unload-listeners.js | title": {
|
|
1227
1215
|
"message": "Avoids `unload` event listeners"
|
|
1228
1216
|
},
|
|
1229
|
-
"
|
|
1217
|
+
"core/audits/non-composited-animations.js | description": {
|
|
1230
1218
|
"message": "Animations which are not composited can be poor, slow and increase CLS. [Learn more](https://web.dev/non-composited-animations)"
|
|
1231
1219
|
},
|
|
1232
|
-
"
|
|
1220
|
+
"core/audits/non-composited-animations.js | displayValue": {
|
|
1233
1221
|
"message": "{itemCount,plural, =1{# animated element found}other{# animated elements found}}"
|
|
1234
1222
|
},
|
|
1235
|
-
"
|
|
1223
|
+
"core/audits/non-composited-animations.js | filterMayMovePixels": {
|
|
1236
1224
|
"message": "Filter-related property may move pixels"
|
|
1237
1225
|
},
|
|
1238
|
-
"
|
|
1226
|
+
"core/audits/non-composited-animations.js | incompatibleAnimations": {
|
|
1239
1227
|
"message": "Target has another animation which is incompatible"
|
|
1240
1228
|
},
|
|
1241
|
-
"
|
|
1229
|
+
"core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
|
|
1242
1230
|
"message": "Effect has composite mode other than 'replace'"
|
|
1243
1231
|
},
|
|
1244
|
-
"
|
|
1232
|
+
"core/audits/non-composited-animations.js | title": {
|
|
1245
1233
|
"message": "Avoid non-composited animations"
|
|
1246
1234
|
},
|
|
1247
|
-
"
|
|
1235
|
+
"core/audits/non-composited-animations.js | transformDependsBoxSize": {
|
|
1248
1236
|
"message": "Transform-related property depends on box size"
|
|
1249
1237
|
},
|
|
1250
|
-
"
|
|
1238
|
+
"core/audits/non-composited-animations.js | unsupportedCSSProperty": {
|
|
1251
1239
|
"message": "{propertyCount,plural, =1{Unsupported CSS property: {properties}}other{Unsupported CSS properties: {properties}}}"
|
|
1252
1240
|
},
|
|
1253
|
-
"
|
|
1241
|
+
"core/audits/non-composited-animations.js | unsupportedTimingParameters": {
|
|
1254
1242
|
"message": "Effect has unsupported timing parameters"
|
|
1255
1243
|
},
|
|
1256
|
-
"
|
|
1244
|
+
"core/audits/performance-budget.js | description": {
|
|
1257
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)."
|
|
1258
1246
|
},
|
|
1259
|
-
"
|
|
1247
|
+
"core/audits/performance-budget.js | requestCountOverBudget": {
|
|
1260
1248
|
"message": "{count,plural, =1{1 request}other{# requests}}"
|
|
1261
1249
|
},
|
|
1262
|
-
"
|
|
1250
|
+
"core/audits/performance-budget.js | title": {
|
|
1263
1251
|
"message": "Performance budget"
|
|
1264
1252
|
},
|
|
1265
|
-
"
|
|
1253
|
+
"core/audits/preload-fonts.js | description": {
|
|
1266
1254
|
"message": "Preload `optional` fonts so that first-time visitors may use them. [Learn more](https://web.dev/preload-optional-fonts/)"
|
|
1267
1255
|
},
|
|
1268
|
-
"
|
|
1256
|
+
"core/audits/preload-fonts.js | failureTitle": {
|
|
1269
1257
|
"message": "Fonts with `font-display: optional` are not preloaded"
|
|
1270
1258
|
},
|
|
1271
|
-
"
|
|
1259
|
+
"core/audits/preload-fonts.js | title": {
|
|
1272
1260
|
"message": "Fonts with `font-display: optional` are preloaded"
|
|
1273
1261
|
},
|
|
1274
|
-
"
|
|
1262
|
+
"core/audits/preload-lcp-image.js | description": {
|
|
1275
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)."
|
|
1276
1264
|
},
|
|
1277
|
-
"
|
|
1265
|
+
"core/audits/preload-lcp-image.js | title": {
|
|
1278
1266
|
"message": "Preload largest contentful paint image"
|
|
1279
1267
|
},
|
|
1280
|
-
"
|
|
1268
|
+
"core/audits/redirects.js | description": {
|
|
1281
1269
|
"message": "Redirects introduce additional delays before the page can be loaded. [Learn more](https://web.dev/redirects/)."
|
|
1282
1270
|
},
|
|
1283
|
-
"
|
|
1271
|
+
"core/audits/redirects.js | title": {
|
|
1284
1272
|
"message": "Avoid multiple page redirects"
|
|
1285
1273
|
},
|
|
1286
|
-
"
|
|
1274
|
+
"core/audits/resource-summary.js | description": {
|
|
1287
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/)."
|
|
1288
1276
|
},
|
|
1289
|
-
"
|
|
1277
|
+
"core/audits/resource-summary.js | displayValue": {
|
|
1290
1278
|
"message": "{requestCount,plural, =1{1 request • {byteCount, number, bytes} KiB}other{# requests • {byteCount, number, bytes} KiB}}"
|
|
1291
1279
|
},
|
|
1292
|
-
"
|
|
1280
|
+
"core/audits/resource-summary.js | title": {
|
|
1293
1281
|
"message": "Keep request counts low and transfer sizes small"
|
|
1294
1282
|
},
|
|
1295
|
-
"
|
|
1283
|
+
"core/audits/seo/canonical.js | description": {
|
|
1296
1284
|
"message": "Canonical links suggest which URL to show in search results. [Learn more](https://web.dev/canonical/)."
|
|
1297
1285
|
},
|
|
1298
|
-
"
|
|
1286
|
+
"core/audits/seo/canonical.js | explanationConflict": {
|
|
1299
1287
|
"message": "Multiple conflicting URLs ({urlList})"
|
|
1300
1288
|
},
|
|
1301
|
-
"
|
|
1289
|
+
"core/audits/seo/canonical.js | explanationInvalid": {
|
|
1302
1290
|
"message": "Invalid URL ({url})"
|
|
1303
1291
|
},
|
|
1304
|
-
"
|
|
1292
|
+
"core/audits/seo/canonical.js | explanationPointsElsewhere": {
|
|
1305
1293
|
"message": "Points to another `hreflang` location ({url})"
|
|
1306
1294
|
},
|
|
1307
|
-
"
|
|
1295
|
+
"core/audits/seo/canonical.js | explanationRelative": {
|
|
1308
1296
|
"message": "Is not an absolute URL ({url})"
|
|
1309
1297
|
},
|
|
1310
|
-
"
|
|
1298
|
+
"core/audits/seo/canonical.js | explanationRoot": {
|
|
1311
1299
|
"message": "Points to the domain's root URL (the home page), instead of an equivalent page of content"
|
|
1312
1300
|
},
|
|
1313
|
-
"
|
|
1301
|
+
"core/audits/seo/canonical.js | failureTitle": {
|
|
1314
1302
|
"message": "Document does not have a valid `rel=canonical`"
|
|
1315
1303
|
},
|
|
1316
|
-
"
|
|
1304
|
+
"core/audits/seo/canonical.js | title": {
|
|
1317
1305
|
"message": "Document has a valid `rel=canonical`"
|
|
1318
1306
|
},
|
|
1319
|
-
"
|
|
1307
|
+
"core/audits/seo/crawlable-anchors.js | columnFailingLink": {
|
|
1320
1308
|
"message": "Uncrawlable link"
|
|
1321
1309
|
},
|
|
1322
|
-
"
|
|
1310
|
+
"core/audits/seo/crawlable-anchors.js | description": {
|
|
1323
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)"
|
|
1324
1312
|
},
|
|
1325
|
-
"
|
|
1313
|
+
"core/audits/seo/crawlable-anchors.js | failureTitle": {
|
|
1326
1314
|
"message": "Links are not crawlable"
|
|
1327
1315
|
},
|
|
1328
|
-
"
|
|
1316
|
+
"core/audits/seo/crawlable-anchors.js | title": {
|
|
1329
1317
|
"message": "Links are crawlable"
|
|
1330
1318
|
},
|
|
1331
|
-
"
|
|
1319
|
+
"core/audits/seo/font-size.js | additionalIllegibleText": {
|
|
1332
1320
|
"message": "Add'l illegible text"
|
|
1333
1321
|
},
|
|
1334
|
-
"
|
|
1322
|
+
"core/audits/seo/font-size.js | columnFontSize": {
|
|
1335
1323
|
"message": "Font size"
|
|
1336
1324
|
},
|
|
1337
|
-
"
|
|
1325
|
+
"core/audits/seo/font-size.js | columnPercentPageText": {
|
|
1338
1326
|
"message": "% of page text"
|
|
1339
1327
|
},
|
|
1340
|
-
"
|
|
1328
|
+
"core/audits/seo/font-size.js | columnSelector": {
|
|
1341
1329
|
"message": "Selector"
|
|
1342
1330
|
},
|
|
1343
|
-
"
|
|
1331
|
+
"core/audits/seo/font-size.js | description": {
|
|
1344
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/)."
|
|
1345
1333
|
},
|
|
1346
|
-
"
|
|
1334
|
+
"core/audits/seo/font-size.js | displayValue": {
|
|
1347
1335
|
"message": "{decimalProportion, number, extendedPercent} legible text"
|
|
1348
1336
|
},
|
|
1349
|
-
"
|
|
1337
|
+
"core/audits/seo/font-size.js | explanationViewport": {
|
|
1350
1338
|
"message": "Text is illegible because there's no viewport meta tag optimised for mobile screens."
|
|
1351
1339
|
},
|
|
1352
|
-
"
|
|
1340
|
+
"core/audits/seo/font-size.js | failureTitle": {
|
|
1353
1341
|
"message": "Document doesn't use legible font sizes"
|
|
1354
1342
|
},
|
|
1355
|
-
"
|
|
1343
|
+
"core/audits/seo/font-size.js | legibleText": {
|
|
1356
1344
|
"message": "Legible text"
|
|
1357
1345
|
},
|
|
1358
|
-
"
|
|
1346
|
+
"core/audits/seo/font-size.js | title": {
|
|
1359
1347
|
"message": "Document uses legible font sizes"
|
|
1360
1348
|
},
|
|
1361
|
-
"
|
|
1349
|
+
"core/audits/seo/hreflang.js | description": {
|
|
1362
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/)."
|
|
1363
1351
|
},
|
|
1364
|
-
"
|
|
1352
|
+
"core/audits/seo/hreflang.js | failureTitle": {
|
|
1365
1353
|
"message": "Document doesn't have a valid `hreflang`"
|
|
1366
1354
|
},
|
|
1367
|
-
"
|
|
1355
|
+
"core/audits/seo/hreflang.js | notFullyQualified": {
|
|
1368
1356
|
"message": "Relative href value"
|
|
1369
1357
|
},
|
|
1370
|
-
"
|
|
1358
|
+
"core/audits/seo/hreflang.js | title": {
|
|
1371
1359
|
"message": "Document has a valid `hreflang`"
|
|
1372
1360
|
},
|
|
1373
|
-
"
|
|
1361
|
+
"core/audits/seo/hreflang.js | unexpectedLanguage": {
|
|
1374
1362
|
"message": "Unexpected language code"
|
|
1375
1363
|
},
|
|
1376
|
-
"
|
|
1364
|
+
"core/audits/seo/http-status-code.js | description": {
|
|
1377
1365
|
"message": "Pages with unsuccessful HTTP status codes may not be indexed properly. [Learn more](https://web.dev/http-status-code/)."
|
|
1378
1366
|
},
|
|
1379
|
-
"
|
|
1367
|
+
"core/audits/seo/http-status-code.js | failureTitle": {
|
|
1380
1368
|
"message": "Page has unsuccessful HTTP status code"
|
|
1381
1369
|
},
|
|
1382
|
-
"
|
|
1370
|
+
"core/audits/seo/http-status-code.js | title": {
|
|
1383
1371
|
"message": "Page has successful HTTP status code"
|
|
1384
1372
|
},
|
|
1385
|
-
"
|
|
1373
|
+
"core/audits/seo/is-crawlable.js | description": {
|
|
1386
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/)."
|
|
1387
1375
|
},
|
|
1388
|
-
"
|
|
1376
|
+
"core/audits/seo/is-crawlable.js | failureTitle": {
|
|
1389
1377
|
"message": "Page is blocked from indexing"
|
|
1390
1378
|
},
|
|
1391
|
-
"
|
|
1379
|
+
"core/audits/seo/is-crawlable.js | title": {
|
|
1392
1380
|
"message": "Page isn’t blocked from indexing"
|
|
1393
1381
|
},
|
|
1394
|
-
"
|
|
1382
|
+
"core/audits/seo/link-text.js | description": {
|
|
1395
1383
|
"message": "Descriptive link text helps search engines understand your content. [Learn more](https://web.dev/link-text/)."
|
|
1396
1384
|
},
|
|
1397
|
-
"
|
|
1385
|
+
"core/audits/seo/link-text.js | displayValue": {
|
|
1398
1386
|
"message": "{itemCount,plural, =1{1 link found}other{# links found}}"
|
|
1399
1387
|
},
|
|
1400
|
-
"
|
|
1388
|
+
"core/audits/seo/link-text.js | failureTitle": {
|
|
1401
1389
|
"message": "Links do not have descriptive text"
|
|
1402
1390
|
},
|
|
1403
|
-
"
|
|
1391
|
+
"core/audits/seo/link-text.js | title": {
|
|
1404
1392
|
"message": "Links have descriptive text"
|
|
1405
1393
|
},
|
|
1406
|
-
"
|
|
1394
|
+
"core/audits/seo/manual/structured-data.js | description": {
|
|
1407
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/)."
|
|
1408
1396
|
},
|
|
1409
|
-
"
|
|
1397
|
+
"core/audits/seo/manual/structured-data.js | title": {
|
|
1410
1398
|
"message": "Structured data is valid"
|
|
1411
1399
|
},
|
|
1412
|
-
"
|
|
1400
|
+
"core/audits/seo/meta-description.js | description": {
|
|
1413
1401
|
"message": "Meta descriptions may be included in search results to concisely summarise page content. [Learn more](https://web.dev/meta-description/)."
|
|
1414
1402
|
},
|
|
1415
|
-
"
|
|
1403
|
+
"core/audits/seo/meta-description.js | explanation": {
|
|
1416
1404
|
"message": "Description text is empty."
|
|
1417
1405
|
},
|
|
1418
|
-
"
|
|
1406
|
+
"core/audits/seo/meta-description.js | failureTitle": {
|
|
1419
1407
|
"message": "Document does not have a meta description"
|
|
1420
1408
|
},
|
|
1421
|
-
"
|
|
1409
|
+
"core/audits/seo/meta-description.js | title": {
|
|
1422
1410
|
"message": "Document has a meta description"
|
|
1423
1411
|
},
|
|
1424
|
-
"
|
|
1412
|
+
"core/audits/seo/plugins.js | description": {
|
|
1425
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/)."
|
|
1426
1414
|
},
|
|
1427
|
-
"
|
|
1415
|
+
"core/audits/seo/plugins.js | failureTitle": {
|
|
1428
1416
|
"message": "Document uses plugins"
|
|
1429
1417
|
},
|
|
1430
|
-
"
|
|
1418
|
+
"core/audits/seo/plugins.js | title": {
|
|
1431
1419
|
"message": "Document avoids plugins"
|
|
1432
1420
|
},
|
|
1433
|
-
"
|
|
1421
|
+
"core/audits/seo/robots-txt.js | description": {
|
|
1434
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/)."
|
|
1435
1423
|
},
|
|
1436
|
-
"
|
|
1424
|
+
"core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
|
|
1437
1425
|
"message": "Request for robots.txt returned HTTP status: {statusCode}"
|
|
1438
1426
|
},
|
|
1439
|
-
"
|
|
1427
|
+
"core/audits/seo/robots-txt.js | displayValueValidationError": {
|
|
1440
1428
|
"message": "{itemCount,plural, =1{1 error found}other{# errors found}}"
|
|
1441
1429
|
},
|
|
1442
|
-
"
|
|
1430
|
+
"core/audits/seo/robots-txt.js | explanation": {
|
|
1443
1431
|
"message": "Lighthouse was unable to download a robots.txt file"
|
|
1444
1432
|
},
|
|
1445
|
-
"
|
|
1433
|
+
"core/audits/seo/robots-txt.js | failureTitle": {
|
|
1446
1434
|
"message": "robots.txt is not valid"
|
|
1447
1435
|
},
|
|
1448
|
-
"
|
|
1436
|
+
"core/audits/seo/robots-txt.js | title": {
|
|
1449
1437
|
"message": "robots.txt is valid"
|
|
1450
1438
|
},
|
|
1451
|
-
"
|
|
1439
|
+
"core/audits/seo/tap-targets.js | description": {
|
|
1452
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/)."
|
|
1453
1441
|
},
|
|
1454
|
-
"
|
|
1442
|
+
"core/audits/seo/tap-targets.js | displayValue": {
|
|
1455
1443
|
"message": "{decimalProportion, number, percent} appropriately sized tap targets"
|
|
1456
1444
|
},
|
|
1457
|
-
"
|
|
1445
|
+
"core/audits/seo/tap-targets.js | explanationViewportMetaNotOptimized": {
|
|
1458
1446
|
"message": "Tap targets are too small because there's no viewport meta tag optimised for mobile screens"
|
|
1459
1447
|
},
|
|
1460
|
-
"
|
|
1448
|
+
"core/audits/seo/tap-targets.js | failureTitle": {
|
|
1461
1449
|
"message": "Tap targets are not sized appropriately"
|
|
1462
1450
|
},
|
|
1463
|
-
"
|
|
1451
|
+
"core/audits/seo/tap-targets.js | overlappingTargetHeader": {
|
|
1464
1452
|
"message": "Overlapping target"
|
|
1465
1453
|
},
|
|
1466
|
-
"
|
|
1454
|
+
"core/audits/seo/tap-targets.js | tapTargetHeader": {
|
|
1467
1455
|
"message": "Tap target"
|
|
1468
1456
|
},
|
|
1469
|
-
"
|
|
1457
|
+
"core/audits/seo/tap-targets.js | title": {
|
|
1470
1458
|
"message": "Tap targets are sized appropriately"
|
|
1471
1459
|
},
|
|
1472
|
-
"
|
|
1460
|
+
"core/audits/server-response-time.js | description": {
|
|
1473
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/)."
|
|
1474
1462
|
},
|
|
1475
|
-
"
|
|
1463
|
+
"core/audits/server-response-time.js | displayValue": {
|
|
1476
1464
|
"message": "Root document took {timeInMs, number, milliseconds} ms"
|
|
1477
1465
|
},
|
|
1478
|
-
"
|
|
1466
|
+
"core/audits/server-response-time.js | failureTitle": {
|
|
1479
1467
|
"message": "Reduce initial server response time"
|
|
1480
1468
|
},
|
|
1481
|
-
"
|
|
1469
|
+
"core/audits/server-response-time.js | title": {
|
|
1482
1470
|
"message": "Initial server response time was short"
|
|
1483
1471
|
},
|
|
1484
|
-
"
|
|
1472
|
+
"core/audits/service-worker.js | description": {
|
|
1485
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/)."
|
|
1486
1474
|
},
|
|
1487
|
-
"
|
|
1475
|
+
"core/audits/service-worker.js | explanationBadManifest": {
|
|
1488
1476
|
"message": "This page is controlled by a service worker, however no `start_url` was found because manifest failed to parse as valid JSON"
|
|
1489
1477
|
},
|
|
1490
|
-
"
|
|
1478
|
+
"core/audits/service-worker.js | explanationBadStartUrl": {
|
|
1491
1479
|
"message": "This page is controlled by a service worker, however the `start_url` ({startUrl}) is not in the service worker's scope ({scopeUrl})"
|
|
1492
1480
|
},
|
|
1493
|
-
"
|
|
1481
|
+
"core/audits/service-worker.js | explanationNoManifest": {
|
|
1494
1482
|
"message": "This page is controlled by a service worker, however no `start_url` was found because no manifest was fetched."
|
|
1495
1483
|
},
|
|
1496
|
-
"
|
|
1484
|
+
"core/audits/service-worker.js | explanationOutOfScope": {
|
|
1497
1485
|
"message": "This origin has one or more service workers, however the page ({pageUrl}) is not in scope."
|
|
1498
1486
|
},
|
|
1499
|
-
"
|
|
1487
|
+
"core/audits/service-worker.js | failureTitle": {
|
|
1500
1488
|
"message": "Does not register a service worker that controls page and `start_url`"
|
|
1501
1489
|
},
|
|
1502
|
-
"
|
|
1490
|
+
"core/audits/service-worker.js | title": {
|
|
1503
1491
|
"message": "Registers a service worker that controls page and `start_url`"
|
|
1504
1492
|
},
|
|
1505
|
-
"
|
|
1493
|
+
"core/audits/splash-screen.js | description": {
|
|
1506
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/)."
|
|
1507
1495
|
},
|
|
1508
|
-
"
|
|
1496
|
+
"core/audits/splash-screen.js | failureTitle": {
|
|
1509
1497
|
"message": "Is not configured for a custom splash screen"
|
|
1510
1498
|
},
|
|
1511
|
-
"
|
|
1499
|
+
"core/audits/splash-screen.js | title": {
|
|
1512
1500
|
"message": "Configured for a custom splash screen"
|
|
1513
1501
|
},
|
|
1514
|
-
"
|
|
1502
|
+
"core/audits/themed-omnibox.js | description": {
|
|
1515
1503
|
"message": "The browser address bar can be themed to match your site. [Learn more](https://web.dev/themed-omnibox/)."
|
|
1516
1504
|
},
|
|
1517
|
-
"
|
|
1505
|
+
"core/audits/themed-omnibox.js | failureTitle": {
|
|
1518
1506
|
"message": "Does not set a theme colour for the address bar."
|
|
1519
1507
|
},
|
|
1520
|
-
"
|
|
1508
|
+
"core/audits/themed-omnibox.js | title": {
|
|
1521
1509
|
"message": "Sets a theme colour for the address bar."
|
|
1522
1510
|
},
|
|
1523
|
-
"
|
|
1511
|
+
"core/audits/third-party-facades.js | categoryCustomerSuccess": {
|
|
1524
1512
|
"message": "{productName} (Customer success)"
|
|
1525
1513
|
},
|
|
1526
|
-
"
|
|
1514
|
+
"core/audits/third-party-facades.js | categoryMarketing": {
|
|
1527
1515
|
"message": "{productName} (Marketing)"
|
|
1528
1516
|
},
|
|
1529
|
-
"
|
|
1517
|
+
"core/audits/third-party-facades.js | categorySocial": {
|
|
1530
1518
|
"message": "{productName} (Social)"
|
|
1531
1519
|
},
|
|
1532
|
-
"
|
|
1520
|
+
"core/audits/third-party-facades.js | categoryVideo": {
|
|
1533
1521
|
"message": "{productName} (Video)"
|
|
1534
1522
|
},
|
|
1535
|
-
"
|
|
1523
|
+
"core/audits/third-party-facades.js | columnProduct": {
|
|
1536
1524
|
"message": "Product"
|
|
1537
1525
|
},
|
|
1538
|
-
"
|
|
1526
|
+
"core/audits/third-party-facades.js | description": {
|
|
1539
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/)."
|
|
1540
1528
|
},
|
|
1541
|
-
"
|
|
1529
|
+
"core/audits/third-party-facades.js | displayValue": {
|
|
1542
1530
|
"message": "{itemCount,plural, =1{# facade alternative available}other{# facade alternatives available}}"
|
|
1543
1531
|
},
|
|
1544
|
-
"
|
|
1532
|
+
"core/audits/third-party-facades.js | failureTitle": {
|
|
1545
1533
|
"message": "Some third-party resources can be lazy loaded with a facade"
|
|
1546
1534
|
},
|
|
1547
|
-
"
|
|
1535
|
+
"core/audits/third-party-facades.js | title": {
|
|
1548
1536
|
"message": "Lazy load third-party resources with facades"
|
|
1549
1537
|
},
|
|
1550
|
-
"
|
|
1538
|
+
"core/audits/third-party-summary.js | columnThirdParty": {
|
|
1551
1539
|
"message": "Third-party"
|
|
1552
1540
|
},
|
|
1553
|
-
"
|
|
1541
|
+
"core/audits/third-party-summary.js | description": {
|
|
1554
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/)."
|
|
1555
1543
|
},
|
|
1556
|
-
"
|
|
1544
|
+
"core/audits/third-party-summary.js | displayValue": {
|
|
1557
1545
|
"message": "Third-party code blocked the main thread for {timeInMs, number, milliseconds} ms"
|
|
1558
1546
|
},
|
|
1559
|
-
"
|
|
1547
|
+
"core/audits/third-party-summary.js | failureTitle": {
|
|
1560
1548
|
"message": "Reduce the impact of third-party code"
|
|
1561
1549
|
},
|
|
1562
|
-
"
|
|
1550
|
+
"core/audits/third-party-summary.js | title": {
|
|
1563
1551
|
"message": "Minimise third-party usage"
|
|
1564
1552
|
},
|
|
1565
|
-
"
|
|
1553
|
+
"core/audits/timing-budget.js | columnMeasurement": {
|
|
1566
1554
|
"message": "Measurement"
|
|
1567
1555
|
},
|
|
1568
|
-
"
|
|
1556
|
+
"core/audits/timing-budget.js | columnTimingMetric": {
|
|
1569
1557
|
"message": "Metric"
|
|
1570
1558
|
},
|
|
1571
|
-
"
|
|
1559
|
+
"core/audits/timing-budget.js | description": {
|
|
1572
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)."
|
|
1573
1561
|
},
|
|
1574
|
-
"
|
|
1562
|
+
"core/audits/timing-budget.js | title": {
|
|
1575
1563
|
"message": "Timing budget"
|
|
1576
1564
|
},
|
|
1577
|
-
"
|
|
1565
|
+
"core/audits/unsized-images.js | description": {
|
|
1578
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)"
|
|
1579
1567
|
},
|
|
1580
|
-
"
|
|
1568
|
+
"core/audits/unsized-images.js | failureTitle": {
|
|
1581
1569
|
"message": "Image elements do not have explicit `width` and `height`"
|
|
1582
1570
|
},
|
|
1583
|
-
"
|
|
1571
|
+
"core/audits/unsized-images.js | title": {
|
|
1584
1572
|
"message": "Image elements have explicit `width` and `height`"
|
|
1585
1573
|
},
|
|
1586
|
-
"
|
|
1574
|
+
"core/audits/user-timings.js | columnType": {
|
|
1587
1575
|
"message": "Type"
|
|
1588
1576
|
},
|
|
1589
|
-
"
|
|
1577
|
+
"core/audits/user-timings.js | description": {
|
|
1590
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/)."
|
|
1591
1579
|
},
|
|
1592
|
-
"
|
|
1580
|
+
"core/audits/user-timings.js | displayValue": {
|
|
1593
1581
|
"message": "{itemCount,plural, =1{1 user timing}other{# user timings}}"
|
|
1594
1582
|
},
|
|
1595
|
-
"
|
|
1583
|
+
"core/audits/user-timings.js | title": {
|
|
1596
1584
|
"message": "User Timing marks and measures"
|
|
1597
1585
|
},
|
|
1598
|
-
"
|
|
1586
|
+
"core/audits/uses-rel-preconnect.js | crossoriginWarning": {
|
|
1599
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."
|
|
1600
1588
|
},
|
|
1601
|
-
"
|
|
1589
|
+
"core/audits/uses-rel-preconnect.js | description": {
|
|
1602
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/)."
|
|
1603
1591
|
},
|
|
1604
|
-
"
|
|
1592
|
+
"core/audits/uses-rel-preconnect.js | title": {
|
|
1605
1593
|
"message": "Pre-connect to required origins"
|
|
1606
1594
|
},
|
|
1607
|
-
"
|
|
1595
|
+
"core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
|
|
1608
1596
|
"message": "More than two `<link rel=preconnect>` connections were found. These should be used sparingly and only to the most important origins."
|
|
1609
1597
|
},
|
|
1610
|
-
"
|
|
1598
|
+
"core/audits/uses-rel-preconnect.js | unusedWarning": {
|
|
1611
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."
|
|
1612
1600
|
},
|
|
1613
|
-
"
|
|
1601
|
+
"core/audits/uses-rel-preload.js | crossoriginWarning": {
|
|
1614
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."
|
|
1615
1603
|
},
|
|
1616
|
-
"
|
|
1604
|
+
"core/audits/uses-rel-preload.js | description": {
|
|
1617
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/)."
|
|
1618
1606
|
},
|
|
1619
|
-
"
|
|
1607
|
+
"core/audits/uses-rel-preload.js | title": {
|
|
1620
1608
|
"message": "Pre-load key requests"
|
|
1621
1609
|
},
|
|
1622
|
-
"
|
|
1610
|
+
"core/audits/valid-source-maps.js | columnMapURL": {
|
|
1623
1611
|
"message": "Map URL"
|
|
1624
1612
|
},
|
|
1625
|
-
"
|
|
1613
|
+
"core/audits/valid-source-maps.js | description": {
|
|
1626
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)."
|
|
1627
1615
|
},
|
|
1628
|
-
"
|
|
1616
|
+
"core/audits/valid-source-maps.js | failureTitle": {
|
|
1629
1617
|
"message": "Missing source maps for large first-party JavaScript"
|
|
1630
1618
|
},
|
|
1631
|
-
"
|
|
1619
|
+
"core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
|
|
1632
1620
|
"message": "Large JavaScript file is missing a source map"
|
|
1633
1621
|
},
|
|
1634
|
-
"
|
|
1622
|
+
"core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
|
|
1635
1623
|
"message": "{missingItems,plural, =1{Warning: missing 1 item in `.sourcesContent`}other{Warning: missing # items in `.sourcesContent`}}"
|
|
1636
1624
|
},
|
|
1637
|
-
"
|
|
1625
|
+
"core/audits/valid-source-maps.js | title": {
|
|
1638
1626
|
"message": "Page has valid source maps"
|
|
1639
1627
|
},
|
|
1640
|
-
"
|
|
1628
|
+
"core/audits/viewport.js | description": {
|
|
1641
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/)."
|
|
1642
1630
|
},
|
|
1643
|
-
"
|
|
1631
|
+
"core/audits/viewport.js | explanationNoTag": {
|
|
1644
1632
|
"message": "No `<meta name=\"viewport\">` tag found"
|
|
1645
1633
|
},
|
|
1646
|
-
"
|
|
1634
|
+
"core/audits/viewport.js | failureTitle": {
|
|
1647
1635
|
"message": "Does not have a `<meta name=\"viewport\">` tag with `width` or `initial-scale`"
|
|
1648
1636
|
},
|
|
1649
|
-
"
|
|
1637
|
+
"core/audits/viewport.js | title": {
|
|
1650
1638
|
"message": "Has a `<meta name=\"viewport\">` tag with `width` or `initial-scale`"
|
|
1651
1639
|
},
|
|
1652
|
-
"
|
|
1640
|
+
"core/config/default-config.js | a11yAriaGroupDescription": {
|
|
1653
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."
|
|
1654
1642
|
},
|
|
1655
|
-
"
|
|
1643
|
+
"core/config/default-config.js | a11yAriaGroupTitle": {
|
|
1656
1644
|
"message": "ARIA"
|
|
1657
1645
|
},
|
|
1658
|
-
"
|
|
1646
|
+
"core/config/default-config.js | a11yAudioVideoGroupDescription": {
|
|
1659
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."
|
|
1660
1648
|
},
|
|
1661
|
-
"
|
|
1649
|
+
"core/config/default-config.js | a11yAudioVideoGroupTitle": {
|
|
1662
1650
|
"message": "Audio and video"
|
|
1663
1651
|
},
|
|
1664
|
-
"
|
|
1652
|
+
"core/config/default-config.js | a11yBestPracticesGroupDescription": {
|
|
1665
1653
|
"message": "These items highlight common accessibility best practices."
|
|
1666
1654
|
},
|
|
1667
|
-
"
|
|
1655
|
+
"core/config/default-config.js | a11yBestPracticesGroupTitle": {
|
|
1668
1656
|
"message": "Best practices"
|
|
1669
1657
|
},
|
|
1670
|
-
"
|
|
1658
|
+
"core/config/default-config.js | a11yCategoryDescription": {
|
|
1671
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."
|
|
1672
1660
|
},
|
|
1673
|
-
"
|
|
1661
|
+
"core/config/default-config.js | a11yCategoryManualDescription": {
|
|
1674
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)."
|
|
1675
1663
|
},
|
|
1676
|
-
"
|
|
1664
|
+
"core/config/default-config.js | a11yCategoryTitle": {
|
|
1677
1665
|
"message": "Accessibility"
|
|
1678
1666
|
},
|
|
1679
|
-
"
|
|
1667
|
+
"core/config/default-config.js | a11yColorContrastGroupDescription": {
|
|
1680
1668
|
"message": "These are opportunities to improve the legibility of your content."
|
|
1681
1669
|
},
|
|
1682
|
-
"
|
|
1670
|
+
"core/config/default-config.js | a11yColorContrastGroupTitle": {
|
|
1683
1671
|
"message": "Contrast"
|
|
1684
1672
|
},
|
|
1685
|
-
"
|
|
1673
|
+
"core/config/default-config.js | a11yLanguageGroupDescription": {
|
|
1686
1674
|
"message": "These are opportunities to improve the interpretation of your content by users in different locales."
|
|
1687
1675
|
},
|
|
1688
|
-
"
|
|
1676
|
+
"core/config/default-config.js | a11yLanguageGroupTitle": {
|
|
1689
1677
|
"message": "Internationalisation and localisation"
|
|
1690
1678
|
},
|
|
1691
|
-
"
|
|
1679
|
+
"core/config/default-config.js | a11yNamesLabelsGroupDescription": {
|
|
1692
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."
|
|
1693
1681
|
},
|
|
1694
|
-
"
|
|
1682
|
+
"core/config/default-config.js | a11yNamesLabelsGroupTitle": {
|
|
1695
1683
|
"message": "Names and labels"
|
|
1696
1684
|
},
|
|
1697
|
-
"
|
|
1685
|
+
"core/config/default-config.js | a11yNavigationGroupDescription": {
|
|
1698
1686
|
"message": "These are opportunities to improve keyboard navigation in your application."
|
|
1699
1687
|
},
|
|
1700
|
-
"
|
|
1688
|
+
"core/config/default-config.js | a11yNavigationGroupTitle": {
|
|
1701
1689
|
"message": "Navigation"
|
|
1702
1690
|
},
|
|
1703
|
-
"
|
|
1691
|
+
"core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
|
|
1704
1692
|
"message": "These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader."
|
|
1705
1693
|
},
|
|
1706
|
-
"
|
|
1694
|
+
"core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
|
|
1707
1695
|
"message": "Tables and lists"
|
|
1708
1696
|
},
|
|
1709
|
-
"
|
|
1697
|
+
"core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
|
|
1710
1698
|
"message": "Browser compatibility"
|
|
1711
1699
|
},
|
|
1712
|
-
"
|
|
1700
|
+
"core/config/default-config.js | bestPracticesCategoryTitle": {
|
|
1713
1701
|
"message": "Best Practices"
|
|
1714
1702
|
},
|
|
1715
|
-
"
|
|
1703
|
+
"core/config/default-config.js | bestPracticesGeneralGroupTitle": {
|
|
1716
1704
|
"message": "General"
|
|
1717
1705
|
},
|
|
1718
|
-
"
|
|
1706
|
+
"core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
|
|
1719
1707
|
"message": "Trust and safety"
|
|
1720
1708
|
},
|
|
1721
|
-
"
|
|
1709
|
+
"core/config/default-config.js | bestPracticesUXGroupTitle": {
|
|
1722
1710
|
"message": "User experience"
|
|
1723
1711
|
},
|
|
1724
|
-
"
|
|
1712
|
+
"core/config/default-config.js | budgetsGroupDescription": {
|
|
1725
1713
|
"message": "Performance budgets set standards for the performance of your site."
|
|
1726
1714
|
},
|
|
1727
|
-
"
|
|
1715
|
+
"core/config/default-config.js | budgetsGroupTitle": {
|
|
1728
1716
|
"message": "Budgets"
|
|
1729
1717
|
},
|
|
1730
|
-
"
|
|
1718
|
+
"core/config/default-config.js | diagnosticsGroupDescription": {
|
|
1731
1719
|
"message": "More information about the performance of your application. These numbers don't [directly affect](https://web.dev/performance-scoring/) the performance score."
|
|
1732
1720
|
},
|
|
1733
|
-
"
|
|
1721
|
+
"core/config/default-config.js | diagnosticsGroupTitle": {
|
|
1734
1722
|
"message": "Diagnostics"
|
|
1735
1723
|
},
|
|
1736
|
-
"
|
|
1724
|
+
"core/config/default-config.js | firstPaintImprovementsGroupDescription": {
|
|
1737
1725
|
"message": "The most critical aspect of performance is how quickly pixels are rendered onscreen. Key metrics: First Contentful Paint, First Meaningful Paint"
|
|
1738
1726
|
},
|
|
1739
|
-
"
|
|
1727
|
+
"core/config/default-config.js | firstPaintImprovementsGroupTitle": {
|
|
1740
1728
|
"message": "First Paint Improvements"
|
|
1741
1729
|
},
|
|
1742
|
-
"
|
|
1730
|
+
"core/config/default-config.js | loadOpportunitiesGroupDescription": {
|
|
1743
1731
|
"message": "These suggestions can help your page load faster. They don't [directly affect](https://web.dev/performance-scoring/) the performance score."
|
|
1744
1732
|
},
|
|
1745
|
-
"
|
|
1733
|
+
"core/config/default-config.js | loadOpportunitiesGroupTitle": {
|
|
1746
1734
|
"message": "Opportunities"
|
|
1747
1735
|
},
|
|
1748
|
-
"
|
|
1736
|
+
"core/config/default-config.js | metricGroupTitle": {
|
|
1749
1737
|
"message": "Metrics"
|
|
1750
1738
|
},
|
|
1751
|
-
"
|
|
1739
|
+
"core/config/default-config.js | overallImprovementsGroupDescription": {
|
|
1752
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"
|
|
1753
1741
|
},
|
|
1754
|
-
"
|
|
1742
|
+
"core/config/default-config.js | overallImprovementsGroupTitle": {
|
|
1755
1743
|
"message": "Overall Improvements"
|
|
1756
1744
|
},
|
|
1757
|
-
"
|
|
1745
|
+
"core/config/default-config.js | performanceCategoryTitle": {
|
|
1758
1746
|
"message": "Performance"
|
|
1759
1747
|
},
|
|
1760
|
-
"
|
|
1748
|
+
"core/config/default-config.js | pwaCategoryDescription": {
|
|
1761
1749
|
"message": "These checks validate the aspects of a progressive web app. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist)."
|
|
1762
1750
|
},
|
|
1763
|
-
"
|
|
1751
|
+
"core/config/default-config.js | pwaCategoryManualDescription": {
|
|
1764
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."
|
|
1765
1753
|
},
|
|
1766
|
-
"
|
|
1754
|
+
"core/config/default-config.js | pwaCategoryTitle": {
|
|
1767
1755
|
"message": "PWA"
|
|
1768
1756
|
},
|
|
1769
|
-
"
|
|
1757
|
+
"core/config/default-config.js | pwaInstallableGroupTitle": {
|
|
1770
1758
|
"message": "Installable"
|
|
1771
1759
|
},
|
|
1772
|
-
"
|
|
1760
|
+
"core/config/default-config.js | pwaOptimizedGroupTitle": {
|
|
1773
1761
|
"message": "PWA Optimised"
|
|
1774
1762
|
},
|
|
1775
|
-
"
|
|
1763
|
+
"core/config/default-config.js | seoCategoryDescription": {
|
|
1776
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)."
|
|
1777
1765
|
},
|
|
1778
|
-
"
|
|
1766
|
+
"core/config/default-config.js | seoCategoryManualDescription": {
|
|
1779
1767
|
"message": "Run these additional validators on your site to check additional SEO best practices."
|
|
1780
1768
|
},
|
|
1781
|
-
"
|
|
1769
|
+
"core/config/default-config.js | seoCategoryTitle": {
|
|
1782
1770
|
"message": "SEO"
|
|
1783
1771
|
},
|
|
1784
|
-
"
|
|
1772
|
+
"core/config/default-config.js | seoContentGroupDescription": {
|
|
1785
1773
|
"message": "Format your HTML in a way that enables crawlers to better understand your app’s content."
|
|
1786
1774
|
},
|
|
1787
|
-
"
|
|
1775
|
+
"core/config/default-config.js | seoContentGroupTitle": {
|
|
1788
1776
|
"message": "Content Best Practices"
|
|
1789
1777
|
},
|
|
1790
|
-
"
|
|
1778
|
+
"core/config/default-config.js | seoCrawlingGroupDescription": {
|
|
1791
1779
|
"message": "To appear in search results, crawlers need access to your app."
|
|
1792
1780
|
},
|
|
1793
|
-
"
|
|
1781
|
+
"core/config/default-config.js | seoCrawlingGroupTitle": {
|
|
1794
1782
|
"message": "Crawling and Indexing"
|
|
1795
1783
|
},
|
|
1796
|
-
"
|
|
1784
|
+
"core/config/default-config.js | seoMobileGroupDescription": {
|
|
1797
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/)."
|
|
1798
1786
|
},
|
|
1799
|
-
"
|
|
1787
|
+
"core/config/default-config.js | seoMobileGroupTitle": {
|
|
1800
1788
|
"message": "Mobile friendly"
|
|
1801
1789
|
},
|
|
1802
|
-
"
|
|
1790
|
+
"core/gather/driver/environment.js | warningSlowHostCpu": {
|
|
1803
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)."
|
|
1804
1792
|
},
|
|
1805
|
-
"
|
|
1793
|
+
"core/gather/driver/navigation.js | warningRedirected": {
|
|
1806
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."
|
|
1807
1795
|
},
|
|
1808
|
-
"
|
|
1796
|
+
"core/gather/driver/navigation.js | warningTimeout": {
|
|
1809
1797
|
"message": "The page loaded too slowly to finish within the time limit. Results may be incomplete."
|
|
1810
1798
|
},
|
|
1811
|
-
"
|
|
1799
|
+
"core/gather/driver/storage.js | warningData": {
|
|
1812
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.}}"
|
|
1813
1801
|
},
|
|
1814
|
-
"
|
|
1802
|
+
"core/lib/csp-evaluator.js | allowlistFallback": {
|
|
1815
1803
|
"message": "Consider adding https: and http: URL schemes (ignored by browsers supporting 'strict-dynamic') to be backward compatible with older browsers."
|
|
1816
1804
|
},
|
|
1817
|
-
"
|
|
1805
|
+
"core/lib/csp-evaluator.js | deprecatedDisownOpener": {
|
|
1818
1806
|
"message": "disown-opener is deprecated since CSP3. Please use the Cross-Origin-Opener-Policy header instead."
|
|
1819
1807
|
},
|
|
1820
|
-
"
|
|
1808
|
+
"core/lib/csp-evaluator.js | deprecatedReferrer": {
|
|
1821
1809
|
"message": "referrer is deprecated since CSP2. Please use the Referrer-Policy header instead."
|
|
1822
1810
|
},
|
|
1823
|
-
"
|
|
1811
|
+
"core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
|
|
1824
1812
|
"message": "reflected-xss is deprecated since CSP2. Please use the X-XSS-Protection header instead."
|
|
1825
1813
|
},
|
|
1826
|
-
"
|
|
1814
|
+
"core/lib/csp-evaluator.js | missingBaseUri": {
|
|
1827
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'."
|
|
1828
1816
|
},
|
|
1829
|
-
"
|
|
1817
|
+
"core/lib/csp-evaluator.js | missingObjectSrc": {
|
|
1830
1818
|
"message": "Missing object-src allows the injection of plug-ins that execute unsafe scripts. Consider setting object-src to 'none' if you can."
|
|
1831
1819
|
},
|
|
1832
|
-
"
|
|
1820
|
+
"core/lib/csp-evaluator.js | missingScriptSrc": {
|
|
1833
1821
|
"message": "script-src directive is missing. This can allow the execution of unsafe scripts."
|
|
1834
1822
|
},
|
|
1835
|
-
"
|
|
1823
|
+
"core/lib/csp-evaluator.js | missingSemicolon": {
|
|
1836
1824
|
"message": "Did you forget the semicolon? {keyword} seems to be a directive, not a keyword."
|
|
1837
1825
|
},
|
|
1838
|
-
"
|
|
1826
|
+
"core/lib/csp-evaluator.js | nonceCharset": {
|
|
1839
1827
|
"message": "Nonces should use the base64 charset."
|
|
1840
1828
|
},
|
|
1841
|
-
"
|
|
1829
|
+
"core/lib/csp-evaluator.js | nonceLength": {
|
|
1842
1830
|
"message": "Nonces should be at least eight characters long."
|
|
1843
1831
|
},
|
|
1844
|
-
"
|
|
1832
|
+
"core/lib/csp-evaluator.js | plainUrlScheme": {
|
|
1845
1833
|
"message": "Avoid using plain URL schemes ({keyword}) in this directive. Plain URL schemes allow scripts to be sourced from an unsafe domain."
|
|
1846
1834
|
},
|
|
1847
|
-
"
|
|
1835
|
+
"core/lib/csp-evaluator.js | plainWildcards": {
|
|
1848
1836
|
"message": "Avoid using plain wildcards ({keyword}) in this directive. Plain wildcards allow scripts to be sourced from an unsafe domain."
|
|
1849
1837
|
},
|
|
1850
|
-
"
|
|
1838
|
+
"core/lib/csp-evaluator.js | reportToOnly": {
|
|
1851
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."
|
|
1852
1840
|
},
|
|
1853
|
-
"
|
|
1841
|
+
"core/lib/csp-evaluator.js | reportingDestinationMissing": {
|
|
1854
1842
|
"message": "No CSP configures a reporting destination. This makes it difficult to maintain the CSP over time and monitor for any breakages."
|
|
1855
1843
|
},
|
|
1856
|
-
"
|
|
1844
|
+
"core/lib/csp-evaluator.js | strictDynamic": {
|
|
1857
1845
|
"message": "Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with 'strict-dynamic' if necessary."
|
|
1858
1846
|
},
|
|
1859
|
-
"
|
|
1847
|
+
"core/lib/csp-evaluator.js | unknownDirective": {
|
|
1860
1848
|
"message": "Unknown CSP directive."
|
|
1861
1849
|
},
|
|
1862
|
-
"
|
|
1850
|
+
"core/lib/csp-evaluator.js | unknownKeyword": {
|
|
1863
1851
|
"message": "{keyword} seems to be an invalid keyword."
|
|
1864
1852
|
},
|
|
1865
|
-
"
|
|
1853
|
+
"core/lib/csp-evaluator.js | unsafeInline": {
|
|
1866
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."
|
|
1867
1855
|
},
|
|
1868
|
-
"
|
|
1856
|
+
"core/lib/csp-evaluator.js | unsafeInlineFallback": {
|
|
1869
1857
|
"message": "Consider adding 'unsafe-inline' (ignored by browsers supporting nonces/hashes) to be backward compatible with older browsers."
|
|
1870
1858
|
},
|
|
1871
|
-
"
|
|
1859
|
+
"core/lib/i18n/i18n.js | columnBlockingTime": {
|
|
1872
1860
|
"message": "Main-thread blocking time"
|
|
1873
1861
|
},
|
|
1874
|
-
"
|
|
1862
|
+
"core/lib/i18n/i18n.js | columnCacheTTL": {
|
|
1875
1863
|
"message": "Cache TTL"
|
|
1876
1864
|
},
|
|
1877
|
-
"
|
|
1865
|
+
"core/lib/i18n/i18n.js | columnDescription": {
|
|
1878
1866
|
"message": "Description"
|
|
1879
1867
|
},
|
|
1880
|
-
"
|
|
1868
|
+
"core/lib/i18n/i18n.js | columnDuration": {
|
|
1881
1869
|
"message": "Duration"
|
|
1882
1870
|
},
|
|
1883
|
-
"
|
|
1871
|
+
"core/lib/i18n/i18n.js | columnElement": {
|
|
1884
1872
|
"message": "Element"
|
|
1885
1873
|
},
|
|
1886
|
-
"
|
|
1874
|
+
"core/lib/i18n/i18n.js | columnFailingElem": {
|
|
1887
1875
|
"message": "Failing elements"
|
|
1888
1876
|
},
|
|
1889
|
-
"
|
|
1877
|
+
"core/lib/i18n/i18n.js | columnLocation": {
|
|
1890
1878
|
"message": "Location"
|
|
1891
1879
|
},
|
|
1892
|
-
"
|
|
1880
|
+
"core/lib/i18n/i18n.js | columnName": {
|
|
1893
1881
|
"message": "Name"
|
|
1894
1882
|
},
|
|
1895
|
-
"
|
|
1883
|
+
"core/lib/i18n/i18n.js | columnOverBudget": {
|
|
1896
1884
|
"message": "Over budget"
|
|
1897
1885
|
},
|
|
1898
|
-
"
|
|
1886
|
+
"core/lib/i18n/i18n.js | columnRequests": {
|
|
1899
1887
|
"message": "Requests"
|
|
1900
1888
|
},
|
|
1901
|
-
"
|
|
1889
|
+
"core/lib/i18n/i18n.js | columnResourceSize": {
|
|
1902
1890
|
"message": "Resource size"
|
|
1903
1891
|
},
|
|
1904
|
-
"
|
|
1892
|
+
"core/lib/i18n/i18n.js | columnResourceType": {
|
|
1905
1893
|
"message": "Resource type"
|
|
1906
1894
|
},
|
|
1907
|
-
"
|
|
1895
|
+
"core/lib/i18n/i18n.js | columnSize": {
|
|
1908
1896
|
"message": "Size"
|
|
1909
1897
|
},
|
|
1910
|
-
"
|
|
1898
|
+
"core/lib/i18n/i18n.js | columnSource": {
|
|
1911
1899
|
"message": "Source"
|
|
1912
1900
|
},
|
|
1913
|
-
"
|
|
1901
|
+
"core/lib/i18n/i18n.js | columnStartTime": {
|
|
1914
1902
|
"message": "Start Time"
|
|
1915
1903
|
},
|
|
1916
|
-
"
|
|
1904
|
+
"core/lib/i18n/i18n.js | columnTimeSpent": {
|
|
1917
1905
|
"message": "Time Spent"
|
|
1918
1906
|
},
|
|
1919
|
-
"
|
|
1907
|
+
"core/lib/i18n/i18n.js | columnTransferSize": {
|
|
1920
1908
|
"message": "Transfer size"
|
|
1921
1909
|
},
|
|
1922
|
-
"
|
|
1910
|
+
"core/lib/i18n/i18n.js | columnURL": {
|
|
1923
1911
|
"message": "URL"
|
|
1924
1912
|
},
|
|
1925
|
-
"
|
|
1913
|
+
"core/lib/i18n/i18n.js | columnWastedBytes": {
|
|
1926
1914
|
"message": "Potential savings"
|
|
1927
1915
|
},
|
|
1928
|
-
"
|
|
1916
|
+
"core/lib/i18n/i18n.js | columnWastedMs": {
|
|
1929
1917
|
"message": "Potential Savings"
|
|
1930
1918
|
},
|
|
1931
|
-
"
|
|
1919
|
+
"core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
|
|
1932
1920
|
"message": "Cumulative Layout Shift"
|
|
1933
1921
|
},
|
|
1934
|
-
"
|
|
1922
|
+
"core/lib/i18n/i18n.js | displayValueByteSavings": {
|
|
1935
1923
|
"message": "Potential savings of {wastedBytes, number, bytes} KiB"
|
|
1936
1924
|
},
|
|
1937
|
-
"
|
|
1925
|
+
"core/lib/i18n/i18n.js | displayValueElementsFound": {
|
|
1938
1926
|
"message": "{nodeCount,plural, =1{1 element found}other{# elements found}}"
|
|
1939
1927
|
},
|
|
1940
|
-
"
|
|
1928
|
+
"core/lib/i18n/i18n.js | displayValueMsSavings": {
|
|
1941
1929
|
"message": "Potential savings of {wastedMs, number, milliseconds} ms"
|
|
1942
1930
|
},
|
|
1943
|
-
"
|
|
1931
|
+
"core/lib/i18n/i18n.js | documentResourceType": {
|
|
1944
1932
|
"message": "Document"
|
|
1945
1933
|
},
|
|
1946
|
-
"
|
|
1934
|
+
"core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
|
|
1947
1935
|
"message": "First Contentful Paint"
|
|
1948
1936
|
},
|
|
1949
|
-
"
|
|
1937
|
+
"core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
|
|
1950
1938
|
"message": "First Meaningful Paint"
|
|
1951
1939
|
},
|
|
1952
|
-
"
|
|
1940
|
+
"core/lib/i18n/i18n.js | fontResourceType": {
|
|
1953
1941
|
"message": "Font"
|
|
1954
1942
|
},
|
|
1955
|
-
"
|
|
1943
|
+
"core/lib/i18n/i18n.js | imageResourceType": {
|
|
1956
1944
|
"message": "Image"
|
|
1957
1945
|
},
|
|
1958
|
-
"
|
|
1946
|
+
"core/lib/i18n/i18n.js | interactiveMetric": {
|
|
1959
1947
|
"message": "Time to Interactive"
|
|
1960
1948
|
},
|
|
1961
|
-
"
|
|
1949
|
+
"core/lib/i18n/i18n.js | itemSeverityHigh": {
|
|
1962
1950
|
"message": "High"
|
|
1963
1951
|
},
|
|
1964
|
-
"
|
|
1952
|
+
"core/lib/i18n/i18n.js | itemSeverityLow": {
|
|
1965
1953
|
"message": "Low"
|
|
1966
1954
|
},
|
|
1967
|
-
"
|
|
1955
|
+
"core/lib/i18n/i18n.js | itemSeverityMedium": {
|
|
1968
1956
|
"message": "Medium"
|
|
1969
1957
|
},
|
|
1970
|
-
"
|
|
1958
|
+
"core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
|
|
1971
1959
|
"message": "Largest Contentful Paint"
|
|
1972
1960
|
},
|
|
1973
|
-
"
|
|
1961
|
+
"core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
|
|
1974
1962
|
"message": "Max potential first input delay"
|
|
1975
1963
|
},
|
|
1976
|
-
"
|
|
1964
|
+
"core/lib/i18n/i18n.js | mediaResourceType": {
|
|
1977
1965
|
"message": "Media"
|
|
1978
1966
|
},
|
|
1979
|
-
"
|
|
1967
|
+
"core/lib/i18n/i18n.js | ms": {
|
|
1980
1968
|
"message": "{timeInMs, number, milliseconds} ms"
|
|
1981
1969
|
},
|
|
1982
|
-
"
|
|
1970
|
+
"core/lib/i18n/i18n.js | otherResourceType": {
|
|
1983
1971
|
"message": "Other"
|
|
1984
1972
|
},
|
|
1985
|
-
"
|
|
1973
|
+
"core/lib/i18n/i18n.js | otherResourcesLabel": {
|
|
1986
1974
|
"message": "Other resources"
|
|
1987
1975
|
},
|
|
1988
|
-
"
|
|
1976
|
+
"core/lib/i18n/i18n.js | scriptResourceType": {
|
|
1989
1977
|
"message": "Script"
|
|
1990
1978
|
},
|
|
1991
|
-
"
|
|
1979
|
+
"core/lib/i18n/i18n.js | seconds": {
|
|
1992
1980
|
"message": "{timeInMs, number, seconds} s"
|
|
1993
1981
|
},
|
|
1994
|
-
"
|
|
1982
|
+
"core/lib/i18n/i18n.js | speedIndexMetric": {
|
|
1995
1983
|
"message": "Speed Index"
|
|
1996
1984
|
},
|
|
1997
|
-
"
|
|
1985
|
+
"core/lib/i18n/i18n.js | stylesheetResourceType": {
|
|
1998
1986
|
"message": "Stylesheet"
|
|
1999
1987
|
},
|
|
2000
|
-
"
|
|
1988
|
+
"core/lib/i18n/i18n.js | thirdPartyResourceType": {
|
|
2001
1989
|
"message": "Third-party"
|
|
2002
1990
|
},
|
|
2003
|
-
"
|
|
1991
|
+
"core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
|
|
2004
1992
|
"message": "Total Blocking Time"
|
|
2005
1993
|
},
|
|
2006
|
-
"
|
|
1994
|
+
"core/lib/i18n/i18n.js | totalResourceType": {
|
|
2007
1995
|
"message": "Total"
|
|
2008
1996
|
},
|
|
2009
|
-
"
|
|
1997
|
+
"core/lib/lh-error.js | badTraceRecording": {
|
|
2010
1998
|
"message": "Something went wrong with recording the trace over your page load. Please run Lighthouse again. ({errorCode})"
|
|
2011
1999
|
},
|
|
2012
|
-
"
|
|
2000
|
+
"core/lib/lh-error.js | criTimeout": {
|
|
2013
2001
|
"message": "Timeout waiting for initial Debugger Protocol connection."
|
|
2014
2002
|
},
|
|
2015
|
-
"
|
|
2003
|
+
"core/lib/lh-error.js | didntCollectScreenshots": {
|
|
2016
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})"
|
|
2017
2005
|
},
|
|
2018
|
-
"
|
|
2006
|
+
"core/lib/lh-error.js | dnsFailure": {
|
|
2019
2007
|
"message": "DNS servers could not resolve the provided domain."
|
|
2020
2008
|
},
|
|
2021
|
-
"
|
|
2009
|
+
"core/lib/lh-error.js | erroredRequiredArtifact": {
|
|
2022
2010
|
"message": "Required {artifactName} gatherer encountered an error: {errorMessage}"
|
|
2023
2011
|
},
|
|
2024
|
-
"
|
|
2012
|
+
"core/lib/lh-error.js | internalChromeError": {
|
|
2025
2013
|
"message": "An internal Chrome error occurred. Please restart Chrome and try re-running Lighthouse."
|
|
2026
2014
|
},
|
|
2027
|
-
"
|
|
2015
|
+
"core/lib/lh-error.js | missingRequiredArtifact": {
|
|
2028
2016
|
"message": "Required {artifactName} gatherer did not run."
|
|
2029
2017
|
},
|
|
2030
|
-
"
|
|
2018
|
+
"core/lib/lh-error.js | noFcp": {
|
|
2031
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})"
|
|
2032
2020
|
},
|
|
2033
|
-
"
|
|
2021
|
+
"core/lib/lh-error.js | notHtml": {
|
|
2034
2022
|
"message": "The page provided is not HTML (served as MIME type {mimeType})."
|
|
2035
2023
|
},
|
|
2036
|
-
"
|
|
2024
|
+
"core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
|
|
2037
2025
|
"message": "This version of Chrome is too old to support '{featureName}'. Use a newer version to see full results."
|
|
2038
2026
|
},
|
|
2039
|
-
"
|
|
2027
|
+
"core/lib/lh-error.js | pageLoadFailed": {
|
|
2040
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."
|
|
2041
2029
|
},
|
|
2042
|
-
"
|
|
2030
|
+
"core/lib/lh-error.js | pageLoadFailedHung": {
|
|
2043
2031
|
"message": "Lighthouse was unable to reliably load the URL that you requested because the page stopped responding."
|
|
2044
2032
|
},
|
|
2045
|
-
"
|
|
2033
|
+
"core/lib/lh-error.js | pageLoadFailedInsecure": {
|
|
2046
2034
|
"message": "The URL you have provided does not have a valid security certificate. {securityMessages}"
|
|
2047
2035
|
},
|
|
2048
|
-
"
|
|
2036
|
+
"core/lib/lh-error.js | pageLoadFailedInterstitial": {
|
|
2049
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."
|
|
2050
2038
|
},
|
|
2051
|
-
"
|
|
2039
|
+
"core/lib/lh-error.js | pageLoadFailedWithDetails": {
|
|
2052
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})"
|
|
2053
2041
|
},
|
|
2054
|
-
"
|
|
2042
|
+
"core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
|
|
2055
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})"
|
|
2056
2044
|
},
|
|
2057
|
-
"
|
|
2045
|
+
"core/lib/lh-error.js | pageLoadTookTooLong": {
|
|
2058
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})"
|
|
2059
2047
|
},
|
|
2060
|
-
"
|
|
2048
|
+
"core/lib/lh-error.js | protocolTimeout": {
|
|
2061
2049
|
"message": "Waiting for DevTools protocol response has exceeded the allotted time. (Method: {protocolMethod})"
|
|
2062
2050
|
},
|
|
2063
|
-
"
|
|
2051
|
+
"core/lib/lh-error.js | requestContentTimeout": {
|
|
2064
2052
|
"message": "Fetching resource content has exceeded the allotted time"
|
|
2065
2053
|
},
|
|
2066
|
-
"
|
|
2054
|
+
"core/lib/lh-error.js | urlInvalid": {
|
|
2067
2055
|
"message": "The URL that you have provided appears to be invalid."
|
|
2068
2056
|
},
|
|
2069
2057
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|