diff --git a/lib/checks/color/color-contrast-evaluate.js b/lib/checks/color/color-contrast-evaluate.js
index 8aa165d37d..e4afe201b9 100644
--- a/lib/checks/color/color-contrast-evaluate.js
+++ b/lib/checks/color/color-contrast-evaluate.js
@@ -71,14 +71,16 @@ export default function colorContrastEvaluate(node, options, virtualNode) {
if (shadowColors.length === 0) {
contrast = getContrast(bgColor, fgColor);
} else if (fgColor && bgColor) {
- // Thin shadows can pass either by contrasting with the text color
- // or when contrasting with the background.
shadowColor = [...shadowColors, bgColor].reduce(flattenShadowColors);
- const bgContrast = getContrast(bgColor, shadowColor);
- const fgContrast = getContrast(shadowColor, fgColor);
- contrast = Math.max(bgContrast, fgContrast);
- contrastContributor =
- bgContrast > fgContrast ? 'shadowOnBgColor' : 'fgOnShadowColor';
+ // Compare shadow, bgColor, textColor. Check passes if any is sufficient
+ const fgBgContrast = getContrast(bgColor, fgColor);
+ const bgShContrast = getContrast(bgColor, shadowColor);
+ const fgShContrast = getContrast(shadowColor, fgColor);
+ contrast = Math.max(fgBgContrast, bgShContrast, fgShContrast);
+ if (contrast !== fgBgContrast) {
+ contrastContributor =
+ bgShContrast > fgShContrast ? 'shadowOnBgColor' : 'fgOnShadowColor';
+ }
}
const ptSize = Math.ceil(fontSize * 72) / 96;
diff --git a/lib/checks/color/color-contrast.json b/lib/checks/color/color-contrast.json
index 52cd48361c..67fdd6c286 100644
--- a/lib/checks/color/color-contrast.json
+++ b/lib/checks/color/color-contrast.json
@@ -17,7 +17,7 @@
}
},
"pseudoSizeThreshold": 0.25,
- "shadowOutlineEmMax": 0.1
+ "shadowOutlineEmMax": 0.2
},
"metadata": {
"impact": "serious",
diff --git a/test/checks/color/color-contrast.js b/test/checks/color/color-contrast.js
index 67613e288f..5fa6b3082e 100644
--- a/test/checks/color/color-contrast.js
+++ b/test/checks/color/color-contrast.js
@@ -794,21 +794,21 @@ describe('color-contrast', function() {
});
});
- describe('with shadowDOM', function() {
- (shadowSupported ? it : xit)(
- 'returns colors across Shadow DOM boundaries',
- function() {
- var params = shadowCheckSetup(
- '
',
- 'Text
'
- );
- var container = fixture.querySelector('#container');
- var result = contrastEvaluate.apply(checkContext, params);
- assert.isFalse(result);
- assert.deepEqual(checkContext._relatedNodes, [container]);
- }
- );
+ (shadowSupported ? it : xit)(
+ 'returns colors across Shadow DOM boundaries',
+ function() {
+ var params = shadowCheckSetup(
+ '',
+ 'Text
'
+ );
+ var container = fixture.querySelector('#container');
+ var result = contrastEvaluate.apply(checkContext, params);
+ assert.isFalse(result);
+ assert.deepEqual(checkContext._relatedNodes, [container]);
+ }
+ );
+ describe('with text-shadow', function() {
it('passes if thin text shadows have sufficient contrast with the text', function() {
var params = checkSetup(
'' +
+ ' Hello world' +
+ '
'
+ );
+ assert.isTrue(contrastEvaluate.apply(checkContext, params));
+ });
+
+ it('passes if thin text shadows don\'t have sufficient contrast, but the text and background do', function() {
+ var params = checkSetup(
+ '' +
+ ' Hello world' +
+ '
'
+ );
+ assert.isTrue(contrastEvaluate.apply(checkContext, params));
+ });
});
});
diff --git a/test/integration/rules/color-contrast/color-contrast.html b/test/integration/rules/color-contrast/color-contrast.html
index 8d3c1d8ece..a1e2ed0997 100644
--- a/test/integration/rules/color-contrast/color-contrast.html
+++ b/test/integration/rules/color-contrast/color-contrast.html
@@ -65,7 +65,7 @@
Hello world
diff --git a/test/integration/rules/color-contrast/text-shadows.html b/test/integration/rules/color-contrast/text-shadows.html
index 21b5b18210..980538afde 100644
--- a/test/integration/rules/color-contrast/text-shadows.html
+++ b/test/integration/rules/color-contrast/text-shadows.html
@@ -63,6 +63,10 @@
color: #aaa;
background-color: #333;
}
+ .s6 {
+ color: #444;
+ background-color: #ccc;
+ }
.f1 {
font-size: 12px;
@@ -230,6 +234,19 @@
0 0 0.5em #000, 0 0 0.5em #000, 0 0 0.5em #000;
}
+ .r11 i:nth-child(1) {
+ text-shadow: 0 0 0.14em #000;
+ }
+ .r11 i:nth-child(2) {
+ text-shadow: 0 0 0.18em #000;
+ }
+ .r11 i:nth-child(3) {
+ text-shadow: 0 0 0.22em #000;
+ }
+ .r11 i:nth-child(4) {
+ text-shadow: 0 0 0.26em #000;
+ }
+
.l1 i:nth-child(1) {
text-shadow: 0 0 0.03em #fff;
}
@@ -303,220 +320,433 @@
Sample
- b1-r1-i1 b1-r1-i2 b1-r1-i3 b1-r1-i4
+ b1-r1-i1
+ b1-r1-i2
+ b1-r1-i3
+ b1-r1-i4
- b1-r2-i1 b1-r2-i2 b1-r2-i3 b1-r2-i4
+ b1-r2-i1
+ b1-r2-i2
+ b1-r2-i3
+ b1-r2-i4
- b1-r3-i1 b1-r3-i2 b1-r3-i3 b1-r3-i4
+ b1-r3-i1
+ b1-r3-i2
+ b1-r3-i3
+ b1-r3-i4
- b1-r4-i1 b1-r4-i2 b1-r4-i3 b1-r4-i4
+ b1-r4-i1
+ b1-r4-i2
+ b1-r4-i3
+ b1-r4-i4
- b1-r5-i1 b1-r5-i2 b1-r5-i3 b1-r5-i4
+ b1-r5-i1
+ b1-r5-i2
+ b1-r5-i3
+ b1-r5-i4
Sample
- b2-r1-i1 b2-r1-i2 b2-r1-i3 b2-r1-i4
+ b2-r1-i1
+ b2-r1-i2
+ b2-r1-i3
+ b2-r1-i4
- b2-r2-i1 b2-r2-i2 b2-r2-i3 b2-r2-i4
+ b2-r2-i1
+ b2-r2-i2
+ b2-r2-i3
+ b2-r2-i4
- b2-r3-i1 b2-r3-i2 b2-r3-i3 b2-r3-i4
+ b2-r3-i1
+ b2-r3-i2
+ b2-r3-i3
+ b2-r3-i4
- b2-r4-i1 b2-r4-i2 b2-r4-i3 b2-r4-i4
+ b2-r4-i1
+ b2-r4-i2
+ b2-r4-i3
+ b2-r4-i4
- b2-r5-i1 b2-r5-i2 b2-r5-i3 b2-r5-i4
+ b2-r5-i1
+ b2-r5-i2
+ b2-r5-i3
+ b2-r5-i4
- b3-r1-i1 b3-r1-i2 b3-r1-i3 b3-r1-i4
+ b3-r1-i1
+ b3-r1-i2
+ b3-r1-i3
+ b3-r1-i4
- b3-r2-i1 b3-r2-i2 b3-r2-i3 b3-r2-i4
+ b3-r2-i1
+ b3-r2-i2
+ b3-r2-i3
+ b3-r2-i4
- b3-r3-i1 b3-r3-i2 b3-r3-i3 b3-r3-i4
+ b3-r3-i1
+ b3-r3-i2
+ b3-r3-i3
+ b3-r3-i4
- b3-r4-i1 b3-r4-i2 b3-r4-i3 b3-r4-i4
+ b3-r4-i1
+ b3-r4-i2
+ b3-r4-i3
+ b3-r4-i4
- b3-r5-i1 b3-r5-i2 b3-r5-i3 b3-r5-i4
+ b3-r5-i1
+ b3-r5-i2
+ b3-r5-i3
+ b3-r5-i4
- b4-r1-i1 b4-r1-i2 b4-r1-i3 b4-r1-i4
+ b4-r1-i1
+ b4-r1-i2
+ b4-r1-i3
+ b4-r1-i4
- b4-r2-i1 b4-r2-i2 b4-r2-i3 b4-r2-i4
+ b4-r2-i1
+ b4-r2-i2
+ b4-r2-i3
+ b4-r2-i4
- b4-r3-i1 b4-r3-i2 b4-r3-i3 b4-r3-i4
+ b4-r3-i1
+ b4-r3-i2
+ b4-r3-i3
+ b4-r3-i4
- b4-r4-i1 b4-r4-i2 b4-r4-i3 b4-r4-i4
+ b4-r4-i1
+ b4-r4-i2
+ b4-r4-i3
+ b4-r4-i4
- b4-r5-i1 b4-r5-i2 b4-r5-i3 b4-r5-i4
+ b4-r5-i1
+ b4-r5-i2
+ b4-r5-i3
+ b4-r5-i4
- b5-r1-i1 b5-r1-i2 b5-r1-i3 b5-r1-i4
+ b5-r1-i1
+ b5-r1-i2
+ b5-r1-i3
+ b5-r1-i4
- b5-r2-i1 b5-r2-i2 b5-r2-i3 b5-r2-i4
+ b5-r2-i1
+ b5-r2-i2
+ b5-r2-i3
+ b5-r2-i4
- b5-r3-i1 b5-r3-i2 b5-r3-i3 b5-r3-i4
+ b5-r3-i1
+ b5-r3-i2
+ b5-r3-i3
+ b5-r3-i4
- b5-r4-i1 b5-r4-i2 b5-r4-i3 b5-r4-i4
+ b5-r4-i1
+ b5-r4-i2
+ b5-r4-i3
+ b5-r4-i4
- b5-r5-i1 b5-r5-i2 b5-r5-i3 b5-r5-i4
+ b5-r5-i1
+ b5-r5-i2
+ b5-r5-i3
+ b5-r5-i4
- b6-r1-i1 b6-r1-i2 b6-r1-i3 b6-r1-i4
+ b6-r1-i1
+ b6-r1-i2
+ b6-r1-i3
+ b6-r1-i4
- b6-r2-i1 b6-r2-i2 b6-r2-i3 b6-r2-i4
+ b6-r2-i1
+ b6-r2-i2
+ b6-r2-i3
+ b6-r2-i4
- b6-r3-i1 b6-r3-i2 b6-r3-i3 b6-r3-i4
+ b6-r3-i1
+ b6-r3-i2
+ b6-r3-i3
+ b6-r3-i4
- b6-r4-i1 b6-r4-i2 b6-r4-i3 b6-r4-i4
+ b6-r4-i1
+ b6-r4-i2
+ b6-r4-i3
+ b6-r4-i4
- b6-r5-i1 b6-r5-i2 b6-r5-i3 b6-r5-i4
+ b6-r5-i1
+ b6-r5-i2
+ b6-r5-i3
+ b6-r5-i4
- b7-r1-i1 b7-r1-i2 b7-r1-i3 b7-r1-i4
+ b7-r1-i1
+ b7-r1-i2
+ b7-r1-i3
+ b7-r1-i4
- b7-r2-i1 b7-r2-i2 b7-r2-i3 b7-r2-i4
+ b7-r2-i1
+ b7-r2-i2
+ b7-r2-i3
+ b7-r2-i4
- b7-r3-i1 b7-r3-i2 b7-r3-i3 b7-r3-i4
+ b7-r3-i1
+ b7-r3-i2
+ b7-r3-i3
+ b7-r3-i4
- b7-r4-i1 b7-r4-i2 b7-r4-i3 b7-r4-i4
+ b7-r4-i1
+ b7-r4-i2
+ b7-r4-i3
+ b7-r4-i4
- b7-r5-i1 b7-r5-i2 b7-r5-i3 b7-r5-i4
+ b7-r5-i1
+ b7-r5-i2
+ b7-r5-i3
+ b7-r5-i4
- b8-r1-i1 b8-r1-i2 b8-r1-i3 b8-r1-i4
+ b8-r1-i1
+ b8-r1-i2
+ b8-r1-i3
+ b8-r1-i4
- b8-r2-i1 b8-r2-i2 b8-r2-i3 b8-r2-i4
+ b8-r2-i1
+ b8-r2-i2
+ b8-r2-i3
+ b8-r2-i4
- b8-r3-i1 b8-r3-i2 b8-r3-i3 b8-r3-i4
+ b8-r3-i1
+ b8-r3-i2
+ b8-r3-i3
+ b8-r3-i4
- b8-r4-i1 b8-r4-i2 b8-r4-i3 b8-r4-i4
+ b8-r4-i1
+ b8-r4-i2
+ b8-r4-i3
+ b8-r4-i4
- b8-r5-i1 b8-r5-i2 b8-r5-i3 b8-r5-i4
+ b8-r5-i1
+ b8-r5-i2
+ b8-r5-i3
+ b8-r5-i4
- b9-f1-i1 b9-f1-i2 b9-f1-i3 b9-f1-i4
+ b9-f1-i1
+ b9-f1-i2
+ b9-f1-i3
+ b9-f1-i4
- b9-f2-i1 b9-f2-i2 b9-f2-i3 b9-f2-i4
+ b9-f2-i1
+ b9-f2-i2
+ b9-f2-i3
+ b9-f2-i4
- b9-f3-i1 b9-f3-i2 b9-f3-i3 b9-f3-i4
+ b9-f3-i1
+ b9-f3-i2
+ b9-f3-i3
+ b9-f3-i4
- b9-f4-i1 b9-f4-i2 b9-f4-i3 b9-f4-i4
+ b9-f4-i1
+ b9-f4-i2
+ b9-f4-i3
+ b9-f4-i4
- b9-f5-i1 b9-f5-i2 b9-f5-i3 b9-f5-i4
+ b9-f5-i1
+ b9-f5-i2
+ b9-f5-i3
+ b9-f5-i4
- b10-f1-i1 b10-f1-i2 b10-f1-i3 b10-f1-i4
+ b10-f1-i1
+ b10-f1-i2
+ b10-f1-i3
+ b10-f1-i4
- b10-f2-i1 b10-f2-i2 b10-f2-i3 b10-f2-i4
+ b10-f2-i1
+ b10-f2-i2
+ b10-f2-i3
+ b10-f2-i4
- b10-f3-i1 b10-f3-i2 b10-f3-i3 b10-f3-i4
+ b10-f3-i1
+ b10-f3-i2
+ b10-f3-i3
+ b10-f3-i4
- b10-f4-i1 b10-f4-i2 b10-f4-i3 b10-f4-i4
+ b10-f4-i1
+ b10-f4-i2
+ b10-f4-i3
+ b10-f4-i4
- b10-f5-i1 b10-f5-i2 b10-f5-i3 b10-f5-i4
+ b10-f5-i1
+ b10-f5-i2
+ b10-f5-i3
+ b10-f5-i4
- b11-f1-i1 b11-f1-i2 b11-f1-i3 b11-f1-i4
+ b11-f1-i1
+ b11-f1-i2
+ b11-f1-i3
+ b11-f1-i4
- b11-f2-i1 b11-f2-i2 b11-f2-i3 b11-f2-i4
+ b11-f2-i1
+ b11-f2-i2
+ b11-f2-i3
+ b11-f2-i4
- b11-f3-i1 b11-f3-i2 b11-f3-i3 b11-f3-i4
+ b11-f3-i1
+ b11-f3-i2
+ b11-f3-i3
+ b11-f3-i4
- b11-f4-i1 b11-f4-i2 b11-f4-i3 b11-f4-i4
+ b11-f4-i1
+ b11-f4-i2
+ b11-f4-i3
+ b11-f4-i4
- b11-f5-i1 b11-f5-i2 b11-f5-i3 b11-f5-i4
+ b11-f5-i1
+ b11-f5-i2
+ b11-f5-i3
+ b11-f5-i4
- b12-l1-i1 b12-l1-i2 b12-l1-i3 b12-l1-i4
+ b12-l1-i1
+ b12-l1-i2
+ b12-l1-i3
+ b12-l1-i4
- b12-l2-i1 b12-l2-i2 b12-l2-i3 b12-l2-i4
+ b12-l2-i1
+ b12-l2-i2
+ b12-l2-i3
+ b12-l2-i4
- b12-l3-i1 b12-l3-i2 b12-l3-i3 b12-l3-i4
+ b12-l3-i1
+ b12-l3-i2
+ b12-l3-i3
+ b12-l3-i4
- b12-l4-i1 b12-l4-i2 b12-l4-i3 b12-l4-i4
+ b12-l4-i1
+ b12-l4-i2
+ b12-l4-i3
+ b12-l4-i4
- b12-l5-i1 b12-l5-i2 b12-l5-i3 b12-l5-i4
+ b12-l5-i1
+ b12-l5-i2
+ b12-l5-i3
+ b12-l5-i4
+
+
+
+
+
+ b13-f1-i1
+ b13-f1-i2
+ b13-f1-i3
+ b13-f1-i4
+
+
+ b13-f2-i1
+ b13-f2-i2
+ b13-f2-i3
+ b13-f2-i4
+
+
+ b13-f3-i1
+ b13-f3-i2
+ b13-f3-i3
+ b13-f3-i4
+
+
+ b13-f4-i1
+ b13-f4-i2
+ b13-f4-i3
+ b13-f4-i4
+
+
+ b13-f5-i1
+ b13-f5-i2
+ b13-f5-i3
+ b13-f5-i4
@@ -531,10 +761,6 @@
console.log(res);
/*
All these test cases are on the edge of pass and fail. If we ever revisit them, these are the ones could be improved on:
-
- - False positives:
- - b5-r3-i1, b5-r3-i2
- - b7-r3-i1, b7-r3-i2
- False negatives:
- b3-r1-i1
- b4-r1-i1, b4-r2-i1
diff --git a/test/integration/rules/color-contrast/text-shadows.json b/test/integration/rules/color-contrast/text-shadows.json
index 6cc3e775da..81674e45e4 100644
--- a/test/integration/rules/color-contrast/text-shadows.json
+++ b/test/integration/rules/color-contrast/text-shadows.json
@@ -5,269 +5,291 @@
["#sample1"],
["#sample2"],
- ["#b1 > .r1 > i:nth-child(3)"],
- ["#b1 > .r1 > i:nth-child(4)"],
- ["#b1 > .r2 > i:nth-child(2)"],
- ["#b1 > .r2 > i:nth-child(3)"],
- ["#b1 > .r2 > i:nth-child(4)"],
- ["#b1 > .r3 > i:nth-child(1)"],
- ["#b1 > .r3 > i:nth-child(2)"],
- ["#b1 > .r3 > i:nth-child(3)"],
- ["#b1 > .r3 > i:nth-child(4)"],
+ ["#b1-r1-i4"],
+ ["#b1-r2-i2"],
+ ["#b1-r2-i3"],
+ ["#b1-r2-i4"],
+ ["#b1-r3-i1"],
+ ["#b1-r3-i2"],
+ ["#b1-r3-i3"],
+ ["#b1-r3-i4"],
- ["#b2 > .r3 > i:nth-child(1)"],
- ["#b2 > .r3 > i:nth-child(2)"],
- ["#b2 > .r3 > i:nth-child(3)"],
- ["#b2 > .r3 > i:nth-child(4)"],
- ["#b2 > .r4 > i:nth-child(4)"],
- ["#b2 > .r4 > i:nth-child(1)"],
- ["#b2 > .r4 > i:nth-child(2)"],
- ["#b2 > .r4 > i:nth-child(3)"],
- ["#b2 > .r5 > i:nth-child(3)"],
- ["#b2 > .r5 > i:nth-child(4)"],
+ ["#b2-r3-i1"],
+ ["#b2-r3-i2"],
+ ["#b2-r3-i3"],
+ ["#b2-r3-i4"],
+ ["#b2-r4-i4"],
+ ["#b2-r4-i1"],
+ ["#b2-r4-i2"],
+ ["#b2-r4-i3"],
+ ["#b2-r5-i4"],
- ["#b3 > .r1 > i:nth-child(3)"],
- ["#b3 > .r1 > i:nth-child(4)"],
- ["#b3 > .r2 > i:nth-child(1)"],
- ["#b3 > .r2 > i:nth-child(2)"],
- ["#b3 > .r2 > i:nth-child(3)"],
- ["#b3 > .r2 > i:nth-child(4)"],
- ["#b3 > .r3 > i:nth-child(1)"],
- ["#b3 > .r3 > i:nth-child(2)"],
- ["#b3 > .r3 > i:nth-child(3)"],
- ["#b3 > .r3 > i:nth-child(4)"],
- ["#b3 > .r4 > i:nth-child(3)"],
- ["#b3 > .r4 > i:nth-child(4)"],
+ ["#b3-r1-i3"],
+ ["#b3-r1-i4"],
+ ["#b3-r2-i1"],
+ ["#b3-r2-i2"],
+ ["#b3-r2-i3"],
+ ["#b3-r2-i4"],
+ ["#b3-r3-i1"],
+ ["#b3-r3-i2"],
+ ["#b3-r3-i3"],
+ ["#b3-r3-i4"],
+ ["#b3-r4-i3"],
+ ["#b3-r4-i4"],
- ["#b4 > .r2 > i:nth-child(2)"],
- ["#b4 > .r2 > i:nth-child(3)"],
- ["#b4 > .r2 > i:nth-child(4)"],
- ["#b4 > .r3 > i:nth-child(1)"],
- ["#b4 > .r3 > i:nth-child(2)"],
- ["#b4 > .r3 > i:nth-child(3)"],
- ["#b4 > .r3 > i:nth-child(4)"],
- ["#b4 > .r4 > i:nth-child(1)"],
- ["#b4 > .r4 > i:nth-child(2)"],
- ["#b4 > .r4 > i:nth-child(3)"],
- ["#b4 > .r4 > i:nth-child(4)"],
- ["#b4 > .r5 > i:nth-child(1)"],
- ["#b4 > .r5 > i:nth-child(2)"],
- ["#b4 > .r5 > i:nth-child(3)"],
- ["#b4 > .r5 > i:nth-child(4)"],
+ ["#b4-r2-i2"],
+ ["#b4-r2-i3"],
+ ["#b4-r2-i4"],
+ ["#b4-r3-i1"],
+ ["#b4-r3-i2"],
+ ["#b4-r3-i3"],
+ ["#b4-r3-i4"],
+ ["#b4-r4-i1"],
+ ["#b4-r4-i2"],
+ ["#b4-r4-i3"],
+ ["#b4-r4-i4"],
+ ["#b4-r5-i1"],
+ ["#b4-r5-i2"],
+ ["#b4-r5-i3"],
+ ["#b4-r5-i4"],
- ["#b5 > .r3 > i:nth-child(1)"],
- ["#b5 > .r3 > i:nth-child(2)"],
- ["#b5 > .r3 > i:nth-child(3)"],
- ["#b5 > .r3 > i:nth-child(4)"],
- ["#b5 > .r4 > i:nth-child(3)"],
- ["#b5 > .r4 > i:nth-child(4)"],
- ["#b3 > .r4 > i:nth-child(1)"],
- ["#b3 > .r4 > i:nth-child(2)"],
- ["#b5 > .r5 > i:nth-child(3)"],
- ["#b5 > .r5 > i:nth-child(4)"],
+ ["#b5-r3-i4"],
+ ["#b5-r4-i4"],
+ ["#b3-r4-i1"],
+ ["#b3-r4-i2"],
+ ["#b5-r5-i4"],
- ["#b6 > .r8 > i:nth-child(1)"],
- ["#b6 > .r8 > i:nth-child(2)"],
- ["#b6 > .r8 > i:nth-child(3)"],
- ["#b6 > .r9 > i:nth-child(1)"],
- ["#b6 > .r9 > i:nth-child(2)"],
- ["#b6 > .r9 > i:nth-child(3)"],
- ["#b6 > .r9 > i:nth-child(4)"],
- ["#b6 > .r10 > i:nth-child(3)"],
- ["#b6 > .r10 > i:nth-child(4)"],
+ ["#b6-r3-i1"],
+ ["#b6-r3-i2"],
+ ["#b6-r3-i3"],
+ ["#b6-r4-i1"],
+ ["#b6-r4-i2"],
+ ["#b6-r4-i3"],
+ ["#b6-r4-i4"],
+ ["#b6-r5-i4"],
- ["#b7 > .r8 > i:nth-child(1)"],
- ["#b7 > .r8 > i:nth-child(2)"],
- ["#b7 > .r9 > i:nth-child(3)"],
- ["#b7 > .r9 > i:nth-child(4)"],
- ["#b7 > .r10 > i:nth-child(3)"],
- ["#b7 > .r10 > i:nth-child(4)"],
+ ["#b7-r4-i4"],
+ ["#b7-r5-i4"],
- ["#b8 > .r6 > i:nth-child(3)"],
- ["#b8 > .r6 > i:nth-child(4)"],
- ["#b8 > .r7 > i:nth-child(1)"],
- ["#b8 > .r7 > i:nth-child(2)"],
- ["#b8 > .r7 > i:nth-child(3)"],
- ["#b8 > .r7 > i:nth-child(4)"],
- ["#b8 > .r8 > i:nth-child(1)"],
- ["#b8 > .r8 > i:nth-child(2)"],
- ["#b8 > .r8 > i:nth-child(3)"],
- ["#b8 > .r8 > i:nth-child(4)"],
- ["#b8 > .r9 > i:nth-child(1)"],
- ["#b8 > .r9 > i:nth-child(2)"],
- ["#b8 > .r9 > i:nth-child(3)"],
- ["#b8 > .r9 > i:nth-child(4)"],
- ["#b8 > .r10 > i:nth-child(3)"],
- ["#b8 > .r10 > i:nth-child(4)"],
+ ["#b8-r1-i4"],
+ ["#b8-r2-i1"],
+ ["#b8-r2-i2"],
+ ["#b8-r2-i3"],
+ ["#b8-r2-i4"],
+ ["#b8-r3-i1"],
+ ["#b8-r3-i2"],
+ ["#b8-r3-i3"],
+ ["#b8-r3-i4"],
+ ["#b8-r4-i1"],
+ ["#b8-r4-i2"],
+ ["#b8-r4-i3"],
+ ["#b8-r4-i4"],
+ ["#b8-r5-i4"],
- ["#b9 > .f1 > i:nth-child(1)"],
- ["#b9 > .f1 > i:nth-child(2)"],
- ["#b9 > .f1 > i:nth-child(3)"],
- ["#b9 > .f1 > i:nth-child(4)"],
- ["#b9 > .f2 > i:nth-child(1)"],
- ["#b9 > .f2 > i:nth-child(2)"],
- ["#b9 > .f2 > i:nth-child(3)"],
- ["#b9 > .f2 > i:nth-child(4)"],
- ["#b9 > .f3 > i:nth-child(1)"],
- ["#b9 > .f3 > i:nth-child(2)"],
- ["#b9 > .f3 > i:nth-child(3)"],
- ["#b9 > .f3 > i:nth-child(4)"],
+ ["#b9-f1-i1"],
+ ["#b9-f1-i2"],
+ ["#b9-f1-i3"],
+ ["#b9-f1-i4"],
+ ["#b9-f2-i1"],
+ ["#b9-f2-i2"],
+ ["#b9-f2-i3"],
+ ["#b9-f2-i4"],
+ ["#b9-f3-i1"],
+ ["#b9-f3-i2"],
+ ["#b9-f3-i3"],
+ ["#b9-f3-i4"],
- ["#b10 > .f1 > i:nth-child(3)"],
- ["#b10 > .f1 > i:nth-child(4)"],
- ["#b10 > .f2 > i:nth-child(3)"],
- ["#b10 > .f2 > i:nth-child(4)"],
- ["#b10 > .f3 > i:nth-child(3)"],
- ["#b10 > .f3 > i:nth-child(4)"],
- ["#b10 > .f4 > i:nth-child(3)"],
- ["#b10 > .f4 > i:nth-child(4)"],
- ["#b10 > .f5 > i:nth-child(3)"],
- ["#b10 > .f5 > i:nth-child(4)"],
+ ["#b10-f1-i4"],
+ ["#b10-f2-i4"],
+ ["#b10-f3-i4"],
+ ["#b10-f4-i4"],
+ ["#b10-f5-i4"],
- ["#b11 > .f1 > i:nth-child(1)"],
- ["#b11 > .f1 > i:nth-child(2)"],
- ["#b11 > .f2 > i:nth-child(1)"],
- ["#b11 > .f2 > i:nth-child(2)"],
- ["#b11 > .f3 > i:nth-child(1)"],
- ["#b11 > .f3 > i:nth-child(2)"],
+ ["#b11-f1-i1"],
+ ["#b11-f1-i2"],
+ ["#b11-f1-i3"],
+ ["#b11-f2-i1"],
+ ["#b11-f2-i2"],
+ ["#b11-f2-i3"],
+ ["#b11-f3-i1"],
+ ["#b11-f3-i2"],
+ ["#b11-f3-i3"],
- [".l1 > i:nth-child(1)"],
- [".l2 > i:nth-child(1)"],
- [".l3 > i:nth-child(1)"],
- [".l4 > i:nth-child(1)"],
- [".l5 > i:nth-child(1)"],
- [".l4 > i:nth-child(2)"],
- [".l5 > i:nth-child(2)"],
- [".l5 > i:nth-child(3)"]
+ ["#b12-l1-i1"],
+ ["#b12-l2-i1"],
+ ["#b12-l3-i1"],
+ ["#b12-l4-i1"],
+ ["#b12-l5-i1"],
+ ["#b12-l4-i2"],
+ ["#b12-l5-i2"],
+ ["#b12-l5-i3"],
+
+ ["#b13-f1-i3"],
+ ["#b13-f1-i4"],
+ ["#b13-f2-i3"],
+ ["#b13-f2-i4"],
+ ["#b13-f3-i3"],
+ ["#b13-f3-i4"]
],
"passes": [
- ["#b1 > .r1 > i:nth-child(1)"],
- ["#b1 > .r1 > i:nth-child(2)"],
- ["#b1 > .r2 > i:nth-child(1)"],
- ["#b1 > .r4 > i:nth-child(1)"],
- ["#b1 > .r4 > i:nth-child(2)"],
- ["#b1 > .r4 > i:nth-child(3)"],
- ["#b1 > .r4 > i:nth-child(4)"],
- ["#b1 > .r5 > i:nth-child(1)"],
- ["#b1 > .r5 > i:nth-child(2)"],
- ["#b1 > .r5 > i:nth-child(3)"],
- ["#b1 > .r5 > i:nth-child(4)"],
+ ["#b1-r1-i1"],
+ ["#b1-r1-i2"],
+ ["#b1-r2-i1"],
+ ["#b1-r4-i1"],
+ ["#b1-r4-i2"],
+ ["#b1-r4-i3"],
+ ["#b1-r4-i4"],
+ ["#b1-r5-i1"],
+ ["#b1-r5-i2"],
+ ["#b1-r5-i3"],
+ ["#b1-r5-i4"],
+
+ ["#b2-r1-i1"],
+ ["#b2-r1-i2"],
+ ["#b2-r1-i3"],
+ ["#b2-r1-i4"],
+ ["#b2-r2-i1"],
+ ["#b2-r2-i2"],
+ ["#b2-r2-i3"],
+ ["#b2-r2-i4"],
+ ["#b2-r5-i1"],
+ ["#b2-r5-i2"],
+ ["#b2-r5-i3"],
- ["#b2 > .r1 > i:nth-child(1)"],
- ["#b2 > .r1 > i:nth-child(2)"],
- ["#b2 > .r1 > i:nth-child(3)"],
- ["#b2 > .r1 > i:nth-child(4)"],
- ["#b2 > .r2 > i:nth-child(1)"],
- ["#b2 > .r2 > i:nth-child(2)"],
- ["#b2 > .r2 > i:nth-child(3)"],
- ["#b2 > .r2 > i:nth-child(4)"],
- ["#b2 > .r5 > i:nth-child(1)"],
- ["#b2 > .r5 > i:nth-child(2)"],
+ ["#b3-r1-i1"],
+ ["#b3-r1-i2"],
+ ["#b1-r1-i3"],
+ ["#b3-r5-i1"],
+ ["#b3-r5-i2"],
+ ["#b3-r5-i3"],
+ ["#b3-r5-i4"],
- ["#b3 > .r1 > i:nth-child(1)"],
- ["#b3 > .r1 > i:nth-child(2)"],
- ["#b3 > .r5 > i:nth-child(1)"],
- ["#b3 > .r5 > i:nth-child(2)"],
- ["#b3 > .r5 > i:nth-child(3)"],
- ["#b3 > .r5 > i:nth-child(4)"],
+ ["#b4-r1-i1"],
+ ["#b4-r1-i2"],
+ ["#b4-r1-i3"],
+ ["#b4-r1-i4"],
+ ["#b4-r2-i1"],
- ["#b4 > .r1 > i:nth-child(1)"],
- ["#b4 > .r1 > i:nth-child(2)"],
- ["#b4 > .r1 > i:nth-child(3)"],
- ["#b4 > .r1 > i:nth-child(4)"],
- ["#b4 > .r2 > i:nth-child(1)"],
+ ["#b5-r1-i1"],
+ ["#b5-r1-i2"],
+ ["#b5-r1-i3"],
+ ["#b5-r1-i4"],
+ ["#b5-r2-i1"],
+ ["#b5-r2-i2"],
+ ["#b5-r2-i3"],
+ ["#b5-r2-i4"],
+ ["#b5-r3-i1"],
+ ["#b5-r3-i2"],
+ ["#b5-r3-i3"],
+ ["#b5-r4-i1"],
+ ["#b5-r4-i2"],
+ ["#b5-r4-i3"],
+ ["#b5-r5-i1"],
+ ["#b5-r5-i2"],
+ ["#b5-r5-i3"],
- ["#b5 > .r1 > i:nth-child(1)"],
- ["#b5 > .r1 > i:nth-child(2)"],
- ["#b5 > .r1 > i:nth-child(3)"],
- ["#b5 > .r1 > i:nth-child(4)"],
- ["#b5 > .r2 > i:nth-child(1)"],
- ["#b5 > .r2 > i:nth-child(2)"],
- ["#b5 > .r2 > i:nth-child(3)"],
- ["#b5 > .r2 > i:nth-child(4)"],
- ["#b5 > .r4 > i:nth-child(1)"],
- ["#b5 > .r4 > i:nth-child(2)"],
- ["#b5 > .r5 > i:nth-child(1)"],
- ["#b5 > .r5 > i:nth-child(2)"],
+ ["#b6-r1-i1"],
+ ["#b6-r1-i2"],
+ ["#b6-r1-i3"],
+ ["#b6-r1-i4"],
+ ["#b6-r2-i1"],
+ ["#b6-r2-i2"],
+ ["#b6-r2-i3"],
+ ["#b6-r2-i4"],
+ ["#b6-r3-i4"],
+ ["#b6-r5-i1"],
+ ["#b6-r5-i2"],
+ ["#b6-r5-i3"],
- ["#b6 > .r6 > i:nth-child(1)"],
- ["#b6 > .r6 > i:nth-child(2)"],
- ["#b6 > .r6 > i:nth-child(3)"],
- ["#b6 > .r6 > i:nth-child(4)"],
- ["#b6 > .r7 > i:nth-child(1)"],
- ["#b6 > .r7 > i:nth-child(2)"],
- ["#b6 > .r7 > i:nth-child(3)"],
- ["#b6 > .r7 > i:nth-child(4)"],
- ["#b6 > .r8 > i:nth-child(4)"],
- ["#b6 > .r10 > i:nth-child(1)"],
- ["#b6 > .r10 > i:nth-child(2)"],
+ ["#b7-r1-i1"],
+ ["#b7-r1-i2"],
+ ["#b7-r1-i3"],
+ ["#b7-r1-i4"],
+ ["#b7-r2-i1"],
+ ["#b7-r2-i2"],
+ ["#b7-r2-i3"],
+ ["#b7-r2-i4"],
+ ["#b7-r3-i1"],
+ ["#b7-r3-i2"],
+ ["#b7-r3-i3"],
+ ["#b7-r3-i4"],
+ ["#b7-r4-i1"],
+ ["#b7-r4-i2"],
+ ["#b7-r4-i3"],
+ ["#b7-r5-i1"],
+ ["#b7-r5-i2"],
+ ["#b7-r5-i3"],
- ["#b7 > .r6 > i:nth-child(1)"],
- ["#b7 > .r6 > i:nth-child(2)"],
- ["#b7 > .r6 > i:nth-child(3)"],
- ["#b7 > .r6 > i:nth-child(4)"],
- ["#b7 > .r7 > i:nth-child(1)"],
- ["#b7 > .r7 > i:nth-child(2)"],
- ["#b7 > .r7 > i:nth-child(3)"],
- ["#b7 > .r7 > i:nth-child(4)"],
- ["#b7 > .r8 > i:nth-child(3)"],
- ["#b7 > .r8 > i:nth-child(4)"],
- ["#b7 > .r9 > i:nth-child(1)"],
- ["#b7 > .r9 > i:nth-child(2)"],
- ["#b7 > .r10 > i:nth-child(1)"],
- ["#b7 > .r10 > i:nth-child(2)"],
+ ["#b8-r1-i1"],
+ ["#b8-r1-i2"],
+ ["#b8-r1-i3"],
+ ["#b8-r5-i1"],
+ ["#b8-r5-i2"],
+ ["#b8-r5-i3"],
- ["#b8 > .r6 > i:nth-child(1)"],
- ["#b8 > .r6 > i:nth-child(2)"],
- ["#b8 > .r10 > i:nth-child(1)"],
- ["#b8 > .r10 > i:nth-child(2)"],
+ ["#b9-f4-i1"],
+ ["#b9-f4-i2"],
+ ["#b9-f4-i3"],
+ ["#b9-f4-i4"],
+ ["#b9-f5-i1"],
+ ["#b9-f5-i2"],
+ ["#b9-f5-i3"],
+ ["#b9-f5-i4"],
- ["#b9 > .f4 > i:nth-child(1)"],
- ["#b9 > .f4 > i:nth-child(2)"],
- ["#b9 > .f4 > i:nth-child(3)"],
- ["#b9 > .f4 > i:nth-child(4)"],
- ["#b9 > .f5 > i:nth-child(1)"],
- ["#b9 > .f5 > i:nth-child(2)"],
- ["#b9 > .f5 > i:nth-child(3)"],
- ["#b9 > .f5 > i:nth-child(4)"],
+ ["#b10-f1-i1"],
+ ["#b10-f1-i2"],
+ ["#b10-f1-i3"],
+ ["#b10-f2-i1"],
+ ["#b10-f2-i2"],
+ ["#b10-f2-i3"],
+ ["#b10-f3-i1"],
+ ["#b10-f3-i2"],
+ ["#b10-f3-i3"],
+ ["#b10-f4-i1"],
+ ["#b10-f4-i2"],
+ ["#b10-f4-i3"],
+ ["#b10-f5-i1"],
+ ["#b10-f5-i2"],
+ ["#b10-f5-i3"],
- ["#b10 > .f1 > i:nth-child(1)"],
- ["#b10 > .f1 > i:nth-child(2)"],
- ["#b10 > .f2 > i:nth-child(1)"],
- ["#b10 > .f2 > i:nth-child(2)"],
- ["#b10 > .f3 > i:nth-child(1)"],
- ["#b10 > .f3 > i:nth-child(2)"],
- ["#b10 > .f4 > i:nth-child(1)"],
- ["#b10 > .f4 > i:nth-child(2)"],
- ["#b10 > .f5 > i:nth-child(1)"],
- ["#b10 > .f5 > i:nth-child(2)"],
+ ["#b11-f1-i4"],
+ ["#b11-f2-i4"],
+ ["#b11-f3-i4"],
+ ["#b11-f4-i3"],
+ ["#b11-f4-i4"],
+ ["#b11-f4-i1"],
+ ["#b11-f4-i2"],
+ ["#b11-f5-i3"],
+ ["#b11-f5-i4"],
+ ["#b11-f5-i1"],
+ ["#b11-f5-i2"],
- ["#b11 > .f1 > i:nth-child(3)"],
- ["#b11 > .f1 > i:nth-child(4)"],
- ["#b11 > .f2 > i:nth-child(3)"],
- ["#b11 > .f2 > i:nth-child(4)"],
- ["#b11 > .f3 > i:nth-child(3)"],
- ["#b11 > .f3 > i:nth-child(4)"],
- ["#b11 > .f4 > i:nth-child(3)"],
- ["#b11 > .f4 > i:nth-child(4)"],
- ["#b11 > .f4 > i:nth-child(1)"],
- ["#b11 > .f4 > i:nth-child(2)"],
- ["#b11 > .f5 > i:nth-child(3)"],
- ["#b11 > .f5 > i:nth-child(4)"],
- ["#b11 > .f5 > i:nth-child(1)"],
- ["#b11 > .f5 > i:nth-child(2)"],
+ ["#b12-l1-i2"],
+ ["#b12-l1-i3"],
+ ["#b12-l1-i4"],
+ ["#b12-l2-i2"],
+ ["#b12-l2-i3"],
+ ["#b12-l2-i4"],
+ ["#b12-l3-i2"],
+ ["#b12-l3-i3"],
+ ["#b12-l3-i4"],
+ ["#b12-l4-i3"],
+ ["#b12-l4-i4"],
+ ["#b12-l5-i4"],
- [".l1 > i:nth-child(2)"],
- [".l1 > i:nth-child(3)"],
- [".l1 > i:nth-child(4)"],
- [".l2 > i:nth-child(2)"],
- [".l2 > i:nth-child(3)"],
- [".l2 > i:nth-child(4)"],
- [".l3 > i:nth-child(2)"],
- [".l3 > i:nth-child(3)"],
- [".l3 > i:nth-child(4)"],
- [".l4 > i:nth-child(3)"],
- [".l4 > i:nth-child(4)"],
- [".l5 > i:nth-child(4)"]
+ ["#b13-f1-i1"],
+ ["#b13-f1-i2"],
+ ["#b13-f2-i1"],
+ ["#b13-f2-i2"],
+ ["#b13-f3-i1"],
+ ["#b13-f3-i2"],
+ ["#b13-f4-i1"],
+ ["#b13-f4-i2"],
+ ["#b13-f4-i3"],
+ ["#b13-f4-i4"],
+ ["#b13-f5-i1"],
+ ["#b13-f5-i2"],
+ ["#b13-f5-i3"],
+ ["#b13-f5-i4"]
]
}