CONSOLE WARNING: line 16: The <keygen> element is deprecated and will be removed in M56, around January 2017. See https://www.chromestatus.com/features/5716060992962560 for more details.
This test checks the form attribute of the form-associated elements.

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


- Checks the existence of the form attribute for each form-associated elements.
PASS document.getElementsByTagName("button")[0].form is owner
PASS document.getElementsByTagName("fieldset")[0].form is owner
PASS document.getElementsByTagName("input")[0].form is owner
PASS document.getElementsByTagName("keygen")[0].form is owner
PASS document.getElementsByTagName("label")[0].form is null
PASS document.getElementsByTagName("object")[0].form is owner
PASS document.getElementsByTagName("output")[0].form is owner
PASS document.getElementsByTagName("select")[0].form is owner
PASS document.getElementsByTagName("textarea")[0].form is owner

- Ensures that the form attribute points the form owner even if the element is within another form element.
PASS inputElement.form is owner
PASS labelElement.form is owner

- Ensures that the form attribute of all form-associated element with or witout form attribute points the form owner.
PASS inputElement1.form is owner
PASS inputElement2.form is owner
PASS inputElement3.form is owner
PASS labelElement1.form is null
PASS labelElement2.form is null
PASS labelElement3.form is null

- Ensures that the form attribute points the form owner even if the form element is nested another form element.
NOTE: It seems that nesting form elements is not allowed so we ensure each form-associated elements associate with the outmost form element.
PASS inputElement1.form is owner
PASS inputElement2.form is owner
PASS inputElement3.form is owner
PASS labelElement1.form is null
PASS labelElement2.form is null
PASS labelElement3.form is null

- Ensures whether the form owner is set correctly when the value of form attribute of a form-associated element changed.
PASS inputElement.form is form1
PASS inputElement.form is form2
PASS objectElement.form is form1
PASS objectElement.form is form2

- Ensures whether the form owner is set correctly when the value of form attribute is added/removed.
PASS inputElement.form is null
PASS inputElement.form is owner
PASS inputElement.form is null
PASS objectElement.form is null
PASS objectElement.form is owner
PASS objectElement.form is null

- Ensures whether the form owner is set correctly when the form owner is added/removed.
PASS owner.name is "firstOwner"
PASS owner.name is "secondOwner"
PASS inputElement.form is owner
PASS inputElement.form is null
PASS inputElement.form is owner

- Check if a form and a control are disassociated when they are removed from the document together.
PASS owner.elements.length is 1
PASS owner.elements.length is 0

- Checks if option.form is only set if it has a <select> parent.
PASS option1.form is null
PASS option2.form is null
PASS option3.form is owner

- Checks if updating form[id] correctly works
PASS control.form is form1
PASS form1.setAttribute("id", "b"); control.form is form2
PASS successfullyParsed is true

TEST COMPLETE

