Lighthouse, an open-source, automated tool for improving the quality of web pages. Lighthouse will audit your site in the following categories:
{"guides":[{"path":"","topic":"","id":"accesskeys","lighthouse":["accesskeys"],"title":"`[accesskey]` values are not unique","url":"/accesskeys/"},{"path":"","topic":"","id":"aria-allowed-attr","lighthouse":["aria-allowed-attr"],"title":"`[aria-*]` attributes do not match their roles","url":"/aria-allowed-attr/"},{"path":"","topic":"","id":"aria-required-attr","lighthouse":["aria-required-attr"],"title":"`[role]`s do not have all required `[aria-*]` attributes","url":"/aria-required-attr/"},{"path":"","topic":"","id":"aria-required-children","lighthouse":["aria-required-children"],"title":"Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children","url":"/aria-required-children/"},{"path":"","topic":"","id":"aria-required-parent","lighthouse":["aria-required-parent"],"title":"`[role]`s are not contained by their required parent element","url":"/aria-required-parent/"},{"path":"","topic":"","id":"aria-roles","lighthouse":["aria-roles"],"title":"`[role]` values are not valid","url":"/aria-roles/"},{"path":"","topic":"","id":"aria-valid-attr-value","lighthouse":["aria-valid-attr-value"],"title":"`[aria-*]` attributes do not have valid values","url":"/aria-valid-attr-value/"},{"path":"","topic":"","id":"aria-valid-attr","lighthouse":["aria-valid-attr"],"title":"`[aria-*]` attributes are not valid or misspelled","url":"/aria-valid-attr/"},{"path":"","topic":"","id":"audio-caption","lighthouse":["audio-caption"],"title":"`<audio>` elements are missing a `<track>` element with `[kind=\"captions\"]`","url":"/audio-caption/"},{"path":"","topic":"","id":"button-name","lighthouse":["button-name"],"title":"Buttons do not have an accessible name","url":"/button-name/"},{"path":"","topic":"","id":"bypass","lighthouse":["bypass"],"title":"The page does not contain a heading, skip link, or landmark region","url":"/bypass/"},{"path":"","topic":"","id":"color-contrast","lighthouse":["color-contrast"],"title":"Background and foreground colors do not have a sufficient contrast ratio","url":"/color-contrast/"},{"path":"","topic":"","id":"custom-control-roles","lighthouse":["custom-control-roles"],"title":"Custom controls have ARIA roles","url":"/custom-control-roles/"},{"path":"","topic":"","id":"custom-controls-labels","lighthouse":["custom-controls-labels"],"title":"Custom controls have associated labels","url":"/custom-controls-labels/"},{"path":"","topic":"","id":"definition-list","lighthouse":["definition-list"],"title":"`<dl>`s do not contain only properly ordered `<dt>` and `<dd>` groups, `<script>`, or `<template>` elements","url":"/definition-list/"},{"path":"","topic":"","id":"dlitem","lighthouse":["dlitem"],"title":"Definition list items are not wrapped in `<dl>` elements","url":"/dlitem/"},{"path":"","topic":"","id":"document-title","lighthouse":["document-title"],"title":"Document doesn't have a `<title>` element","url":"/document-title/"},{"path":"","topic":"","id":"duplicate-id","lighthouse":["duplicate-id"],"title":"`[id]` attributes on the page are not unique","url":"/duplicate-id/"},{"path":"","topic":"","id":"focus-traps","lighthouse":["focus-traps"],"title":"User focus is not accidentally trapped in a region","url":"/focus-traps/"},{"path":"","topic":"","id":"focusable-controls","lighthouse":["focusable-controls"],"title":"Interactive controls are keyboard focusable","url":"/focusable-controls/"},{"path":"","topic":"","id":"frame-title","lighthouse":["frame-title"],"title":"`<frame>` or `<iframe>` elements do not have a title","url":"/frame-title/"},{"path":"","topic":"","id":"heading-levels","lighthouse":["heading-levels"],"title":"Headings don't skip levels","url":"/heading-levels/"},{"path":"","topic":"","id":"html-has-lang","lighthouse":["html-has-lang"],"title":"`<html>` element does not have a `[lang]` attribute","url":"/html-has-lang/"},{"path":"","topic":"","id":"html-lang-valid","lighthouse":["html-lang-valid"],"title":"`<html>` element does not have a valid value for its `[lang]` attribute","url":"/html-lang-valid/"},{"path":"","topic":"","id":"image-alt","lighthouse":["image-alt"],"title":"Image elements do not have `[alt]` attributes","url":"/image-alt/"},{"path":"","topic":"","id":"input-image-alt","lighthouse":["input-image-alt"],"title":"`<input type=\"image\">` elements do not have `[alt]` text","url":"/input-image-alt/"},{"path":"","topic":"","id":"interactive-element-affordance","lighthouse":["interactive-element-affordance"],"title":"Interactive elements indicate their purpose and state","url":"/interactive-element-affordance/"},{"path":"","topic":"","id":"label","lighthouse":["label"],"title":"Form elements do not have associated labels","url":"/label/"},{"path":"","topic":"","id":"layout-table","lighthouse":["layout-table"],"title":"Presentational `<table>` elements do not avoid using `<th>`, `<caption>`, or the `[summary]` attribute","url":"/layout-table/"},{"path":"","topic":"","id":"link-name","lighthouse":["link-name"],"title":"Links do not have a discernible name","url":"/link-name/"},{"path":"","topic":"","id":"list","lighthouse":["list"],"title":"Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)","url":"/list/"},{"path":"","topic":"","id":"listitem","lighthouse":["listitem"],"title":"List items (`<li>`) are not contained within `<ul>` or `<ol>` parent elements","url":"/listitem/"},{"path":"","topic":"","id":"logical-tab-order","lighthouse":["logical-tab-order"],"title":"The page has a logical tab order","url":"/logical-tab-order/"},{"path":"","topic":"","id":"managed-focus","lighthouse":["managed-focus"],"title":"The user's focus is directed to new content added to the page","url":"/managed-focus/"},{"path":"","topic":"","id":"meta-refresh","lighthouse":["meta-refresh"],"title":"The document uses `<meta http-equiv=\"refresh\">`","url":"/meta-refresh/"},{"path":"","topic":"","id":"meta-viewport","lighthouse":["meta-viewport"],"title":"`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than `5`","url":"/meta-viewport/"},{"path":"","topic":"","id":"object-alt","lighthouse":["object-alt"],"title":"`<object>` elements do not have `[alt]` text","url":"/object-alt/"},{"path":"","topic":"","id":"offscreen-content-hidden","lighthouse":["offscreen-content-hidden"],"title":"Offscreen content is hidden from assistive technology","url":"/offscreen-content-hidden/"},{"path":"","topic":"","id":"tabindex","lighthouse":["tabindex"],"title":"Some elements have a `[tabindex]` value greater than `0`","url":"/tabindex/"},{"path":"","topic":"","id":"td-headers-attr","lighthouse":["td-headers-attr"],"title":"Cells in a `<table>` element that use the `[headers]` attribute refer to an element ID not found within the same table","url":"/td-headers-attr/"},{"path":"","topic":"","id":"th-has-data-cells","lighthouse":["th-has-data-cells"],"title":"`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` do not have data cells they describe","url":"/th-has-data-cells/"},{"path":"","topic":"","id":"use-landmarks","lighthouse":["use-landmarks","managed-focus"],"title":"HTML5 landmark elements are used to improve navigation","url":"/use-landmarks/"},{"path":"","topic":"","id":"valid-lang","lighthouse":["valid-lange"],"title":"`[lang]` attributes do not have a valid value","url":"/valid-lang/"},{"path":"","topic":"","id":"video-caption","lighthouse":["video-caption"],"title":"`<video>` elements do not contain a `<track>` element with `[kind=\"captions\"]`","url":"/video-caption/"},{"path":"","topic":"","id":"video-description","lighthouse":["video-description"],"title":"`<video>` elements do not contain a `<track>` element with `[kind=\"description\"]`","url":"/video-description/"},{"path":"","topic":"","id":"visual-order-follows-dom","lighthouse":["visual-order-follows-dom"],"title":"Visual order on the page follows DOM order","url":"/visual-order-follows-dom/"},{"path":"","topic":"","id":"appcache-manifest","lighthouse":["appcache-manifest"],"title":"Uses Application Cache","url":"/appcache-manifest/"},{"path":"","topic":"","id":"deprecations","lighthouse":["deprecations"],"title":"Uses deprecated APIs","url":"/deprecations/"},{"path":"","topic":"","id":"doctype","lighthouse":["doctype"],"title":"Page lacks the HTML doctype, thus triggering quirks mode","url":"/doctype/"},{"path":"","topic":"","id":"errors-in-console","lighthouse":["errors-in-console"],"title":"Browser errors were logged to the console","url":"/errors-in-console/"},{"path":"","topic":"","id":"external-anchors-use-rel-noopener","lighthouse":["external-anchors-use-rel-noopener"],"title":"Links to cross-origin destinations are unsafe","url":"/external-anchors-use-rel-noopener/"},{"path":"","topic":"","id":"geolocation-on-start","lighthouse":["geolocation-on-start"],"title":"Requests the geolocation permission on page load","url":"/geolocation-on-start/"},{"path":"","topic":"","id":"image-aspect-ratio","lighthouse":["image-aspect-ratio"],"title":"Displays images with incorrect aspect ratio","url":"/image-aspect-ratio/"},{"path":"","topic":"","id":"js-libraries","lighthouse":["js-libraries"],"title":"Detected JavaScript libraries","url":"/js-libraries/"},{"path":"","topic":"","id":"no-document-write","lighthouse":["no-document-write"],"title":"Uses document.write()","url":"/no-document-write/"},{"path":"","topic":"","id":"no-vulnerable-libraries","lighthouse":["no-vulnerable-libraries"],"title":"Includes front-end JavaScript libraries with known security vulnerabilities","url":"/no-vulnerable-libraries/"},{"path":"","topic":"","id":"notification-on-start","lighthouse":["notification-on-start"],"title":"Requests the notification permission on page load","url":"/notification-on-start/"},{"path":"","topic":"","id":"password-inputs-can-be-pasted-into","lighthouse":["password-inputs-can-be-pasted-into"],"title":"Prevents users from pasting into password fields","url":"/password-inputs-can-be-pasted-into/"},{"path":"","topic":"","id":"uses-http2","lighthouse":["uses-http2"],"title":"Does not use HTTP/2 for all of its resources","url":"/uses-http2/"},{"path":"","topic":"","id":"uses-passive-event-listeners","lighthouse":["uses-passive-event-listeners"],"title":"Does not use passive listeners to improve scrolling performance","url":"/uses-passive-event-listeners/"},{"path":"","topic":"","id":"bootup-time","lighthouse":["bootup-time"],"title":"Reduce JavaScript execution time","url":"/bootup-time/"},{"path":"","topic":"","id":"critical-request-chains","lighthouse":["critical-request-chains"],"title":"Avoid chaining critical requests","url":"/critical-request-chains/"},{"path":"","topic":"","id":"dom-size","lighthouse":["dom-size"],"title":"Avoid an excessive DOM size","url":"/dom-size/"},{"path":"","topic":"","id":"efficient-animated-content","lighthouse":["efficient-animated-content"],"title":"Use video formats for animated content","url":"/efficient-animated-content/"},{"path":"","topic":"","id":"estimated-input-latency","lighthouse":["estimated-input-latency"],"title":"Estimated Input Latency","url":"/estimated-input-latency/"},{"path":"","topic":"","id":"first-contentful-paint","lighthouse":["first-contentful-paint"],"title":"First Contentful Paint","url":"/first-contentful-paint/"},{"path":"","topic":"","id":"first-cpu-idle","lighthouse":["first-cpu-idle"],"title":"First CPU Idle","url":"/first-cpu-idle/"},{"path":"","topic":"","id":"first-meaningful-paint","lighthouse":["first-meaningful-paint"],"title":"First Meaningful Paint","url":"/first-meaningful-paint/"},{"path":"","topic":"","id":"font-display","lighthouse":["font-display"],"title":"Ensure text remains visible during webfont load","url":"/font-display/"},{"path":"","topic":"","id":"interactive","lighthouse":["interactive"],"title":"Time to Interactive","url":"/interactive/"},{"path":"","topic":"","id":"lighthouse-max-potential-fid","lighthouse":["max-potential-fid"],"title":"Max Potential First Input Delay","url":"/lighthouse-max-potential-fid/"},{"path":"","topic":"","id":"mainthread-work-breakdown","lighthouse":["mainthread-work-breakdown"],"title":"Minimize main thread work","url":"/mainthread-work-breakdown/"},{"path":"","topic":"","id":"offscreen-images","lighthouse":["offscreen-images"],"title":"Defer offscreen images","url":"/offscreen-images/"},{"path":"","topic":"","id":"render-blocking-resources","lighthouse":["render-blocking-resources"],"title":"Eliminate render-blocking resources","url":"/render-blocking-resources/"},{"path":"","topic":"","id":"resource-summary","lighthouse":["resource-summary"],"title":"Keep request counts low and transfer sizes small","url":"/resource-summary/"},{"path":"","topic":"","id":"speed-index","lighthouse":["speed-index"],"title":"Speed Index","url":"/speed-index/"},{"path":"","topic":"","id":"third-party-summary","lighthouse":["third-party-summary"],"title":"Reduce the impact of third-party code","url":"/third-party-summary/"},{"path":"","topic":"","id":"time-to-first-byte","lighthouse":["time-to-first-byte"],"title":"Reduce server response times (TTFB)","url":"/time-to-first-byte/"},{"path":"","topic":"","id":"total-byte-weight","lighthouse":["total-byte-weight"],"title":"Avoid enormous network payloads","url":"/total-byte-weight/"},{"path":"","topic":"","id":"unminified-css","lighthouse":["unminified-css"],"title":"Minify CSS","url":"/unminified-css/"},{"path":"","topic":"","id":"unminified-javascript","lighthouse":["unminified-javascript"],"title":"Minify JavaScript","url":"/unminified-javascript/"},{"path":"","topic":"","id":"unused-css-rules","lighthouse":["unused-css-rules"],"title":"Remove unused CSS","url":"/unused-css-rules/"},{"path":"","topic":"","id":"user-timings","lighthouse":["user-timings"],"title":"User Timing marks and measures","url":"/user-timings/"},{"path":"","topic":"","id":"uses-long-cache-ttl","lighthouse":["uses-long-cache-ttl"],"title":"Serve static assets with an efficient cache policy","url":"/uses-long-cache-ttl/"},{"path":"","topic":"","id":"uses-optimized-images","lighthouse":["uses-optimized-images"],"title":"Efficiently encode images","url":"/uses-optimized-images/"},{"path":"","topic":"","id":"uses-rel-preconnect","lighthouse":["uses-rel-preconnect"],"title":"Preconnect to required origins","url":"/uses-rel-preconnect/"},{"path":"","topic":"","id":"uses-rel-preload","lighthouse":["uses-rel-preload"],"title":"Preload key requests","url":"/uses-rel-preload/"},{"path":"","topic":"","id":"uses-responsive-images","lighthouse":["uses-responsive-images"],"title":"Properly size images","url":"/uses-responsive-images/"},{"path":"","topic":"","id":"uses-text-compression","lighthouse":["uses-text-compression"],"title":"Enable text compression","url":"/uses-text-compression/"},{"path":"","topic":"","id":"uses-webp-images","lighthouse":["uses-webp-images"],"title":"Serve images in next-gen formats","url":"/uses-webp-images/"},{"path":"","topic":"","id":"viewport","lighthouse":["viewport"],"title":"Does not have a `<meta name=\"viewport\">` tag with `width` or `initial-scale`","url":"/viewport/"},{"path":"","topic":"","id":"canonical","lighthouse":["canonical"],"title":"Document does not have a valid `rel=canonical`","url":"/canonical/"},{"path":"","topic":"","id":"font-size","lighthouse":["font-size"],"title":"Document doesn't use legible font sizes","url":"/font-size/"},{"path":"","topic":"","id":"hreflang","lighthouse":["hreflang"],"title":"Document doesn't have a valid `hreflang`","url":"/hreflang/"},{"path":"","topic":"","id":"http-status-code","lighthouse":["http-status-code"],"title":"Page has unsuccessful HTTP status code","url":"/http-status-code/"},{"path":"","topic":"","id":"is-crawable","lighthouse":["is-crawlable"],"title":"Page is blocked from indexing","url":"/is-crawable/"},{"path":"","topic":"","id":"link-text","lighthouse":["link-text"],"title":"Links do not have descriptive text","url":"/link-text/"},{"path":"","topic":"","id":"meta-description","lighthouse":["meta-description"],"title":"Document does not have a meta description","url":"/meta-description/"},{"path":"","topic":"","id":"plugins","lighthouse":["plugins"],"title":"Document uses plugins","url":"/plugins/"},{"path":"","topic":"","id":"robots-txt","lighthouse":["robots-txt"],"title":"`robots.txt` is not valid","url":"/robots-txt/"},{"path":"","topic":"","id":"structured-data","lighthouse":["structured-data"],"title":"Structured data is valid","url":"/structured-data/"},{"path":"","topic":"","id":"tap-targets","lighthouse":["tap-targets"],"title":"Tap targets are not sized appropriately","url":"/tap-targets/"},{"path":"","topic":"","id":"redirects","lighthouse":["redirects"],"title":"Avoid multiple page redirects","url":"/redirects/"},{"path":"","topic":"","id":"content-width","lighthouse":["content-width"],"title":"Content is not sized correctly for the viewport","url":"/content-width/"},{"path":"","topic":"","id":"installable-manifest","lighthouse":["installable-manifest"],"title":"Web app manifest does not meet the installability requirements","url":"/installable-manifest/"},{"path":"","topic":"","id":"is-on-https","lighthouse":["is-on-https"],"title":"Does not use HTTPS","url":"/is-on-https/"},{"path":"","topic":"","id":"load-fast-enough-for-pwa","lighthouse":["load-fast-enough-for-pwa"],"title":"Page load is not fast enough on mobile networks","url":"/load-fast-enough-for-pwa/"},{"path":"","topic":"","id":"offline-start-url","lighthouse":["offline-start-url"],"title":"`start_url` does not respond with a 200 when offline","url":"/offline-start-url/"},{"path":"","topic":"","id":"pwa-cross-browser","lighthouse":["pwa-cross-browser"],"title":"Site works cross-browser","url":"/pwa-cross-browser/"},{"path":"","topic":"","id":"pwa-each-page-has-url","lighthouse":["pwa-each-page-has-url"],"title":"Each page has a URL","url":"/pwa-each-page-has-url/"},{"path":"","topic":"","id":"pwa-page-transitions","lighthouse":["pwa-page-transitions"],"title":"Page transitions don't feel like they block on the network","url":"/pwa-page-transitions/"},{"path":"","topic":"","id":"redirects-http","lighthouse":["redirects-http"],"title":"Does not redirect HTTP traffic to HTTPS","url":"/redirects-http/"},{"path":"","topic":"","id":"service-worker","lighthouse":["service-worker"],"title":"Does not register a service worker that controls page and `start_url`","url":"/service-worker/"},{"path":"","topic":"","id":"splash-screen","lighthouse":["splash-screen"],"title":"Is not configured for a custom splash screen","url":"/splash-screen/"},{"path":"","topic":"","id":"themed-omnibox","lighthouse":["themed-omnibox"],"title":"Does not set a theme color for the address bar","url":"/themed-omnibox/"},{"path":"","topic":"","id":"without-javascript","lighthouse":["without-javascript"],"title":"Does not provide fallback content when JavaScript is not available","url":"/without-javascript/"},{"path":"","topic":"","id":"works-offline","lighthouse":["works-offline"],"title":"Current page does not respond with a 200 when offline","url":"/works-offline/"},{"path":"","topic":"","id":"apple-touch-icon","lighthouse":["apple-touch-icon"],"title":"Does not provide a valid apple-touch-icon","url":"/apple-touch-icon/"},{"path":"","topic":"","id":"lighthouse-total-blocking-time","lighthouse":["total-blocking-time"],"title":"Total Blocking Time","url":"/lighthouse-total-blocking-time/"},{"path":"","topic":"","id":"aria-hidden-body","lighthouse":["aria-hidden-body"],"title":"`[aria-hidden=\"true\"]` is present on the document `<body>`","url":"/aria-hidden-body/"},{"path":"","topic":"","id":"aria-hidden-focus","lighthouse":["aria-hidden-focus"],"title":"`[aria-hidden=\"true\"]` elements contain focusable descendants","url":"/aria-hidden-focus/"},{"path":"","topic":"","id":"duplicate-id-active","lighthouse":["duplicate-id-aria"],"title":"`[id]` attributes on active, focusable elements are not unique","url":"/duplicate-id-active/"},{"path":"","topic":"","id":"duplicate-id-aria","lighthouse":["duplicate-id-aria"],"title":"ARIA IDs are not unique","url":"/duplicate-id-aria/"},{"path":"","topic":"","id":"form-field-multiple-labels","lighthouse":["form-field-multiple-labels"],"title":"Form fields have multiple labels","url":"/form-field-multiple-labels/"},{"path":"","topic":"","id":"heading-order","lighthouse":["heading-order"],"title":"Heading elements are not in a sequentially-descending order","url":"/heading-order/"},{"path":"","topic":"","id":"lighthouse-largest-contentful-paint","lighthouse":["largest-contentful-paint"],"title":"Largest Contentful Paint","url":"/lighthouse-largest-contentful-paint/"},{"path":"","topic":"","id":"charset","lighthouse":["charset"],"title":"Charset declaration is missing or occurs too late in the HTML","url":"/charset/"},{"path":"","topic":"","id":"maskable-icon-audit","lighthouse":["maskable-icon"],"title":"Manifest doesn't have a maskable icon","url":"/maskable-icon-audit/"},{"path":"","topic":"","id":"unused-javascript","lighthouse":["unused-javascript"],"title":"Remove unused JavaScript","url":"/unused-javascript/"},{"path":"","topic":"","id":"non-composited-animations","lighthouse":["non-composited-animations"],"title":"Avoid non-composited animations","url":"/non-composited-animations/"},{"path":"","topic":"","id":"third-party-facades","lighthouse":["third-party-facades"],"title":"Lazy load third-party resources with facades","url":"/third-party-facades/"},{"path":"","topic":"","id":"aria-name","lighthouse":["aria-command-name","aria-input-field-name","aria-meter-name","aria-progressbar-name","aria-toggle-field-name","aria-tooltip-name","aria-treeitem-name"],"title":"ARIA items do not have accessible names","url":"/aria-name/"}]}