diff --git a/lib/core/base/check.js b/lib/core/base/check.js index 99a3eeac5b..7ef4001038 100644 --- a/lib/core/base/check.js +++ b/lib/core/base/check.js @@ -90,9 +90,7 @@ Check.prototype.run = function(node, options, context, resolve, reject) { if (!checkHelper.isAsync) { checkResult.result = result; - setTimeout(function() { - resolve(checkResult); - }, 0); + resolve(checkResult); } } else { resolve(null); diff --git a/lib/core/base/rule.js b/lib/core/base/rule.js index 87fcdec704..98fc223aef 100644 --- a/lib/core/base/rule.js +++ b/lib/core/base/rule.js @@ -207,6 +207,10 @@ Rule.prototype.run = function(context, options, resolve, reject) { }); }); + // Defer the rule's execution to prevent "unresponsive script" warnings. + // See https://github.com/dequelabs/axe-core/pull/1172 for discussion and details. + q.defer(resolve => setTimeout(resolve, 0)); + if (options.performanceTimer) { axe.utils.performanceTimer.mark(markEnd); axe.utils.performanceTimer.measure(