lighthouse 9.6.8 → 10.0.0-dev.20230210
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/.gitattributes +4 -1
- package/CONTRIBUTING.md +15 -15
- package/build-tracker.config.js +0 -1
- package/changelog-pre10.md +6085 -0
- package/cli/bin.d.ts +5 -0
- package/cli/bin.js +140 -0
- package/cli/cli-flags.d.ts +258 -0
- package/cli/cli-flags.js +553 -0
- package/cli/commands/commands.d.ts +4 -0
- package/cli/commands/commands.js +9 -0
- package/cli/commands/list-audits.d.ts +2 -0
- package/cli/commands/list-audits.js +15 -0
- package/cli/commands/list-locales.d.ts +2 -0
- package/cli/commands/list-locales.js +15 -0
- package/cli/commands/list-trace-categories.d.ts +2 -0
- package/cli/commands/list-trace-categories.js +14 -0
- package/cli/index.d.ts +3 -0
- package/cli/index.js +10 -0
- package/cli/printer.d.ts +28 -0
- package/cli/printer.js +99 -0
- package/cli/run.d.ts +24 -0
- package/cli/run.js +284 -0
- package/cli/sentry-prompt.d.ts +5 -0
- package/cli/sentry-prompt.js +78 -0
- package/cli/test/smokehouse/__snapshots__/report-assert-test.js.snap +71 -0
- package/cli/test/smokehouse/config/exclusions.d.ts +12 -0
- package/cli/test/smokehouse/config/exclusions.js +36 -0
- package/cli/test/smokehouse/core-tests.d.ts +4 -0
- package/cli/test/smokehouse/core-tests.js +134 -0
- package/cli/test/smokehouse/frontends/back-compat-util.d.ts +16 -0
- package/cli/test/smokehouse/frontends/back-compat-util.js +41 -0
- package/cli/test/smokehouse/frontends/lib.d.ts +8 -0
- package/cli/test/smokehouse/frontends/lib.js +48 -0
- package/cli/test/smokehouse/frontends/node.d.ts +2 -0
- package/cli/test/smokehouse/frontends/node.js +12 -0
- package/cli/test/smokehouse/frontends/smokehouse-bin.d.ts +3 -0
- package/cli/test/smokehouse/frontends/smokehouse-bin.js +258 -0
- package/cli/test/smokehouse/lib/child-process-error.d.ts +21 -0
- package/cli/test/smokehouse/lib/child-process-error.js +25 -0
- package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +78 -0
- package/cli/test/smokehouse/lib/concurrent-mapper.js +125 -0
- package/cli/test/smokehouse/lib/local-console.d.ts +33 -0
- package/cli/test/smokehouse/lib/local-console.js +50 -0
- package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +16 -0
- package/cli/test/smokehouse/lighthouse-runners/bundle.js +158 -0
- package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +18 -0
- package/cli/test/smokehouse/lighthouse-runners/cli.js +134 -0
- package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +23 -0
- package/cli/test/smokehouse/lighthouse-runners/devtools.js +72 -0
- package/cli/test/smokehouse/readme.md +208 -0
- package/cli/test/smokehouse/report-assert-test.d.ts +2 -0
- package/cli/test/smokehouse/report-assert-test.js +298 -0
- package/cli/test/smokehouse/report-assert.d.ts +50 -0
- package/cli/test/smokehouse/report-assert.js +520 -0
- package/cli/test/smokehouse/smokehouse.d.ts +35 -0
- package/cli/test/smokehouse/smokehouse.js +336 -0
- package/cli/test/smokehouse/version-check-test.d.ts +2 -0
- package/cli/test/smokehouse/version-check-test.js +43 -0
- package/cli/test/smokehouse/version-check.d.ts +15 -0
- package/cli/test/smokehouse/version-check.js +48 -0
- package/commitlint.config.js +0 -1
- package/core/audits/accessibility/accesskeys.d.ts +10 -0
- package/core/audits/accessibility/accesskeys.js +44 -0
- package/core/audits/accessibility/aria-allowed-attr.d.ts +10 -0
- package/core/audits/accessibility/aria-allowed-attr.js +44 -0
- package/core/audits/accessibility/aria-command-name.d.ts +10 -0
- package/core/audits/accessibility/aria-command-name.js +42 -0
- package/core/audits/accessibility/aria-hidden-body.d.ts +10 -0
- package/core/audits/accessibility/aria-hidden-body.js +42 -0
- package/core/audits/accessibility/aria-hidden-focus.d.ts +10 -0
- package/core/audits/accessibility/aria-hidden-focus.js +42 -0
- package/core/audits/accessibility/aria-input-field-name.d.ts +10 -0
- package/core/audits/accessibility/aria-input-field-name.js +42 -0
- package/core/audits/accessibility/aria-meter-name.d.ts +10 -0
- package/core/audits/accessibility/aria-meter-name.js +42 -0
- package/core/audits/accessibility/aria-progressbar-name.d.ts +10 -0
- package/core/audits/accessibility/aria-progressbar-name.js +42 -0
- package/core/audits/accessibility/aria-required-attr.d.ts +10 -0
- package/core/audits/accessibility/aria-required-attr.js +43 -0
- package/core/audits/accessibility/aria-required-children.d.ts +10 -0
- package/core/audits/accessibility/aria-required-children.js +47 -0
- package/core/audits/accessibility/aria-required-parent.d.ts +10 -0
- package/core/audits/accessibility/aria-required-parent.js +45 -0
- package/core/audits/accessibility/aria-roles.d.ts +10 -0
- package/core/audits/accessibility/aria-roles.js +44 -0
- package/core/audits/accessibility/aria-toggle-field-name.d.ts +10 -0
- package/core/audits/accessibility/aria-toggle-field-name.js +42 -0
- package/core/audits/accessibility/aria-tooltip-name.d.ts +10 -0
- package/core/audits/accessibility/aria-tooltip-name.js +42 -0
- package/core/audits/accessibility/aria-treeitem-name.d.ts +10 -0
- package/core/audits/accessibility/aria-treeitem-name.js +42 -0
- package/core/audits/accessibility/aria-valid-attr-value.d.ts +10 -0
- package/core/audits/accessibility/aria-valid-attr-value.js +44 -0
- package/core/audits/accessibility/aria-valid-attr.d.ts +10 -0
- package/core/audits/accessibility/aria-valid-attr.js +44 -0
- package/core/audits/accessibility/axe-audit.d.ts +17 -0
- package/core/audits/accessibility/axe-audit.js +113 -0
- package/core/audits/accessibility/button-name.d.ts +10 -0
- package/core/audits/accessibility/button-name.js +44 -0
- package/core/audits/accessibility/bypass.d.ts +10 -0
- package/core/audits/accessibility/bypass.js +46 -0
- package/core/audits/accessibility/color-contrast.d.ts +10 -0
- package/core/audits/accessibility/color-contrast.js +45 -0
- package/core/audits/accessibility/definition-list.d.ts +10 -0
- package/core/audits/accessibility/definition-list.js +46 -0
- package/core/audits/accessibility/dlitem.d.ts +10 -0
- package/core/audits/accessibility/dlitem.js +44 -0
- package/core/audits/accessibility/document-title.d.ts +10 -0
- package/core/audits/accessibility/document-title.js +44 -0
- package/core/audits/accessibility/duplicate-id-active.d.ts +10 -0
- package/core/audits/accessibility/duplicate-id-active.js +42 -0
- package/core/audits/accessibility/duplicate-id-aria.d.ts +10 -0
- package/core/audits/accessibility/duplicate-id-aria.js +42 -0
- package/core/audits/accessibility/form-field-multiple-labels.d.ts +10 -0
- package/core/audits/accessibility/form-field-multiple-labels.js +43 -0
- package/core/audits/accessibility/frame-title.d.ts +10 -0
- package/core/audits/accessibility/frame-title.js +43 -0
- package/core/audits/accessibility/heading-order.d.ts +10 -0
- package/core/audits/accessibility/heading-order.js +42 -0
- package/core/audits/accessibility/html-has-lang.d.ts +10 -0
- package/core/audits/accessibility/html-has-lang.js +46 -0
- package/core/audits/accessibility/html-lang-valid.d.ts +10 -0
- package/core/audits/accessibility/html-lang-valid.js +45 -0
- package/core/audits/accessibility/image-alt.d.ts +10 -0
- package/core/audits/accessibility/image-alt.js +44 -0
- package/core/audits/accessibility/input-image-alt.d.ts +10 -0
- package/core/audits/accessibility/input-image-alt.js +44 -0
- package/core/audits/accessibility/label.d.ts +10 -0
- package/core/audits/accessibility/label.js +44 -0
- package/core/audits/accessibility/link-name.d.ts +10 -0
- package/core/audits/accessibility/link-name.js +45 -0
- package/core/audits/accessibility/list.d.ts +10 -0
- package/core/audits/accessibility/list.js +46 -0
- package/core/audits/accessibility/listitem.d.ts +10 -0
- package/core/audits/accessibility/listitem.js +45 -0
- package/core/audits/accessibility/manual/custom-controls-labels.d.ts +8 -0
- package/core/audits/accessibility/manual/custom-controls-labels.js +27 -0
- package/core/audits/accessibility/manual/custom-controls-roles.d.ts +8 -0
- package/core/audits/accessibility/manual/custom-controls-roles.js +27 -0
- package/core/audits/accessibility/manual/focus-traps.d.ts +8 -0
- package/core/audits/accessibility/manual/focus-traps.js +27 -0
- package/core/audits/accessibility/manual/focusable-controls.d.ts +8 -0
- package/core/audits/accessibility/manual/focusable-controls.js +27 -0
- package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +8 -0
- package/core/audits/accessibility/manual/interactive-element-affordance.js +27 -0
- package/core/audits/accessibility/manual/logical-tab-order.d.ts +8 -0
- package/core/audits/accessibility/manual/logical-tab-order.js +27 -0
- package/core/audits/accessibility/manual/managed-focus.d.ts +8 -0
- package/core/audits/accessibility/manual/managed-focus.js +27 -0
- package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +9 -0
- package/core/audits/accessibility/manual/offscreen-content-hidden.js +28 -0
- package/core/audits/accessibility/manual/use-landmarks.d.ts +8 -0
- package/core/audits/accessibility/manual/use-landmarks.js +27 -0
- package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +8 -0
- package/core/audits/accessibility/manual/visual-order-follows-dom.js +27 -0
- package/core/audits/accessibility/meta-refresh.d.ts +10 -0
- package/core/audits/accessibility/meta-refresh.js +45 -0
- package/core/audits/accessibility/meta-viewport.d.ts +10 -0
- package/core/audits/accessibility/meta-viewport.js +46 -0
- package/core/audits/accessibility/object-alt.d.ts +10 -0
- package/core/audits/accessibility/object-alt.js +44 -0
- package/core/audits/accessibility/tabindex.d.ts +10 -0
- package/core/audits/accessibility/tabindex.js +44 -0
- package/core/audits/accessibility/td-headers-attr.d.ts +10 -0
- package/core/audits/accessibility/td-headers-attr.js +48 -0
- package/core/audits/accessibility/th-has-data-cells.d.ts +10 -0
- package/core/audits/accessibility/th-has-data-cells.js +48 -0
- package/core/audits/accessibility/valid-lang.d.ts +10 -0
- package/core/audits/accessibility/valid-lang.js +44 -0
- package/core/audits/accessibility/video-caption.d.ts +10 -0
- package/core/audits/accessibility/video-caption.js +46 -0
- package/core/audits/audit.d.ts +157 -0
- package/core/audits/audit.js +405 -0
- package/core/audits/autocomplete.d.ts +36 -0
- package/core/audits/autocomplete.js +290 -0
- package/core/audits/bf-cache.d.ts +21 -0
- package/core/audits/bf-cache.js +120 -0
- package/core/audits/bootup-time.d.ts +26 -0
- package/core/audits/bootup-time.js +151 -0
- package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +82 -0
- package/core/audits/byte-efficiency/byte-efficiency-audit.js +260 -0
- package/core/audits/byte-efficiency/duplicated-javascript.d.ts +52 -0
- package/core/audits/byte-efficiency/duplicated-javascript.js +247 -0
- package/core/audits/byte-efficiency/efficient-animated-content.d.ts +23 -0
- package/core/audits/byte-efficiency/efficient-animated-content.js +92 -0
- package/core/audits/byte-efficiency/legacy-javascript.d.ts +100 -0
- package/core/audits/byte-efficiency/legacy-javascript.js +479 -0
- package/core/audits/byte-efficiency/modern-image-formats.d.ts +38 -0
- package/core/audits/byte-efficiency/modern-image-formats.js +186 -0
- package/core/audits/byte-efficiency/offscreen-images.d.ts +75 -0
- package/core/audits/byte-efficiency/offscreen-images.js +253 -0
- package/{lighthouse-core → core}/audits/byte-efficiency/polyfill-graph-data.json +0 -0
- package/core/audits/byte-efficiency/render-blocking-resources.d.ts +55 -0
- package/core/audits/byte-efficiency/render-blocking-resources.js +307 -0
- package/core/audits/byte-efficiency/total-byte-weight.d.ts +21 -0
- package/core/audits/byte-efficiency/total-byte-weight.js +109 -0
- package/core/audits/byte-efficiency/unminified-css.d.ts +36 -0
- package/core/audits/byte-efficiency/unminified-css.js +114 -0
- package/core/audits/byte-efficiency/unminified-javascript.d.ts +37 -0
- package/core/audits/byte-efficiency/unminified-javascript.js +118 -0
- package/core/audits/byte-efficiency/unused-css-rules.d.ts +16 -0
- package/core/audits/byte-efficiency/unused-css-rules.js +69 -0
- package/core/audits/byte-efficiency/unused-javascript.d.ts +27 -0
- package/core/audits/byte-efficiency/unused-javascript.js +163 -0
- package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +61 -0
- package/core/audits/byte-efficiency/uses-long-cache-ttl.js +297 -0
- package/core/audits/byte-efficiency/uses-optimized-images.d.ts +33 -0
- package/core/audits/byte-efficiency/uses-optimized-images.js +145 -0
- package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +16 -0
- package/core/audits/byte-efficiency/uses-responsive-images-snapshot.js +100 -0
- package/core/audits/byte-efficiency/uses-responsive-images.d.ts +45 -0
- package/core/audits/byte-efficiency/uses-responsive-images.js +201 -0
- package/core/audits/byte-efficiency/uses-text-compression.d.ts +14 -0
- package/core/audits/byte-efficiency/uses-text-compression.js +100 -0
- package/core/audits/content-width.d.ts +17 -0
- package/core/audits/content-width.js +76 -0
- package/core/audits/critical-request-chains.d.ts +44 -0
- package/core/audits/critical-request-chains.js +218 -0
- package/core/audits/csp-xss.d.ts +51 -0
- package/core/audits/csp-xss.js +186 -0
- package/core/audits/deprecations.d.ts +19 -0
- package/core/audits/deprecations.js +114 -0
- package/core/audits/diagnostics.d.ts +11 -0
- package/core/audits/diagnostics.js +79 -0
- package/core/audits/dobetterweb/charset.d.ts +19 -0
- package/core/audits/dobetterweb/charset.js +93 -0
- package/core/audits/dobetterweb/doctype.d.ts +21 -0
- package/core/audits/dobetterweb/doctype.js +120 -0
- package/core/audits/dobetterweb/dom-size.d.ts +26 -0
- package/core/audits/dobetterweb/dom-size.js +134 -0
- package/core/audits/dobetterweb/geolocation-on-start.d.ts +16 -0
- package/core/audits/dobetterweb/geolocation-on-start.js +69 -0
- package/core/audits/dobetterweb/inspector-issues.d.ts +45 -0
- package/core/audits/dobetterweb/inspector-issues.js +191 -0
- package/core/audits/dobetterweb/js-libraries.d.ts +15 -0
- package/core/audits/dobetterweb/js-libraries.js +87 -0
- package/core/audits/dobetterweb/no-document-write.d.ts +16 -0
- package/core/audits/dobetterweb/no-document-write.js +84 -0
- package/core/audits/dobetterweb/notification-on-start.d.ts +16 -0
- package/core/audits/dobetterweb/notification-on-start.js +68 -0
- package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +15 -0
- package/core/audits/dobetterweb/paste-preventing-inputs.js +67 -0
- package/core/audits/dobetterweb/uses-http2.d.ts +72 -0
- package/core/audits/dobetterweb/uses-http2.js +264 -0
- package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +16 -0
- package/core/audits/dobetterweb/uses-passive-event-listeners.js +67 -0
- package/core/audits/errors-in-console.d.ts +31 -0
- package/core/audits/errors-in-console.js +120 -0
- package/core/audits/final-screenshot.d.ts +11 -0
- package/core/audits/final-screenshot.js +58 -0
- package/core/audits/font-display.d.ts +32 -0
- package/core/audits/font-display.js +193 -0
- package/core/audits/image-aspect-ratio.d.ts +30 -0
- package/core/audits/image-aspect-ratio.js +122 -0
- package/core/audits/image-size-responsive.d.ts +28 -0
- package/core/audits/image-size-responsive.js +332 -0
- package/core/audits/installable-manifest.d.ts +118 -0
- package/core/audits/installable-manifest.js +265 -0
- package/core/audits/is-on-https.d.ts +23 -0
- package/core/audits/is-on-https.js +123 -0
- package/core/audits/largest-contentful-paint-element.d.ts +14 -0
- package/core/audits/largest-contentful-paint-element.js +69 -0
- package/core/audits/layout-shift-elements.d.ts +15 -0
- package/core/audits/layout-shift-elements.js +74 -0
- package/core/audits/lcp-lazy-loaded.d.ts +21 -0
- package/core/audits/lcp-lazy-loaded.js +84 -0
- package/core/audits/long-tasks.d.ts +16 -0
- package/core/audits/long-tasks.js +124 -0
- package/core/audits/main-thread-tasks.d.ts +11 -0
- package/core/audits/main-thread-tasks.js +58 -0
- package/core/audits/mainthread-work-breakdown.d.ts +28 -0
- package/core/audits/mainthread-work-breakdown.js +135 -0
- package/core/audits/manual/manual-audit.d.ts +13 -0
- package/core/audits/manual/manual-audit.js +36 -0
- package/core/audits/manual/pwa-cross-browser.d.ts +12 -0
- package/core/audits/manual/pwa-cross-browser.js +40 -0
- package/core/audits/manual/pwa-each-page-has-url.d.ts +12 -0
- package/core/audits/manual/pwa-each-page-has-url.js +38 -0
- package/core/audits/manual/pwa-page-transitions.d.ts +12 -0
- package/core/audits/manual/pwa-page-transitions.js +38 -0
- package/core/audits/maskable-icon.d.ts +25 -0
- package/core/audits/maskable-icon.js +70 -0
- package/core/audits/metrics/cumulative-layout-shift.d.ts +21 -0
- package/core/audits/metrics/cumulative-layout-shift.js +79 -0
- package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +21 -0
- package/core/audits/metrics/experimental-interaction-to-next-paint.js +88 -0
- package/core/audits/metrics/first-contentful-paint-3g.d.ts +15 -0
- package/core/audits/metrics/first-contentful-paint-3g.js +69 -0
- package/core/audits/metrics/first-contentful-paint.d.ts +25 -0
- package/core/audits/metrics/first-contentful-paint.js +85 -0
- package/core/audits/metrics/first-meaningful-paint.d.ts +28 -0
- package/core/audits/metrics/first-meaningful-paint.js +89 -0
- package/core/audits/metrics/interactive.d.ts +31 -0
- package/core/audits/metrics/interactive.js +93 -0
- package/core/audits/metrics/largest-contentful-paint.d.ts +25 -0
- package/core/audits/metrics/largest-contentful-paint.js +94 -0
- package/core/audits/metrics/max-potential-fid.d.ts +23 -0
- package/core/audits/metrics/max-potential-fid.js +77 -0
- package/core/audits/metrics/speed-index.d.ts +27 -0
- package/core/audits/metrics/speed-index.js +88 -0
- package/core/audits/metrics/total-blocking-time.d.ts +32 -0
- package/core/audits/metrics/total-blocking-time.js +118 -0
- package/core/audits/metrics.d.ts +11 -0
- package/core/audits/metrics.js +73 -0
- package/core/audits/multi-check-audit.d.ts +28 -0
- package/core/audits/multi-check-audit.js +82 -0
- package/core/audits/network-requests.d.ts +11 -0
- package/core/audits/network-requests.js +129 -0
- package/core/audits/network-rtt.d.ts +15 -0
- package/core/audits/network-rtt.js +89 -0
- package/core/audits/network-server-latency.d.ts +15 -0
- package/core/audits/network-server-latency.js +88 -0
- package/core/audits/no-unload-listeners.d.ts +16 -0
- package/core/audits/no-unload-listeners.js +86 -0
- package/core/audits/non-composited-animations.d.ts +21 -0
- package/core/audits/non-composited-animations.js +205 -0
- package/core/audits/oopif-iframe-test-audit.d.ts +14 -0
- package/core/audits/oopif-iframe-test-audit.js +29 -0
- package/core/audits/performance-budget.d.ts +39 -0
- package/core/audits/performance-budget.js +154 -0
- package/core/audits/predictive-perf.d.ts +11 -0
- package/core/audits/predictive-perf.js +100 -0
- package/core/audits/preload-fonts.d.ts +29 -0
- package/core/audits/preload-fonts.js +106 -0
- package/core/audits/prioritize-lcp-image.d.ts +76 -0
- package/core/audits/prioritize-lcp-image.js +290 -0
- package/core/audits/redirects.d.ts +33 -0
- package/core/audits/redirects.js +164 -0
- package/core/audits/resource-summary.d.ts +16 -0
- package/core/audits/resource-summary.js +104 -0
- package/core/audits/screenshot-thumbnails.d.ts +33 -0
- package/core/audits/screenshot-thumbnails.js +168 -0
- package/core/audits/script-elements-test-audit.d.ts +14 -0
- package/core/audits/script-elements-test-audit.js +29 -0
- package/core/audits/script-treemap-data.d.ts +42 -0
- package/core/audits/script-treemap-data.js +287 -0
- package/core/audits/seo/canonical.d.ts +51 -0
- package/core/audits/seo/canonical.js +217 -0
- package/core/audits/seo/crawlable-anchors.d.ts +16 -0
- package/core/audits/seo/crawlable-anchors.js +93 -0
- package/core/audits/seo/font-size.d.ts +24 -0
- package/core/audits/seo/font-size.js +344 -0
- package/core/audits/seo/hreflang.d.ts +28 -0
- package/core/audits/seo/hreflang.js +148 -0
- package/core/audits/seo/http-status-code.d.ts +16 -0
- package/core/audits/seo/http-status-code.js +68 -0
- package/core/audits/seo/is-crawlable.d.ts +38 -0
- package/core/audits/seo/is-crawlable.js +223 -0
- package/core/audits/seo/link-text.d.ts +16 -0
- package/core/audits/seo/link-text.js +160 -0
- package/core/audits/seo/manual/structured-data.d.ts +12 -0
- package/core/audits/seo/manual/structured-data.js +37 -0
- package/core/audits/seo/meta-description.d.ts +16 -0
- package/core/audits/seo/meta-description.js +66 -0
- package/core/audits/seo/plugins.d.ts +15 -0
- package/core/audits/seo/plugins.js +150 -0
- package/core/audits/seo/robots-txt.d.ts +18 -0
- package/core/audits/seo/robots-txt.js +255 -0
- package/core/audits/seo/tap-targets.d.ts +50 -0
- package/core/audits/seo/tap-targets.js +352 -0
- package/core/audits/server-response-time.d.ts +21 -0
- package/core/audits/server-response-time.js +90 -0
- package/core/audits/service-worker.d.ts +46 -0
- package/core/audits/service-worker.js +182 -0
- package/core/audits/splash-screen.d.ts +37 -0
- package/core/audits/splash-screen.js +98 -0
- package/core/audits/themed-omnibox.d.ts +42 -0
- package/core/audits/themed-omnibox.js +102 -0
- package/core/audits/third-party-facades.d.ts +42 -0
- package/core/audits/third-party-facades.js +224 -0
- package/core/audits/third-party-summary.d.ts +59 -0
- package/core/audits/third-party-summary.js +257 -0
- package/core/audits/timing-budget.d.ts +43 -0
- package/core/audits/timing-budget.js +174 -0
- package/core/audits/unsized-images.d.ts +39 -0
- package/core/audits/unsized-images.js +162 -0
- package/core/audits/user-timings.d.ts +43 -0
- package/core/audits/user-timings.js +118 -0
- package/core/audits/uses-rel-preconnect.d.ts +37 -0
- package/core/audits/uses-rel-preconnect.js +253 -0
- package/core/audits/uses-rel-preload.d.ts +61 -0
- package/core/audits/uses-rel-preload.js +269 -0
- package/core/audits/valid-source-maps.d.ts +29 -0
- package/core/audits/valid-source-maps.js +160 -0
- package/core/audits/viewport.d.ts +17 -0
- package/core/audits/viewport.js +64 -0
- package/core/audits/violation-audit.d.ts +14 -0
- package/core/audits/violation-audit.js +49 -0
- package/core/audits/work-during-interaction.d.ts +82 -0
- package/core/audits/work-during-interaction.js +279 -0
- package/core/computed/computed-artifact.d.ts +15 -0
- package/core/computed/computed-artifact.js +62 -0
- package/core/computed/critical-request-chains.d.ts +40 -0
- package/core/computed/critical-request-chains.js +143 -0
- package/core/computed/entity-classification.d.ts +29 -0
- package/core/computed/entity-classification.js +103 -0
- package/core/computed/image-records.d.ts +24 -0
- package/core/computed/image-records.js +64 -0
- package/core/computed/js-bundles.d.ts +13 -0
- package/core/computed/js-bundles.js +120 -0
- package/core/computed/load-simulator.d.ts +28 -0
- package/core/computed/load-simulator.js +92 -0
- package/core/computed/main-resource.d.ts +25 -0
- package/core/computed/main-resource.js +35 -0
- package/core/computed/main-thread-tasks.d.ts +15 -0
- package/core/computed/main-thread-tasks.js +25 -0
- package/core/computed/manifest-values.d.ts +24 -0
- package/core/computed/manifest-values.js +136 -0
- package/core/computed/metrics/cumulative-layout-shift.d.ts +53 -0
- package/core/computed/metrics/cumulative-layout-shift.js +125 -0
- package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +19 -0
- package/core/computed/metrics/first-contentful-paint-all-frames.js +37 -0
- package/core/computed/metrics/first-contentful-paint.d.ts +15 -0
- package/core/computed/metrics/first-contentful-paint.js +40 -0
- package/core/computed/metrics/first-meaningful-paint.d.ts +15 -0
- package/core/computed/metrics/first-meaningful-paint.js +44 -0
- package/core/computed/metrics/interactive.d.ts +61 -0
- package/core/computed/metrics/interactive.js +192 -0
- package/core/computed/metrics/lantern-first-contentful-paint.d.ts +48 -0
- package/core/computed/metrics/lantern-first-contentful-paint.js +204 -0
- package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +12 -0
- package/core/computed/metrics/lantern-first-meaningful-paint.js +83 -0
- package/core/computed/metrics/lantern-interactive.d.ts +31 -0
- package/core/computed/metrics/lantern-interactive.js +113 -0
- package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +25 -0
- package/core/computed/metrics/lantern-largest-contentful-paint.js +111 -0
- package/core/computed/metrics/lantern-max-potential-fid.d.ts +30 -0
- package/core/computed/metrics/lantern-max-potential-fid.js +93 -0
- package/core/computed/metrics/lantern-metric.d.ts +78 -0
- package/core/computed/metrics/lantern-metric.js +162 -0
- package/core/computed/metrics/lantern-speed-index.d.ts +38 -0
- package/core/computed/metrics/lantern-speed-index.js +150 -0
- package/core/computed/metrics/lantern-total-blocking-time.d.ts +31 -0
- package/core/computed/metrics/lantern-total-blocking-time.js +126 -0
- package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +20 -0
- package/core/computed/metrics/largest-contentful-paint-all-frames.js +45 -0
- package/core/computed/metrics/largest-contentful-paint.d.ts +15 -0
- package/core/computed/metrics/largest-contentful-paint.js +52 -0
- package/core/computed/metrics/max-potential-fid.d.ts +15 -0
- package/core/computed/metrics/max-potential-fid.js +45 -0
- package/core/computed/metrics/metric.d.ts +38 -0
- package/core/computed/metrics/metric.js +100 -0
- package/core/computed/metrics/navigation-metric.d.ts +16 -0
- package/core/computed/metrics/navigation-metric.js +46 -0
- package/core/computed/metrics/responsiveness.d.ts +87 -0
- package/core/computed/metrics/responsiveness.js +160 -0
- package/core/computed/metrics/speed-index.d.ts +10 -0
- package/core/computed/metrics/speed-index.js +40 -0
- package/core/computed/metrics/tbt-utils.d.ts +18 -0
- package/core/computed/metrics/tbt-utils.js +56 -0
- package/core/computed/metrics/timing-summary.d.ts +46 -0
- package/core/computed/metrics/timing-summary.js +157 -0
- package/core/computed/metrics/total-blocking-time.d.ts +23 -0
- package/core/computed/metrics/total-blocking-time.js +74 -0
- package/core/computed/module-duplication.d.ts +37 -0
- package/core/computed/module-duplication.js +138 -0
- package/core/computed/network-analysis.d.ts +20 -0
- package/core/computed/network-analysis.js +64 -0
- package/core/computed/network-records.d.ts +15 -0
- package/core/computed/network-records.js +22 -0
- package/core/computed/page-dependency-graph.d.ts +88 -0
- package/core/computed/page-dependency-graph.js +516 -0
- package/core/computed/processed-navigation.d.ts +21 -0
- package/core/computed/processed-navigation.js +37 -0
- package/core/computed/processed-trace.d.ts +14 -0
- package/core/computed/processed-trace.js +21 -0
- package/core/computed/resource-summary.d.ts +46 -0
- package/core/computed/resource-summary.js +118 -0
- package/core/computed/screenshots.d.ts +20 -0
- package/core/computed/screenshots.js +29 -0
- package/core/computed/speedline.d.ts +15 -0
- package/core/computed/speedline.js +55 -0
- package/core/computed/unused-css.d.ts +62 -0
- package/core/computed/unused-css.js +153 -0
- package/core/computed/unused-javascript-summary.d.ts +71 -0
- package/core/computed/unused-javascript-summary.js +155 -0
- package/core/computed/user-timings.d.ts +31 -0
- package/core/computed/user-timings.js +83 -0
- package/core/computed/viewport-meta.d.ts +35 -0
- package/core/computed/viewport-meta.js +56 -0
- package/core/config/budget.d.ts +74 -0
- package/core/config/budget.js +340 -0
- package/core/config/config-helpers.d.ts +94 -0
- package/core/config/config-helpers.js +630 -0
- package/core/config/config-plugin.d.ts +46 -0
- package/core/config/config-plugin.js +250 -0
- package/core/config/config.d.ts +28 -0
- package/core/config/config.js +344 -0
- package/core/config/constants.d.ts +86 -0
- package/core/config/constants.js +175 -0
- package/core/config/default-config.d.ts +5 -0
- package/core/config/default-config.js +637 -0
- package/core/config/desktop-config.d.ts +5 -0
- package/core/config/desktop-config.js +21 -0
- package/core/config/experimental-config.d.ts +13 -0
- package/core/config/experimental-config.js +29 -0
- package/core/config/filters.d.ts +83 -0
- package/core/config/filters.js +344 -0
- package/core/config/full-config.d.ts +9 -0
- package/core/config/full-config.js +13 -0
- package/core/config/lr-desktop-config.d.ts +4 -0
- package/core/config/lr-desktop-config.js +28 -0
- package/core/config/lr-mobile-config.d.ts +9 -0
- package/core/config/lr-mobile-config.js +33 -0
- package/core/config/metrics-to-audits.d.ts +19 -0
- package/core/config/metrics-to-audits.js +61 -0
- package/core/config/perf-config.d.ts +9 -0
- package/core/config/perf-config.js +16 -0
- package/core/config/validation.d.ts +77 -0
- package/core/config/validation.js +312 -0
- package/core/gather/base-artifacts.d.ts +16 -0
- package/core/gather/base-artifacts.js +95 -0
- package/core/gather/base-gatherer.d.ts +72 -0
- package/core/gather/base-gatherer.js +108 -0
- package/core/gather/driver/dom.d.ts +20 -0
- package/core/gather/driver/dom.js +57 -0
- package/core/gather/driver/environment.d.ts +35 -0
- package/core/gather/driver/environment.js +105 -0
- package/core/gather/driver/execution-context.d.ts +101 -0
- package/core/gather/driver/execution-context.js +262 -0
- package/core/gather/driver/navigation.d.ts +33 -0
- package/core/gather/driver/navigation.js +182 -0
- package/core/gather/driver/network-monitor.d.ts +82 -0
- package/core/gather/driver/network-monitor.js +260 -0
- package/core/gather/driver/network.d.ts +10 -0
- package/core/gather/driver/network.js +27 -0
- package/core/gather/driver/prepare.d.ts +52 -0
- package/core/gather/driver/prepare.js +244 -0
- package/core/gather/driver/service-workers.d.ts +16 -0
- package/core/gather/driver/service-workers.js +52 -0
- package/core/gather/driver/storage.d.ts +24 -0
- package/core/gather/driver/storage.js +149 -0
- package/core/gather/driver/target-manager.d.ts +61 -0
- package/core/gather/driver/target-manager.js +209 -0
- package/core/gather/driver/wait-for-condition.d.ts +116 -0
- package/core/gather/driver/wait-for-condition.js +544 -0
- package/core/gather/driver.d.ts +30 -0
- package/core/gather/driver.js +92 -0
- package/core/gather/fetcher.d.ts +63 -0
- package/core/gather/fetcher.js +143 -0
- package/core/gather/gatherers/accessibility.d.ts +23 -0
- package/core/gather/gatherers/accessibility.js +199 -0
- package/core/gather/gatherers/anchor-elements.d.ts +10 -0
- package/core/gather/gatherers/anchor-elements.js +132 -0
- package/core/gather/gatherers/bf-cache-failures.d.ts +43 -0
- package/core/gather/gatherers/bf-cache-failures.js +179 -0
- package/core/gather/gatherers/cache-contents.d.ts +11 -0
- package/core/gather/gatherers/cache-contents.js +58 -0
- package/core/gather/gatherers/console-messages.d.ts +39 -0
- package/core/gather/gatherers/console-messages.js +174 -0
- package/core/gather/gatherers/css-usage.d.ts +39 -0
- package/core/gather/gatherers/css-usage.js +150 -0
- package/core/gather/gatherers/devtools-log-compat.d.ts +13 -0
- package/core/gather/gatherers/devtools-log-compat.js +35 -0
- package/core/gather/gatherers/devtools-log.d.ts +48 -0
- package/core/gather/gatherers/devtools-log.js +115 -0
- package/core/gather/gatherers/dobetterweb/doctype.d.ts +10 -0
- package/core/gather/gatherers/dobetterweb/doctype.js +47 -0
- package/core/gather/gatherers/dobetterweb/domstats.d.ts +10 -0
- package/core/gather/gatherers/dobetterweb/domstats.js +102 -0
- package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +61 -0
- package/core/gather/gatherers/dobetterweb/optimized-images.js +193 -0
- package/core/gather/gatherers/dobetterweb/response-compression.d.ts +30 -0
- package/core/gather/gatherers/dobetterweb/response-compression.js +155 -0
- package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +53 -0
- package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +237 -0
- package/core/gather/gatherers/full-page-screenshot.d.ts +35 -0
- package/core/gather/gatherers/full-page-screenshot.js +258 -0
- package/core/gather/gatherers/gatherer.d.ts +46 -0
- package/core/gather/gatherers/gatherer.js +58 -0
- package/core/gather/gatherers/global-listeners.d.ts +27 -0
- package/core/gather/gatherers/global-listeners.js +91 -0
- package/core/gather/gatherers/iframe-elements.d.ts +11 -0
- package/core/gather/gatherers/iframe-elements.js +67 -0
- package/core/gather/gatherers/image-elements.d.ts +35 -0
- package/core/gather/gatherers/image-elements.js +378 -0
- package/core/gather/gatherers/inputs.d.ts +10 -0
- package/core/gather/gatherers/inputs.js +118 -0
- package/core/gather/gatherers/inspector-issues.d.ts +38 -0
- package/core/gather/gatherers/inspector-issues.js +126 -0
- package/core/gather/gatherers/installability-errors.d.ts +17 -0
- package/core/gather/gatherers/installability-errors.js +56 -0
- package/core/gather/gatherers/js-usage.d.ts +22 -0
- package/core/gather/gatherers/js-usage.js +74 -0
- package/core/gather/gatherers/link-elements.d.ts +39 -0
- package/core/gather/gatherers/link-elements.js +181 -0
- package/core/gather/gatherers/main-document-content.d.ts +27 -0
- package/core/gather/gatherers/main-document-content.js +53 -0
- package/core/gather/gatherers/meta-elements.d.ts +10 -0
- package/core/gather/gatherers/meta-elements.js +67 -0
- package/core/gather/gatherers/network-user-agent.d.ts +18 -0
- package/core/gather/gatherers/network-user-agent.js +41 -0
- package/core/gather/gatherers/script-elements.d.ts +26 -0
- package/core/gather/gatherers/script-elements.js +110 -0
- package/core/gather/gatherers/scripts.d.ts +27 -0
- package/core/gather/gatherers/scripts.js +139 -0
- package/core/gather/gatherers/seo/embedded-content.d.ts +10 -0
- package/core/gather/gatherers/seo/embedded-content.js +63 -0
- package/core/gather/gatherers/seo/font-size.d.ts +131 -0
- package/core/gather/gatherers/seo/font-size.js +339 -0
- package/core/gather/gatherers/seo/robots-txt.d.ts +10 -0
- package/core/gather/gatherers/seo/robots-txt.js +27 -0
- package/core/gather/gatherers/seo/tap-targets.d.ts +21 -0
- package/core/gather/gatherers/seo/tap-targets.js +389 -0
- package/core/gather/gatherers/service-worker.d.ts +16 -0
- package/core/gather/gatherers/service-worker.js +44 -0
- package/core/gather/gatherers/source-maps.d.ts +50 -0
- package/core/gather/gatherers/source-maps.js +155 -0
- package/core/gather/gatherers/stacks.d.ts +38 -0
- package/core/gather/gatherers/stacks.js +137 -0
- package/core/gather/gatherers/trace-compat.d.ts +13 -0
- package/core/gather/gatherers/trace-compat.js +35 -0
- package/core/gather/gatherers/trace-elements.d.ts +83 -0
- package/core/gather/gatherers/trace-elements.js +349 -0
- package/core/gather/gatherers/trace.d.ts +23 -0
- package/core/gather/gatherers/trace.js +130 -0
- package/core/gather/gatherers/viewport-dimensions.d.ts +10 -0
- package/core/gather/gatherers/viewport-dimensions.js +57 -0
- package/core/gather/gatherers/web-app-manifest.d.ts +32 -0
- package/core/gather/gatherers/web-app-manifest.js +106 -0
- package/core/gather/navigation-runner.d.ts +94 -0
- package/core/gather/navigation-runner.js +386 -0
- package/core/gather/runner-helpers.d.ts +39 -0
- package/core/gather/runner-helpers.js +159 -0
- package/core/gather/session.d.ts +50 -0
- package/core/gather/session.js +114 -0
- package/core/gather/snapshot-runner.d.ts +10 -0
- package/core/gather/snapshot-runner.js +67 -0
- package/core/gather/timespan-runner.d.ts +12 -0
- package/core/gather/timespan-runner.js +85 -0
- package/core/index.cjs +21 -0
- package/core/index.d.cts +4 -0
- package/core/index.d.ts +88 -0
- package/core/index.js +172 -0
- package/core/legacy/config/config.d.ts +107 -0
- package/core/legacy/config/config.js +566 -0
- package/core/legacy/config/legacy-default-config.d.ts +4 -0
- package/core/legacy/config/legacy-default-config.js +87 -0
- package/core/legacy/gather/connections/connection.d.ts +75 -0
- package/core/legacy/gather/connections/connection.js +181 -0
- package/core/legacy/gather/connections/cri.d.ts +27 -0
- package/core/legacy/gather/connections/cri.js +162 -0
- package/core/legacy/gather/connections/raw.d.ts +20 -0
- package/core/legacy/gather/connections/raw.js +57 -0
- package/core/legacy/gather/driver.d.ts +215 -0
- package/core/legacy/gather/driver.js +469 -0
- package/core/legacy/gather/gather-runner.d.ts +166 -0
- package/core/legacy/gather/gather-runner.js +590 -0
- package/core/lib/arbitrary-equality-map.d.ts +47 -0
- package/core/lib/arbitrary-equality-map.js +80 -0
- package/core/lib/asset-saver.d.ts +101 -0
- package/core/lib/asset-saver.js +451 -0
- package/core/lib/axe.d.ts +2 -0
- package/core/lib/axe.js +17 -0
- package/core/lib/bf-cache-strings.d.ts +121 -0
- package/core/lib/bf-cache-strings.js +661 -0
- package/core/lib/cdt/Common.d.ts +3 -0
- package/core/lib/cdt/Common.js +12 -0
- package/core/lib/cdt/Platform.d.ts +26 -0
- package/core/lib/cdt/Platform.js +57 -0
- package/core/lib/cdt/SDK.d.ts +2 -0
- package/core/lib/cdt/SDK.js +28 -0
- package/core/lib/cdt/generated/ParsedURL.d.ts +28 -0
- package/core/lib/cdt/generated/ParsedURL.js +178 -0
- package/core/lib/cdt/generated/SourceMap.d.ts +100 -0
- package/core/lib/cdt/generated/SourceMap.js +527 -0
- package/core/lib/cdt/package.json +4 -0
- package/core/lib/csp-evaluator.d.ts +41 -0
- package/core/lib/csp-evaluator.js +170 -0
- package/core/lib/dependency-graph/base-node.d.ts +161 -0
- package/core/lib/dependency-graph/base-node.js +364 -0
- package/core/lib/dependency-graph/cpu-node.d.ts +34 -0
- package/core/lib/dependency-graph/cpu-node.js +86 -0
- package/core/lib/dependency-graph/network-node.d.ts +43 -0
- package/core/lib/dependency-graph/network-node.js +99 -0
- package/core/lib/dependency-graph/simulator/connection-pool.d.ts +58 -0
- package/core/lib/dependency-graph/simulator/connection-pool.js +171 -0
- package/core/lib/dependency-graph/simulator/dns-cache.d.ts +42 -0
- package/core/lib/dependency-graph/simulator/dns-cache.js +74 -0
- package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +166 -0
- package/core/lib/dependency-graph/simulator/network-analyzer.js +479 -0
- package/core/lib/dependency-graph/simulator/simulator-timing-map.d.ts +153 -0
- package/core/lib/dependency-graph/simulator/simulator-timing-map.js +220 -0
- package/core/lib/dependency-graph/simulator/simulator.d.ts +154 -0
- package/core/lib/dependency-graph/simulator/simulator.js +540 -0
- package/core/lib/dependency-graph/simulator/tcp-connection.d.ts +89 -0
- package/core/lib/dependency-graph/simulator/tcp-connection.js +230 -0
- package/core/lib/deprecations-strings.d.ts +66 -0
- package/core/lib/deprecations-strings.js +654 -0
- package/core/lib/emulation.d.ts +43 -0
- package/core/lib/emulation.js +163 -0
- package/core/lib/i18n/README.md +290 -0
- package/core/lib/i18n/i18n.d.ts +81 -0
- package/core/lib/i18n/i18n.js +229 -0
- package/core/lib/icons.d.ts +22 -0
- package/core/lib/icons.js +82 -0
- package/core/lib/lantern-trace-saver.d.ts +20 -0
- package/core/lib/lantern-trace-saver.js +260 -0
- package/core/lib/lh-env.d.ts +2 -0
- package/core/lib/lh-env.js +15 -0
- package/core/lib/lh-error.d.ts +328 -0
- package/core/lib/lh-error.js +425 -0
- package/core/lib/lh-trace-processor.d.ts +5 -0
- package/core/lib/lh-trace-processor.js +45 -0
- package/core/lib/lighthouse-compatibility.d.ts +8 -0
- package/core/lib/lighthouse-compatibility.js +139 -0
- package/core/lib/manifest-parser.d.ts +186 -0
- package/core/lib/manifest-parser.js +495 -0
- package/core/lib/median-run.d.ts +17 -0
- package/core/lib/median-run.js +92 -0
- package/core/lib/minification-estimator.d.ts +9 -0
- package/core/lib/minification-estimator.js +192 -0
- package/core/lib/minify-devtoolslog.d.ts +6 -0
- package/core/lib/minify-devtoolslog.js +86 -0
- package/core/lib/navigation-error.d.ts +39 -0
- package/core/lib/navigation-error.js +175 -0
- package/core/lib/network-recorder.d.ts +115 -0
- package/core/lib/network-recorder.js +341 -0
- package/core/lib/network-request.d.ts +247 -0
- package/core/lib/network-request.js +590 -0
- package/core/lib/page-functions.d.ts +149 -0
- package/core/lib/page-functions.js +544 -0
- package/core/lib/proto-preprocessor.d.ts +13 -0
- package/core/lib/proto-preprocessor.js +133 -0
- package/core/lib/rect-helpers.d.ts +100 -0
- package/core/lib/rect-helpers.js +251 -0
- package/core/lib/script-helpers.d.ts +17 -0
- package/core/lib/script-helpers.js +31 -0
- package/core/lib/sentry.d.ts +32 -0
- package/core/lib/sentry.js +143 -0
- package/core/lib/stack-packs.d.ts +16 -0
- package/core/lib/stack-packs.js +126 -0
- package/core/lib/statistics.d.ts +28 -0
- package/core/lib/statistics.js +103 -0
- package/core/lib/tappable-rects.d.ts +8 -0
- package/core/lib/tappable-rects.js +98 -0
- package/core/lib/third-party-web.d.ts +32 -0
- package/core/lib/third-party-web.js +52 -0
- package/core/lib/timing-trace-saver.d.ts +21 -0
- package/core/lib/timing-trace-saver.js +96 -0
- package/core/lib/tracehouse/cpu-profile-model.d.ts +228 -0
- package/core/lib/tracehouse/cpu-profile-model.js +591 -0
- package/core/lib/tracehouse/main-thread-tasks.d.ts +162 -0
- package/core/lib/tracehouse/main-thread-tasks.js +688 -0
- package/core/lib/tracehouse/task-groups.d.ts +66 -0
- package/core/lib/tracehouse/task-groups.js +111 -0
- package/core/lib/tracehouse/task-summary.d.ts +18 -0
- package/core/lib/tracehouse/task-summary.js +86 -0
- package/core/lib/tracehouse/trace-processor.d.ts +284 -0
- package/core/lib/tracehouse/trace-processor.js +1016 -0
- package/core/lib/traces/metric-trace-events.d.ts +65 -0
- package/core/lib/traces/metric-trace-events.js +200 -0
- package/core/lib/url-utils.d.ts +100 -0
- package/core/lib/url-utils.js +266 -0
- package/core/runner.d.ts +114 -0
- package/core/runner.js +563 -0
- package/core/scoring.d.ts +26 -0
- package/core/scoring.js +91 -0
- package/core/scripts/download-chrome.sh +36 -0
- package/core/scripts/manual-chrome-launcher.js +50 -0
- package/core/user-flow.d.ts +106 -0
- package/core/user-flow.js +354 -0
- package/dist/report/bundle.esm.js +1485 -1281
- package/dist/report/flow.js +37 -25
- package/dist/report/standalone.js +35 -19
- package/eslint-local-rules.cjs +106 -0
- package/eslint-local-rules.d.cts +6 -0
- package/esm-utils.d.ts +14 -0
- package/esm-utils.js +38 -0
- package/flow-report/api.d.ts +7 -0
- package/flow-report/assets/standalone-flow-template.html +1 -1
- package/flow-report/clients/standalone.d.ts +7 -0
- package/flow-report/src/app.d.ts +11 -0
- package/flow-report/src/app.tsx +1 -1
- package/flow-report/src/common.d.ts +20 -0
- package/flow-report/src/common.tsx +3 -3
- package/flow-report/src/header.d.ts +10 -0
- package/flow-report/src/header.tsx +1 -1
- package/flow-report/src/help-dialog.d.ts +10 -0
- package/flow-report/src/i18n/i18n.d.ts +212 -0
- package/flow-report/src/i18n/i18n.tsx +24 -19
- package/flow-report/src/i18n/localized-strings.d.ts +9 -0
- package/flow-report/src/i18n/ui-strings.d.ts +48 -0
- package/flow-report/src/icons.d.ts +18 -0
- package/flow-report/src/sidebar/flow.d.ts +8 -0
- package/flow-report/src/sidebar/sidebar.d.ts +17 -0
- package/flow-report/src/sidebar/sidebar.tsx +7 -4
- package/flow-report/src/summary/category.d.ts +19 -0
- package/flow-report/src/summary/category.tsx +10 -10
- package/flow-report/src/summary/summary.d.ts +18 -0
- package/flow-report/src/summary/summary.tsx +4 -4
- package/flow-report/src/topbar.d.ts +15 -0
- package/flow-report/src/topbar.tsx +14 -30
- package/flow-report/src/util.d.ts +30 -0
- package/flow-report/src/util.ts +2 -13
- package/flow-report/src/wrappers/category-score.d.ts +12 -0
- package/flow-report/src/wrappers/markdown.d.ts +10 -0
- package/flow-report/src/wrappers/report.d.ts +10 -0
- package/flow-report/src/wrappers/report.tsx +1 -1
- package/flow-report/src/wrappers/styles.d.ts +8 -0
- package/flow-report/test/app-test.d.ts +7 -0
- package/flow-report/test/common-test.d.ts +7 -0
- package/flow-report/test/common-test.tsx +11 -12
- package/flow-report/test/flow-report-pptr-test.d.ts +7 -0
- package/flow-report/test/flow-report-pptr-test.ts +21 -8
- package/flow-report/test/header-test.d.ts +7 -0
- package/flow-report/test/run-flow-report-tests.sh +20 -0
- package/flow-report/test/sample-flow.d.ts +7 -0
- package/flow-report/test/sample-flow.ts +1 -1
- package/flow-report/test/setup/env-setup.d.ts +11 -0
- package/flow-report/test/setup/env-setup.ts +47 -24
- package/flow-report/test/sidebar/flow-test.d.ts +7 -0
- package/flow-report/test/sidebar/sidebar-test.d.ts +7 -0
- package/flow-report/test/sidebar/sidebar-test.tsx +30 -3
- package/flow-report/test/summary/category-test.d.ts +7 -0
- package/flow-report/test/summary/summary-test.d.ts +7 -0
- package/flow-report/test/summary/summary-test.tsx +1 -1
- package/flow-report/test/topbar-test.d.ts +7 -0
- package/flow-report/test/topbar-test.tsx +11 -12
- package/flow-report/test/util-test.d.ts +7 -0
- package/flow-report/test/util-test.tsx +3 -3
- package/flow-report/test/wrappers/category-score-test.d.ts +7 -0
- package/flow-report/test/wrappers/markdown-test.d.ts +7 -0
- package/flow-report/tsconfig.json +5 -3
- package/flow-report/types/flow-report.d.ts +8 -1
- package/package.json +86 -80
- package/readme.md +27 -40
- package/report/README.md +8 -9
- package/report/assets/standalone-template.html +1 -1
- package/report/assets/styles.css +35 -17
- package/report/assets/templates.html +14 -37
- package/report/clients/bundle.d.ts +6 -0
- package/report/clients/bundle.js +1 -2
- package/report/clients/standalone.d.ts +2 -0
- package/report/clients/standalone.js +0 -1
- package/report/generator/file-namer.d.ts +35 -0
- package/report/generator/file-namer.js +7 -3
- package/report/generator/flow-report-assets.d.ts +9 -0
- package/report/generator/flow-report-assets.js +10 -6
- package/report/generator/report-assets.d.ts +8 -0
- package/report/generator/report-assets.js +8 -5
- package/report/generator/report-generator.d.ts +59 -0
- package/report/generator/report-generator.js +76 -34
- package/report/generator/tsconfig.json +1 -2
- package/report/renderer/api.d.ts +31 -0
- package/report/renderer/api.js +0 -2
- package/report/renderer/category-renderer.d.ts +176 -0
- package/report/renderer/category-renderer.js +39 -41
- package/report/renderer/components.d.ts +10 -0
- package/report/renderer/components.js +364 -448
- package/report/renderer/crc-details-renderer.d.ts +73 -0
- package/report/renderer/crc-details-renderer.js +28 -30
- package/report/renderer/details-renderer.d.ts +141 -0
- package/report/renderer/details-renderer.js +44 -92
- package/report/renderer/dom.d.ts +125 -0
- package/report/renderer/dom.js +13 -10
- package/report/renderer/drop-down-menu.d.ts +70 -0
- package/report/renderer/drop-down-menu.js +0 -1
- package/report/renderer/element-screenshot-renderer.d.ts +79 -0
- package/report/renderer/element-screenshot-renderer.js +11 -12
- package/report/renderer/features-util.d.ts +13 -0
- package/report/renderer/features-util.js +0 -1
- package/report/renderer/i18n-formatter.d.ts +100 -0
- package/report/renderer/i18n-formatter.js +263 -0
- package/report/renderer/logger.d.ts +47 -0
- package/report/renderer/logger.js +0 -1
- package/report/renderer/open-tab.d.ts +19 -0
- package/report/renderer/open-tab.js +4 -4
- package/report/renderer/performance-category-renderer.d.ts +56 -0
- package/report/renderer/performance-category-renderer.js +29 -26
- package/report/renderer/pwa-category-renderer.d.ts +55 -0
- package/report/renderer/pwa-category-renderer.js +8 -8
- package/report/renderer/report-globals.d.ts +21 -0
- package/report/renderer/report-globals.js +49 -0
- package/report/renderer/report-renderer.d.ts +57 -0
- package/report/renderer/report-renderer.js +54 -52
- package/report/renderer/report-ui-features.d.ts +71 -0
- package/report/renderer/report-ui-features.js +44 -39
- package/report/renderer/report-utils.d.ts +129 -0
- package/report/renderer/report-utils.js +448 -0
- package/report/renderer/snippet-renderer.d.ts +85 -0
- package/report/renderer/snippet-renderer.js +5 -5
- package/report/renderer/swap-locale-feature.d.ts +31 -0
- package/report/renderer/swap-locale-feature.js +2 -3
- package/report/renderer/text-encoding.d.ts +26 -0
- package/report/renderer/text-encoding.js +0 -1
- package/report/renderer/topbar-features.d.ts +82 -0
- package/report/renderer/topbar-features.js +2 -2
- package/report/test/clients/bundle-test.js +5 -10
- package/report/test/generator/file-namer-test.js +3 -4
- package/report/test/generator/report-generator-test.js +49 -24
- package/report/test/renderer/category-renderer-test.js +19 -15
- package/report/test/renderer/components-test.js +36 -37
- package/report/test/renderer/crc-details-renderer-test.js +11 -10
- package/report/test/renderer/details-renderer-test.js +91 -41
- package/report/test/renderer/dom-test.js +38 -14
- package/report/test/renderer/element-screenshot-renderer-test.js +14 -12
- package/report/test/renderer/i18n-formatter-test.js +179 -0
- package/report/test/renderer/performance-category-renderer-test.js +43 -31
- package/report/test/renderer/pwa-category-renderer-test.js +17 -13
- package/report/test/renderer/report-renderer-axe-test.js +12 -15
- package/report/test/renderer/report-renderer-test.js +17 -15
- package/report/test/renderer/report-ui-features-test.js +304 -89
- package/report/test/renderer/report-utils-test.js +219 -0
- package/report/test/renderer/snippet-renderer-test.js +11 -10
- package/report/test/renderer/text-encoding-test.js +2 -5
- package/report/test-assets/faux-psi-template.html +1 -1
- package/report/test-assets/faux-psi.d.ts +34 -0
- package/report/test-assets/faux-psi.js +83 -68
- package/report/test-assets/lhr-3.0.0.json +2332 -0
- package/report/test-assets/lhr-4.3.0.json +4754 -0
- package/report/test-assets/lhr-5.0.0.json +5994 -0
- package/report/test-assets/lhr-6.0.0.json +7222 -0
- package/report/test-assets/lhr-8.5.0.json +8679 -0
- package/report/tsconfig.json +1 -2
- package/report/types/augment-dom.d.ts +1 -1
- package/root.d.ts +3 -0
- package/root.js +9 -19
- package/shared/localization/format.d.ts +106 -0
- package/shared/localization/format.js +27 -21
- package/shared/localization/i18n-module.d.ts +4 -0
- package/shared/localization/i18n-module.js +7 -3
- package/shared/localization/locales/ar-XB.json +1658 -1007
- package/shared/localization/locales/ar.json +1659 -1008
- package/shared/localization/locales/bg.json +1657 -1006
- package/shared/localization/locales/ca.json +1664 -1013
- package/shared/localization/locales/cs.json +1659 -1008
- package/shared/localization/locales/da.json +1658 -1007
- package/shared/localization/locales/de.json +1794 -1143
- package/shared/localization/locales/el.json +1657 -1006
- package/shared/localization/locales/en-GB.json +1658 -1007
- package/shared/localization/locales/en-US.json +1471 -1066
- package/shared/localization/locales/en-XA.json +1658 -1007
- package/shared/localization/locales/en-XL.json +1471 -1066
- package/shared/localization/locales/es-419.json +1660 -1009
- package/shared/localization/locales/es.json +1665 -1014
- package/shared/localization/locales/fi.json +1658 -1007
- package/shared/localization/locales/fil.json +1659 -1008
- package/shared/localization/locales/fr.json +1660 -1009
- package/shared/localization/locales/he.json +1678 -1027
- package/shared/localization/locales/hi.json +1661 -1010
- package/shared/localization/locales/hr.json +1658 -1007
- package/shared/localization/locales/hu.json +1657 -1006
- package/shared/localization/locales/id.json +1658 -1007
- package/shared/localization/locales/it.json +1678 -1027
- package/shared/localization/locales/ja.json +1657 -1006
- package/shared/localization/locales/ko.json +1658 -1007
- package/shared/localization/locales/lt.json +1658 -1007
- package/shared/localization/locales/lv.json +1658 -1007
- package/shared/localization/locales/nl.json +1659 -1008
- package/shared/localization/locales/no.json +1662 -1011
- package/shared/localization/locales/pl.json +1657 -1006
- package/shared/localization/locales/pt-PT.json +1678 -1027
- package/shared/localization/locales/pt.json +1659 -1008
- package/shared/localization/locales/ro.json +1657 -1006
- package/shared/localization/locales/ru.json +1657 -1006
- package/shared/localization/locales/sk.json +1657 -1006
- package/shared/localization/locales/sl.json +1657 -1006
- package/shared/localization/locales/sr-Latn.json +1658 -1007
- package/shared/localization/locales/sr.json +1658 -1007
- package/shared/localization/locales/sv.json +1664 -1013
- package/shared/localization/locales/ta.json +1658 -1007
- package/shared/localization/locales/te.json +1688 -1037
- package/shared/localization/locales/th.json +1666 -1015
- package/shared/localization/locales/tr.json +1658 -1007
- package/shared/localization/locales/uk.json +1657 -1006
- package/shared/localization/locales/vi.json +1659 -1008
- package/shared/localization/locales/zh-HK.json +1658 -1007
- package/shared/localization/locales/zh-TW.json +1661 -1010
- package/shared/localization/locales/zh.json +1658 -1007
- package/shared/localization/locales.d.ts +7 -0
- package/shared/localization/locales.js +54 -51
- package/shared/localization/swap-flow-locale.d.ts +6 -0
- package/shared/localization/swap-flow-locale.js +6 -3
- package/shared/localization/swap-locale.d.ts +39 -0
- package/shared/localization/swap-locale.js +7 -8
- package/shared/test/localization/format-test.js +73 -56
- package/shared/test/localization/locales-test.js +2 -4
- package/shared/test/localization/swap-locale-test.js +10 -11
- package/shared/test/util-test.js +214 -0
- package/shared/tsconfig.json +1 -2
- package/shared/type-verifiers.d.ts +23 -0
- package/shared/type-verifiers.js +1 -2
- package/shared/types/shared.d.ts +2 -2
- package/shared/util.d.ts +122 -0
- package/shared/util.js +332 -0
- package/third-party/axe/valid-langs.d.ts +9 -0
- package/third-party/axe/valid-langs.js +1 -1
- package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +5 -7
- package/third-party/chromium-synchronization/installability-errors-test.js +4 -8
- package/third-party/download-content-shell/README.md +1 -0
- package/third-party/download-content-shell/download-content-shell.js +12 -6
- package/third-party/download-content-shell/utils.js +8 -8
- package/tsconfig-base.json +6 -1
- package/tsconfig.json +84 -90
- package/types/artifacts.d.ts +135 -78
- package/types/audit.d.ts +9 -8
- package/types/config.d.ts +26 -38
- package/types/externs.d.ts +9 -101
- package/types/gatherer.d.ts +35 -27
- package/types/internal/cssstyle.d.ts +23 -0
- package/types/{enquirer.d.ts → internal/enquirer.d.ts} +0 -0
- package/types/{es-main.d.ts → internal/es-main.d.ts} +0 -0
- package/types/internal/global.d.ts +15 -0
- package/types/{http-link-header/index.d.ts → internal/http-link-header.d.ts} +0 -0
- package/types/{jsonlint-mod.d.ts → internal/jsonlint-mod.d.ts} +0 -0
- package/types/internal/lighthouse-logger.d.ts +34 -0
- package/types/internal/lookup-closest-locale.d.ts +13 -0
- package/types/{metaviewport-parser/index.d.ts → internal/metaviewport-parser.d.ts} +0 -0
- package/types/{node-fetch.d.ts → internal/node-fetch.d.ts} +0 -0
- package/types/internal/node.d.ts +44 -0
- package/types/{parse-cache-control/index.d.ts → internal/parse-cache-control.d.ts} +0 -0
- package/types/{pretty-json-stringify/index.d.ts → internal/pretty-json-stringify.d.ts} +0 -0
- package/types/internal/query-selector.d.ts +36 -0
- package/types/{rollup-plugin-postprocess.d.ts → internal/rollup-plugin-postprocess.d.ts} +0 -0
- package/types/internal/smokehouse.d.ts +83 -0
- package/types/internal/test.d.ts +53 -0
- package/types/lh.d.ts +81 -0
- package/types/lh.js +13 -0
- package/types/lhr/audit-details.d.ts +6 -53
- package/types/lhr/audit-result.d.ts +2 -2
- package/types/lhr/flow-result.d.ts +28 -0
- package/types/lhr/lhr.d.ts +53 -6
- package/types/lhr/settings.d.ts +18 -1
- package/types/lhr/treemap.d.ts +5 -4
- package/types/lhr/tsconfig.json +0 -2
- package/types/protocol.d.ts +32 -18
- package/types/puppeteer.d.ts +27 -0
- package/types/user-flow.d.ts +27 -6
- package/types/utility-types.d.ts +72 -0
- package/vercel.json +6 -0
- package/eslint-local-rules.js +0 -106
- package/flow-report/.eslintrc.cjs +0 -51
- package/flow-report/jest.config.js +0 -24
- package/flow-report/package.json +0 -4
- package/flow-report/test/setup/global-setup.ts +0 -11
- package/jest.config.js +0 -30
- package/lighthouse-cli/.eslintrc.cjs +0 -29
- package/lighthouse-cli/bin.js +0 -152
- package/lighthouse-cli/cli-flags.js +0 -530
- package/lighthouse-cli/commands/commands.js +0 -10
- package/lighthouse-cli/commands/list-audits.js +0 -16
- package/lighthouse-cli/commands/list-locales.js +0 -16
- package/lighthouse-cli/commands/list-trace-categories.js +0 -16
- package/lighthouse-cli/index.js +0 -14
- package/lighthouse-cli/package.json +0 -4
- package/lighthouse-cli/printer.js +0 -100
- package/lighthouse-cli/run.js +0 -286
- package/lighthouse-cli/sentry-prompt.js +0 -79
- package/lighthouse-cli/test/smokehouse/core-tests.js +0 -129
- package/lighthouse-cli/test/smokehouse/frontends/back-compat-util.js +0 -42
- package/lighthouse-cli/test/smokehouse/frontends/lib.js +0 -49
- package/lighthouse-cli/test/smokehouse/frontends/node.js +0 -13
- package/lighthouse-cli/test/smokehouse/frontends/smokehouse-bin.js +0 -262
- package/lighthouse-cli/test/smokehouse/lib/child-process-error.js +0 -26
- package/lighthouse-cli/test/smokehouse/lib/concurrent-mapper.js +0 -126
- package/lighthouse-cli/test/smokehouse/lib/local-console.js +0 -51
- package/lighthouse-cli/test/smokehouse/lighthouse-runners/bundle.js +0 -68
- package/lighthouse-cli/test/smokehouse/lighthouse-runners/cli.js +0 -151
- package/lighthouse-cli/test/smokehouse/lighthouse-runners/devtools.js +0 -106
- package/lighthouse-cli/test/smokehouse/readme.md +0 -204
- package/lighthouse-cli/test/smokehouse/report-assert.js +0 -493
- package/lighthouse-cli/test/smokehouse/smokehouse.js +0 -284
- package/lighthouse-cli/test/smokehouse/version-check-test.js +0 -46
- package/lighthouse-cli/test/smokehouse/version-check.js +0 -49
- package/lighthouse-core/audits/accessibility/accesskeys.js +0 -45
- package/lighthouse-core/audits/accessibility/aria-allowed-attr.js +0 -45
- package/lighthouse-core/audits/accessibility/aria-command-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-hidden-body.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-hidden-focus.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-input-field-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-meter-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-progressbar-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-required-attr.js +0 -44
- package/lighthouse-core/audits/accessibility/aria-required-children.js +0 -48
- package/lighthouse-core/audits/accessibility/aria-required-parent.js +0 -46
- package/lighthouse-core/audits/accessibility/aria-roles.js +0 -45
- package/lighthouse-core/audits/accessibility/aria-toggle-field-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-tooltip-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-treeitem-name.js +0 -43
- package/lighthouse-core/audits/accessibility/aria-valid-attr-value.js +0 -45
- package/lighthouse-core/audits/accessibility/aria-valid-attr.js +0 -45
- package/lighthouse-core/audits/accessibility/axe-audit.js +0 -114
- package/lighthouse-core/audits/accessibility/button-name.js +0 -45
- package/lighthouse-core/audits/accessibility/bypass.js +0 -46
- package/lighthouse-core/audits/accessibility/color-contrast.js +0 -46
- package/lighthouse-core/audits/accessibility/definition-list.js +0 -47
- package/lighthouse-core/audits/accessibility/dlitem.js +0 -45
- package/lighthouse-core/audits/accessibility/document-title.js +0 -45
- package/lighthouse-core/audits/accessibility/duplicate-id-active.js +0 -43
- package/lighthouse-core/audits/accessibility/duplicate-id-aria.js +0 -43
- package/lighthouse-core/audits/accessibility/form-field-multiple-labels.js +0 -44
- package/lighthouse-core/audits/accessibility/frame-title.js +0 -44
- package/lighthouse-core/audits/accessibility/heading-order.js +0 -43
- package/lighthouse-core/audits/accessibility/html-has-lang.js +0 -47
- package/lighthouse-core/audits/accessibility/html-lang-valid.js +0 -46
- package/lighthouse-core/audits/accessibility/image-alt.js +0 -45
- package/lighthouse-core/audits/accessibility/input-image-alt.js +0 -45
- package/lighthouse-core/audits/accessibility/label.js +0 -45
- package/lighthouse-core/audits/accessibility/link-name.js +0 -46
- package/lighthouse-core/audits/accessibility/list.js +0 -47
- package/lighthouse-core/audits/accessibility/listitem.js +0 -46
- package/lighthouse-core/audits/accessibility/manual/custom-controls-labels.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/custom-controls-roles.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/focus-traps.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/focusable-controls.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/interactive-element-affordance.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/logical-tab-order.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/managed-focus.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/offscreen-content-hidden.js +0 -29
- package/lighthouse-core/audits/accessibility/manual/use-landmarks.js +0 -28
- package/lighthouse-core/audits/accessibility/manual/visual-order-follows-dom.js +0 -28
- package/lighthouse-core/audits/accessibility/meta-refresh.js +0 -46
- package/lighthouse-core/audits/accessibility/meta-viewport.js +0 -47
- package/lighthouse-core/audits/accessibility/object-alt.js +0 -45
- package/lighthouse-core/audits/accessibility/tabindex.js +0 -45
- package/lighthouse-core/audits/accessibility/td-headers-attr.js +0 -49
- package/lighthouse-core/audits/accessibility/th-has-data-cells.js +0 -48
- package/lighthouse-core/audits/accessibility/valid-lang.js +0 -45
- package/lighthouse-core/audits/accessibility/video-caption.js +0 -46
- package/lighthouse-core/audits/apple-touch-icon.js +0 -72
- package/lighthouse-core/audits/audit.js +0 -391
- package/lighthouse-core/audits/autocomplete.js +0 -290
- package/lighthouse-core/audits/bootup-time.js +0 -152
- package/lighthouse-core/audits/byte-efficiency/byte-efficiency-audit.js +0 -258
- package/lighthouse-core/audits/byte-efficiency/duplicated-javascript.js +0 -249
- package/lighthouse-core/audits/byte-efficiency/efficient-animated-content.js +0 -92
- package/lighthouse-core/audits/byte-efficiency/legacy-javascript.js +0 -472
- package/lighthouse-core/audits/byte-efficiency/modern-image-formats.js +0 -186
- package/lighthouse-core/audits/byte-efficiency/offscreen-images.js +0 -252
- package/lighthouse-core/audits/byte-efficiency/render-blocking-resources.js +0 -309
- package/lighthouse-core/audits/byte-efficiency/total-byte-weight.js +0 -111
- package/lighthouse-core/audits/byte-efficiency/unminified-css.js +0 -117
- package/lighthouse-core/audits/byte-efficiency/unminified-javascript.js +0 -120
- package/lighthouse-core/audits/byte-efficiency/unused-css-rules.js +0 -71
- package/lighthouse-core/audits/byte-efficiency/unused-javascript.js +0 -161
- package/lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js +0 -298
- package/lighthouse-core/audits/byte-efficiency/uses-optimized-images.js +0 -145
- package/lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -100
- package/lighthouse-core/audits/byte-efficiency/uses-responsive-images.js +0 -177
- package/lighthouse-core/audits/byte-efficiency/uses-text-compression.js +0 -100
- package/lighthouse-core/audits/content-width.js +0 -77
- package/lighthouse-core/audits/critical-request-chains.js +0 -220
- package/lighthouse-core/audits/csp-xss.js +0 -186
- package/lighthouse-core/audits/deprecations.js +0 -115
- package/lighthouse-core/audits/diagnostics.js +0 -79
- package/lighthouse-core/audits/dobetterweb/charset.js +0 -96
- package/lighthouse-core/audits/dobetterweb/doctype.js +0 -94
- package/lighthouse-core/audits/dobetterweb/dom-size.js +0 -123
- package/lighthouse-core/audits/dobetterweb/geolocation-on-start.js +0 -70
- package/lighthouse-core/audits/dobetterweb/inspector-issues.js +0 -192
- package/lighthouse-core/audits/dobetterweb/js-libraries.js +0 -88
- package/lighthouse-core/audits/dobetterweb/no-document-write.js +0 -85
- package/lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js +0 -225
- package/lighthouse-core/audits/dobetterweb/notification-on-start.js +0 -69
- package/lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js +0 -66
- package/lighthouse-core/audits/dobetterweb/uses-http2.js +0 -258
- package/lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js +0 -68
- package/lighthouse-core/audits/errors-in-console.js +0 -118
- package/lighthouse-core/audits/final-screenshot.js +0 -59
- package/lighthouse-core/audits/font-display.js +0 -193
- package/lighthouse-core/audits/full-page-screenshot.js +0 -43
- package/lighthouse-core/audits/image-aspect-ratio.js +0 -122
- package/lighthouse-core/audits/image-size-responsive.js +0 -331
- package/lighthouse-core/audits/installable-manifest.js +0 -266
- package/lighthouse-core/audits/is-on-https.js +0 -125
- package/lighthouse-core/audits/largest-contentful-paint-element.js +0 -70
- package/lighthouse-core/audits/layout-shift-elements.js +0 -75
- package/lighthouse-core/audits/lcp-lazy-loaded.js +0 -85
- package/lighthouse-core/audits/long-tasks.js +0 -124
- package/lighthouse-core/audits/main-thread-tasks.js +0 -59
- package/lighthouse-core/audits/mainthread-work-breakdown.js +0 -134
- package/lighthouse-core/audits/manual/manual-audit.js +0 -37
- package/lighthouse-core/audits/manual/pwa-cross-browser.js +0 -41
- package/lighthouse-core/audits/manual/pwa-each-page-has-url.js +0 -39
- package/lighthouse-core/audits/manual/pwa-page-transitions.js +0 -39
- package/lighthouse-core/audits/maskable-icon.js +0 -71
- package/lighthouse-core/audits/metrics/cumulative-layout-shift.js +0 -79
- package/lighthouse-core/audits/metrics/experimental-interaction-to-next-paint.js +0 -88
- package/lighthouse-core/audits/metrics/first-contentful-paint-3g.js +0 -67
- package/lighthouse-core/audits/metrics/first-contentful-paint.js +0 -85
- package/lighthouse-core/audits/metrics/first-meaningful-paint.js +0 -89
- package/lighthouse-core/audits/metrics/interactive.js +0 -93
- package/lighthouse-core/audits/metrics/largest-contentful-paint.js +0 -114
- package/lighthouse-core/audits/metrics/max-potential-fid.js +0 -76
- package/lighthouse-core/audits/metrics/speed-index.js +0 -88
- package/lighthouse-core/audits/metrics/total-blocking-time.js +0 -117
- package/lighthouse-core/audits/metrics.js +0 -73
- package/lighthouse-core/audits/multi-check-audit.js +0 -83
- package/lighthouse-core/audits/network-requests.js +0 -130
- package/lighthouse-core/audits/network-rtt.js +0 -90
- package/lighthouse-core/audits/network-server-latency.js +0 -89
- package/lighthouse-core/audits/no-unload-listeners.js +0 -95
- package/lighthouse-core/audits/non-composited-animations.js +0 -206
- package/lighthouse-core/audits/oopif-iframe-test-audit.js +0 -30
- package/lighthouse-core/audits/performance-budget.js +0 -154
- package/lighthouse-core/audits/predictive-perf.js +0 -101
- package/lighthouse-core/audits/preload-fonts.js +0 -107
- package/lighthouse-core/audits/preload-lcp-image.js +0 -272
- package/lighthouse-core/audits/redirects.js +0 -163
- package/lighthouse-core/audits/resource-summary.js +0 -104
- package/lighthouse-core/audits/screenshot-thumbnails.js +0 -163
- package/lighthouse-core/audits/script-treemap-data.js +0 -288
- package/lighthouse-core/audits/seo/canonical.js +0 -218
- package/lighthouse-core/audits/seo/crawlable-anchors.js +0 -94
- package/lighthouse-core/audits/seo/font-size.js +0 -344
- package/lighthouse-core/audits/seo/hreflang.js +0 -149
- package/lighthouse-core/audits/seo/http-status-code.js +0 -70
- package/lighthouse-core/audits/seo/is-crawlable.js +0 -155
- package/lighthouse-core/audits/seo/link-text.js +0 -158
- package/lighthouse-core/audits/seo/manual/structured-data.js +0 -38
- package/lighthouse-core/audits/seo/meta-description.js +0 -67
- package/lighthouse-core/audits/seo/plugins.js +0 -152
- package/lighthouse-core/audits/seo/robots-txt.js +0 -256
- package/lighthouse-core/audits/seo/tap-targets.js +0 -352
- package/lighthouse-core/audits/server-response-time.js +0 -106
- package/lighthouse-core/audits/service-worker.js +0 -179
- package/lighthouse-core/audits/splash-screen.js +0 -99
- package/lighthouse-core/audits/themed-omnibox.js +0 -110
- package/lighthouse-core/audits/third-party-facades.js +0 -221
- package/lighthouse-core/audits/third-party-summary.js +0 -259
- package/lighthouse-core/audits/timing-budget.js +0 -174
- package/lighthouse-core/audits/unsized-images.js +0 -163
- package/lighthouse-core/audits/user-timings.js +0 -120
- package/lighthouse-core/audits/uses-rel-preconnect.js +0 -254
- package/lighthouse-core/audits/uses-rel-preload.js +0 -267
- package/lighthouse-core/audits/valid-source-maps.js +0 -157
- package/lighthouse-core/audits/viewport.js +0 -65
- package/lighthouse-core/audits/violation-audit.js +0 -50
- package/lighthouse-core/audits/work-during-interaction.js +0 -280
- package/lighthouse-core/computed/computed-artifact.js +0 -62
- package/lighthouse-core/computed/critical-request-chains.js +0 -146
- package/lighthouse-core/computed/image-records.js +0 -63
- package/lighthouse-core/computed/js-bundles.js +0 -119
- package/lighthouse-core/computed/load-simulator.js +0 -92
- package/lighthouse-core/computed/main-resource.js +0 -34
- package/lighthouse-core/computed/main-thread-tasks.js +0 -25
- package/lighthouse-core/computed/manifest-values.js +0 -135
- package/lighthouse-core/computed/metrics/cumulative-layout-shift.js +0 -129
- package/lighthouse-core/computed/metrics/first-contentful-paint-all-frames.js +0 -37
- package/lighthouse-core/computed/metrics/first-contentful-paint.js +0 -40
- package/lighthouse-core/computed/metrics/first-meaningful-paint.js +0 -44
- package/lighthouse-core/computed/metrics/interactive.js +0 -193
- package/lighthouse-core/computed/metrics/lantern-first-contentful-paint.js +0 -204
- package/lighthouse-core/computed/metrics/lantern-first-meaningful-paint.js +0 -83
- package/lighthouse-core/computed/metrics/lantern-interactive.js +0 -113
- package/lighthouse-core/computed/metrics/lantern-largest-contentful-paint.js +0 -111
- package/lighthouse-core/computed/metrics/lantern-max-potential-fid.js +0 -93
- package/lighthouse-core/computed/metrics/lantern-metric.js +0 -167
- package/lighthouse-core/computed/metrics/lantern-speed-index.js +0 -150
- package/lighthouse-core/computed/metrics/lantern-total-blocking-time.js +0 -126
- package/lighthouse-core/computed/metrics/largest-contentful-paint-all-frames.js +0 -45
- package/lighthouse-core/computed/metrics/largest-contentful-paint.js +0 -52
- package/lighthouse-core/computed/metrics/max-potential-fid.js +0 -45
- package/lighthouse-core/computed/metrics/metric.js +0 -100
- package/lighthouse-core/computed/metrics/navigation-metric.js +0 -46
- package/lighthouse-core/computed/metrics/responsiveness.js +0 -157
- package/lighthouse-core/computed/metrics/speed-index.js +0 -40
- package/lighthouse-core/computed/metrics/tbt-utils.js +0 -57
- package/lighthouse-core/computed/metrics/timing-summary.js +0 -150
- package/lighthouse-core/computed/metrics/total-blocking-time.js +0 -74
- package/lighthouse-core/computed/module-duplication.js +0 -136
- package/lighthouse-core/computed/network-analysis.js +0 -64
- package/lighthouse-core/computed/network-records.js +0 -21
- package/lighthouse-core/computed/page-dependency-graph.js +0 -488
- package/lighthouse-core/computed/processed-navigation.js +0 -21
- package/lighthouse-core/computed/processed-trace.js +0 -21
- package/lighthouse-core/computed/resource-summary.js +0 -114
- package/lighthouse-core/computed/screenshots.js +0 -29
- package/lighthouse-core/computed/speedline.js +0 -54
- package/lighthouse-core/computed/trace-of-tab.js +0 -30
- package/lighthouse-core/computed/unused-css.js +0 -154
- package/lighthouse-core/computed/unused-javascript-summary.js +0 -175
- package/lighthouse-core/computed/user-timings.js +0 -83
- package/lighthouse-core/computed/viewport-meta.js +0 -56
- package/lighthouse-core/config/budget.js +0 -341
- package/lighthouse-core/config/config-helpers.js +0 -590
- package/lighthouse-core/config/config-plugin.js +0 -225
- package/lighthouse-core/config/config.js +0 -544
- package/lighthouse-core/config/constants.js +0 -169
- package/lighthouse-core/config/default-config.js +0 -632
- package/lighthouse-core/config/desktop-config.js +0 -21
- package/lighthouse-core/config/experimental-config.js +0 -30
- package/lighthouse-core/config/full-config.js +0 -14
- package/lighthouse-core/config/lr-desktop-config.js +0 -25
- package/lighthouse-core/config/lr-mobile-config.js +0 -31
- package/lighthouse-core/config/metrics-to-audits.js +0 -61
- package/lighthouse-core/config/perf-config.js +0 -17
- package/lighthouse-core/fraggle-rock/api.js +0 -77
- package/lighthouse-core/fraggle-rock/config/config.js +0 -281
- package/lighthouse-core/fraggle-rock/config/default-config.js +0 -205
- package/lighthouse-core/fraggle-rock/config/filters.js +0 -335
- package/lighthouse-core/fraggle-rock/config/validation.js +0 -313
- package/lighthouse-core/fraggle-rock/gather/base-artifacts.js +0 -99
- package/lighthouse-core/fraggle-rock/gather/base-gatherer.js +0 -107
- package/lighthouse-core/fraggle-rock/gather/driver.js +0 -88
- package/lighthouse-core/fraggle-rock/gather/navigation-runner.js +0 -339
- package/lighthouse-core/fraggle-rock/gather/runner-helpers.js +0 -160
- package/lighthouse-core/fraggle-rock/gather/session.js +0 -182
- package/lighthouse-core/fraggle-rock/gather/snapshot-runner.js +0 -68
- package/lighthouse-core/fraggle-rock/gather/timespan-runner.js +0 -82
- package/lighthouse-core/fraggle-rock/user-flow.js +0 -229
- package/lighthouse-core/gather/connections/connection.js +0 -179
- package/lighthouse-core/gather/connections/cri.js +0 -171
- package/lighthouse-core/gather/connections/raw.js +0 -58
- package/lighthouse-core/gather/devtools-log.js +0 -61
- package/lighthouse-core/gather/driver/dom.js +0 -58
- package/lighthouse-core/gather/driver/environment.js +0 -105
- package/lighthouse-core/gather/driver/execution-context.js +0 -249
- package/lighthouse-core/gather/driver/navigation.js +0 -179
- package/lighthouse-core/gather/driver/network-monitor.js +0 -290
- package/lighthouse-core/gather/driver/network.js +0 -28
- package/lighthouse-core/gather/driver/prepare.js +0 -226
- package/lighthouse-core/gather/driver/service-workers.js +0 -53
- package/lighthouse-core/gather/driver/storage.js +0 -125
- package/lighthouse-core/gather/driver/target-manager.js +0 -125
- package/lighthouse-core/gather/driver/wait-for-condition.js +0 -535
- package/lighthouse-core/gather/driver.js +0 -482
- package/lighthouse-core/gather/fetcher.js +0 -318
- package/lighthouse-core/gather/gather-runner.js +0 -622
- package/lighthouse-core/gather/gatherers/accessibility.js +0 -172
- package/lighthouse-core/gather/gatherers/anchor-elements.js +0 -133
- package/lighthouse-core/gather/gatherers/cache-contents.js +0 -59
- package/lighthouse-core/gather/gatherers/console-messages.js +0 -173
- package/lighthouse-core/gather/gatherers/css-usage.js +0 -149
- package/lighthouse-core/gather/gatherers/devtools-log-compat.js +0 -36
- package/lighthouse-core/gather/gatherers/devtools-log.js +0 -66
- package/lighthouse-core/gather/gatherers/dobetterweb/doctype.js +0 -46
- package/lighthouse-core/gather/gatherers/dobetterweb/domstats.js +0 -103
- package/lighthouse-core/gather/gatherers/dobetterweb/optimized-images.js +0 -192
- package/lighthouse-core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +0 -50
- package/lighthouse-core/gather/gatherers/dobetterweb/response-compression.js +0 -154
- package/lighthouse-core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +0 -238
- package/lighthouse-core/gather/gatherers/full-page-screenshot.js +0 -235
- package/lighthouse-core/gather/gatherers/gatherer.js +0 -59
- package/lighthouse-core/gather/gatherers/global-listeners.js +0 -92
- package/lighthouse-core/gather/gatherers/iframe-elements.js +0 -65
- package/lighthouse-core/gather/gatherers/image-elements.js +0 -375
- package/lighthouse-core/gather/gatherers/inputs.js +0 -113
- package/lighthouse-core/gather/gatherers/inspector-issues.js +0 -127
- package/lighthouse-core/gather/gatherers/installability-errors.js +0 -48
- package/lighthouse-core/gather/gatherers/js-usage.js +0 -145
- package/lighthouse-core/gather/gatherers/link-elements.js +0 -184
- package/lighthouse-core/gather/gatherers/main-document-content.js +0 -56
- package/lighthouse-core/gather/gatherers/meta-elements.js +0 -68
- package/lighthouse-core/gather/gatherers/network-user-agent.js +0 -42
- package/lighthouse-core/gather/gatherers/script-elements.js +0 -160
- package/lighthouse-core/gather/gatherers/seo/embedded-content.js +0 -64
- package/lighthouse-core/gather/gatherers/seo/font-size.js +0 -380
- package/lighthouse-core/gather/gatherers/seo/robots-txt.js +0 -56
- package/lighthouse-core/gather/gatherers/seo/tap-targets.js +0 -370
- package/lighthouse-core/gather/gatherers/service-worker.js +0 -45
- package/lighthouse-core/gather/gatherers/source-maps.js +0 -150
- package/lighthouse-core/gather/gatherers/stacks.js +0 -125
- package/lighthouse-core/gather/gatherers/trace-compat.js +0 -36
- package/lighthouse-core/gather/gatherers/trace-elements.js +0 -349
- package/lighthouse-core/gather/gatherers/trace.js +0 -131
- package/lighthouse-core/gather/gatherers/viewport-dimensions.js +0 -58
- package/lighthouse-core/gather/gatherers/web-app-manifest.js +0 -102
- package/lighthouse-core/index.js +0 -80
- package/lighthouse-core/lib/arbitrary-equality-map.js +0 -81
- package/lighthouse-core/lib/asset-saver.js +0 -341
- package/lighthouse-core/lib/axe.js +0 -13
- package/lighthouse-core/lib/cdt/Platform.js +0 -55
- package/lighthouse-core/lib/cdt/SDK.js +0 -28
- package/lighthouse-core/lib/cdt/generated/SourceMap.js +0 -346
- package/lighthouse-core/lib/csp-evaluator.js +0 -173
- package/lighthouse-core/lib/dependency-graph/base-node.js +0 -363
- package/lighthouse-core/lib/dependency-graph/cpu-node.js +0 -86
- package/lighthouse-core/lib/dependency-graph/network-node.js +0 -99
- package/lighthouse-core/lib/dependency-graph/simulator/connection-pool.js +0 -171
- package/lighthouse-core/lib/dependency-graph/simulator/dns-cache.js +0 -73
- package/lighthouse-core/lib/dependency-graph/simulator/network-analyzer.js +0 -498
- package/lighthouse-core/lib/dependency-graph/simulator/simulator-timing-map.js +0 -212
- package/lighthouse-core/lib/dependency-graph/simulator/simulator.js +0 -523
- package/lighthouse-core/lib/dependency-graph/simulator/tcp-connection.js +0 -206
- package/lighthouse-core/lib/deprecations-strings.js +0 -573
- package/lighthouse-core/lib/emulation.js +0 -164
- package/lighthouse-core/lib/i18n/README.md +0 -273
- package/lighthouse-core/lib/i18n/i18n.js +0 -221
- package/lighthouse-core/lib/icons.js +0 -85
- package/lighthouse-core/lib/lantern-trace-saver.js +0 -198
- package/lighthouse-core/lib/lh-env.js +0 -14
- package/lighthouse-core/lib/lh-error.js +0 -421
- package/lighthouse-core/lib/lh-trace-processor.js +0 -46
- package/lighthouse-core/lib/manifest-parser.js +0 -513
- package/lighthouse-core/lib/median-run.js +0 -92
- package/lighthouse-core/lib/minification-estimator.js +0 -193
- package/lighthouse-core/lib/minify-devtoolslog.js +0 -87
- package/lighthouse-core/lib/minify-trace.js +0 -173
- package/lighthouse-core/lib/navigation-error.js +0 -145
- package/lighthouse-core/lib/network-recorder.js +0 -337
- package/lighthouse-core/lib/network-request.js +0 -545
- package/lighthouse-core/lib/page-functions.js +0 -559
- package/lighthouse-core/lib/proto-preprocessor.js +0 -133
- package/lighthouse-core/lib/rect-helpers.js +0 -252
- package/lighthouse-core/lib/script-helpers.js +0 -24
- package/lighthouse-core/lib/sentry.js +0 -144
- package/lighthouse-core/lib/stack-packs.js +0 -120
- package/lighthouse-core/lib/statistics.js +0 -104
- package/lighthouse-core/lib/tappable-rects.js +0 -99
- package/lighthouse-core/lib/third-party-web.js +0 -53
- package/lighthouse-core/lib/timing-trace-saver.js +0 -97
- package/lighthouse-core/lib/tracehouse/cpu-profile-model.js +0 -592
- package/lighthouse-core/lib/tracehouse/main-thread-tasks.js +0 -688
- package/lighthouse-core/lib/tracehouse/task-groups.js +0 -112
- package/lighthouse-core/lib/tracehouse/task-summary.js +0 -87
- package/lighthouse-core/lib/tracehouse/trace-processor.js +0 -962
- package/lighthouse-core/lib/traces/pwmetrics-events.js +0 -200
- package/lighthouse-core/lib/url-shim.js +0 -274
- package/lighthouse-core/runner.js +0 -518
- package/lighthouse-core/scoring.js +0 -93
- package/lighthouse-core/scripts/download-chrome.sh +0 -36
- package/lighthouse-core/scripts/manual-chrome-launcher.js +0 -51
- package/lighthouse-core/scripts/package.json +0 -4
- package/lighthouse-core/util-commonjs.js +0 -708
- package/now.json +0 -14
- package/report/.eslintrc.cjs +0 -35
- package/report/generator/package.json +0 -4
- package/report/package.json +0 -4
- package/report/renderer/i18n.js +0 -198
- package/report/renderer/util.js +0 -705
- package/report/test/generator/package.json +0 -4
- package/report/test/renderer/i18n-test.js +0 -140
- package/report/test/renderer/util-test.js +0 -479
- package/third-party/snyk/snapshot.json +0 -182
- package/types/cssstyle/index.d.ts +0 -23
- package/types/global-lh.d.ts +0 -81
- package/types/jest.d.ts +0 -25
- package/types/jsonld/index.d.ts +0 -19
- package/types/lhr/flow.d.ts +0 -32
- package/types/lighthouse-logger/index.d.ts +0 -33
- package/types/lookup-closest-locale/index.d.ts +0 -11
- package/types/node.d.ts +0 -12
- package/types/query-selector.d.ts +0 -36
- package/types/smokehouse.d.ts +0 -80
- package/types/structured-data.d.ts +0 -36
|
@@ -0,0 +1,2332 @@
|
|
|
1
|
+
{
|
|
2
|
+
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
|
|
3
|
+
"lighthouseVersion": "3.0.0",
|
|
4
|
+
"fetchTime": "2022-12-15T21:26:21.602Z",
|
|
5
|
+
"requestedUrl": "https://www.example.com/",
|
|
6
|
+
"finalUrl": "https://www.example.com/",
|
|
7
|
+
"runWarnings": [],
|
|
8
|
+
"audits": {
|
|
9
|
+
"is-on-https": {
|
|
10
|
+
"id": "is-on-https",
|
|
11
|
+
"title": "Uses HTTPS",
|
|
12
|
+
"description": "All sites should be protected with HTTPS, even ones that don't handle sensitive data. 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://developers.google.com/web/tools/lighthouse/audits/https).",
|
|
13
|
+
"score": 1,
|
|
14
|
+
"scoreDisplayMode": "binary",
|
|
15
|
+
"rawValue": true,
|
|
16
|
+
"displayValue": "",
|
|
17
|
+
"details": {
|
|
18
|
+
"type": "table",
|
|
19
|
+
"headings": [],
|
|
20
|
+
"items": []
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"redirects-http": {
|
|
24
|
+
"id": "redirects-http",
|
|
25
|
+
"title": "Does not redirect HTTP traffic to HTTPS",
|
|
26
|
+
"description": "If you've already set up HTTPS, make sure that you redirect all HTTP traffic to HTTPS. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/http-redirects-to-https).",
|
|
27
|
+
"score": 0,
|
|
28
|
+
"scoreDisplayMode": "binary",
|
|
29
|
+
"rawValue": false
|
|
30
|
+
},
|
|
31
|
+
"service-worker": {
|
|
32
|
+
"id": "service-worker",
|
|
33
|
+
"title": "Does not register a service worker",
|
|
34
|
+
"description": "The 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. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/registered-service-worker).",
|
|
35
|
+
"score": 0,
|
|
36
|
+
"scoreDisplayMode": "binary",
|
|
37
|
+
"rawValue": false
|
|
38
|
+
},
|
|
39
|
+
"works-offline": {
|
|
40
|
+
"id": "works-offline",
|
|
41
|
+
"title": "Does not respond with a 200 when offline",
|
|
42
|
+
"description": "If you're building a Progressive Web App, consider using a service worker so that your app can work offline. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/http-200-when-offline).",
|
|
43
|
+
"score": 0,
|
|
44
|
+
"scoreDisplayMode": "binary",
|
|
45
|
+
"rawValue": false,
|
|
46
|
+
"warnings": []
|
|
47
|
+
},
|
|
48
|
+
"viewport": {
|
|
49
|
+
"id": "viewport",
|
|
50
|
+
"title": "Has a `<meta name=\"viewport\">` tag with `width` or `initial-scale`",
|
|
51
|
+
"description": "Add a viewport meta tag to optimize your app for mobile screens. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/has-viewport-meta-tag).",
|
|
52
|
+
"score": 1,
|
|
53
|
+
"scoreDisplayMode": "binary",
|
|
54
|
+
"rawValue": true,
|
|
55
|
+
"warnings": []
|
|
56
|
+
},
|
|
57
|
+
"without-javascript": {
|
|
58
|
+
"id": "without-javascript",
|
|
59
|
+
"title": "Contains some content when JavaScript is not available",
|
|
60
|
+
"description": "Your app should display some content when JavaScript is disabled, even if it's just a warning to the user that JavaScript is required to use the app. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/no-js).",
|
|
61
|
+
"score": 1,
|
|
62
|
+
"scoreDisplayMode": "binary",
|
|
63
|
+
"rawValue": true
|
|
64
|
+
},
|
|
65
|
+
"first-contentful-paint": {
|
|
66
|
+
"id": "first-contentful-paint",
|
|
67
|
+
"title": "First Contentful Paint",
|
|
68
|
+
"description": "First contentful paint marks the time at which the first text/image is painted. [Learn more](https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics#first_paint_and_first_contentful_paint).",
|
|
69
|
+
"score": 1,
|
|
70
|
+
"scoreDisplayMode": "numeric",
|
|
71
|
+
"rawValue": 765.6171,
|
|
72
|
+
"displayValue": [
|
|
73
|
+
"%10d ms",
|
|
74
|
+
765.6171
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"first-meaningful-paint": {
|
|
78
|
+
"id": "first-meaningful-paint",
|
|
79
|
+
"title": "First Meaningful Paint",
|
|
80
|
+
"description": "First Meaningful Paint measures when the primary content of a page is visible. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/first-meaningful-paint).",
|
|
81
|
+
"score": 1,
|
|
82
|
+
"scoreDisplayMode": "numeric",
|
|
83
|
+
"rawValue": 878.20785,
|
|
84
|
+
"displayValue": [
|
|
85
|
+
"%10d ms",
|
|
86
|
+
878.20785
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"load-fast-enough-for-pwa": {
|
|
90
|
+
"id": "load-fast-enough-for-pwa",
|
|
91
|
+
"title": "Page load is fast enough on 3G",
|
|
92
|
+
"description": "A fast page load over a 3G network ensures a good mobile user experience. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/fast-3g).",
|
|
93
|
+
"score": 1,
|
|
94
|
+
"scoreDisplayMode": "binary",
|
|
95
|
+
"rawValue": 1193.4619500000001
|
|
96
|
+
},
|
|
97
|
+
"speed-index": {
|
|
98
|
+
"id": "speed-index",
|
|
99
|
+
"title": "Speed Index",
|
|
100
|
+
"description": "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/speed-index).",
|
|
101
|
+
"score": 1,
|
|
102
|
+
"scoreDisplayMode": "numeric",
|
|
103
|
+
"rawValue": 765.6171,
|
|
104
|
+
"displayValue": [
|
|
105
|
+
"%10d ms",
|
|
106
|
+
765.6171
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"screenshot-thumbnails": {
|
|
110
|
+
"id": "screenshot-thumbnails",
|
|
111
|
+
"title": "Screenshot Thumbnails",
|
|
112
|
+
"description": "This is what the load of your site looked like.",
|
|
113
|
+
"score": null,
|
|
114
|
+
"scoreDisplayMode": "informative",
|
|
115
|
+
"rawValue": true,
|
|
116
|
+
"details": {
|
|
117
|
+
"type": "filmstrip",
|
|
118
|
+
"scale": 3000,
|
|
119
|
+
"items": [
|
|
120
|
+
{
|
|
121
|
+
"timing": 300,
|
|
122
|
+
"timestamp": 116362270714,
|
|
123
|
+
"data": "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"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"timing": 600,
|
|
127
|
+
"timestamp": 116362570714,
|
|
128
|
+
"data": "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"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"timing": 900,
|
|
132
|
+
"timestamp": 116362870714,
|
|
133
|
+
"data": "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"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"timing": 1200,
|
|
137
|
+
"timestamp": 116363170714,
|
|
138
|
+
"data": "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"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"timing": 1500,
|
|
142
|
+
"timestamp": 116363470714,
|
|
143
|
+
"data": "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"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"timing": 1800,
|
|
147
|
+
"timestamp": 116363770714,
|
|
148
|
+
"data": "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"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"timing": 2100,
|
|
152
|
+
"timestamp": 116364070714,
|
|
153
|
+
"data": "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"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"timing": 2400,
|
|
157
|
+
"timestamp": 116364370714,
|
|
158
|
+
"data": "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"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"timing": 2700,
|
|
162
|
+
"timestamp": 116364670714,
|
|
163
|
+
"data": "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"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"timing": 3000,
|
|
167
|
+
"timestamp": 116364970714,
|
|
168
|
+
"data": "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"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"estimated-input-latency": {
|
|
174
|
+
"id": "estimated-input-latency",
|
|
175
|
+
"title": "Estimated Input Latency",
|
|
176
|
+
"description": "The score above is an estimate of how long your app takes to respond to user input, in milliseconds, during the busiest 5s window of page load. If your latency is higher than 50 ms, users may perceive your app as laggy. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/estimated-input-latency).",
|
|
177
|
+
"score": 1,
|
|
178
|
+
"scoreDisplayMode": "numeric",
|
|
179
|
+
"rawValue": 12.8,
|
|
180
|
+
"displayValue": [
|
|
181
|
+
"%d ms",
|
|
182
|
+
12.8
|
|
183
|
+
]
|
|
184
|
+
},
|
|
185
|
+
"errors-in-console": {
|
|
186
|
+
"id": "errors-in-console",
|
|
187
|
+
"title": "Browser errors were logged to the console",
|
|
188
|
+
"description": "Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns.",
|
|
189
|
+
"score": 0,
|
|
190
|
+
"scoreDisplayMode": "binary",
|
|
191
|
+
"rawValue": 1,
|
|
192
|
+
"details": {
|
|
193
|
+
"type": "table",
|
|
194
|
+
"headings": [
|
|
195
|
+
{
|
|
196
|
+
"key": "url",
|
|
197
|
+
"itemType": "url",
|
|
198
|
+
"text": "URL"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"key": "description",
|
|
202
|
+
"itemType": "code",
|
|
203
|
+
"text": "Description"
|
|
204
|
+
}
|
|
205
|
+
],
|
|
206
|
+
"items": [
|
|
207
|
+
{
|
|
208
|
+
"source": "network",
|
|
209
|
+
"description": "Failed to load resource: the server responded with a status of 404 ()",
|
|
210
|
+
"url": "https://www.example.com/favicon.ico"
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"time-to-first-byte": {
|
|
216
|
+
"id": "time-to-first-byte",
|
|
217
|
+
"title": "Keep server response times low (TTFB)",
|
|
218
|
+
"description": "Time To First Byte identifies the time at which your server sends a response. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/ttfb).",
|
|
219
|
+
"score": 1,
|
|
220
|
+
"scoreDisplayMode": "binary",
|
|
221
|
+
"rawValue": 6.060000000000002,
|
|
222
|
+
"displayValue": "",
|
|
223
|
+
"details": {
|
|
224
|
+
"type": "opportunity",
|
|
225
|
+
"overallSavingsMs": -593.94,
|
|
226
|
+
"headings": [],
|
|
227
|
+
"items": []
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"first-cpu-idle": {
|
|
231
|
+
"id": "first-cpu-idle",
|
|
232
|
+
"title": "First CPU Idle",
|
|
233
|
+
"description": "First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/first-interactive).",
|
|
234
|
+
"score": 1,
|
|
235
|
+
"scoreDisplayMode": "numeric",
|
|
236
|
+
"rawValue": 1193.4619500000001,
|
|
237
|
+
"displayValue": [
|
|
238
|
+
"%10d ms",
|
|
239
|
+
1193.4619500000001
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"interactive": {
|
|
243
|
+
"id": "interactive",
|
|
244
|
+
"title": "Time to Interactive",
|
|
245
|
+
"description": "Interactive marks the time at which the page is fully interactive. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/consistently-interactive).",
|
|
246
|
+
"score": 1,
|
|
247
|
+
"scoreDisplayMode": "numeric",
|
|
248
|
+
"rawValue": 1193.4619500000001,
|
|
249
|
+
"displayValue": [
|
|
250
|
+
"%10d ms",
|
|
251
|
+
1193.4619500000001
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
"user-timings": {
|
|
255
|
+
"id": "user-timings",
|
|
256
|
+
"title": "User Timing marks and measures",
|
|
257
|
+
"description": "Consider instrumenting your app with the User Timing API to create custom, real-world measurements of key user experiences. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/user-timing).",
|
|
258
|
+
"score": null,
|
|
259
|
+
"scoreDisplayMode": "not-applicable",
|
|
260
|
+
"rawValue": true,
|
|
261
|
+
"details": {
|
|
262
|
+
"type": "table",
|
|
263
|
+
"headings": [],
|
|
264
|
+
"items": []
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"critical-request-chains": {
|
|
268
|
+
"id": "critical-request-chains",
|
|
269
|
+
"title": "Critical Request Chains",
|
|
270
|
+
"description": "The Critical Request Chains below show you what resources are issued 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://developers.google.com/web/tools/lighthouse/audits/critical-request-chains).",
|
|
271
|
+
"score": null,
|
|
272
|
+
"scoreDisplayMode": "not-applicable",
|
|
273
|
+
"rawValue": true,
|
|
274
|
+
"displayValue": "",
|
|
275
|
+
"details": {
|
|
276
|
+
"type": "criticalrequestchain",
|
|
277
|
+
"header": {
|
|
278
|
+
"type": "text",
|
|
279
|
+
"text": "View critical network waterfall:"
|
|
280
|
+
},
|
|
281
|
+
"chains": {
|
|
282
|
+
"C34A84F424298456840B9DDB948FB645": {
|
|
283
|
+
"request": {
|
|
284
|
+
"url": "https://www.example.com/",
|
|
285
|
+
"startTime": 116361.971984,
|
|
286
|
+
"endTime": 116362.00819,
|
|
287
|
+
"_responseReceivedTime": 116362.007998,
|
|
288
|
+
"transferSize": 849
|
|
289
|
+
},
|
|
290
|
+
"children": {}
|
|
291
|
+
},
|
|
292
|
+
"22964.2": {
|
|
293
|
+
"request": {
|
|
294
|
+
"url": "https://www.example.com/favicon.ico",
|
|
295
|
+
"startTime": 116362.026802,
|
|
296
|
+
"endTime": 116362.031554,
|
|
297
|
+
"_responseReceivedTime": 116362.031358,
|
|
298
|
+
"transferSize": 740
|
|
299
|
+
},
|
|
300
|
+
"children": {}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"longestChain": {
|
|
304
|
+
"duration": 59.56999999762047,
|
|
305
|
+
"length": 1,
|
|
306
|
+
"transferSize": 740
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"redirects": {
|
|
311
|
+
"id": "redirects",
|
|
312
|
+
"title": "Avoid multiple page redirects",
|
|
313
|
+
"description": "Redirects introduce additional delays before the page can be loaded. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/redirects).",
|
|
314
|
+
"score": 1,
|
|
315
|
+
"scoreDisplayMode": "numeric",
|
|
316
|
+
"rawValue": 0,
|
|
317
|
+
"displayValue": [
|
|
318
|
+
"%d ms",
|
|
319
|
+
0
|
|
320
|
+
],
|
|
321
|
+
"details": {
|
|
322
|
+
"type": "table",
|
|
323
|
+
"headings": [],
|
|
324
|
+
"items": [],
|
|
325
|
+
"summary": {
|
|
326
|
+
"wastedMs": 0
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
"webapp-install-banner": {
|
|
331
|
+
"id": "webapp-install-banner",
|
|
332
|
+
"title": "User will not be prompted to Install the Web App",
|
|
333
|
+
"description": "Browsers can proactively prompt users to add your app to their homescreen, which can lead to higher engagement. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/install-prompt).",
|
|
334
|
+
"score": 0,
|
|
335
|
+
"scoreDisplayMode": "binary",
|
|
336
|
+
"rawValue": false,
|
|
337
|
+
"explanation": "Failures: No manifest was fetched,\nSite does not register a service worker.",
|
|
338
|
+
"details": {
|
|
339
|
+
"items": [
|
|
340
|
+
{
|
|
341
|
+
"failures": [
|
|
342
|
+
"No manifest was fetched",
|
|
343
|
+
"Site does not register a service worker"
|
|
344
|
+
],
|
|
345
|
+
"isParseFailure": true,
|
|
346
|
+
"parseFailureReason": "No manifest was fetched"
|
|
347
|
+
}
|
|
348
|
+
]
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"splash-screen": {
|
|
352
|
+
"id": "splash-screen",
|
|
353
|
+
"title": "Is not configured for a custom splash screen",
|
|
354
|
+
"description": "A themed splash screen ensures a high-quality experience when users launch your app from their homescreens. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/custom-splash-screen).",
|
|
355
|
+
"score": 0,
|
|
356
|
+
"scoreDisplayMode": "binary",
|
|
357
|
+
"rawValue": false,
|
|
358
|
+
"explanation": "Failures: No manifest was fetched.",
|
|
359
|
+
"details": {
|
|
360
|
+
"items": [
|
|
361
|
+
{
|
|
362
|
+
"failures": [
|
|
363
|
+
"No manifest was fetched"
|
|
364
|
+
],
|
|
365
|
+
"isParseFailure": true,
|
|
366
|
+
"parseFailureReason": "No manifest was fetched"
|
|
367
|
+
}
|
|
368
|
+
]
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"themed-omnibox": {
|
|
372
|
+
"id": "themed-omnibox",
|
|
373
|
+
"title": "Address bar does not match brand colors",
|
|
374
|
+
"description": "The browser address bar can be themed to match your site. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/address-bar).",
|
|
375
|
+
"score": 0,
|
|
376
|
+
"scoreDisplayMode": "binary",
|
|
377
|
+
"rawValue": false,
|
|
378
|
+
"explanation": "Failures: No manifest was fetched,\nNo `<meta name=\"theme-color\">` tag found.",
|
|
379
|
+
"details": {
|
|
380
|
+
"items": [
|
|
381
|
+
{
|
|
382
|
+
"failures": [
|
|
383
|
+
"No manifest was fetched",
|
|
384
|
+
"No `<meta name=\"theme-color\">` tag found"
|
|
385
|
+
],
|
|
386
|
+
"themeColor": null,
|
|
387
|
+
"isParseFailure": true,
|
|
388
|
+
"parseFailureReason": "No manifest was fetched"
|
|
389
|
+
}
|
|
390
|
+
]
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
"manifest-short-name-length": {
|
|
394
|
+
"id": "manifest-short-name-length",
|
|
395
|
+
"title": "The `short_name` won't be truncated on the homescreen",
|
|
396
|
+
"description": "Make your app's `short_name` fewer than 12 characters to ensure that it's not truncated on homescreens. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/manifest-short_name-is-not-truncated).",
|
|
397
|
+
"score": null,
|
|
398
|
+
"scoreDisplayMode": "not-applicable",
|
|
399
|
+
"rawValue": true
|
|
400
|
+
},
|
|
401
|
+
"content-width": {
|
|
402
|
+
"id": "content-width",
|
|
403
|
+
"title": "Content is sized correctly for the viewport",
|
|
404
|
+
"description": "If the width of your app's content doesn't match the width of the viewport, your app might not be optimized for mobile screens. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/content-sized-correctly-for-viewport).",
|
|
405
|
+
"score": 1,
|
|
406
|
+
"scoreDisplayMode": "binary",
|
|
407
|
+
"rawValue": true,
|
|
408
|
+
"explanation": ""
|
|
409
|
+
},
|
|
410
|
+
"image-aspect-ratio": {
|
|
411
|
+
"id": "image-aspect-ratio",
|
|
412
|
+
"title": "Displays images with correct aspect ratio",
|
|
413
|
+
"description": "Image display dimensions should match natural aspect ratio. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/aspect-ratio).",
|
|
414
|
+
"score": 1,
|
|
415
|
+
"scoreDisplayMode": "binary",
|
|
416
|
+
"rawValue": true,
|
|
417
|
+
"warnings": [],
|
|
418
|
+
"details": {
|
|
419
|
+
"type": "table",
|
|
420
|
+
"headings": [],
|
|
421
|
+
"items": []
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"deprecations": {
|
|
425
|
+
"id": "deprecations",
|
|
426
|
+
"title": "Avoids deprecated APIs",
|
|
427
|
+
"description": "Deprecated APIs will eventually be removed from the browser. [Learn more](https://www.chromestatus.com/features#deprecated).",
|
|
428
|
+
"score": 1,
|
|
429
|
+
"scoreDisplayMode": "binary",
|
|
430
|
+
"rawValue": true,
|
|
431
|
+
"displayValue": "",
|
|
432
|
+
"details": {
|
|
433
|
+
"type": "table",
|
|
434
|
+
"headings": [],
|
|
435
|
+
"items": []
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"mainthread-work-breakdown": {
|
|
439
|
+
"id": "mainthread-work-breakdown",
|
|
440
|
+
"title": "Minimizes main thread work",
|
|
441
|
+
"description": "Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this.",
|
|
442
|
+
"score": 1,
|
|
443
|
+
"scoreDisplayMode": "numeric",
|
|
444
|
+
"rawValue": 82.12399999999994,
|
|
445
|
+
"displayValue": [
|
|
446
|
+
"%10d ms",
|
|
447
|
+
82.12399999999994
|
|
448
|
+
],
|
|
449
|
+
"details": {
|
|
450
|
+
"type": "table",
|
|
451
|
+
"headings": [
|
|
452
|
+
{
|
|
453
|
+
"key": "groupLabel",
|
|
454
|
+
"itemType": "text",
|
|
455
|
+
"text": "Category"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"key": "duration",
|
|
459
|
+
"itemType": "ms",
|
|
460
|
+
"granularity": 1,
|
|
461
|
+
"text": "Time Spent"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
"items": [
|
|
465
|
+
{
|
|
466
|
+
"group": "styleLayout",
|
|
467
|
+
"groupLabel": "Style & Layout",
|
|
468
|
+
"duration": 48.675999999999995
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"group": "other",
|
|
472
|
+
"groupLabel": "Other",
|
|
473
|
+
"duration": 27.179999999999954
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"group": "scriptEvaluation",
|
|
477
|
+
"groupLabel": "Script Evaluation",
|
|
478
|
+
"duration": 3.4760000000000004
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"group": "paintCompositeRender",
|
|
482
|
+
"groupLabel": "Rendering",
|
|
483
|
+
"duration": 1.4640000000000002
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"group": "parseHTML",
|
|
487
|
+
"groupLabel": "Parse HTML & CSS",
|
|
488
|
+
"duration": 0.992
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"group": "scriptParseCompile",
|
|
492
|
+
"groupLabel": "Script Parsing & Compilation",
|
|
493
|
+
"duration": 0.33599999999999997
|
|
494
|
+
}
|
|
495
|
+
]
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
"bootup-time": {
|
|
499
|
+
"id": "bootup-time",
|
|
500
|
+
"title": "JavaScript boot-up time",
|
|
501
|
+
"description": "Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/bootup).",
|
|
502
|
+
"score": 1,
|
|
503
|
+
"scoreDisplayMode": "numeric",
|
|
504
|
+
"rawValue": 0,
|
|
505
|
+
"displayValue": [
|
|
506
|
+
"%10d ms",
|
|
507
|
+
0
|
|
508
|
+
],
|
|
509
|
+
"details": {
|
|
510
|
+
"type": "table",
|
|
511
|
+
"headings": [],
|
|
512
|
+
"items": [],
|
|
513
|
+
"summary": {
|
|
514
|
+
"wastedMs": 0
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
"uses-rel-preload": {
|
|
519
|
+
"id": "uses-rel-preload",
|
|
520
|
+
"title": "Preload key requests",
|
|
521
|
+
"description": "Consider using <link rel=preload> to prioritize fetching late-discovered resources sooner. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/preload).",
|
|
522
|
+
"score": 1,
|
|
523
|
+
"scoreDisplayMode": "numeric",
|
|
524
|
+
"rawValue": 0,
|
|
525
|
+
"displayValue": [
|
|
526
|
+
"Potential savings of %10d ms",
|
|
527
|
+
0
|
|
528
|
+
],
|
|
529
|
+
"details": {
|
|
530
|
+
"type": "opportunity",
|
|
531
|
+
"headings": [],
|
|
532
|
+
"items": [],
|
|
533
|
+
"overallSavingsMs": 0
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"uses-rel-preconnect": {
|
|
537
|
+
"id": "uses-rel-preconnect",
|
|
538
|
+
"title": "Avoid multiple, costly round trips to any origin",
|
|
539
|
+
"description": "Consider adding preconnect or dns-prefetch resource hints to establish early connections to important third-party origins. [Learn more](https://developers.google.com/web/fundamentals/performance/resource-prioritization#preconnect).",
|
|
540
|
+
"score": 1,
|
|
541
|
+
"scoreDisplayMode": "numeric",
|
|
542
|
+
"rawValue": 0,
|
|
543
|
+
"displayValue": [
|
|
544
|
+
"Potential savings of %10d ms",
|
|
545
|
+
0
|
|
546
|
+
],
|
|
547
|
+
"details": {
|
|
548
|
+
"type": "opportunity",
|
|
549
|
+
"headings": [],
|
|
550
|
+
"items": [],
|
|
551
|
+
"overallSavingsMs": 0
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"font-display": {
|
|
555
|
+
"id": "font-display",
|
|
556
|
+
"title": "All text remains visible during webfont loads",
|
|
557
|
+
"description": "Leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading. [Learn more](https://developers.google.com/web/updates/2016/02/font-display).",
|
|
558
|
+
"score": 1,
|
|
559
|
+
"scoreDisplayMode": "binary",
|
|
560
|
+
"rawValue": true,
|
|
561
|
+
"details": {
|
|
562
|
+
"type": "table",
|
|
563
|
+
"headings": [],
|
|
564
|
+
"items": []
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
"network-requests": {
|
|
568
|
+
"id": "network-requests",
|
|
569
|
+
"title": "Network Requests",
|
|
570
|
+
"description": "Lists the network requests that were made during page load.",
|
|
571
|
+
"score": null,
|
|
572
|
+
"scoreDisplayMode": "informative",
|
|
573
|
+
"rawValue": 2,
|
|
574
|
+
"details": {
|
|
575
|
+
"type": "table",
|
|
576
|
+
"headings": [
|
|
577
|
+
{
|
|
578
|
+
"key": "url",
|
|
579
|
+
"itemType": "url",
|
|
580
|
+
"text": "URL"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"key": "startTime",
|
|
584
|
+
"itemType": "ms",
|
|
585
|
+
"granularity": 1,
|
|
586
|
+
"text": "Start Time"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"key": "endTime",
|
|
590
|
+
"itemType": "ms",
|
|
591
|
+
"granularity": 1,
|
|
592
|
+
"text": "End Time"
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"key": "transferSize",
|
|
596
|
+
"itemType": "bytes",
|
|
597
|
+
"displayUnit": "kb",
|
|
598
|
+
"granularity": 1,
|
|
599
|
+
"text": "Transfer Size"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"key": "statusCode",
|
|
603
|
+
"itemType": "text",
|
|
604
|
+
"text": "Status Code"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"key": "mimeType",
|
|
608
|
+
"itemType": "text",
|
|
609
|
+
"text": "MIME Type"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"key": "resourceType",
|
|
613
|
+
"itemType": "text",
|
|
614
|
+
"text": "Resource Type"
|
|
615
|
+
}
|
|
616
|
+
],
|
|
617
|
+
"items": [
|
|
618
|
+
{
|
|
619
|
+
"url": "https://www.example.com/",
|
|
620
|
+
"startTime": 0,
|
|
621
|
+
"endTime": 36.20599998976104,
|
|
622
|
+
"transferSize": 849,
|
|
623
|
+
"statusCode": 200,
|
|
624
|
+
"mimeType": "text/html",
|
|
625
|
+
"resourceType": "Document"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"url": "https://www.example.com/favicon.ico",
|
|
629
|
+
"startTime": 54.817999989609234,
|
|
630
|
+
"endTime": 59.56999999762047,
|
|
631
|
+
"transferSize": 740,
|
|
632
|
+
"statusCode": 404,
|
|
633
|
+
"mimeType": "text/html",
|
|
634
|
+
"resourceType": "Other"
|
|
635
|
+
}
|
|
636
|
+
]
|
|
637
|
+
}
|
|
638
|
+
},
|
|
639
|
+
"metrics": {
|
|
640
|
+
"id": "metrics",
|
|
641
|
+
"title": "Metrics",
|
|
642
|
+
"description": "Collects all available metrics.",
|
|
643
|
+
"score": null,
|
|
644
|
+
"scoreDisplayMode": "informative",
|
|
645
|
+
"rawValue": 1193.4619500000001,
|
|
646
|
+
"details": {
|
|
647
|
+
"items": [
|
|
648
|
+
{
|
|
649
|
+
"firstContentfulPaint": 766,
|
|
650
|
+
"firstMeaningfulPaint": 878,
|
|
651
|
+
"firstCPUIdle": 1193,
|
|
652
|
+
"interactive": 1193,
|
|
653
|
+
"speedIndex": 766,
|
|
654
|
+
"estimatedInputLatency": 13,
|
|
655
|
+
"observedNavigationStart": 0,
|
|
656
|
+
"observedNavigationStartTs": 116361970714,
|
|
657
|
+
"observedFirstPaint": 55,
|
|
658
|
+
"observedFirstPaintTs": 116362026068,
|
|
659
|
+
"observedFirstContentfulPaint": 55,
|
|
660
|
+
"observedFirstContentfulPaintTs": 116362026068,
|
|
661
|
+
"observedFirstMeaningfulPaint": 55,
|
|
662
|
+
"observedFirstMeaningfulPaintTs": 116362026068,
|
|
663
|
+
"observedTraceEnd": 1116,
|
|
664
|
+
"observedTraceEndTs": 116363086467,
|
|
665
|
+
"observedLoad": 42,
|
|
666
|
+
"observedLoadTs": 116362013175,
|
|
667
|
+
"observedDomContentLoaded": 42,
|
|
668
|
+
"observedDomContentLoadedTs": 116362012888,
|
|
669
|
+
"observedFirstVisualChange": 72,
|
|
670
|
+
"observedFirstVisualChangeTs": 116362042714,
|
|
671
|
+
"observedLastVisualChange": 72,
|
|
672
|
+
"observedLastVisualChangeTs": 116362042714,
|
|
673
|
+
"observedSpeedIndex": 72,
|
|
674
|
+
"observedSpeedIndexTs": 116362043212
|
|
675
|
+
}
|
|
676
|
+
]
|
|
677
|
+
}
|
|
678
|
+
},
|
|
679
|
+
"pwa-cross-browser": {
|
|
680
|
+
"id": "pwa-cross-browser",
|
|
681
|
+
"title": "Site works cross-browser",
|
|
682
|
+
"description": "To reach the most number of users, sites should work across every major browser. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist#site-works-cross-browser).",
|
|
683
|
+
"score": null,
|
|
684
|
+
"scoreDisplayMode": "manual",
|
|
685
|
+
"rawValue": false
|
|
686
|
+
},
|
|
687
|
+
"pwa-page-transitions": {
|
|
688
|
+
"id": "pwa-page-transitions",
|
|
689
|
+
"title": "Page transitions don't feel like they block on the network",
|
|
690
|
+
"description": "Transitions should feel snappy as you tap around, even on a slow network, a key to perceived performance. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist#page-transitions-dont-feel-like-they-block-on-the-network).",
|
|
691
|
+
"score": null,
|
|
692
|
+
"scoreDisplayMode": "manual",
|
|
693
|
+
"rawValue": false
|
|
694
|
+
},
|
|
695
|
+
"pwa-each-page-has-url": {
|
|
696
|
+
"id": "pwa-each-page-has-url",
|
|
697
|
+
"title": "Each page has a URL",
|
|
698
|
+
"description": "Ensure individual pages are deep linkable via the URLs and that URLs are unique for the purpose of shareability on social media. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist#each-page-has-a-url).",
|
|
699
|
+
"score": null,
|
|
700
|
+
"scoreDisplayMode": "manual",
|
|
701
|
+
"rawValue": false
|
|
702
|
+
},
|
|
703
|
+
"accesskeys": {
|
|
704
|
+
"id": "accesskeys",
|
|
705
|
+
"title": "`[accesskey]` values are unique",
|
|
706
|
+
"description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://dequeuniversity.com/rules/axe/2.2/accesskeys?application=lighthouse).",
|
|
707
|
+
"score": null,
|
|
708
|
+
"scoreDisplayMode": "not-applicable",
|
|
709
|
+
"rawValue": true
|
|
710
|
+
},
|
|
711
|
+
"aria-allowed-attr": {
|
|
712
|
+
"id": "aria-allowed-attr",
|
|
713
|
+
"title": "`[aria-*]` attributes match their roles",
|
|
714
|
+
"description": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-allowed-attr?application=lighthouse).",
|
|
715
|
+
"score": null,
|
|
716
|
+
"scoreDisplayMode": "not-applicable",
|
|
717
|
+
"rawValue": true
|
|
718
|
+
},
|
|
719
|
+
"aria-required-attr": {
|
|
720
|
+
"id": "aria-required-attr",
|
|
721
|
+
"title": "`[role]`s have all required `[aria-*]` attributes",
|
|
722
|
+
"description": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-required-attr?application=lighthouse).",
|
|
723
|
+
"score": null,
|
|
724
|
+
"scoreDisplayMode": "not-applicable",
|
|
725
|
+
"rawValue": true
|
|
726
|
+
},
|
|
727
|
+
"aria-required-children": {
|
|
728
|
+
"id": "aria-required-children",
|
|
729
|
+
"title": "Elements with `[role]` that require specific children `[role]`s, are present",
|
|
730
|
+
"description": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-required-children?application=lighthouse).",
|
|
731
|
+
"score": null,
|
|
732
|
+
"scoreDisplayMode": "not-applicable",
|
|
733
|
+
"rawValue": true
|
|
734
|
+
},
|
|
735
|
+
"aria-required-parent": {
|
|
736
|
+
"id": "aria-required-parent",
|
|
737
|
+
"title": "`[role]`s are contained by their required parent element",
|
|
738
|
+
"description": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-required-parent?application=lighthouse).",
|
|
739
|
+
"score": null,
|
|
740
|
+
"scoreDisplayMode": "not-applicable",
|
|
741
|
+
"rawValue": true
|
|
742
|
+
},
|
|
743
|
+
"aria-roles": {
|
|
744
|
+
"id": "aria-roles",
|
|
745
|
+
"title": "`[role]` values are valid",
|
|
746
|
+
"description": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-roles?application=lighthouse).",
|
|
747
|
+
"score": null,
|
|
748
|
+
"scoreDisplayMode": "not-applicable",
|
|
749
|
+
"rawValue": true
|
|
750
|
+
},
|
|
751
|
+
"aria-valid-attr-value": {
|
|
752
|
+
"id": "aria-valid-attr-value",
|
|
753
|
+
"title": "`[aria-*]` attributes have valid values",
|
|
754
|
+
"description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-valid-attr-value?application=lighthouse).",
|
|
755
|
+
"score": null,
|
|
756
|
+
"scoreDisplayMode": "not-applicable",
|
|
757
|
+
"rawValue": true
|
|
758
|
+
},
|
|
759
|
+
"aria-valid-attr": {
|
|
760
|
+
"id": "aria-valid-attr",
|
|
761
|
+
"title": "`[aria-*]` attributes are valid and not misspelled",
|
|
762
|
+
"description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more](https://dequeuniversity.com/rules/axe/2.2/aria-valid-attr?application=lighthouse).",
|
|
763
|
+
"score": null,
|
|
764
|
+
"scoreDisplayMode": "not-applicable",
|
|
765
|
+
"rawValue": true
|
|
766
|
+
},
|
|
767
|
+
"audio-caption": {
|
|
768
|
+
"id": "audio-caption",
|
|
769
|
+
"title": "`<audio>` elements contain a `<track>` element with `[kind=\"captions\"]`",
|
|
770
|
+
"description": "Captions make audio elements usable for deaf or hearing-impaired users, providing critical information such as who is talking, what they're saying, and other non-speech information. [Learn more](https://dequeuniversity.com/rules/axe/2.2/audio-caption?application=lighthouse).",
|
|
771
|
+
"score": null,
|
|
772
|
+
"scoreDisplayMode": "not-applicable",
|
|
773
|
+
"rawValue": true
|
|
774
|
+
},
|
|
775
|
+
"button-name": {
|
|
776
|
+
"id": "button-name",
|
|
777
|
+
"title": "Buttons have an accessible name",
|
|
778
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/button-name?application=lighthouse).",
|
|
779
|
+
"score": null,
|
|
780
|
+
"scoreDisplayMode": "not-applicable",
|
|
781
|
+
"rawValue": true
|
|
782
|
+
},
|
|
783
|
+
"bypass": {
|
|
784
|
+
"id": "bypass",
|
|
785
|
+
"title": "The page contains a heading, skip link, or landmark region",
|
|
786
|
+
"description": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more](https://dequeuniversity.com/rules/axe/2.2/bypass?application=lighthouse).",
|
|
787
|
+
"score": 1,
|
|
788
|
+
"scoreDisplayMode": "binary",
|
|
789
|
+
"rawValue": true,
|
|
790
|
+
"details": {
|
|
791
|
+
"type": "table",
|
|
792
|
+
"headings": [],
|
|
793
|
+
"items": []
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
"color-contrast": {
|
|
797
|
+
"id": "color-contrast",
|
|
798
|
+
"title": "Background and foreground colors have a sufficient contrast ratio",
|
|
799
|
+
"description": "Low-contrast text is difficult or impossible for many users to read. [Learn more](https://dequeuniversity.com/rules/axe/2.2/color-contrast?application=lighthouse).",
|
|
800
|
+
"score": 1,
|
|
801
|
+
"scoreDisplayMode": "binary",
|
|
802
|
+
"rawValue": true,
|
|
803
|
+
"details": {
|
|
804
|
+
"type": "table",
|
|
805
|
+
"headings": [],
|
|
806
|
+
"items": []
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
"definition-list": {
|
|
810
|
+
"id": "definition-list",
|
|
811
|
+
"title": "`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>` or `<template>` elements.",
|
|
812
|
+
"description": "When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn more](https://dequeuniversity.com/rules/axe/2.2/definition-list?application=lighthouse).",
|
|
813
|
+
"score": null,
|
|
814
|
+
"scoreDisplayMode": "not-applicable",
|
|
815
|
+
"rawValue": true
|
|
816
|
+
},
|
|
817
|
+
"dlitem": {
|
|
818
|
+
"id": "dlitem",
|
|
819
|
+
"title": "Definition list items are wrapped in `<dl>` elements",
|
|
820
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/dlitem?application=lighthouse).",
|
|
821
|
+
"score": null,
|
|
822
|
+
"scoreDisplayMode": "not-applicable",
|
|
823
|
+
"rawValue": true
|
|
824
|
+
},
|
|
825
|
+
"document-title": {
|
|
826
|
+
"id": "document-title",
|
|
827
|
+
"title": "Document has a `<title>` element",
|
|
828
|
+
"description": "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://developers.google.com/web/tools/lighthouse/audits/title).",
|
|
829
|
+
"score": 1,
|
|
830
|
+
"scoreDisplayMode": "binary",
|
|
831
|
+
"rawValue": true,
|
|
832
|
+
"details": {
|
|
833
|
+
"type": "table",
|
|
834
|
+
"headings": [],
|
|
835
|
+
"items": []
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
"duplicate-id": {
|
|
839
|
+
"id": "duplicate-id",
|
|
840
|
+
"title": "`[id]` attributes on the page are unique",
|
|
841
|
+
"description": "The value of an id attribute must be unique to prevent other instances from being overlooked by assistive technologies. [Learn more](https://dequeuniversity.com/rules/axe/2.2/duplicate-id?application=lighthouse).",
|
|
842
|
+
"score": null,
|
|
843
|
+
"scoreDisplayMode": "not-applicable",
|
|
844
|
+
"rawValue": true
|
|
845
|
+
},
|
|
846
|
+
"frame-title": {
|
|
847
|
+
"id": "frame-title",
|
|
848
|
+
"title": "`<frame>` or `<iframe>` elements have a title",
|
|
849
|
+
"description": "Screen reader users rely on frame titles to describe the contents of frames. [Learn more](https://dequeuniversity.com/rules/axe/2.2/frame-title?application=lighthouse).",
|
|
850
|
+
"score": null,
|
|
851
|
+
"scoreDisplayMode": "not-applicable",
|
|
852
|
+
"rawValue": true
|
|
853
|
+
},
|
|
854
|
+
"html-has-lang": {
|
|
855
|
+
"id": "html-has-lang",
|
|
856
|
+
"title": "`<html>` element does not have a `[lang]` attribute",
|
|
857
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/html-lang?application=lighthouse).",
|
|
858
|
+
"score": 0,
|
|
859
|
+
"scoreDisplayMode": "binary",
|
|
860
|
+
"rawValue": false,
|
|
861
|
+
"details": {
|
|
862
|
+
"type": "table",
|
|
863
|
+
"headings": [
|
|
864
|
+
{
|
|
865
|
+
"key": "node",
|
|
866
|
+
"itemType": "node",
|
|
867
|
+
"text": "Failing Elements"
|
|
868
|
+
}
|
|
869
|
+
],
|
|
870
|
+
"items": [
|
|
871
|
+
{
|
|
872
|
+
"node": {
|
|
873
|
+
"type": "node",
|
|
874
|
+
"selector": "html",
|
|
875
|
+
"path": "1,HTML",
|
|
876
|
+
"snippet": "<html>",
|
|
877
|
+
"explanation": "Fix any of the following:\n The <html> element does not have a lang attribute"
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
],
|
|
881
|
+
"impact": "serious",
|
|
882
|
+
"tags": [
|
|
883
|
+
"cat.language",
|
|
884
|
+
"wcag2a",
|
|
885
|
+
"wcag311"
|
|
886
|
+
]
|
|
887
|
+
}
|
|
888
|
+
},
|
|
889
|
+
"html-lang-valid": {
|
|
890
|
+
"id": "html-lang-valid",
|
|
891
|
+
"title": "`<html>` element has a valid value for its `[lang]` attribute",
|
|
892
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/valid-lang?application=lighthouse).",
|
|
893
|
+
"score": null,
|
|
894
|
+
"scoreDisplayMode": "not-applicable",
|
|
895
|
+
"rawValue": true
|
|
896
|
+
},
|
|
897
|
+
"image-alt": {
|
|
898
|
+
"id": "image-alt",
|
|
899
|
+
"title": "Image elements have `[alt]` attributes",
|
|
900
|
+
"description": "Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. [Learn more](https://dequeuniversity.com/rules/axe/2.2/image-alt?application=lighthouse).",
|
|
901
|
+
"score": null,
|
|
902
|
+
"scoreDisplayMode": "not-applicable",
|
|
903
|
+
"rawValue": true
|
|
904
|
+
},
|
|
905
|
+
"input-image-alt": {
|
|
906
|
+
"id": "input-image-alt",
|
|
907
|
+
"title": "`<input type=\"image\">` elements have `[alt]` text",
|
|
908
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/input-image-alt?application=lighthouse).",
|
|
909
|
+
"score": null,
|
|
910
|
+
"scoreDisplayMode": "not-applicable",
|
|
911
|
+
"rawValue": true
|
|
912
|
+
},
|
|
913
|
+
"label": {
|
|
914
|
+
"id": "label",
|
|
915
|
+
"title": "Form elements have associated labels",
|
|
916
|
+
"description": "Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more](https://dequeuniversity.com/rules/axe/2.2/label?application=lighthouse).",
|
|
917
|
+
"score": null,
|
|
918
|
+
"scoreDisplayMode": "not-applicable",
|
|
919
|
+
"rawValue": true
|
|
920
|
+
},
|
|
921
|
+
"layout-table": {
|
|
922
|
+
"id": "layout-table",
|
|
923
|
+
"title": "Presentational `<table>` elements avoid using `<th>`, `<caption>` or the `[summary]` attribute.",
|
|
924
|
+
"description": "A table being used for layout purposes should not include data elements, such as the th or caption elements or the summary attribute, because this can create a confusing experience for screen reader users. [Learn more](https://dequeuniversity.com/rules/axe/2.2/layout-table?application=lighthouse).",
|
|
925
|
+
"score": null,
|
|
926
|
+
"scoreDisplayMode": "not-applicable",
|
|
927
|
+
"rawValue": true
|
|
928
|
+
},
|
|
929
|
+
"link-name": {
|
|
930
|
+
"id": "link-name",
|
|
931
|
+
"title": "Links have a discernible name",
|
|
932
|
+
"description": "Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. [Learn more](https://dequeuniversity.com/rules/axe/2.2/link-name?application=lighthouse).",
|
|
933
|
+
"score": 1,
|
|
934
|
+
"scoreDisplayMode": "binary",
|
|
935
|
+
"rawValue": true,
|
|
936
|
+
"details": {
|
|
937
|
+
"type": "table",
|
|
938
|
+
"headings": [],
|
|
939
|
+
"items": []
|
|
940
|
+
}
|
|
941
|
+
},
|
|
942
|
+
"list": {
|
|
943
|
+
"id": "list",
|
|
944
|
+
"title": "Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",
|
|
945
|
+
"description": "Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more](https://dequeuniversity.com/rules/axe/2.2/list?application=lighthouse).",
|
|
946
|
+
"score": null,
|
|
947
|
+
"scoreDisplayMode": "not-applicable",
|
|
948
|
+
"rawValue": true
|
|
949
|
+
},
|
|
950
|
+
"listitem": {
|
|
951
|
+
"id": "listitem",
|
|
952
|
+
"title": "List items (`<li>`) are contained within `<ul>` or `<ol>` parent elements",
|
|
953
|
+
"description": "Screen readers require list items (`<li>`) to be contained within a parent `<ul>` or `<ol>` to be announced properly. [Learn more](https://dequeuniversity.com/rules/axe/2.2/listitem?application=lighthouse).",
|
|
954
|
+
"score": null,
|
|
955
|
+
"scoreDisplayMode": "not-applicable",
|
|
956
|
+
"rawValue": true
|
|
957
|
+
},
|
|
958
|
+
"meta-refresh": {
|
|
959
|
+
"id": "meta-refresh",
|
|
960
|
+
"title": "The document does not use `<meta http-equiv=\"refresh\">`",
|
|
961
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/meta-refresh?application=lighthouse).",
|
|
962
|
+
"score": null,
|
|
963
|
+
"scoreDisplayMode": "not-applicable",
|
|
964
|
+
"rawValue": true
|
|
965
|
+
},
|
|
966
|
+
"meta-viewport": {
|
|
967
|
+
"id": "meta-viewport",
|
|
968
|
+
"title": "`[user-scalable=\"no\"]` is not used in the `<meta name=\"viewport\">` element and the `[maximum-scale]` attribute is not less than 5.",
|
|
969
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/meta-viewport?application=lighthouse).",
|
|
970
|
+
"score": 1,
|
|
971
|
+
"scoreDisplayMode": "binary",
|
|
972
|
+
"rawValue": true,
|
|
973
|
+
"details": {
|
|
974
|
+
"type": "table",
|
|
975
|
+
"headings": [],
|
|
976
|
+
"items": []
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"object-alt": {
|
|
980
|
+
"id": "object-alt",
|
|
981
|
+
"title": "`<object>` elements have `[alt]` text",
|
|
982
|
+
"description": "Screen readers cannot translate non-text content. Adding alt text to `<object>` elements helps screen readers convey meaning to users. [Learn more](https://dequeuniversity.com/rules/axe/2.2/object-alt?application=lighthouse).",
|
|
983
|
+
"score": null,
|
|
984
|
+
"scoreDisplayMode": "not-applicable",
|
|
985
|
+
"rawValue": true
|
|
986
|
+
},
|
|
987
|
+
"tabindex": {
|
|
988
|
+
"id": "tabindex",
|
|
989
|
+
"title": "No element has a `[tabindex]` value greater than 0",
|
|
990
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/tabindex?application=lighthouse).",
|
|
991
|
+
"score": null,
|
|
992
|
+
"scoreDisplayMode": "not-applicable",
|
|
993
|
+
"rawValue": true
|
|
994
|
+
},
|
|
995
|
+
"td-headers-attr": {
|
|
996
|
+
"id": "td-headers-attr",
|
|
997
|
+
"title": "Cells in a `<table>` element that use the `[headers]` attribute only refer to other cells of that same table.",
|
|
998
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/td-headers-attr?application=lighthouse).",
|
|
999
|
+
"score": null,
|
|
1000
|
+
"scoreDisplayMode": "not-applicable",
|
|
1001
|
+
"rawValue": true
|
|
1002
|
+
},
|
|
1003
|
+
"th-has-data-cells": {
|
|
1004
|
+
"id": "th-has-data-cells",
|
|
1005
|
+
"title": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` have data cells they describe.",
|
|
1006
|
+
"description": "Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more](https://dequeuniversity.com/rules/axe/2.2/th-has-data-cells?application=lighthouse).",
|
|
1007
|
+
"score": null,
|
|
1008
|
+
"scoreDisplayMode": "not-applicable",
|
|
1009
|
+
"rawValue": true
|
|
1010
|
+
},
|
|
1011
|
+
"valid-lang": {
|
|
1012
|
+
"id": "valid-lang",
|
|
1013
|
+
"title": "`[lang]` attributes have a valid value",
|
|
1014
|
+
"description": "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://dequeuniversity.com/rules/axe/2.2/valid-lang?application=lighthouse).",
|
|
1015
|
+
"score": null,
|
|
1016
|
+
"scoreDisplayMode": "not-applicable",
|
|
1017
|
+
"rawValue": true
|
|
1018
|
+
},
|
|
1019
|
+
"video-caption": {
|
|
1020
|
+
"id": "video-caption",
|
|
1021
|
+
"title": "`<video>` elements contain a `<track>` element with `[kind=\"captions\"]`",
|
|
1022
|
+
"description": "When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more](https://dequeuniversity.com/rules/axe/2.2/video-caption?application=lighthouse).",
|
|
1023
|
+
"score": null,
|
|
1024
|
+
"scoreDisplayMode": "not-applicable",
|
|
1025
|
+
"rawValue": true
|
|
1026
|
+
},
|
|
1027
|
+
"video-description": {
|
|
1028
|
+
"id": "video-description",
|
|
1029
|
+
"title": "`<video>` elements contain a `<track>` element with `[kind=\"description\"]`",
|
|
1030
|
+
"description": "Audio descriptions provide relevant information for videos that dialogue cannot, such as facial expressions and scenes. [Learn more](https://dequeuniversity.com/rules/axe/2.2/video-description?application=lighthouse).",
|
|
1031
|
+
"score": null,
|
|
1032
|
+
"scoreDisplayMode": "not-applicable",
|
|
1033
|
+
"rawValue": true
|
|
1034
|
+
},
|
|
1035
|
+
"custom-controls-labels": {
|
|
1036
|
+
"id": "custom-controls-labels",
|
|
1037
|
+
"title": "Custom controls have associated labels",
|
|
1038
|
+
"description": "Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#try_it_with_a_screen_reader).",
|
|
1039
|
+
"score": null,
|
|
1040
|
+
"scoreDisplayMode": "manual",
|
|
1041
|
+
"rawValue": false
|
|
1042
|
+
},
|
|
1043
|
+
"custom-controls-roles": {
|
|
1044
|
+
"id": "custom-controls-roles",
|
|
1045
|
+
"title": "Custom controls have ARIA roles",
|
|
1046
|
+
"description": "Custom interactive controls have appropriate ARIA roles. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#try_it_with_a_screen_reader).",
|
|
1047
|
+
"score": null,
|
|
1048
|
+
"scoreDisplayMode": "manual",
|
|
1049
|
+
"rawValue": false
|
|
1050
|
+
},
|
|
1051
|
+
"focus-traps": {
|
|
1052
|
+
"id": "focus-traps",
|
|
1053
|
+
"title": "User focus is not accidentally trapped in a region",
|
|
1054
|
+
"description": "A user can tab into and out of any control or region without accidentally trapping their focus. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#start_with_the_keyboard).",
|
|
1055
|
+
"score": null,
|
|
1056
|
+
"scoreDisplayMode": "manual",
|
|
1057
|
+
"rawValue": false
|
|
1058
|
+
},
|
|
1059
|
+
"focusable-controls": {
|
|
1060
|
+
"id": "focusable-controls",
|
|
1061
|
+
"title": "Interactive controls are keyboard focusable",
|
|
1062
|
+
"description": "Custom interactive controls are keyboard focusable and display a focus indicator. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#start_with_the_keyboard).",
|
|
1063
|
+
"score": null,
|
|
1064
|
+
"scoreDisplayMode": "manual",
|
|
1065
|
+
"rawValue": false
|
|
1066
|
+
},
|
|
1067
|
+
"heading-levels": {
|
|
1068
|
+
"id": "heading-levels",
|
|
1069
|
+
"title": "Headings don't skip levels",
|
|
1070
|
+
"description": "Headings are used to create an outline for the page and heading levels are not skipped. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#take_advantage_of_headings_and_landmarks).",
|
|
1071
|
+
"score": null,
|
|
1072
|
+
"scoreDisplayMode": "manual",
|
|
1073
|
+
"rawValue": false
|
|
1074
|
+
},
|
|
1075
|
+
"logical-tab-order": {
|
|
1076
|
+
"id": "logical-tab-order",
|
|
1077
|
+
"title": "The page has a logical tab order",
|
|
1078
|
+
"description": "Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#start_with_the_keyboard).",
|
|
1079
|
+
"score": null,
|
|
1080
|
+
"scoreDisplayMode": "manual",
|
|
1081
|
+
"rawValue": false
|
|
1082
|
+
},
|
|
1083
|
+
"managed-focus": {
|
|
1084
|
+
"id": "managed-focus",
|
|
1085
|
+
"title": "The user's focus is directed to new content added to the page",
|
|
1086
|
+
"description": "If new content, such as a dialog, is added to the page, the user's focus is directed to it. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#start_with_the_keyboard).",
|
|
1087
|
+
"score": null,
|
|
1088
|
+
"scoreDisplayMode": "manual",
|
|
1089
|
+
"rawValue": false
|
|
1090
|
+
},
|
|
1091
|
+
"offscreen-content-hidden": {
|
|
1092
|
+
"id": "offscreen-content-hidden",
|
|
1093
|
+
"title": "Offscreen content is hidden from assistive technology",
|
|
1094
|
+
"description": "Offscreen content is hidden with display: none or aria-hidden=true. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#try_it_with_a_screen_reader).",
|
|
1095
|
+
"score": null,
|
|
1096
|
+
"scoreDisplayMode": "manual",
|
|
1097
|
+
"rawValue": false
|
|
1098
|
+
},
|
|
1099
|
+
"use-landmarks": {
|
|
1100
|
+
"id": "use-landmarks",
|
|
1101
|
+
"title": "HTML5 landmark elements are used to improve navigation",
|
|
1102
|
+
"description": "Landmark elements (<main>, <nav>, etc.) are used to improve the keyboard navigation of the page for assistive technology. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#take_advantage_of_headings_and_landmarks).",
|
|
1103
|
+
"score": null,
|
|
1104
|
+
"scoreDisplayMode": "manual",
|
|
1105
|
+
"rawValue": false
|
|
1106
|
+
},
|
|
1107
|
+
"visual-order-follows-dom": {
|
|
1108
|
+
"id": "visual-order-follows-dom",
|
|
1109
|
+
"title": "Visual order on the page follows DOM order",
|
|
1110
|
+
"description": "DOM order matches the visual order, improving navigation for assistive technology. [Learn more](https://developers.google.com/web/fundamentals/accessibility/how-to-review#try_it_with_a_screen_reader).",
|
|
1111
|
+
"score": null,
|
|
1112
|
+
"scoreDisplayMode": "manual",
|
|
1113
|
+
"rawValue": false
|
|
1114
|
+
},
|
|
1115
|
+
"uses-long-cache-ttl": {
|
|
1116
|
+
"id": "uses-long-cache-ttl",
|
|
1117
|
+
"title": "Uses efficient cache policy on static assets",
|
|
1118
|
+
"description": "A long cache lifetime can speed up repeat visits to your page. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/cache-policy).",
|
|
1119
|
+
"score": 1,
|
|
1120
|
+
"scoreDisplayMode": "numeric",
|
|
1121
|
+
"rawValue": 0,
|
|
1122
|
+
"displayValue": "0 assets found",
|
|
1123
|
+
"details": {
|
|
1124
|
+
"type": "table",
|
|
1125
|
+
"headings": [],
|
|
1126
|
+
"items": [],
|
|
1127
|
+
"summary": {
|
|
1128
|
+
"wastedBytes": 0
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
},
|
|
1132
|
+
"total-byte-weight": {
|
|
1133
|
+
"id": "total-byte-weight",
|
|
1134
|
+
"title": "Avoids enormous network payloads",
|
|
1135
|
+
"description": "Large network payloads cost users real money and are highly correlated with long load times. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/network-payloads).",
|
|
1136
|
+
"score": 1,
|
|
1137
|
+
"scoreDisplayMode": "numeric",
|
|
1138
|
+
"rawValue": 1589,
|
|
1139
|
+
"displayValue": [
|
|
1140
|
+
"Total size was %d KB",
|
|
1141
|
+
1.5517578125
|
|
1142
|
+
],
|
|
1143
|
+
"details": {
|
|
1144
|
+
"type": "table",
|
|
1145
|
+
"headings": [
|
|
1146
|
+
{
|
|
1147
|
+
"key": "url",
|
|
1148
|
+
"itemType": "url",
|
|
1149
|
+
"text": "URL"
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"key": "totalBytes",
|
|
1153
|
+
"itemType": "bytes",
|
|
1154
|
+
"displayUnit": "kb",
|
|
1155
|
+
"granularity": 1,
|
|
1156
|
+
"text": "Total Size"
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"key": "totalMs",
|
|
1160
|
+
"itemType": "ms",
|
|
1161
|
+
"text": "Transfer Time"
|
|
1162
|
+
}
|
|
1163
|
+
],
|
|
1164
|
+
"items": [
|
|
1165
|
+
{
|
|
1166
|
+
"url": "https://www.example.com/",
|
|
1167
|
+
"totalBytes": 849,
|
|
1168
|
+
"totalMs": 0.19199999223928899
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"url": "https://www.example.com/favicon.ico",
|
|
1172
|
+
"totalBytes": 740,
|
|
1173
|
+
"totalMs": 0.167349816557213
|
|
1174
|
+
}
|
|
1175
|
+
]
|
|
1176
|
+
}
|
|
1177
|
+
},
|
|
1178
|
+
"offscreen-images": {
|
|
1179
|
+
"id": "offscreen-images",
|
|
1180
|
+
"title": "Defer offscreen images",
|
|
1181
|
+
"description": "Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/offscreen-images).",
|
|
1182
|
+
"score": 1,
|
|
1183
|
+
"scoreDisplayMode": "numeric",
|
|
1184
|
+
"rawValue": 0,
|
|
1185
|
+
"displayValue": "",
|
|
1186
|
+
"warnings": [],
|
|
1187
|
+
"details": {
|
|
1188
|
+
"type": "opportunity",
|
|
1189
|
+
"headings": [],
|
|
1190
|
+
"items": [],
|
|
1191
|
+
"overallSavingsMs": 0,
|
|
1192
|
+
"overallSavingsBytes": 0
|
|
1193
|
+
}
|
|
1194
|
+
},
|
|
1195
|
+
"render-blocking-resources": {
|
|
1196
|
+
"id": "render-blocking-resources",
|
|
1197
|
+
"title": "Eliminate render-blocking resources",
|
|
1198
|
+
"description": "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://developers.google.com/web/tools/lighthouse/audits/blocking-resources).",
|
|
1199
|
+
"score": 1,
|
|
1200
|
+
"scoreDisplayMode": "numeric",
|
|
1201
|
+
"rawValue": 0,
|
|
1202
|
+
"displayValue": "",
|
|
1203
|
+
"details": {
|
|
1204
|
+
"type": "opportunity",
|
|
1205
|
+
"headings": [],
|
|
1206
|
+
"items": [],
|
|
1207
|
+
"overallSavingsMs": 0
|
|
1208
|
+
}
|
|
1209
|
+
},
|
|
1210
|
+
"unminified-css": {
|
|
1211
|
+
"id": "unminified-css",
|
|
1212
|
+
"title": "Minify CSS",
|
|
1213
|
+
"description": "Minifying CSS files can reduce network payload sizes. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/minify-css).",
|
|
1214
|
+
"score": 1,
|
|
1215
|
+
"scoreDisplayMode": "numeric",
|
|
1216
|
+
"rawValue": 0,
|
|
1217
|
+
"displayValue": "",
|
|
1218
|
+
"details": {
|
|
1219
|
+
"type": "opportunity",
|
|
1220
|
+
"headings": [],
|
|
1221
|
+
"items": [],
|
|
1222
|
+
"overallSavingsMs": 0,
|
|
1223
|
+
"overallSavingsBytes": 0
|
|
1224
|
+
}
|
|
1225
|
+
},
|
|
1226
|
+
"unminified-javascript": {
|
|
1227
|
+
"id": "unminified-javascript",
|
|
1228
|
+
"title": "Minify JavaScript",
|
|
1229
|
+
"description": "Minifying JavaScript files can reduce payload sizes and script parse time. [Learn more](https://developers.google.com/speed/docs/insights/MinifyResources).",
|
|
1230
|
+
"score": 1,
|
|
1231
|
+
"scoreDisplayMode": "numeric",
|
|
1232
|
+
"rawValue": 0,
|
|
1233
|
+
"displayValue": "",
|
|
1234
|
+
"warnings": [],
|
|
1235
|
+
"details": {
|
|
1236
|
+
"type": "opportunity",
|
|
1237
|
+
"headings": [],
|
|
1238
|
+
"items": [],
|
|
1239
|
+
"overallSavingsMs": 0,
|
|
1240
|
+
"overallSavingsBytes": 0
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"unused-css-rules": {
|
|
1244
|
+
"id": "unused-css-rules",
|
|
1245
|
+
"title": "Defer unused CSS",
|
|
1246
|
+
"description": "Remove unused rules from stylesheets to reduce unnecessary bytes consumed by network activity. [Learn more](https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery).",
|
|
1247
|
+
"score": 1,
|
|
1248
|
+
"scoreDisplayMode": "numeric",
|
|
1249
|
+
"rawValue": 0,
|
|
1250
|
+
"displayValue": "",
|
|
1251
|
+
"details": {
|
|
1252
|
+
"type": "opportunity",
|
|
1253
|
+
"headings": [],
|
|
1254
|
+
"items": [],
|
|
1255
|
+
"overallSavingsMs": 0,
|
|
1256
|
+
"overallSavingsBytes": 0
|
|
1257
|
+
}
|
|
1258
|
+
},
|
|
1259
|
+
"uses-webp-images": {
|
|
1260
|
+
"id": "uses-webp-images",
|
|
1261
|
+
"title": "Serve images in next-gen formats",
|
|
1262
|
+
"description": "Image formats like JPEG 2000, JPEG XR, and WebP often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/webp).",
|
|
1263
|
+
"score": 1,
|
|
1264
|
+
"scoreDisplayMode": "numeric",
|
|
1265
|
+
"rawValue": 0,
|
|
1266
|
+
"displayValue": "",
|
|
1267
|
+
"warnings": [],
|
|
1268
|
+
"details": {
|
|
1269
|
+
"type": "opportunity",
|
|
1270
|
+
"headings": [],
|
|
1271
|
+
"items": [],
|
|
1272
|
+
"overallSavingsMs": 0,
|
|
1273
|
+
"overallSavingsBytes": 0
|
|
1274
|
+
}
|
|
1275
|
+
},
|
|
1276
|
+
"uses-optimized-images": {
|
|
1277
|
+
"id": "uses-optimized-images",
|
|
1278
|
+
"title": "Efficiently encode images",
|
|
1279
|
+
"description": "Optimized images load faster and consume less cellular data. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/optimize-images).",
|
|
1280
|
+
"score": 1,
|
|
1281
|
+
"scoreDisplayMode": "numeric",
|
|
1282
|
+
"rawValue": 0,
|
|
1283
|
+
"displayValue": "",
|
|
1284
|
+
"warnings": [],
|
|
1285
|
+
"details": {
|
|
1286
|
+
"type": "opportunity",
|
|
1287
|
+
"headings": [],
|
|
1288
|
+
"items": [],
|
|
1289
|
+
"overallSavingsMs": 0,
|
|
1290
|
+
"overallSavingsBytes": 0
|
|
1291
|
+
}
|
|
1292
|
+
},
|
|
1293
|
+
"uses-text-compression": {
|
|
1294
|
+
"id": "uses-text-compression",
|
|
1295
|
+
"title": "Enable text compression",
|
|
1296
|
+
"description": "Text-based responses should be served with compression (gzip, deflate or brotli) to minimize total network bytes. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/text-compression).",
|
|
1297
|
+
"score": 1,
|
|
1298
|
+
"scoreDisplayMode": "numeric",
|
|
1299
|
+
"rawValue": 0,
|
|
1300
|
+
"displayValue": "",
|
|
1301
|
+
"details": {
|
|
1302
|
+
"type": "opportunity",
|
|
1303
|
+
"headings": [],
|
|
1304
|
+
"items": [],
|
|
1305
|
+
"overallSavingsMs": 0,
|
|
1306
|
+
"overallSavingsBytes": 0
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
"uses-responsive-images": {
|
|
1310
|
+
"id": "uses-responsive-images",
|
|
1311
|
+
"title": "Properly size images",
|
|
1312
|
+
"description": "Serve images that are appropriately-sized to save cellular data and improve load time. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/oversized-images).",
|
|
1313
|
+
"score": 1,
|
|
1314
|
+
"scoreDisplayMode": "numeric",
|
|
1315
|
+
"rawValue": 0,
|
|
1316
|
+
"displayValue": "",
|
|
1317
|
+
"warnings": [],
|
|
1318
|
+
"details": {
|
|
1319
|
+
"type": "opportunity",
|
|
1320
|
+
"headings": [],
|
|
1321
|
+
"items": [],
|
|
1322
|
+
"overallSavingsMs": 0,
|
|
1323
|
+
"overallSavingsBytes": 0
|
|
1324
|
+
}
|
|
1325
|
+
},
|
|
1326
|
+
"efficient-animated-content": {
|
|
1327
|
+
"id": "efficient-animated-content",
|
|
1328
|
+
"title": "Use video formats for animated content",
|
|
1329
|
+
"description": "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://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/replace-animated-gifs-with-video/)",
|
|
1330
|
+
"score": 1,
|
|
1331
|
+
"scoreDisplayMode": "numeric",
|
|
1332
|
+
"rawValue": 0,
|
|
1333
|
+
"displayValue": "",
|
|
1334
|
+
"details": {
|
|
1335
|
+
"type": "opportunity",
|
|
1336
|
+
"headings": [],
|
|
1337
|
+
"items": [],
|
|
1338
|
+
"overallSavingsMs": 0,
|
|
1339
|
+
"overallSavingsBytes": 0
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
"appcache-manifest": {
|
|
1343
|
+
"id": "appcache-manifest",
|
|
1344
|
+
"title": "Avoids Application Cache",
|
|
1345
|
+
"description": "Application Cache is deprecated. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/appcache).",
|
|
1346
|
+
"score": 1,
|
|
1347
|
+
"scoreDisplayMode": "binary",
|
|
1348
|
+
"rawValue": true,
|
|
1349
|
+
"displayValue": ""
|
|
1350
|
+
},
|
|
1351
|
+
"dom-size": {
|
|
1352
|
+
"id": "dom-size",
|
|
1353
|
+
"title": "Avoids an excessive DOM size",
|
|
1354
|
+
"description": "Browser engineers recommend pages contain fewer than ~1,500 DOM nodes. The sweet spot is a tree depth < 32 elements and fewer than 60 children/parent element. A large DOM can 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://developers.google.com/web/tools/lighthouse/audits/dom-size).",
|
|
1355
|
+
"score": 1,
|
|
1356
|
+
"scoreDisplayMode": "numeric",
|
|
1357
|
+
"rawValue": 13,
|
|
1358
|
+
"displayValue": [
|
|
1359
|
+
"%d nodes",
|
|
1360
|
+
13
|
|
1361
|
+
],
|
|
1362
|
+
"details": {
|
|
1363
|
+
"type": "table",
|
|
1364
|
+
"headings": [
|
|
1365
|
+
{
|
|
1366
|
+
"key": "totalNodes",
|
|
1367
|
+
"itemType": "text",
|
|
1368
|
+
"text": "Total DOM Nodes"
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"key": "depth",
|
|
1372
|
+
"itemType": "text",
|
|
1373
|
+
"text": "Maximum DOM Depth"
|
|
1374
|
+
},
|
|
1375
|
+
{
|
|
1376
|
+
"key": "width",
|
|
1377
|
+
"itemType": "text",
|
|
1378
|
+
"text": "Maximum Children"
|
|
1379
|
+
}
|
|
1380
|
+
],
|
|
1381
|
+
"items": [
|
|
1382
|
+
{
|
|
1383
|
+
"totalNodes": "13",
|
|
1384
|
+
"depth": "5",
|
|
1385
|
+
"width": "5"
|
|
1386
|
+
},
|
|
1387
|
+
{
|
|
1388
|
+
"totalNodes": "",
|
|
1389
|
+
"depth": {
|
|
1390
|
+
"type": "code",
|
|
1391
|
+
"value": "<a href=\"https://www.iana.org/domains/example\">"
|
|
1392
|
+
},
|
|
1393
|
+
"width": {
|
|
1394
|
+
"type": "code",
|
|
1395
|
+
"value": "<head>"
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
]
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"external-anchors-use-rel-noopener": {
|
|
1402
|
+
"id": "external-anchors-use-rel-noopener",
|
|
1403
|
+
"title": "Links to cross-origin destinations are safe",
|
|
1404
|
+
"description": "Add `rel=\"noopener\"` or `rel=\"noreferrer\"` to any external links to improve performance and prevent security vulnerabilities. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/noopener).",
|
|
1405
|
+
"score": 1,
|
|
1406
|
+
"scoreDisplayMode": "binary",
|
|
1407
|
+
"rawValue": true,
|
|
1408
|
+
"warnings": [],
|
|
1409
|
+
"details": {
|
|
1410
|
+
"type": "table",
|
|
1411
|
+
"headings": [],
|
|
1412
|
+
"items": []
|
|
1413
|
+
}
|
|
1414
|
+
},
|
|
1415
|
+
"geolocation-on-start": {
|
|
1416
|
+
"id": "geolocation-on-start",
|
|
1417
|
+
"title": "Avoids requesting the geolocation permission on page load",
|
|
1418
|
+
"description": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to user gestures instead. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/geolocation-on-load).",
|
|
1419
|
+
"score": 1,
|
|
1420
|
+
"scoreDisplayMode": "binary",
|
|
1421
|
+
"rawValue": true,
|
|
1422
|
+
"details": {
|
|
1423
|
+
"type": "table",
|
|
1424
|
+
"headings": [],
|
|
1425
|
+
"items": []
|
|
1426
|
+
}
|
|
1427
|
+
},
|
|
1428
|
+
"no-document-write": {
|
|
1429
|
+
"id": "no-document-write",
|
|
1430
|
+
"title": "Avoids `document.write()`",
|
|
1431
|
+
"description": "For users on slow connections, external scripts dynamically injected via `document.write()` can delay page load by tens of seconds. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/document-write).",
|
|
1432
|
+
"score": 1,
|
|
1433
|
+
"scoreDisplayMode": "binary",
|
|
1434
|
+
"rawValue": true,
|
|
1435
|
+
"details": {
|
|
1436
|
+
"type": "table",
|
|
1437
|
+
"headings": [],
|
|
1438
|
+
"items": []
|
|
1439
|
+
}
|
|
1440
|
+
},
|
|
1441
|
+
"no-vulnerable-libraries": {
|
|
1442
|
+
"id": "no-vulnerable-libraries",
|
|
1443
|
+
"title": "Avoids front-end JavaScript libraries with known security vulnerabilities",
|
|
1444
|
+
"description": "Some third-party scripts may contain known security vulnerabilities that are easily identified and exploited by attackers. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/vulnerabilities).",
|
|
1445
|
+
"score": 1,
|
|
1446
|
+
"scoreDisplayMode": "binary",
|
|
1447
|
+
"rawValue": true
|
|
1448
|
+
},
|
|
1449
|
+
"no-websql": {
|
|
1450
|
+
"id": "no-websql",
|
|
1451
|
+
"title": "Avoids WebSQL DB",
|
|
1452
|
+
"description": "Web SQL is deprecated. Consider using IndexedDB instead. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/web-sql).",
|
|
1453
|
+
"score": 1,
|
|
1454
|
+
"scoreDisplayMode": "binary",
|
|
1455
|
+
"rawValue": true,
|
|
1456
|
+
"displayValue": ""
|
|
1457
|
+
},
|
|
1458
|
+
"notification-on-start": {
|
|
1459
|
+
"id": "notification-on-start",
|
|
1460
|
+
"title": "Avoids requesting the notification permission on page load",
|
|
1461
|
+
"description": "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://developers.google.com/web/tools/lighthouse/audits/notifications-on-load).",
|
|
1462
|
+
"score": 1,
|
|
1463
|
+
"scoreDisplayMode": "binary",
|
|
1464
|
+
"rawValue": true,
|
|
1465
|
+
"details": {
|
|
1466
|
+
"type": "table",
|
|
1467
|
+
"headings": [],
|
|
1468
|
+
"items": []
|
|
1469
|
+
}
|
|
1470
|
+
},
|
|
1471
|
+
"password-inputs-can-be-pasted-into": {
|
|
1472
|
+
"id": "password-inputs-can-be-pasted-into",
|
|
1473
|
+
"title": "Allows users to paste into password fields",
|
|
1474
|
+
"description": "Preventing password pasting undermines good security policy. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/password-pasting).",
|
|
1475
|
+
"score": 1,
|
|
1476
|
+
"scoreDisplayMode": "binary",
|
|
1477
|
+
"rawValue": true,
|
|
1478
|
+
"details": {
|
|
1479
|
+
"type": "table",
|
|
1480
|
+
"headings": [],
|
|
1481
|
+
"items": []
|
|
1482
|
+
}
|
|
1483
|
+
},
|
|
1484
|
+
"uses-http2": {
|
|
1485
|
+
"id": "uses-http2",
|
|
1486
|
+
"title": "Uses HTTP/2 for its own resources",
|
|
1487
|
+
"description": "HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/http2).",
|
|
1488
|
+
"score": 1,
|
|
1489
|
+
"scoreDisplayMode": "binary",
|
|
1490
|
+
"rawValue": true,
|
|
1491
|
+
"displayValue": "",
|
|
1492
|
+
"details": {
|
|
1493
|
+
"type": "table",
|
|
1494
|
+
"headings": [],
|
|
1495
|
+
"items": []
|
|
1496
|
+
}
|
|
1497
|
+
},
|
|
1498
|
+
"uses-passive-event-listeners": {
|
|
1499
|
+
"id": "uses-passive-event-listeners",
|
|
1500
|
+
"title": "Uses passive listeners to improve scrolling performance",
|
|
1501
|
+
"description": "Consider marking your touch and wheel event listeners as `passive` to improve your page's scroll performance. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/passive-event-listeners).",
|
|
1502
|
+
"score": 1,
|
|
1503
|
+
"scoreDisplayMode": "binary",
|
|
1504
|
+
"rawValue": true,
|
|
1505
|
+
"details": {
|
|
1506
|
+
"type": "table",
|
|
1507
|
+
"headings": [],
|
|
1508
|
+
"items": []
|
|
1509
|
+
}
|
|
1510
|
+
},
|
|
1511
|
+
"meta-description": {
|
|
1512
|
+
"id": "meta-description",
|
|
1513
|
+
"title": "Document does not have a meta description",
|
|
1514
|
+
"description": "Meta descriptions may be included in search results to concisely summarize page content. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/description).",
|
|
1515
|
+
"score": 0,
|
|
1516
|
+
"scoreDisplayMode": "binary",
|
|
1517
|
+
"rawValue": false
|
|
1518
|
+
},
|
|
1519
|
+
"http-status-code": {
|
|
1520
|
+
"id": "http-status-code",
|
|
1521
|
+
"title": "Page has successful HTTP status code",
|
|
1522
|
+
"description": "Pages with unsuccessful HTTP status codes may not be indexed properly. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/successful-http-code).",
|
|
1523
|
+
"score": 1,
|
|
1524
|
+
"scoreDisplayMode": "binary",
|
|
1525
|
+
"rawValue": true
|
|
1526
|
+
},
|
|
1527
|
+
"font-size": {
|
|
1528
|
+
"id": "font-size",
|
|
1529
|
+
"title": "Document uses legible font sizes",
|
|
1530
|
+
"description": "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://developers.google.com/web/tools/lighthouse/audits/font-sizes).",
|
|
1531
|
+
"score": 1,
|
|
1532
|
+
"scoreDisplayMode": "binary",
|
|
1533
|
+
"rawValue": true,
|
|
1534
|
+
"displayValue": [
|
|
1535
|
+
"%.1d% legible text",
|
|
1536
|
+
100
|
|
1537
|
+
],
|
|
1538
|
+
"details": {
|
|
1539
|
+
"type": "table",
|
|
1540
|
+
"headings": [
|
|
1541
|
+
{
|
|
1542
|
+
"key": "source",
|
|
1543
|
+
"itemType": "url",
|
|
1544
|
+
"text": "Source"
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"key": "selector",
|
|
1548
|
+
"itemType": "code",
|
|
1549
|
+
"text": "Selector"
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
"key": "coverage",
|
|
1553
|
+
"itemType": "text",
|
|
1554
|
+
"text": "% of Page Text"
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"key": "fontSize",
|
|
1558
|
+
"itemType": "text",
|
|
1559
|
+
"text": "Font Size"
|
|
1560
|
+
}
|
|
1561
|
+
],
|
|
1562
|
+
"items": [
|
|
1563
|
+
{
|
|
1564
|
+
"source": "Legible text",
|
|
1565
|
+
"selector": "",
|
|
1566
|
+
"coverage": "100.00%",
|
|
1567
|
+
"fontSize": "≥ 12px"
|
|
1568
|
+
}
|
|
1569
|
+
]
|
|
1570
|
+
}
|
|
1571
|
+
},
|
|
1572
|
+
"link-text": {
|
|
1573
|
+
"id": "link-text",
|
|
1574
|
+
"title": "Links have descriptive text",
|
|
1575
|
+
"description": "Descriptive link text helps search engines understand your content. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/descriptive-link-text).",
|
|
1576
|
+
"score": 1,
|
|
1577
|
+
"scoreDisplayMode": "binary",
|
|
1578
|
+
"rawValue": true,
|
|
1579
|
+
"details": {
|
|
1580
|
+
"type": "table",
|
|
1581
|
+
"headings": [],
|
|
1582
|
+
"items": [],
|
|
1583
|
+
"summary": {}
|
|
1584
|
+
}
|
|
1585
|
+
},
|
|
1586
|
+
"is-crawlable": {
|
|
1587
|
+
"id": "is-crawlable",
|
|
1588
|
+
"title": "Page isn’t blocked from indexing",
|
|
1589
|
+
"description": "Search engines are unable to include your pages in search results if they don't have permission to crawl them. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/indexing).",
|
|
1590
|
+
"score": 1,
|
|
1591
|
+
"scoreDisplayMode": "binary",
|
|
1592
|
+
"rawValue": true,
|
|
1593
|
+
"details": {
|
|
1594
|
+
"type": "table",
|
|
1595
|
+
"headings": [],
|
|
1596
|
+
"items": []
|
|
1597
|
+
}
|
|
1598
|
+
},
|
|
1599
|
+
"robots-txt": {
|
|
1600
|
+
"id": "robots-txt",
|
|
1601
|
+
"title": "robots.txt is valid",
|
|
1602
|
+
"description": "If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed.",
|
|
1603
|
+
"score": null,
|
|
1604
|
+
"scoreDisplayMode": "not-applicable",
|
|
1605
|
+
"rawValue": true
|
|
1606
|
+
},
|
|
1607
|
+
"hreflang": {
|
|
1608
|
+
"id": "hreflang",
|
|
1609
|
+
"title": "Document has a valid `hreflang`",
|
|
1610
|
+
"description": "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://developers.google.com/web/tools/lighthouse/audits/hreflang).",
|
|
1611
|
+
"score": 1,
|
|
1612
|
+
"scoreDisplayMode": "binary",
|
|
1613
|
+
"rawValue": true,
|
|
1614
|
+
"details": {
|
|
1615
|
+
"type": "table",
|
|
1616
|
+
"headings": [],
|
|
1617
|
+
"items": []
|
|
1618
|
+
}
|
|
1619
|
+
},
|
|
1620
|
+
"plugins": {
|
|
1621
|
+
"id": "plugins",
|
|
1622
|
+
"title": "Document avoids plugins",
|
|
1623
|
+
"description": "Search engines can't index plugin content, and many devices restrict plugins or don't support them. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/plugins).",
|
|
1624
|
+
"score": 1,
|
|
1625
|
+
"scoreDisplayMode": "binary",
|
|
1626
|
+
"rawValue": true,
|
|
1627
|
+
"details": {
|
|
1628
|
+
"type": "table",
|
|
1629
|
+
"headings": [],
|
|
1630
|
+
"items": []
|
|
1631
|
+
}
|
|
1632
|
+
},
|
|
1633
|
+
"canonical": {
|
|
1634
|
+
"id": "canonical",
|
|
1635
|
+
"title": "Document has a valid `rel=canonical`",
|
|
1636
|
+
"description": "Canonical links suggest which URL to show in search results. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/canonical).",
|
|
1637
|
+
"score": null,
|
|
1638
|
+
"scoreDisplayMode": "not-applicable",
|
|
1639
|
+
"rawValue": true
|
|
1640
|
+
},
|
|
1641
|
+
"mobile-friendly": {
|
|
1642
|
+
"id": "mobile-friendly",
|
|
1643
|
+
"title": "Page is mobile friendly",
|
|
1644
|
+
"description": "Take the [Mobile-Friendly Test](https://search.google.com/test/mobile-friendly) to check for audits not covered by Lighthouse, like sizing tap targets appropriately. [Learn more](https://developers.google.com/search/mobile-sites/).",
|
|
1645
|
+
"score": null,
|
|
1646
|
+
"scoreDisplayMode": "manual",
|
|
1647
|
+
"rawValue": false
|
|
1648
|
+
},
|
|
1649
|
+
"structured-data": {
|
|
1650
|
+
"id": "structured-data",
|
|
1651
|
+
"title": "Structured data is valid",
|
|
1652
|
+
"description": "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://developers.google.com/search/docs/guides/mark-up-content).",
|
|
1653
|
+
"score": null,
|
|
1654
|
+
"scoreDisplayMode": "manual",
|
|
1655
|
+
"rawValue": false
|
|
1656
|
+
}
|
|
1657
|
+
},
|
|
1658
|
+
"configSettings": {
|
|
1659
|
+
"output": [
|
|
1660
|
+
"html"
|
|
1661
|
+
],
|
|
1662
|
+
"maxWaitForLoad": 45000,
|
|
1663
|
+
"throttlingMethod": "simulate",
|
|
1664
|
+
"throttling": {
|
|
1665
|
+
"rttMs": 150,
|
|
1666
|
+
"throughputKbps": 1638.4,
|
|
1667
|
+
"requestLatencyMs": 562.5,
|
|
1668
|
+
"downloadThroughputKbps": 1474.5600000000002,
|
|
1669
|
+
"uploadThroughputKbps": 675,
|
|
1670
|
+
"cpuSlowdownMultiplier": 4
|
|
1671
|
+
},
|
|
1672
|
+
"auditMode": false,
|
|
1673
|
+
"gatherMode": false,
|
|
1674
|
+
"disableStorageReset": false,
|
|
1675
|
+
"disableDeviceEmulation": false,
|
|
1676
|
+
"blockedUrlPatterns": null,
|
|
1677
|
+
"additionalTraceCategories": null,
|
|
1678
|
+
"extraHeaders": null,
|
|
1679
|
+
"onlyAudits": null,
|
|
1680
|
+
"onlyCategories": null,
|
|
1681
|
+
"skipAudits": null
|
|
1682
|
+
},
|
|
1683
|
+
"categories": {
|
|
1684
|
+
"performance": {
|
|
1685
|
+
"title": "Performance",
|
|
1686
|
+
"auditRefs": [
|
|
1687
|
+
{
|
|
1688
|
+
"id": "first-contentful-paint",
|
|
1689
|
+
"weight": 3,
|
|
1690
|
+
"group": "metrics"
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
"id": "first-meaningful-paint",
|
|
1694
|
+
"weight": 1,
|
|
1695
|
+
"group": "metrics"
|
|
1696
|
+
},
|
|
1697
|
+
{
|
|
1698
|
+
"id": "speed-index",
|
|
1699
|
+
"weight": 4,
|
|
1700
|
+
"group": "metrics"
|
|
1701
|
+
},
|
|
1702
|
+
{
|
|
1703
|
+
"id": "interactive",
|
|
1704
|
+
"weight": 5,
|
|
1705
|
+
"group": "metrics"
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
"id": "first-cpu-idle",
|
|
1709
|
+
"weight": 2,
|
|
1710
|
+
"group": "metrics"
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
"id": "estimated-input-latency",
|
|
1714
|
+
"weight": 0,
|
|
1715
|
+
"group": "metrics"
|
|
1716
|
+
},
|
|
1717
|
+
{
|
|
1718
|
+
"id": "render-blocking-resources",
|
|
1719
|
+
"weight": 0,
|
|
1720
|
+
"group": "load-opportunities"
|
|
1721
|
+
},
|
|
1722
|
+
{
|
|
1723
|
+
"id": "uses-responsive-images",
|
|
1724
|
+
"weight": 0,
|
|
1725
|
+
"group": "load-opportunities"
|
|
1726
|
+
},
|
|
1727
|
+
{
|
|
1728
|
+
"id": "offscreen-images",
|
|
1729
|
+
"weight": 0,
|
|
1730
|
+
"group": "load-opportunities"
|
|
1731
|
+
},
|
|
1732
|
+
{
|
|
1733
|
+
"id": "unminified-css",
|
|
1734
|
+
"weight": 0,
|
|
1735
|
+
"group": "load-opportunities"
|
|
1736
|
+
},
|
|
1737
|
+
{
|
|
1738
|
+
"id": "unminified-javascript",
|
|
1739
|
+
"weight": 0,
|
|
1740
|
+
"group": "load-opportunities"
|
|
1741
|
+
},
|
|
1742
|
+
{
|
|
1743
|
+
"id": "unused-css-rules",
|
|
1744
|
+
"weight": 0,
|
|
1745
|
+
"group": "load-opportunities"
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
"id": "uses-optimized-images",
|
|
1749
|
+
"weight": 0,
|
|
1750
|
+
"group": "load-opportunities"
|
|
1751
|
+
},
|
|
1752
|
+
{
|
|
1753
|
+
"id": "uses-webp-images",
|
|
1754
|
+
"weight": 0,
|
|
1755
|
+
"group": "load-opportunities"
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
"id": "uses-text-compression",
|
|
1759
|
+
"weight": 0,
|
|
1760
|
+
"group": "load-opportunities"
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"id": "uses-rel-preconnect",
|
|
1764
|
+
"weight": 0,
|
|
1765
|
+
"group": "load-opportunities"
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
"id": "time-to-first-byte",
|
|
1769
|
+
"weight": 0,
|
|
1770
|
+
"group": "load-opportunities"
|
|
1771
|
+
},
|
|
1772
|
+
{
|
|
1773
|
+
"id": "redirects",
|
|
1774
|
+
"weight": 0,
|
|
1775
|
+
"group": "load-opportunities"
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
"id": "uses-rel-preload",
|
|
1779
|
+
"weight": 0,
|
|
1780
|
+
"group": "load-opportunities"
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"id": "efficient-animated-content",
|
|
1784
|
+
"weight": 0,
|
|
1785
|
+
"group": "load-opportunities"
|
|
1786
|
+
},
|
|
1787
|
+
{
|
|
1788
|
+
"id": "total-byte-weight",
|
|
1789
|
+
"weight": 0,
|
|
1790
|
+
"group": "diagnostics"
|
|
1791
|
+
},
|
|
1792
|
+
{
|
|
1793
|
+
"id": "uses-long-cache-ttl",
|
|
1794
|
+
"weight": 0,
|
|
1795
|
+
"group": "diagnostics"
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
"id": "dom-size",
|
|
1799
|
+
"weight": 0,
|
|
1800
|
+
"group": "diagnostics"
|
|
1801
|
+
},
|
|
1802
|
+
{
|
|
1803
|
+
"id": "critical-request-chains",
|
|
1804
|
+
"weight": 0,
|
|
1805
|
+
"group": "diagnostics"
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
"id": "network-requests",
|
|
1809
|
+
"weight": 0
|
|
1810
|
+
},
|
|
1811
|
+
{
|
|
1812
|
+
"id": "metrics",
|
|
1813
|
+
"weight": 0
|
|
1814
|
+
},
|
|
1815
|
+
{
|
|
1816
|
+
"id": "user-timings",
|
|
1817
|
+
"weight": 0,
|
|
1818
|
+
"group": "diagnostics"
|
|
1819
|
+
},
|
|
1820
|
+
{
|
|
1821
|
+
"id": "bootup-time",
|
|
1822
|
+
"weight": 0,
|
|
1823
|
+
"group": "diagnostics"
|
|
1824
|
+
},
|
|
1825
|
+
{
|
|
1826
|
+
"id": "screenshot-thumbnails",
|
|
1827
|
+
"weight": 0
|
|
1828
|
+
},
|
|
1829
|
+
{
|
|
1830
|
+
"id": "mainthread-work-breakdown",
|
|
1831
|
+
"weight": 0,
|
|
1832
|
+
"group": "diagnostics"
|
|
1833
|
+
},
|
|
1834
|
+
{
|
|
1835
|
+
"id": "font-display",
|
|
1836
|
+
"weight": 0,
|
|
1837
|
+
"group": "diagnostics"
|
|
1838
|
+
}
|
|
1839
|
+
],
|
|
1840
|
+
"id": "performance",
|
|
1841
|
+
"score": 1
|
|
1842
|
+
},
|
|
1843
|
+
"pwa": {
|
|
1844
|
+
"title": "Progressive Web App",
|
|
1845
|
+
"description": "These checks validate the aspects of a Progressive Web App, as specified by the baseline [PWA Checklist](https://developers.google.com/web/progressive-web-apps/checklist).",
|
|
1846
|
+
"manualDescription": "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.",
|
|
1847
|
+
"auditRefs": [
|
|
1848
|
+
{
|
|
1849
|
+
"id": "load-fast-enough-for-pwa",
|
|
1850
|
+
"weight": 7
|
|
1851
|
+
},
|
|
1852
|
+
{
|
|
1853
|
+
"id": "works-offline",
|
|
1854
|
+
"weight": 5
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"id": "webapp-install-banner",
|
|
1858
|
+
"weight": 3
|
|
1859
|
+
},
|
|
1860
|
+
{
|
|
1861
|
+
"id": "is-on-https",
|
|
1862
|
+
"weight": 2
|
|
1863
|
+
},
|
|
1864
|
+
{
|
|
1865
|
+
"id": "redirects-http",
|
|
1866
|
+
"weight": 2
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
"id": "viewport",
|
|
1870
|
+
"weight": 2
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"id": "service-worker",
|
|
1874
|
+
"weight": 1
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
"id": "without-javascript",
|
|
1878
|
+
"weight": 1
|
|
1879
|
+
},
|
|
1880
|
+
{
|
|
1881
|
+
"id": "splash-screen",
|
|
1882
|
+
"weight": 1
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"id": "themed-omnibox",
|
|
1886
|
+
"weight": 1
|
|
1887
|
+
},
|
|
1888
|
+
{
|
|
1889
|
+
"id": "content-width",
|
|
1890
|
+
"weight": 1
|
|
1891
|
+
},
|
|
1892
|
+
{
|
|
1893
|
+
"id": "manifest-short-name-length",
|
|
1894
|
+
"weight": 0
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
"id": "pwa-cross-browser",
|
|
1898
|
+
"weight": 0
|
|
1899
|
+
},
|
|
1900
|
+
{
|
|
1901
|
+
"id": "pwa-page-transitions",
|
|
1902
|
+
"weight": 0
|
|
1903
|
+
},
|
|
1904
|
+
{
|
|
1905
|
+
"id": "pwa-each-page-has-url",
|
|
1906
|
+
"weight": 0
|
|
1907
|
+
}
|
|
1908
|
+
],
|
|
1909
|
+
"id": "pwa",
|
|
1910
|
+
"score": 0.5
|
|
1911
|
+
},
|
|
1912
|
+
"accessibility": {
|
|
1913
|
+
"title": "Accessibility",
|
|
1914
|
+
"description": "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.",
|
|
1915
|
+
"manualDescription": "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).",
|
|
1916
|
+
"auditRefs": [
|
|
1917
|
+
{
|
|
1918
|
+
"id": "accesskeys",
|
|
1919
|
+
"weight": 0,
|
|
1920
|
+
"group": "a11y-correct-attributes"
|
|
1921
|
+
},
|
|
1922
|
+
{
|
|
1923
|
+
"id": "aria-allowed-attr",
|
|
1924
|
+
"weight": 0,
|
|
1925
|
+
"group": "a11y-aria"
|
|
1926
|
+
},
|
|
1927
|
+
{
|
|
1928
|
+
"id": "aria-required-attr",
|
|
1929
|
+
"weight": 0,
|
|
1930
|
+
"group": "a11y-aria"
|
|
1931
|
+
},
|
|
1932
|
+
{
|
|
1933
|
+
"id": "aria-required-children",
|
|
1934
|
+
"weight": 0,
|
|
1935
|
+
"group": "a11y-aria"
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
"id": "aria-required-parent",
|
|
1939
|
+
"weight": 0,
|
|
1940
|
+
"group": "a11y-aria"
|
|
1941
|
+
},
|
|
1942
|
+
{
|
|
1943
|
+
"id": "aria-roles",
|
|
1944
|
+
"weight": 0,
|
|
1945
|
+
"group": "a11y-aria"
|
|
1946
|
+
},
|
|
1947
|
+
{
|
|
1948
|
+
"id": "aria-valid-attr-value",
|
|
1949
|
+
"weight": 0,
|
|
1950
|
+
"group": "a11y-aria"
|
|
1951
|
+
},
|
|
1952
|
+
{
|
|
1953
|
+
"id": "aria-valid-attr",
|
|
1954
|
+
"weight": 0,
|
|
1955
|
+
"group": "a11y-aria"
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
"id": "audio-caption",
|
|
1959
|
+
"weight": 0,
|
|
1960
|
+
"group": "a11y-correct-attributes"
|
|
1961
|
+
},
|
|
1962
|
+
{
|
|
1963
|
+
"id": "button-name",
|
|
1964
|
+
"weight": 0,
|
|
1965
|
+
"group": "a11y-element-names"
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
"id": "bypass",
|
|
1969
|
+
"weight": 10,
|
|
1970
|
+
"group": "a11y-describe-contents"
|
|
1971
|
+
},
|
|
1972
|
+
{
|
|
1973
|
+
"id": "color-contrast",
|
|
1974
|
+
"weight": 6,
|
|
1975
|
+
"group": "a11y-color-contrast"
|
|
1976
|
+
},
|
|
1977
|
+
{
|
|
1978
|
+
"id": "definition-list",
|
|
1979
|
+
"weight": 0,
|
|
1980
|
+
"group": "a11y-well-structured"
|
|
1981
|
+
},
|
|
1982
|
+
{
|
|
1983
|
+
"id": "dlitem",
|
|
1984
|
+
"weight": 0,
|
|
1985
|
+
"group": "a11y-well-structured"
|
|
1986
|
+
},
|
|
1987
|
+
{
|
|
1988
|
+
"id": "document-title",
|
|
1989
|
+
"weight": 2,
|
|
1990
|
+
"group": "a11y-describe-contents"
|
|
1991
|
+
},
|
|
1992
|
+
{
|
|
1993
|
+
"id": "duplicate-id",
|
|
1994
|
+
"weight": 0,
|
|
1995
|
+
"group": "a11y-well-structured"
|
|
1996
|
+
},
|
|
1997
|
+
{
|
|
1998
|
+
"id": "frame-title",
|
|
1999
|
+
"weight": 0,
|
|
2000
|
+
"group": "a11y-describe-contents"
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"id": "html-has-lang",
|
|
2004
|
+
"weight": 4,
|
|
2005
|
+
"group": "a11y-language"
|
|
2006
|
+
},
|
|
2007
|
+
{
|
|
2008
|
+
"id": "html-lang-valid",
|
|
2009
|
+
"weight": 0,
|
|
2010
|
+
"group": "a11y-language"
|
|
2011
|
+
},
|
|
2012
|
+
{
|
|
2013
|
+
"id": "image-alt",
|
|
2014
|
+
"weight": 0,
|
|
2015
|
+
"group": "a11y-correct-attributes"
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
"id": "input-image-alt",
|
|
2019
|
+
"weight": 0,
|
|
2020
|
+
"group": "a11y-correct-attributes"
|
|
2021
|
+
},
|
|
2022
|
+
{
|
|
2023
|
+
"id": "label",
|
|
2024
|
+
"weight": 0,
|
|
2025
|
+
"group": "a11y-describe-contents"
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
"id": "layout-table",
|
|
2029
|
+
"weight": 0,
|
|
2030
|
+
"group": "a11y-describe-contents"
|
|
2031
|
+
},
|
|
2032
|
+
{
|
|
2033
|
+
"id": "link-name",
|
|
2034
|
+
"weight": 9,
|
|
2035
|
+
"group": "a11y-element-names"
|
|
2036
|
+
},
|
|
2037
|
+
{
|
|
2038
|
+
"id": "list",
|
|
2039
|
+
"weight": 0,
|
|
2040
|
+
"group": "a11y-well-structured"
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
"id": "listitem",
|
|
2044
|
+
"weight": 0,
|
|
2045
|
+
"group": "a11y-well-structured"
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
"id": "meta-refresh",
|
|
2049
|
+
"weight": 0,
|
|
2050
|
+
"group": "a11y-meta"
|
|
2051
|
+
},
|
|
2052
|
+
{
|
|
2053
|
+
"id": "meta-viewport",
|
|
2054
|
+
"weight": 3,
|
|
2055
|
+
"group": "a11y-meta"
|
|
2056
|
+
},
|
|
2057
|
+
{
|
|
2058
|
+
"id": "object-alt",
|
|
2059
|
+
"weight": 0,
|
|
2060
|
+
"group": "a11y-describe-contents"
|
|
2061
|
+
},
|
|
2062
|
+
{
|
|
2063
|
+
"id": "tabindex",
|
|
2064
|
+
"weight": 0,
|
|
2065
|
+
"group": "a11y-correct-attributes"
|
|
2066
|
+
},
|
|
2067
|
+
{
|
|
2068
|
+
"id": "td-headers-attr",
|
|
2069
|
+
"weight": 0,
|
|
2070
|
+
"group": "a11y-correct-attributes"
|
|
2071
|
+
},
|
|
2072
|
+
{
|
|
2073
|
+
"id": "th-has-data-cells",
|
|
2074
|
+
"weight": 0,
|
|
2075
|
+
"group": "a11y-correct-attributes"
|
|
2076
|
+
},
|
|
2077
|
+
{
|
|
2078
|
+
"id": "valid-lang",
|
|
2079
|
+
"weight": 0,
|
|
2080
|
+
"group": "a11y-language"
|
|
2081
|
+
},
|
|
2082
|
+
{
|
|
2083
|
+
"id": "video-caption",
|
|
2084
|
+
"weight": 0,
|
|
2085
|
+
"group": "a11y-describe-contents"
|
|
2086
|
+
},
|
|
2087
|
+
{
|
|
2088
|
+
"id": "video-description",
|
|
2089
|
+
"weight": 0,
|
|
2090
|
+
"group": "a11y-describe-contents"
|
|
2091
|
+
},
|
|
2092
|
+
{
|
|
2093
|
+
"id": "logical-tab-order",
|
|
2094
|
+
"weight": 0
|
|
2095
|
+
},
|
|
2096
|
+
{
|
|
2097
|
+
"id": "focusable-controls",
|
|
2098
|
+
"weight": 0
|
|
2099
|
+
},
|
|
2100
|
+
{
|
|
2101
|
+
"id": "managed-focus",
|
|
2102
|
+
"weight": 0
|
|
2103
|
+
},
|
|
2104
|
+
{
|
|
2105
|
+
"id": "focus-traps",
|
|
2106
|
+
"weight": 0
|
|
2107
|
+
},
|
|
2108
|
+
{
|
|
2109
|
+
"id": "custom-controls-labels",
|
|
2110
|
+
"weight": 0
|
|
2111
|
+
},
|
|
2112
|
+
{
|
|
2113
|
+
"id": "custom-controls-roles",
|
|
2114
|
+
"weight": 0
|
|
2115
|
+
},
|
|
2116
|
+
{
|
|
2117
|
+
"id": "visual-order-follows-dom",
|
|
2118
|
+
"weight": 0
|
|
2119
|
+
},
|
|
2120
|
+
{
|
|
2121
|
+
"id": "offscreen-content-hidden",
|
|
2122
|
+
"weight": 0
|
|
2123
|
+
},
|
|
2124
|
+
{
|
|
2125
|
+
"id": "heading-levels",
|
|
2126
|
+
"weight": 0
|
|
2127
|
+
},
|
|
2128
|
+
{
|
|
2129
|
+
"id": "use-landmarks",
|
|
2130
|
+
"weight": 0
|
|
2131
|
+
}
|
|
2132
|
+
],
|
|
2133
|
+
"id": "accessibility",
|
|
2134
|
+
"score": 0.88
|
|
2135
|
+
},
|
|
2136
|
+
"best-practices": {
|
|
2137
|
+
"title": "Best Practices",
|
|
2138
|
+
"auditRefs": [
|
|
2139
|
+
{
|
|
2140
|
+
"id": "appcache-manifest",
|
|
2141
|
+
"weight": 1
|
|
2142
|
+
},
|
|
2143
|
+
{
|
|
2144
|
+
"id": "no-websql",
|
|
2145
|
+
"weight": 1
|
|
2146
|
+
},
|
|
2147
|
+
{
|
|
2148
|
+
"id": "is-on-https",
|
|
2149
|
+
"weight": 1
|
|
2150
|
+
},
|
|
2151
|
+
{
|
|
2152
|
+
"id": "uses-http2",
|
|
2153
|
+
"weight": 1
|
|
2154
|
+
},
|
|
2155
|
+
{
|
|
2156
|
+
"id": "uses-passive-event-listeners",
|
|
2157
|
+
"weight": 1
|
|
2158
|
+
},
|
|
2159
|
+
{
|
|
2160
|
+
"id": "no-document-write",
|
|
2161
|
+
"weight": 1
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
"id": "external-anchors-use-rel-noopener",
|
|
2165
|
+
"weight": 1
|
|
2166
|
+
},
|
|
2167
|
+
{
|
|
2168
|
+
"id": "geolocation-on-start",
|
|
2169
|
+
"weight": 1
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"id": "no-vulnerable-libraries",
|
|
2173
|
+
"weight": 1
|
|
2174
|
+
},
|
|
2175
|
+
{
|
|
2176
|
+
"id": "notification-on-start",
|
|
2177
|
+
"weight": 1
|
|
2178
|
+
},
|
|
2179
|
+
{
|
|
2180
|
+
"id": "deprecations",
|
|
2181
|
+
"weight": 1
|
|
2182
|
+
},
|
|
2183
|
+
{
|
|
2184
|
+
"id": "password-inputs-can-be-pasted-into",
|
|
2185
|
+
"weight": 1
|
|
2186
|
+
},
|
|
2187
|
+
{
|
|
2188
|
+
"id": "errors-in-console",
|
|
2189
|
+
"weight": 1
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
"id": "image-aspect-ratio",
|
|
2193
|
+
"weight": 1
|
|
2194
|
+
}
|
|
2195
|
+
],
|
|
2196
|
+
"id": "best-practices",
|
|
2197
|
+
"score": 0.93
|
|
2198
|
+
},
|
|
2199
|
+
"seo": {
|
|
2200
|
+
"title": "SEO",
|
|
2201
|
+
"description": "These checks ensure that your page is optimized for search engine results ranking. There are additional factors Lighthouse does not check that may affect your search ranking. [Learn more](https://support.google.com/webmasters/answer/35769).",
|
|
2202
|
+
"manualDescription": "Run these additional validators on your site to check additional SEO best practices.",
|
|
2203
|
+
"auditRefs": [
|
|
2204
|
+
{
|
|
2205
|
+
"id": "viewport",
|
|
2206
|
+
"weight": 1,
|
|
2207
|
+
"group": "seo-mobile"
|
|
2208
|
+
},
|
|
2209
|
+
{
|
|
2210
|
+
"id": "document-title",
|
|
2211
|
+
"weight": 1,
|
|
2212
|
+
"group": "seo-content"
|
|
2213
|
+
},
|
|
2214
|
+
{
|
|
2215
|
+
"id": "meta-description",
|
|
2216
|
+
"weight": 1,
|
|
2217
|
+
"group": "seo-content"
|
|
2218
|
+
},
|
|
2219
|
+
{
|
|
2220
|
+
"id": "http-status-code",
|
|
2221
|
+
"weight": 1,
|
|
2222
|
+
"group": "seo-crawl"
|
|
2223
|
+
},
|
|
2224
|
+
{
|
|
2225
|
+
"id": "link-text",
|
|
2226
|
+
"weight": 1,
|
|
2227
|
+
"group": "seo-content"
|
|
2228
|
+
},
|
|
2229
|
+
{
|
|
2230
|
+
"id": "is-crawlable",
|
|
2231
|
+
"weight": 1,
|
|
2232
|
+
"group": "seo-crawl"
|
|
2233
|
+
},
|
|
2234
|
+
{
|
|
2235
|
+
"id": "robots-txt",
|
|
2236
|
+
"weight": 0,
|
|
2237
|
+
"group": "seo-crawl"
|
|
2238
|
+
},
|
|
2239
|
+
{
|
|
2240
|
+
"id": "hreflang",
|
|
2241
|
+
"weight": 1,
|
|
2242
|
+
"group": "seo-content"
|
|
2243
|
+
},
|
|
2244
|
+
{
|
|
2245
|
+
"id": "canonical",
|
|
2246
|
+
"weight": 0,
|
|
2247
|
+
"group": "seo-content"
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"id": "font-size",
|
|
2251
|
+
"weight": 1,
|
|
2252
|
+
"group": "seo-mobile"
|
|
2253
|
+
},
|
|
2254
|
+
{
|
|
2255
|
+
"id": "plugins",
|
|
2256
|
+
"weight": 1,
|
|
2257
|
+
"group": "seo-content"
|
|
2258
|
+
},
|
|
2259
|
+
{
|
|
2260
|
+
"id": "mobile-friendly",
|
|
2261
|
+
"weight": 0
|
|
2262
|
+
},
|
|
2263
|
+
{
|
|
2264
|
+
"id": "structured-data",
|
|
2265
|
+
"weight": 0
|
|
2266
|
+
}
|
|
2267
|
+
],
|
|
2268
|
+
"id": "seo",
|
|
2269
|
+
"score": 0.89
|
|
2270
|
+
}
|
|
2271
|
+
},
|
|
2272
|
+
"categoryGroups": {
|
|
2273
|
+
"metrics": {
|
|
2274
|
+
"title": "Metrics"
|
|
2275
|
+
},
|
|
2276
|
+
"load-opportunities": {
|
|
2277
|
+
"title": "Opportunities",
|
|
2278
|
+
"description": "These are opportunities to speed up your application by optimizing the following resources."
|
|
2279
|
+
},
|
|
2280
|
+
"diagnostics": {
|
|
2281
|
+
"title": "Diagnostics",
|
|
2282
|
+
"description": "More information about the performance of your application."
|
|
2283
|
+
},
|
|
2284
|
+
"a11y-color-contrast": {
|
|
2285
|
+
"title": "Color Contrast Is Satisfactory",
|
|
2286
|
+
"description": "These are opportunities to improve the legibility of your content."
|
|
2287
|
+
},
|
|
2288
|
+
"a11y-describe-contents": {
|
|
2289
|
+
"title": "Elements Describe Contents Well",
|
|
2290
|
+
"description": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader."
|
|
2291
|
+
},
|
|
2292
|
+
"a11y-well-structured": {
|
|
2293
|
+
"title": "Elements Are Well Structured",
|
|
2294
|
+
"description": "These are opportunities to make sure your HTML is appropriately structured."
|
|
2295
|
+
},
|
|
2296
|
+
"a11y-aria": {
|
|
2297
|
+
"title": "ARIA Attributes Follow Best Practices",
|
|
2298
|
+
"description": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader."
|
|
2299
|
+
},
|
|
2300
|
+
"a11y-correct-attributes": {
|
|
2301
|
+
"title": "Elements Use Attributes Correctly",
|
|
2302
|
+
"description": "These are opportunities to improve the configuration of your HTML elements."
|
|
2303
|
+
},
|
|
2304
|
+
"a11y-element-names": {
|
|
2305
|
+
"title": "Elements Have Discernible Names",
|
|
2306
|
+
"description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader."
|
|
2307
|
+
},
|
|
2308
|
+
"a11y-language": {
|
|
2309
|
+
"title": "Page Specifies Valid Language",
|
|
2310
|
+
"description": "These are opportunities to improve the interpretation of your content by users in different locales."
|
|
2311
|
+
},
|
|
2312
|
+
"a11y-meta": {
|
|
2313
|
+
"title": "Meta Tags Used Properly",
|
|
2314
|
+
"description": "These are opportunities to improve the user experience of your site."
|
|
2315
|
+
},
|
|
2316
|
+
"seo-mobile": {
|
|
2317
|
+
"title": "Mobile Friendly",
|
|
2318
|
+
"description": "Make sure 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/)."
|
|
2319
|
+
},
|
|
2320
|
+
"seo-content": {
|
|
2321
|
+
"title": "Content Best Practices",
|
|
2322
|
+
"description": "Format your HTML in a way that enables crawlers to better understand your app’s content."
|
|
2323
|
+
},
|
|
2324
|
+
"seo-crawl": {
|
|
2325
|
+
"title": "Crawling and Indexing",
|
|
2326
|
+
"description": "To appear in search results, crawlers need access to your app."
|
|
2327
|
+
}
|
|
2328
|
+
},
|
|
2329
|
+
"timing": {
|
|
2330
|
+
"total": 4144
|
|
2331
|
+
}
|
|
2332
|
+
}
|