OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only

Groupings in form controls

  • 1.  Groupings in form controls

    Posted 11-24-2008 16:11

    The ODF Accessibility SC has been concerned about the overloaded use of form:name to define groups in ODF form elements. In particular our problem is with radio button their grouping.

    The definition of the form:name element in ODF defines no semantics other than to state that it is a form name. Furthermore, in section 18.500 there is concern that form:name duplicates xml:id - consequently creating two unique ids for the same control.

    This creates additional problems for labelling in that a label is not used to reference a grouping. Rather ODF allows naming of individual form controls consequently it is easy to get the labelling out of synch with what is being grouped.

    <form:form form:name="Standard" >
    <form:fixed-text form:name="LabelField1" form:for="control3,control4" form:id="control1" form:label="LABEL 1" />
    <form:fixed-text form:name="LabelField2" form:for="control5,control6" form:id="control2" form:label="LABEL 2" />
    <form:radio form:name="RadioGroup1" form:id="control3" form:label="Grp1-1" > </form:radio>
    <form:radio form:name="RadioGroup2" form:id="control4" form:label="Grp1-2" > </form:radio>
    <form:radio form:name="RadioGroup1" form:id="control5" form:label="Grp2-A" > </form:radio>
    <form:radio form:name="RadioGroup2" form:id="control6" form:label="Grp2-B" > </form:radio>
    </form:form>

    Although he accessibility SC requirements have not been submitted yet we felt it necessary for the TC to consider adding the equivalent of the XForms:group element rather than relying on the form:name property to define the grouping.

    http://www.w3.org/TR/2007/REC-xforms-20071029/#ui-group-module

    This defines the grouping declaratively rather than the approach currently employed by ODF today.

    <form:form form:name="Standard" >
    <form:fixed-text form:name="LabelField1" form:for="grp1" form:id="control1" form:label="LABEL 1" />
    <form:fixed-text form:name="LabelField2" form:for="grp2" form:id="control2" form:label="LABEL 2" />
    <xforms:group id="grp1">
    <form:radio form:name="whocares1" form:id="control3" form:label="radio1" > </form:radio>
    <form:radio form:name="whocares2" form:id="control5" form:label="radio2" > </form:radio>
    </xforms:group>
    <xforms:group id:grp2>
    <form:radio form:name="whocares3" form:id="control4" form:label="radio3" > </form:radio>
    <form:radio form:name="whocares4" form:id="control6" form:label="radio4" > </form:radio>
    </xforms:group>
    </form:form>

    This does not imply that the grouping must rendered in the order that they appear in the DOM.



    Rich Schwerdtfeger
    Distinguished Engineer, SWG Accessibility Architect/Strategist
    blog: http://www.ibm.com/developerworks/blogs/page/schwer