v7.0.0
7.0.0 (2020-12-17)
Lighthouse 7.0 includes a number of programmatic breaking changes and new audits in the Accessibility and PWA categories. There were some improvements in the accuracy of metric calculations, but it is not expected that Performance scores will change significantly for almost all sites. There may be larger changes in Accessibility and PWA scores due to the new audits.
This release is expected to ship in the DevTools of Chrome 89. It went live on PageSpeed Insights on Feb 19, 2021.
Notable changes
- A full-page screenshot is taken and used to improve the experience of viewing DOM element details. Now a thumbnail will be shown and clicking reveals a lightbox showing where in the page the DOM node lived. This screenshot increases the size of the Lighthouse JSON by ~33%. (#11769, #11768, #11829, #11846, #11852)
- The PWA Category changed fairly significantly.
- The Installable group is powered entirely by the capability checks that enable Chrome's installable criteria. These are the same signals seen in the Manifest pane in Chrome DevTools. As such, the "Registers a service worker…" audit moves to the PWA Optimized group, and the "Uses HTTPS" audit is now included as part of the key "installability requirements" audit.
- The Fast and reliable group has evaporated into thin air. 🌬 Now that revamped "installability requirements" audit includes offline-capability checking, we've removed the dedicated audits for checking if the current page and
start_url
respond with 200 when offline. Separately, the "Page load is fast enough on mobile network" audit was removed—while it's no longer part of the PWA section, we encourage folks building a PWA to consult the Performance category to ensure their web app is speedy and delightful.
- A nightly Lighthouse build is now available as
lighthouse@next
on npm. Note that while automated tests pass before publishing, it's expected that this version will be more unstable than the regular releases (#11792, #11805, #11810) - The accessibility-testing library
axe-core
has been updated to the latest 4.1.1 release. The accessibility audits are now faster, more robust, and include multiple new checks (#11661) - Lighthouse runs a small benchmark at startup, and will now include a warning if the test machine appears underpowered and may be affecting the accuracy of the Lighthouse metrics (#11350)
- Joomla and October CMS detection has been added, so pages on those platforms will now get customized advice on some Lighthouse audits (#11788)
New contributors
Thanks to Kohta Ito (@koh110) and Sam Stoelinga (@samos123) for their first contributions!
🆕 New audits
- The new
installable-manifest
PWA audit, mentioned above, uses Chrome's own installability criteria so it will always stay in sync with installability requirements (#11745) third-party-facades
looks for third-party embeds in the test page that can be lazy loaded with a static "facade". If the embed isn't necessary for immediate interaction by a user, consider using one of the facades to speed up page load (#11290)- With the axe version upgrade comes new audits ensuring accessible naming:
aria-treeitem-name
,aria-command-name
,aria-tooltip-name
,aria-meter-name
, andaria-progressbar-name
(#11661)
♻️ Removed audits
- The update to latest
axe-core
also removes two audits that weren't checking much:layout-table
andvideo-description
(#11661) works-offline
andoffline-start-url
audits were removed as their checks are now covered by the newinstallable-manifest
implementation (#11806)- The
load-fast-enough-for-pwa
audit has also been removed since Lighthouse's existing performance metrics more than cover the needs there (#11764) without-javascript
has been removed (#11711)
💥 Breaking changes
- Device-emulation config settings and CLI flags have changed to be clearer and have less overlap. If you've used
--emulated-form-factor
or other emulation-related configuration, you'll need to make changes. The new settings should be considerably simpler to use with custom Lighthouse runners using real devices, Puppeteer, or system-level throttling. See the emulation docs for migration guidance. (#11779) - When waiting for the page to be fully loaded, Lighthouse will now wait if there are active high-priority network requests. In rare cases, like where the app initialization is dependent on a single, slow-returning XHR, some performance metrics may worsen; however, the new measurements are now accurate. (#11738, #11851)
- Support for Node 10 has been dropped. The minimum required Node version is now 12 (#11656)
🤖💥 Breaking changes for programmatic users
These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.
ConsoleMessages
is a new artifact that is a combination of the oldConsoleMessages
andRuntimeExceptions
artifacts, with some expanded data on items logged to the console.RuntimeExceptions
has been removed (#11663)- DOM "node details" data formerly spread throughout existing artifacts are now gathered in a
NodeDetails
property on each element (#11474, #11695, #11752) - The
ImageElements
artifact has been streamlined to better represent the data collected and how it's used (#11703, #11707, #11733) - Previously,
extends: true
was allowed as an alias forextends: 'lighthouse:default'
to extend a config from the default Lighthouse config file. The boolean option has been removed to prepare the way for extending from any valid config file (#11835) - A never-used feature to pass options from the config to gatherers has been removed to be compatible with future changes (#11743)
🧱 Core
Improvements, bug fixes, clarifications
- lantern: allow non-XHRs to depend on CPU Nodes (#11767)
- lantern: maximize throughput under HTTP/2 (#11666)
- properly split node labels in the report around unicode surrogate pairs (#11698)
- move the
service-worker
audit to the pwa-optimized group; its path in the JSON and metadata on scope URLs are unchanged (#11798) - support local plugins from a globally-installed Lighthouse (#11696)
Internal refactors and improvements
- driver: create typed
Runtime.evaluate
from function code (#10816) - gather-runner: remove <M82 compat for
InstallabilityErrors
(#11782) - simulator: clearer intermediate timing types (#11744)
- types: remove unneeded casts (#11753)
- lightrider: skip
uses-http2
audit (again) (#11777) script-treemap-data
: fix sourceRoot and missing coverage bugs (#11825)- fraggle-rock: add base snapshot runner (#11748)
- fraggle-rock: add driver (#11742)
Tests
- re-enable change-related tests in github actions (#11801)
- smoke: use font-size for a non-composited animation in tests (#11808, #11836)
- smoke: handle
warn-not-offline-capable
in test (#11799) - smoke: fix failureReasonsMask flake (#11791)
- smoke: update flaky
third-party-facades
test (#11786) - make devtools webtests stable and reliable (#11717, #11731, #11751, #11789, #11790, #11804, #11809, 6ad47fa)
Misc
uses-http2
: remove mention of h2 push in docs (#11834)- readme: add integration (#11775)
- add log files to GCP run results (#11833)
- temporarily allow css in
redirectPass
to work around crbug (#11813) - eslintignore
*.d.ts
files (#11793) - buildtracker: skip
git --deepen
if no token (#11785) - build: quiet the
npm pack
command (#11783) - build: fix bundling
lighthouse-plugin-publisher-ads
in Lightrider (#11648) - release: add
print-contributors.js
script (#11736)