Test that label.control references the correct form control, or null if there is no associated control.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Find a control that is the first descendent in a label
PASS document.getElementById('test1').control.id is 'inputId1'
Find a control based on a label with valid 'for' attribute
PASS document.getElementById('test2').htmlFor is 'inputId2'
PASS document.getElementById('test2').control.type is 'number'
Find a control in p element in label
PASS document.getElementById('test3').control.id is 'inputId3'
Find a control in fieldset in label.
Note that filedset is a form control that is not labelable.
PASS document.getElementById('test4').control.id is 'inputId4'
Find a control in legend in label.
Note that legend is a form control that is not labelable.
PASS document.getElementById('test5').control.id is 'inputId5'
Find a control in optgroup in label.
Note that optgroup is a form control that is not labelable.
PASS document.getElementById('test6').control.id is 'inputId6'
Find a control in option in label.
Note that option is a form control that is not labelable.
PASS document.getElementById('test7').control.id is 'inputId7'
Test label with 'for' attribute which is not a valid element id
PASS document.getElementById('test8').control is null
Test label with 'for' attribute which is not a form control
PASS document.getElementById('test9').htmlFor is 'divId'
PASS document.getElementById('test9').control is null
Test label with 'for' attribute which is not a labelable form control - fieldset
PASS document.getElementById('test10').htmlFor is 'fsId'
PASS document.getElementById('test10').control is null
Test label with 'for' attribute which is not a labelable form control - legend
PASS document.getElementById('test11').htmlFor is 'legendId'
PASS document.getElementById('test11').control is null
Test label with 'for' attribute which is not a labelable form control - optgroup
PASS document.getElementById('test12').htmlFor is 'optgroupId'
PASS document.getElementById('test12').control is null
Test label with 'for' attribute which is not a labelable form control - option
PASS document.getElementById('test13').htmlFor is 'optionId'
PASS document.getElementById('test13').control is null
PASS successfullyParsed is true

TEST COMPLETE







