From 209bd95767dcfee1308813045214174b63129649 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 30 Nov 2023 08:30:14 +0100 Subject: [PATCH] Show number of actual AXE issues on pageSummary (#4019) --- lib/plugins/axe/axePostScript.cjs | 3 +-- lib/plugins/axe/pug/index.pug | 8 +++---- lib/plugins/browsertime/axeAggregator.js | 23 ++++++++++++++++++- .../browsertime/default/metricsPageSummary.js | 1 + 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/lib/plugins/axe/axePostScript.cjs b/lib/plugins/axe/axePostScript.cjs index bf44b0874..d334d0c4d 100644 --- a/lib/plugins/axe/axePostScript.cjs +++ b/lib/plugins/axe/axePostScript.cjs @@ -35,8 +35,7 @@ module.exports = async function (context) { 'RUNNING_AXE' ); // Use the extras field in Browsertime and pass on the result - context.result[context.result.length - 1].extras.axe = result; - + context.result.at(-1).extras.axe = result; } catch (error) { context.log.error( 'Could not run the AXE script, no AXE information collected', diff --git a/lib/plugins/axe/pug/index.pug b/lib/plugins/axe/pug/index.pug index a544c3dac..d367b0efb 100644 --- a/lib/plugins/axe/pug/index.pug +++ b/lib/plugins/axe/pug/index.pug @@ -42,13 +42,13 @@ else tbody tr td Critical - td #{axe.violations.critical.median} + td #{axe.violations.critical.median} (#{axe.violationIssues.critical.median} issues) tr td Serious - td #{axe.violations.serious.median} + td #{axe.violations.serious.median} (#{axe.violationIssues.serious.median} issues) tr td Moderate - td #{axe.violations.moderate.median} + td #{axe.violations.moderate.median} (#{axe.violationIssues.moderate.median} issues) tr td Minor - td #{axe.violations.minor.median} + td #{axe.violations.minor.median} (#{axe.violationIssues.minor.median} issues) diff --git a/lib/plugins/browsertime/axeAggregator.js b/lib/plugins/browsertime/axeAggregator.js index 7ffcef1ce..6b8a32f67 100644 --- a/lib/plugins/browsertime/axeAggregator.js +++ b/lib/plugins/browsertime/axeAggregator.js @@ -9,6 +9,12 @@ export class AxeAggregator { minor: new Stats(), moderate: new Stats() }; + this.axeViolationIssues = { + critical: new Stats(), + serious: new Stats(), + minor: new Stats(), + moderate: new Stats() + }; } addStats(axeData) { @@ -18,15 +24,24 @@ export class AxeAggregator { minor: 0, moderate: 0 }; + + const violationIssues = { + critical: 0, + serious: 0, + minor: 0, + moderate: 0 + }; for (let violation of axeData.violations) { violations[violation.impact] += 1; + violationIssues[violation.impact] += violation.nodes.length; } for (let type of Object.keys(violations)) { this.axeViolations[type].push(violations[type]); + this.axeViolationIssues[type].push(violationIssues[type]); } - return violations; + return { violations, violationIssues }; } summarizeStats() { @@ -36,6 +51,12 @@ export class AxeAggregator { serious: _summarizeStats(this.axeViolations.serious), minor: _summarizeStats(this.axeViolations.minor), moderate: _summarizeStats(this.axeViolations.moderate) + }, + violationIssues: { + critical: _summarizeStats(this.axeViolationIssues.critical), + serious: _summarizeStats(this.axeViolationIssues.serious), + minor: _summarizeStats(this.axeViolationIssues.minor), + moderate: _summarizeStats(this.axeViolationIssues.moderate) } }; } diff --git a/lib/plugins/browsertime/default/metricsPageSummary.js b/lib/plugins/browsertime/default/metricsPageSummary.js index 2e285bd0e..798b37ec1 100644 --- a/lib/plugins/browsertime/default/metricsPageSummary.js +++ b/lib/plugins/browsertime/default/metricsPageSummary.js @@ -31,6 +31,7 @@ export const metricsPageSummary = [ 'statistics.errors', 'statistics.memory', 'statistics.axe.violations.*', + 'statistics.axe.violationIssues.*', 'statistics.pageinfo.cumulativeLayoutShift', 'statistics.pageinfo.domElements', 'statistics.extras.*',