
  

PASS Tests for parser inserted controls 
PASS [BUTTON] Basic form association - control with no form attribute is associated with ancestor 
PASS [BUTTON] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [BUTTON] Control whose form attribute is an empty string has no form owner 
PASS [BUTTON] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [BUTTON] Control's form attribute must be a case sensitive match for the form's id 
PASS [BUTTON] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [BUTTON] Removing form id from a control resets the form owner to ancestor 
PASS [BUTTON] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [BUTTON] Changing form attibute of control resets form owner to correct form 
PASS [BUTTON] Moving a control with form attribute within the document does not change the form owner 
PASS [BUTTON] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [BUTTON] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [BUTTON] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [BUTTON] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [FIELDSET] Basic form association - control with no form attribute is associated with ancestor 
PASS [FIELDSET] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [FIELDSET] Control whose form attribute is an empty string has no form owner 
PASS [FIELDSET] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [FIELDSET] Control's form attribute must be a case sensitive match for the form's id 
PASS [FIELDSET] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [FIELDSET] Removing form id from a control resets the form owner to ancestor 
PASS [FIELDSET] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [FIELDSET] Changing form attibute of control resets form owner to correct form 
PASS [FIELDSET] Moving a control with form attribute within the document does not change the form owner 
PASS [FIELDSET] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [FIELDSET] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [FIELDSET] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [FIELDSET] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [INPUT] Basic form association - control with no form attribute is associated with ancestor 
PASS [INPUT] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [INPUT] Control whose form attribute is an empty string has no form owner 
PASS [INPUT] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [INPUT] Control's form attribute must be a case sensitive match for the form's id 
PASS [INPUT] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [INPUT] Removing form id from a control resets the form owner to ancestor 
PASS [INPUT] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [INPUT] Changing form attibute of control resets form owner to correct form 
PASS [INPUT] Moving a control with form attribute within the document does not change the form owner 
PASS [INPUT] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [INPUT] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [INPUT] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [INPUT] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [OBJECT] Basic form association - control with no form attribute is associated with ancestor 
PASS [OBJECT] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [OBJECT] Control whose form attribute is an empty string has no form owner 
PASS [OBJECT] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [OBJECT] Control's form attribute must be a case sensitive match for the form's id 
PASS [OBJECT] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [OBJECT] Removing form id from a control resets the form owner to ancestor 
PASS [OBJECT] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [OBJECT] Changing form attibute of control resets form owner to correct form 
PASS [OBJECT] Moving a control with form attribute within the document does not change the form owner 
PASS [OBJECT] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [OBJECT] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [OBJECT] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [OBJECT] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [OUTPUT] Basic form association - control with no form attribute is associated with ancestor 
PASS [OUTPUT] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [OUTPUT] Control whose form attribute is an empty string has no form owner 
PASS [OUTPUT] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [OUTPUT] Control's form attribute must be a case sensitive match for the form's id 
PASS [OUTPUT] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [OUTPUT] Removing form id from a control resets the form owner to ancestor 
PASS [OUTPUT] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [OUTPUT] Changing form attibute of control resets form owner to correct form 
PASS [OUTPUT] Moving a control with form attribute within the document does not change the form owner 
PASS [OUTPUT] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [OUTPUT] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [OUTPUT] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [OUTPUT] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [SELECT] Basic form association - control with no form attribute is associated with ancestor 
PASS [SELECT] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [SELECT] Control whose form attribute is an empty string has no form owner 
PASS [SELECT] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [SELECT] Control's form attribute must be a case sensitive match for the form's id 
PASS [SELECT] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [SELECT] Removing form id from a control resets the form owner to ancestor 
PASS [SELECT] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [SELECT] Changing form attibute of control resets form owner to correct form 
PASS [SELECT] Moving a control with form attribute within the document does not change the form owner 
PASS [SELECT] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [SELECT] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [SELECT] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [SELECT] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 
PASS [TEXTAREA] Basic form association - control with no form attribute is associated with ancestor 
PASS [TEXTAREA] Form owner is reset to null when control's form attribute is set to an ID that does not exist in the document 
PASS [TEXTAREA] Control whose form attribute is an empty string has no form owner 
PASS [TEXTAREA] Control whose form attribute is an empty string has no form owner even when form with empty attribute is present 
PASS [TEXTAREA] Control's form attribute must be a case sensitive match for the form's id 
PASS [TEXTAREA] Setting the form attribute of a control to the id of a non-ancestor form works 
PASS [TEXTAREA] Removing form id from a control resets the form owner to ancestor 
PASS [TEXTAREA] Removing the form owner of a control with form attribute resets the form owner to null 
PASS [TEXTAREA] Changing form attibute of control resets form owner to correct form 
PASS [TEXTAREA] Moving a control with form attribute within the document does not change the form owner 
PASS [TEXTAREA] When the id of a non-ancestor form changes from not being a match for the form attribute to being a match, the control's form owner is reset 
PASS [TEXTAREA] When form element with same ID as the control's form attribute is inserted earlier in tree order, the form owner is changed to the inserted form 
PASS [TEXTAREA] When non-form element with same ID as the control's form attribute is inserted earlier in tree order, the control does not have a form owner 
PASS [TEXTAREA] A control that is not in the document but has the form attribute set is associated with the nearest ancestor form if one exists 

