From af7127715a1e62a3e6403c288b77462337a14fdf Mon Sep 17 00:00:00 2001 From: Patrick Hulce Date: Tue, 29 May 2018 14:00:06 -0700 Subject: [PATCH] core(image-aspect-ratio): loosen ratio check (#5358) --- lighthouse-core/audits/image-aspect-ratio.js | 6 ++++-- lighthouse-core/test/audits/image-aspect-ratio-test.js | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lighthouse-core/audits/image-aspect-ratio.js b/lighthouse-core/audits/image-aspect-ratio.js index 3dd62064d876..09844f557c3c 100644 --- a/lighthouse-core/audits/image-aspect-ratio.js +++ b/lighthouse-core/audits/image-aspect-ratio.js @@ -14,7 +14,7 @@ const Audit = require('./audit'); const URL = require('../lib/url-shim'); -const THRESHOLD = 0.05; +const THRESHOLD_PX = 2; /** @typedef {Required} WellDefinedImage */ @@ -40,7 +40,9 @@ class ImageAspectRatio extends Audit { const url = URL.elideDataURI(image.src); const actualAspectRatio = image.naturalWidth / image.naturalHeight; const displayedAspectRatio = image.width / image.height; - const doRatiosMatch = Math.abs(actualAspectRatio - displayedAspectRatio) < THRESHOLD; + + const targetDisplayHeight = image.width / actualAspectRatio; + const doRatiosMatch = Math.abs(targetDisplayHeight - image.height) < THRESHOLD_PX; if (!Number.isFinite(actualAspectRatio) || !Number.isFinite(displayedAspectRatio)) { diff --git a/lighthouse-core/test/audits/image-aspect-ratio-test.js b/lighthouse-core/test/audits/image-aspect-ratio-test.js index c0326e4e6b1c..d214aab458f4 100644 --- a/lighthouse-core/test/audits/image-aspect-ratio-test.js +++ b/lighthouse-core/test/audits/image-aspect-ratio-test.js @@ -107,6 +107,16 @@ describe('Images: aspect-ratio audit', () => { }, }); + testImage('is almost the right aspect ratio', { + rawValue: true, + clientSize: [412, 36], + naturalSize: [800, 69], + props: { + isCss: false, + usesObjectFit: false, + }, + }); + testImage('aspect ratios match', { rawValue: true, clientSize: [100, 100],