Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.2-EE-GA_P02, 2.0.0
-
Fix Version/s: EE-1.8.2.GA_P03, 2.1-Beta, 3.0, EE-2.0.0.GA_P01
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
Assignee Priority:P2
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
-
Workaround Exists:Yes
-
Workaround Description:Use the stock JSF selectOneRadio component as it does not render with a <fieldset> tag.
Description
The <ice:selectOneRadio> component is rendered as a <fieldset> tag. According to 508 compliance a <fieldset> tag needs to have a <legend> tag which is used by screen readers.
Customer request/suggestions:
It would be great if the selectOneRadio had a "legend" attribute we could set and get passed through as a <legend> tag inside the fieldset (or the label attribute could be used for this as it appears to currently do nothing). It should be noted we have applications using 1.8.2 and 2.0.0 and the issue exists in both.
Sample ICEFaces code:
<ice:selectOneRadio title="test title" label="test label" >
<f:selectItem itemLabel="test 1" itemValue="test 1"/>
<f:selectItem itemLabel="test 2" itemValue="test 2"/>
<f:selectItem itemLabel="test 4" itemValue="test 3"/>
</ice:selectOneRadio>
Rendered HTML:
<fieldset class="iceSelOneRb" id="j_idt11:j_idt73" title="test title">
<table border="0" cellpadding="0" cellspacing="0" class="iceSelOneRb">
<tr>
<td>
<input id="j_idt11:j_idt73:_1" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 1" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_1">test 1</label>
</td>
<td>
<input id="j_idt11:j_idt73:_2" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 2" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_2">test 2</label>
</td>
<td>
<input id="j_idt11:j_idt73:_3" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 3" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_3">test 4</label>
</td>
</tr>
</table>
</fieldset>
Customer request/suggestions:
It would be great if the selectOneRadio had a "legend" attribute we could set and get passed through as a <legend> tag inside the fieldset (or the label attribute could be used for this as it appears to currently do nothing). It should be noted we have applications using 1.8.2 and 2.0.0 and the issue exists in both.
Sample ICEFaces code:
<ice:selectOneRadio title="test title" label="test label" >
<f:selectItem itemLabel="test 1" itemValue="test 1"/>
<f:selectItem itemLabel="test 2" itemValue="test 2"/>
<f:selectItem itemLabel="test 4" itemValue="test 3"/>
</ice:selectOneRadio>
Rendered HTML:
<fieldset class="iceSelOneRb" id="j_idt11:j_idt73" title="test title">
<table border="0" cellpadding="0" cellspacing="0" class="iceSelOneRb">
<tr>
<td>
<input id="j_idt11:j_idt73:_1" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 1" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_1">test 1</label>
</td>
<td>
<input id="j_idt11:j_idt73:_2" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 2" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_2">test 2</label>
</td>
<td>
<input id="j_idt11:j_idt73:_3" name="j_idt11:j_idt73" onblur="setFocus('');" onfocus="setFocus(this.id);" onkeypress="Ice.util.radioCheckboxEnter(form,this,event);" type="radio" value="test 3" />
<label class="iceSelOneRb" for="j_idt11:j_idt73:_3">test 4</label>
</td>
</tr>
</table>
</fieldset>
Done. See screenshots 1 and 2.
Revision: 24498
Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/HtmlSelectOneRadio.java
Modified : /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml
Modified : /icefaces/trunk/icefaces/core/src/com/icesoft/faces/renderkit/dom_html_basic/SelectManyCheckboxListRenderer.java
Revision: 24499
Modified : /icefaces2/trunk/icefaces/compat/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml
Modified : /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/HtmlSelectOneRadio.java
Modified : /icefaces2/trunk/icefaces/compat/core/src/main/java/com/icesoft/faces/renderkit/dom_html_basic/SelectManyCheckboxListRenderer.java
Revision: 24500
Modified : /icefaces2/branches/icefaces-2.0.x-maintenance/icefaces/compat/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml
Modified : /icefaces2/branches/icefaces-2.0.x-maintenance/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/HtmlSelectOneRadio.java
Modified : /icefaces2/branches/icefaces-2.0.x-maintenance/icefaces/compat/core/src/main/java/com/icesoft/faces/renderkit/dom_html_basic/SelectManyCheckboxListRenderer.java
Revision: 24504
Modified : /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml
Revision: 24505
Modified : /icefaces2/trunk/icefaces/compat/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml
Revision: 24506
Modified : /icefaces2/branches/icefaces-2.0.x-maintenance/icefaces/compat/component-metadata/src/main/resources/conf/ice_properties/ice-selectOneRadio-props.xml