diff --git a/build/build-sample-reports.js b/build/build-sample-reports.js index 3b0fe550dbd3..b3ab2ef4e52e 100644 --- a/build/build-sample-reports.js +++ b/build/build-sample-reports.js @@ -23,6 +23,11 @@ const flowResult = readJson( `${LH_ROOT}/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-flow-result.json` ); +/** @type {LH.Result} */ +const snapshotLhr = readJson( + `${LH_ROOT}/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-snapshot-lhr.json` +); + const DIST = path.join(LH_ROOT, 'dist'); (async function() { @@ -36,6 +41,7 @@ const DIST = path.join(LH_ROOT, 'dist'); 'xl-accented': swapLocale(lhr, 'en-XL').lhr, 'error': errorLhr, 'single-category': tweakLhrForPsi(lhr), + 'snapshot': snapshotLhr, }; // Generate and write reports diff --git a/lighthouse-core/scripts/update-snapshot-sample.js b/lighthouse-core/scripts/update-snapshot-sample.js new file mode 100644 index 000000000000..258ea1b21424 --- /dev/null +++ b/lighthouse-core/scripts/update-snapshot-sample.js @@ -0,0 +1,35 @@ +/** + * @license Copyright 2022 The Lighthouse Authors. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ +'use strict'; + +import fs from 'fs'; + +import puppeteer from 'puppeteer'; + +import {LH_ROOT} from '../../root.js'; +import {snapshot} from '../fraggle-rock/api.js'; + +(async () => { + const browser = await puppeteer.launch({ + ignoreDefaultArgs: ['--enable-automation'], + executablePath: process.env.CHROME_PATH, + headless: false, + }); + const page = await browser.newPage(); + await page.goto('https://example.com/'); + + const result = await snapshot({page}); + if (!result || typeof result.report !== 'string') { + throw new Error('LHR string not found'); + } + + fs.writeFileSync( + `${LH_ROOT}/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-snapshot-lhr.json`, + result.report + ); + + await browser.close(); +})(); diff --git a/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-snapshot-lhr.json b/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-snapshot-lhr.json new file mode 100644 index 000000000000..f17b9e6c1503 --- /dev/null +++ b/lighthouse-core/test/fixtures/fraggle-rock/reports/sample-snapshot-lhr.json @@ -0,0 +1,2468 @@ +{ + "lighthouseVersion": "9.3.1", + "requestedUrl": "https://example.com/", + "finalUrl": "https://example.com/", + "fetchTime": "2022-02-02T20:37:30.602Z", + "gatherMode": "snapshot", + "runWarnings": [], + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4865.0 Safari/537.36", + "environment": { + "networkUserAgent": "", + "hostUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4865.0 Safari/537.36", + "benchmarkIndex": 1835.5, + "credits": { + "axe-core": "4.3.5" + } + }, + "audits": { + "viewport": { + "id": "viewport", + "title": "Has a `` tag with `width` or `initial-scale`", + "description": "A `` not only optimizes your app for mobile screen sizes, but also prevents [a 300 millisecond delay to user input](https://developers.google.com/web/updates/2013/12/300ms-tap-delay-gone-away). [Learn more](https://web.dev/viewport/).", + "score": 1, + "scoreDisplayMode": "binary", + "warnings": [] + }, + "image-aspect-ratio": { + "id": "image-aspect-ratio", + "title": "Displays images with correct aspect ratio", + "description": "Image display dimensions should match natural aspect ratio. [Learn more](https://web.dev/image-aspect-ratio/).", + "score": 1, + "scoreDisplayMode": "binary", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "image-size-responsive": { + "id": "image-size-responsive", + "title": "Serves images with appropriate resolution", + "description": "Image natural dimensions should be proportional to the display size and the pixel ratio to maximize image clarity. [Learn more](https://web.dev/serve-responsive-images/).", + "score": 1, + "scoreDisplayMode": "binary", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "unsized-images": { + "id": "unsized-images", + "title": "Image elements have explicit `width` and `height`", + "description": "Set an explicit width and height on image elements to reduce layout shifts and improve CLS. [Learn more](https://web.dev/optimize-cls/#images-without-dimensions)", + "score": null, + "scoreDisplayMode": "notApplicable", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "full-page-screenshot": { + "id": "full-page-screenshot", + "title": "Full-page screenshot", + "description": "A full-height screenshot of the final rendered page", + "score": null, + "scoreDisplayMode": "informative", + "details": { + "type": "full-page-screenshot", + "screenshot": { + "data": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAGxIUFxQRGxcWFx4cGyAoQisoJSUoUTo9MEJgVWVkX1VdW2p4mYFqcZBzW12FtYaQnqOrratngLzJuqbHmairpP/bAEMBHB4eKCMoTisrTqRuXW6kpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpP/AABEIBLAGQAMBIgACEQEDEQH/xAAaAAEAAwEBAQAAAAAAAAAAAAAAAgMFBAEG/8QAQxABAAIBAwIEBAQDBQUFCQAAAAECAwQREgUhEzFBUQYiYXEUMoGRobHBFSMz0fAkNDVCc1KCkrLxFiU2U1RjcnTh/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAAAAAAABEBEv/aAAwDAQACEQMRAD8A+hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7WN5TRp6pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWjaU0b+gIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/9k=", + "width": 1600, + "height": 1200 + }, + "nodes": { + "5-0-HTML": { + "top": 0, + "bottom": 394, + "left": 0, + "right": 1600, + "width": 1600, + "height": 394 + }, + "5-1-A": { + "top": 247, + "bottom": 266, + "left": 500, + "right": 637, + "width": 137, + "height": 19 + }, + "5-2-DIV": { + "top": 80, + "bottom": 314, + "left": 468, + "right": 1132, + "width": 664, + "height": 234 + } + } + } + }, + "accesskeys": { + "id": "accesskeys", + "title": "`[accesskey]` values are unique", + "description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://web.dev/accesskeys/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-allowed-attr": { + "id": "aria-allowed-attr", + "title": "`[aria-*]` attributes match their roles", + "description": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn more](https://web.dev/aria-allowed-attr/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-command-name": { + "id": "aria-command-name", + "title": "`button`, `link`, and `menuitem` elements have accessible names", + "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-hidden-body": { + "id": "aria-hidden-body", + "title": "`[aria-hidden=\"true\"]` is not present on the document `
`", + "description": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document ``. [Learn more](https://web.dev/aria-hidden-body/).", + "score": 1, + "scoreDisplayMode": "binary", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "aria-hidden-focus": { + "id": "aria-hidden-focus", + "title": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents", + "description": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn more](https://web.dev/aria-hidden-focus/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-input-field-name": { + "id": "aria-input-field-name", + "title": "ARIA input fields have accessible names", + "description": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-meter-name": { + "id": "aria-meter-name", + "title": "ARIA `meter` elements have accessible names", + "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-progressbar-name": { + "id": "aria-progressbar-name", + "title": "ARIA `progressbar` elements have accessible names", + "description": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-required-attr": { + "id": "aria-required-attr", + "title": "`[role]`s have all required `[aria-*]` attributes", + "description": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more](https://web.dev/aria-required-attr/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-required-children": { + "id": "aria-required-children", + "title": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.", + "description": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more](https://web.dev/aria-required-children/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-required-parent": { + "id": "aria-required-parent", + "title": "`[role]`s are contained by their required parent element", + "description": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more](https://web.dev/aria-required-parent/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-roles": { + "id": "aria-roles", + "title": "`[role]` values are valid", + "description": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more](https://web.dev/aria-roles/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-toggle-field-name": { + "id": "aria-toggle-field-name", + "title": "ARIA toggle fields have accessible names", + "description": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-tooltip-name": { + "id": "aria-tooltip-name", + "title": "ARIA `tooltip` elements have accessible names", + "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-treeitem-name": { + "id": "aria-treeitem-name", + "title": "ARIA `treeitem` elements have accessible names", + "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more](https://web.dev/aria-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-valid-attr-value": { + "id": "aria-valid-attr-value", + "title": "`[aria-*]` attributes have valid values", + "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more](https://web.dev/aria-valid-attr-value/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "aria-valid-attr": { + "id": "aria-valid-attr", + "title": "`[aria-*]` attributes are valid and not misspelled", + "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more](https://web.dev/aria-valid-attr/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "button-name": { + "id": "button-name", + "title": "Buttons have an accessible name", + "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://web.dev/button-name/).", + "score": null, + "scoreDisplayMode": "notApplicable" + }, + "bypass": { + "id": "bypass", + "title": "The page contains a heading, skip link, or landmark region", + "description": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more](https://web.dev/bypass/).", + "score": 1, + "scoreDisplayMode": "binary", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "color-contrast": { + "id": "color-contrast", + "title": "Background and foreground colors have a sufficient contrast ratio", + "description": "Low-contrast text is difficult or impossible for many users to read. [Learn more](https://web.dev/color-contrast/).", + "score": 1, + "scoreDisplayMode": "binary", + "details": { + "type": "table", + "headings": [], + "items": [] + } + }, + "definition-list": { + "id": "definition-list", + "title": "`