@@ -2,7 +2,7 @@ describe('multiple-label', function() {
2
2
'use strict' ;
3
3
4
4
var fixture = document . getElementById ( 'fixture' ) ;
5
-
5
+ var shadowSupported = axe . testUtils . shadowSupport . v1 ;
6
6
var checkContext = axe . testUtils . MockCheckContext ( ) ;
7
7
8
8
afterEach ( function ( ) {
@@ -176,4 +176,62 @@ describe('multiple-label', function() {
176
176
var target = fixture . querySelector ( '#Q' ) ;
177
177
assert . isTrue ( checks [ 'multiple-label' ] . evaluate . call ( checkContext , target ) ) ;
178
178
} ) ;
179
+
180
+ ( shadowSupported ? it : xit ) (
181
+ 'should consider labels in the same document/shadow tree' ,
182
+ function ( ) {
183
+ fixture . innerHTML = '<div id="target"></div>' ;
184
+ var target = document . querySelector ( '#target' ) ;
185
+ var shadowRoot = target . attachShadow ( { mode : 'open' } ) ;
186
+ shadowRoot . innerHTML =
187
+ '<input id="myinput" /><label for="myinput">normal</label>' ;
188
+ var shadowTarget = target . shadowRoot ;
189
+ assert . isFalse (
190
+ checks [ 'multiple-label' ] . evaluate . call (
191
+ checkContext ,
192
+ shadowTarget . firstElementChild
193
+ )
194
+ ) ;
195
+ }
196
+ ) ;
197
+
198
+ ( shadowSupported ? it : xit ) (
199
+ 'should return false for valid multiple labels in the same document/shadow tree' ,
200
+ function ( ) {
201
+ fixture . innerHTML = '<div id="target"></div>' ;
202
+ var target = document . querySelector ( '#target' ) ;
203
+ var shadowRoot = target . attachShadow ( { mode : 'open' } ) ;
204
+ var innerHTML = '<input type="checkbox" id="D" aria-labelledby="E"/>' ;
205
+ innerHTML += '<label for="D" aria-hidden="true">Please</label>' ;
206
+ innerHTML += '<label for="D" id="E">Excuse</label>' ;
207
+ shadowRoot . innerHTML = innerHTML ;
208
+ var shadowTarget = target . shadowRoot ;
209
+ assert . isFalse (
210
+ checks [ 'multiple-label' ] . evaluate . call (
211
+ checkContext ,
212
+ shadowTarget . firstElementChild
213
+ )
214
+ ) ;
215
+ }
216
+ ) ;
217
+
218
+ ( shadowSupported ? it : xit ) (
219
+ 'should return true for invalid multiple labels in the same document/shadow tree' ,
220
+ function ( ) {
221
+ fixture . innerHTML = '<div id="target"></div>' ;
222
+ var target = document . querySelector ( '#target' ) ;
223
+ var shadowRoot = target . attachShadow ( { mode : 'open' } ) ;
224
+ var innerHTML = '<input type="checkbox" id="Q"/>' ;
225
+ innerHTML += '<label for="Q" aria-hidden="true"></label>' ;
226
+ innerHTML += '<label for="Q" >Excuse</label>' ;
227
+ shadowRoot . innerHTML = innerHTML ;
228
+ var shadowTarget = target . shadowRoot ;
229
+ assert . isTrue (
230
+ checks [ 'multiple-label' ] . evaluate . call (
231
+ checkContext ,
232
+ shadowTarget . firstElementChild
233
+ )
234
+ ) ;
235
+ }
236
+ ) ;
179
237
} ) ;
0 commit comments