Commit 794419ca authored by wurblzap%gmail.com's avatar wurblzap%gmail.com

Bug 281691: Misused <label>'s cause screen reader problems.

Patch by Marc Schumann <wurblzap@gmail.com>, r=LpSolit, a=justdave
parent 6ec3903c
...@@ -130,7 +130,8 @@ ...@@ -130,7 +130,8 @@
<input type="checkbox" name="isprivate-[% count %]" value="1" <input type="checkbox" name="isprivate-[% count %]" value="1"
onClick="updateCommentPrivacy(this, [% count %])" onClick="updateCommentPrivacy(this, [% count %])"
id="isprivate-[% count %]" id="isprivate-[% count %]"
[% " checked=\"checked\"" IF comment.isprivate %]> Private [% " checked=\"checked\"" IF comment.isprivate %]>
<label for="isprivate-[% count %]">Private</label>
</i> </i>
[% END %] [% END %]
[% IF UserInGroup(Param('timetrackinggroup')) && [% IF UserInGroup(Param('timetrackinggroup')) &&
......
...@@ -157,34 +157,29 @@ ...@@ -157,34 +157,29 @@
[% IF Param("usebugaliases") %] [% IF Param("usebugaliases") %]
<tr> <tr>
<td align="right"> <td align="right">
<b>Alias:</b> <label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, f.e. when adding it to a list of dependencies"><b>Alias</b></label>:
</td> </td>
<td> <td>
<label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, f.e. when adding it to a list of dependencies">
<input id="alias" name="alias" value="[% bug.alias FILTER html %]" <input id="alias" name="alias" value="[% bug.alias FILTER html %]"
size="20" maxlength="20"> size="20" maxlength="20">
</label>
</td> </td>
</tr> </tr>
[% END %] [% END %]
<tr> <tr>
<td align="right"> <td align="right">
<b><u>P</u>roduct:</b> <label for="product" accesskey="p"><b><u>P</u>roduct</b></label>:
</td> </td>
[% PROCESS select selname => "product" accesskey => "p" %] [% PROCESS select selname => "product" %]
</tr> </tr>
[%# *** Component Version CC Priority Severity AssignedTo Milestone *** %] [%# *** Component Version CC Priority Severity AssignedTo Milestone *** %]
<tr> <tr>
<td align="right"> <td align="right">
<b> <label for="component" accesskey="m"><b><a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]">Co<u>m</u>ponent</a></b></label>:
<a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]">
Co<u>m</u>ponent</a>:
</b>
</td> </td>
[% PROCESS select selname => "component" accesskey => "m" %] [% PROCESS select selname => "component" %]
</tr> </tr>
<tr> <tr>
...@@ -228,35 +223,35 @@ ...@@ -228,35 +223,35 @@
<tr> <tr>
<td align="right"> <td align="right">
<b><u>H</u>ardware:</b> <label for="rep_platform" accesskey="h"><b><u>H</u>ardware</b></label>:
</td> </td>
[% PROCESS select selname => "rep_platform" accesskey => "h" %] [% PROCESS select selname => "rep_platform" %]
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right">
<b><u>O</u>S:</b> <label for="op_sys" accesskey="o"><b><u>O</u>S</b></label>:
</td> </td>
[% PROCESS select selname => "op_sys" accesskey => "o" %] [% PROCESS select selname => "op_sys" %]
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right">
<b>Version:</b> <label for="version"><b>Version</b></label>:
</td> </td>
[% PROCESS select selname => "version" %] [% PROCESS select selname => "version" %]
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right">
<b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b> <label for="priority" accesskey="i"><b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a></b></label>:
</td> </td>
[% PROCESS select selname => "priority" accesskey => "i" %] [% PROCESS select selname => "priority" %]
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right">
<b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b> <label for="bug_severity"><b><a href="page.cgi?id=fields.html#bug_severity">Severity</a></b></label>:
</td> </td>
[% PROCESS select selname = "bug_severity" %] [% PROCESS select selname = "bug_severity" %]
</tr> </tr>
...@@ -264,12 +259,12 @@ ...@@ -264,12 +259,12 @@
[% IF Param("usetargetmilestone") && bug.target_milestone %] [% IF Param("usetargetmilestone") && bug.target_milestone %]
<tr> <tr>
<td align="right"> <td align="right">
<b> <label for="target_milestone"><b>
[% IF bug.milestoneurl %] [% IF bug.milestoneurl %]
<a href="[% bug.milestoneurl FILTER html %]"> <a href="[% bug.milestoneurl FILTER html %]">
[% END %] [% END %]
Target Milestone[% "</a>" IF bug.milestoneurl %]: Target Milestone[% "</a>" IF bug.milestoneurl %]
</b> [%%]</b></label>:
</td> </td>
[% PROCESS select selname = "target_milestone" %] [% PROCESS select selname = "target_milestone" %]
</tr> </tr>
...@@ -294,13 +289,13 @@ ...@@ -294,13 +289,13 @@
<tr> <tr>
<td align="right" valign="top"> <td align="right" valign="top">
<b><u>A</u>dd&nbsp;CC:</b> <label for="newcc" accesskey="a"><b><u>A</u>dd&nbsp;CC</b></label>:
</td> </td>
<td> <td>
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
id => "newcc"
name => "newcc" name => "newcc"
value => "" value => ""
accesskey => "a"
size => 30 size => 30
multiple => 5 multiple => 5
%] %]
...@@ -308,23 +303,24 @@ ...@@ -308,23 +303,24 @@
</tr> </tr>
<tr> <tr>
[% IF bug.cc %]
<td align="right" valign="top"> <td align="right" valign="top">
<b>CC:</b> <label for="cc"><b>CC</b></label>:
</td> </td>
<td valign="top"> <td valign="top">
[% IF bug.cc %] <select id="cc" name="cc" multiple="multiple" size="5">
<select name="cc" multiple="multiple" size="5">
[% FOREACH c = bug.cc %] [% FOREACH c = bug.cc %]
<option value="[% c FILTER html %]">[% c FILTER html %]</option> <option value="[% c FILTER html %]">[% c FILTER html %]</option>
[% END %] [% END %]
</select> </select>
<br> <br>
<input type="checkbox" name="removecc">Remove selected CCs <input type="checkbox" id="removecc" name="removecc">
[%%]<label for="removecc">Remove selected CCs</label>
<br> <br>
</td>
[% ELSE %] [% ELSE %]
<input type="hidden" name="cc" value=""> <td colspan="2"><input type="hidden" name="cc" value=""></td>
[% END %] [% END %]
</td>
</tr> </tr>
</table> </table>
...@@ -341,13 +337,13 @@ ...@@ -341,13 +337,13 @@
[% IF Param('useqacontact') %] [% IF Param('useqacontact') %]
<tr> <tr>
<td align="right"> <td align="right">
<b><u>Q</u>A Contact:</b> <label for="qa_contact" accesskey="q"><b><u>Q</u>A Contact</b></label>:
</td> </td>
<td colspan="7"> <td colspan="7">
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
id => "qa_contact"
name => "qa_contact" name => "qa_contact"
value => bug.qa_contact.login value => bug.qa_contact.login
accesskey => "q"
size => 60 size => 60
emptyok => 1 emptyok => 1
%] %]
...@@ -357,27 +353,27 @@ ...@@ -357,27 +353,27 @@
<tr> <tr>
<td align="right"> <td align="right">
<b> <label for="bug_file_loc" accesskey="u"><b>
[% IF bug.bug_file_loc [% IF bug.bug_file_loc
AND NOT bug.bug_file_loc.match("^(javascript|data)") %] AND NOT bug.bug_file_loc.match("^(javascript|data)") %]
<a href="[% bug.bug_file_loc FILTER html %]"><u>U</u>RL</a>: <a href="[% bug.bug_file_loc FILTER html %]"><u>U</u>RL</a>
[% ELSE %] [% ELSE %]
<u>U</u>RL: <u>U</u>RL
[% END %] [% END %]
</b> [%%]</b></label>:
</td> </td>
<td colspan="5"> <td colspan="5">
<input name="bug_file_loc" accesskey="u" <input name="bug_file_loc" id="bug_file_loc"
value="[% bug.bug_file_loc FILTER html %]" size="60"> value="[% bug.bug_file_loc FILTER html %]" size="60">
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right">
<b><u>S</u>ummary:</b> <label for="short_desc" accesskey="s"><b><u>S</u>ummary</b></label>:
</td> </td>
<td colspan="5"> <td colspan="5">
<input name="short_desc" accesskey="s" <input name="short_desc" id="short_desc"
value="[% bug.short_desc FILTER html %]" size="60"> value="[% bug.short_desc FILTER html %]" size="60">
</td> </td>
</tr> </tr>
...@@ -385,10 +381,11 @@ ...@@ -385,10 +381,11 @@
[% IF Param('usestatuswhiteboard') %] [% IF Param('usestatuswhiteboard') %]
<tr> <tr>
<td align="right"> <td align="right">
<b>Status <u>W</u>hiteboard:</b> <label for="status_whiteboard" accesskey="w"><b>Status
<u>W</u>hiteboard</b></label>:
</td> </td>
<td colspan="5"> <td colspan="5">
<input name="status_whiteboard" accesskey="w" <input name="status_whiteboard" id="status_whiteboard"
value="[% bug.status_whiteboard FILTER html %]" size="60"> value="[% bug.status_whiteboard FILTER html %]" size="60">
</td> </td>
</tr> </tr>
...@@ -397,11 +394,9 @@ ...@@ -397,11 +394,9 @@
[% IF use_keywords %] [% IF use_keywords %]
<tr> <tr>
<td align="right"> <td align="right">
<b> <label for="keywords" accesskey="k"><b><a href="describekeywords.cgi"><u>K</u>eywords</a></b></label>:
<a href="describekeywords.cgi"><u>K</u>eywords</a>:
</b>
<td colspan="5"> <td colspan="5">
<input name="keywords" accesskey="k" <input name="keywords" id="keywords"
value="[% bug.keywords.join(', ') FILTER html %]" size="60"> value="[% bug.keywords.join(', ') FILTER html %]" size="60">
</td> </td>
</tr> </tr>
...@@ -431,16 +426,16 @@ ...@@ -431,16 +426,16 @@
<table cellspacing="0" cellpadding="4" border="1"> <table cellspacing="0" cellpadding="4" border="1">
<tr> <tr>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
Orig. Est. <label for="estimated_time">Orig. Est.</label>
</th> </th>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
Current Est. Current Est.
</th> </th>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
Hours Worked <label for="work_time">Hours Worked</label>
</th> </th>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
Hours Left <label for="remaining_time">Hours Left</label>
</th> </th>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
%Complete %Complete
...@@ -449,12 +444,12 @@ ...@@ -449,12 +444,12 @@
Gain Gain
</th> </th>
<th align="center" bgcolor="#cccccc"> <th align="center" bgcolor="#cccccc">
Deadline <label for="deadline">Deadline</label>
</th> </th>
</tr> </tr>
<tr> <tr>
<td align="center"> <td align="center">
<input name="estimated_time" <input name="estimated_time" id="estimated_time"
value="[% PROCESS formattimeunit value="[% PROCESS formattimeunit
time_unit=bug.estimated_time %]" time_unit=bug.estimated_time %]"
size="6" maxlength="6"> size="6" maxlength="6">
...@@ -465,11 +460,12 @@ ...@@ -465,11 +460,12 @@
</td> </td>
<td align="center"> <td align="center">
[% PROCESS formattimeunit time_unit=bug.actual_time %] + [% PROCESS formattimeunit time_unit=bug.actual_time %] +
<input name="work_time" value="0" size="3" maxlength="6" <input name="work_time" id="work_time"
value="0" size="3" maxlength="6"
onchange="adjustRemainingTime();"> onchange="adjustRemainingTime();">
</td> </td>
<td align="center"> <td align="center">
<input name="remaining_time" <input name="remaining_time" id="remaining_time"
value="[% PROCESS formattimeunit value="[% PROCESS formattimeunit
time_unit=bug.remaining_time %]" time_unit=bug.remaining_time %]"
size="6" maxlength="6" onchange="updateRemainingTime();"> size="6" maxlength="6" onchange="updateRemainingTime();">
...@@ -482,7 +478,7 @@ ...@@ -482,7 +478,7 @@
[% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %]
</td> </td>
<td align="center"> <td align="center">
<input name="deadline" value="[% bug.deadline %]" <input name="deadline" id="deadline" value="[% bug.deadline %]"
size="10" maxlength="10"><br /> size="10" maxlength="10"><br />
<small>(YYYY-MM-DD)</small> <small>(YYYY-MM-DD)</small>
</td> </td>
...@@ -559,11 +555,12 @@ ...@@ -559,11 +555,12 @@
[%# *** Comments Groups *** %] [%# *** Comments Groups *** %]
<br> <br>
<b>Additional <u>C</u>omments:</b> <label for="comment" accesskey="c"><b>Additional <u>C</u>omments</b></label>:
[% IF Param("insidergroup") && UserInGroup(Param("insidergroup")) %] [% IF Param("insidergroup") && UserInGroup(Param("insidergroup")) %]
<input type="checkbox" name="commentprivacy" value="1" <input type="checkbox" name="commentprivacy" value="1"
id="newcommentprivacy" id="newcommentprivacy"
onClick="updateCommentTagControl(this, form)"> Private onClick="updateCommentTagControl(this, form)">
<label for="newcommentprivacy">Private</label>
[% END %] [% END %]
<br> <br>
<a name="add_comment"></a> <a name="add_comment"></a>
...@@ -573,15 +570,12 @@ ...@@ -573,15 +570,12 @@
minrows = 10 minrows = 10
maxrows = 25 maxrows = 25
cols = constants.COMMENT_COLS cols = constants.COMMENT_COLS
accesskey = 'c'
%] %]
[% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %]
<br> <br>
<label for="addselfcc">
<input type="checkbox" id="addselfcc" name="addselfcc"> <input type="checkbox" id="addselfcc" name="addselfcc">
Add [% user.login FILTER html %] to CC list <label for="addselfcc">Add [% user.login FILTER html %] to CC list</label>
</label>
[% END %] [% END %]
<br> <br>
...@@ -606,10 +600,11 @@ ...@@ -606,10 +600,11 @@
[% END %] [% END %]
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="bit-[% group.bit %]" value="1" <input type="checkbox" value="1"
name="bit-[% group.bit %]" id="bit-[% group.bit %]"
[% " checked=\"checked\"" IF group.ison %] [% " checked=\"checked\"" IF group.ison %]
[% " disabled=\"disabled\"" IF NOT group.ingroup %]> [% " disabled=\"disabled\"" IF NOT group.ingroup %]>
[% group.description %] <label for="bit-[% group.bit %]">[% group.description %]</label>
<br> <br>
[% END %] [% END %]
[% END %] [% END %]
...@@ -637,10 +632,14 @@ ...@@ -637,10 +632,14 @@
</p> </p>
<p> <p>
<input type="checkbox" name="reporter_accessible" value="1" <input type="checkbox" value="1"
[% " checked" IF bug.reporter_accessible %]>Reporter name="reporter_accessible" id="reporter_accessible"
<input type="checkbox" name="cclist_accessible" value="1" [% " checked" IF bug.reporter_accessible %]>
[% " checked" IF bug.cclist_accessible %]>CC List <label for="reporter_accessible">Reporter</label>
<input type="checkbox" value="1"
name="cclist_accessible" id="cclist_accessible"
[% " checked" IF bug.cclist_accessible %]>
<label for="cclist_accessible">CC List</label>
</p> </p>
[% END %] [% END %]
[% END %] [% END %]
...@@ -663,14 +662,17 @@ ...@@ -663,14 +662,17 @@
[%############################################################################%] [%############################################################################%]
[% BLOCK dependencies %] [% BLOCK dependencies %]
<th align="right">[% terms.Bug %] [%+ bug.bug_id %] [%+ dep.title %]:</th> <th align="right">
<label for="[% dep.fieldname %]"[% " accesskey=\"$accesskey\"" IF accesskey %]>
[% terms.Bug %] [%+ bug.bug_id %] [%+ dep.title %]</label>:
</th>
<td> <td>
[% FOREACH depbug = bug.${dep.fieldname} %] [% FOREACH depbug = bug.${dep.fieldname} %]
[% depbug FILTER bug_link(depbug) %][% " " %] [% depbug FILTER bug_link(depbug) %][% " " %]
[% END %] [% END %]
</td> </td>
<td> <td>
<input name="[% dep.fieldname %]" accesskey="[% accesskey %]" <input name="[% dep.fieldname %]" id="[% dep.fieldname %]"
value="[% bug.${dep.fieldname}.join(', ') %]"> value="[% bug.${dep.fieldname}.join(', ') %]">
</td> </td>
[% END %] [% END %]
...@@ -682,14 +684,12 @@ ...@@ -682,14 +684,12 @@
[% BLOCK select %] [% BLOCK select %]
<td> <td>
<label for="[% selname %]" accesskey="[% accesskey %]"> <select id="[% selname %]" name="[% selname %]">
<select name="[% selname %]" id="[% selname %]">
[% FOREACH x = bug.choices.${selname} %] [% FOREACH x = bug.choices.${selname} %]
<option value="[% x FILTER html %]" <option value="[% x FILTER html %]"
[% " selected" IF x == bug.${selname} %]>[% x FILTER html %] [% " selected" IF x == bug.${selname} %]>[% x FILTER html %]
</option> </option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
[% END %] [% END %]
...@@ -258,8 +258,8 @@ ...@@ -258,8 +258,8 @@
<table> <table>
<tr> <tr>
<td align="right"> <td align="right">
<b>Period <label accesskey="s" <b><label accesskey="s"
for="start_date"><u>s</u>tarting</label></b>: for="start_date">Period <u>s</u>tarting</label></b>:
</td><td colspan="3"> </td><td colspan="3">
<input type="text" id="start_date" name="start_date" size="11" <input type="text" id="start_date" name="start_date" size="11"
align="right" value="[% start_date FILTER html %]" maxlength="10"> align="right" value="[% start_date FILTER html %]" maxlength="10">
...@@ -286,26 +286,24 @@ ...@@ -286,26 +286,24 @@
%]><label %]><label
for="owner" accesskey="d"><u>D</u>eveloper</label> for="owner" accesskey="d"><u>D</u>eveloper</label>
</td><td colspan="2"> </td><td colspan="2">
<b>Format</b>: <select name="ctype"> <label for="ctype"><b>Format</b></label>: <select name="ctype" id="ctype">
<option value="html">HTML Report</option> <option value="html">HTML Report</option>
</select> </select>
</td></tr><tr> </td></tr><tr>
<td>&nbsp;</td><td colspan="4"> <td>&nbsp;</td><td colspan="4">
<label for="monthly" accesskey="m">
<input type="checkbox" name="monthly" [% 'checked="checked"' IF <input type="checkbox" name="monthly" [% 'checked="checked"' IF
monthly %] id="monthly"> monthly %] id="monthly">
Split by <u>m</u>onth</label> <label for="monthly" accesskey="m">Split by <u>m</u>onth</label>
[%# XXX: allow splitting by other intervals %] [%# XXX: allow splitting by other intervals %]
&nbsp; &nbsp;
<label for="detailed" accesskey="t">
<input type="checkbox" name="detailed" [% 'checked="checked"' IF <input type="checkbox" name="detailed" [% 'checked="checked"' IF
detailed %] id="detailed"> detailed %] id="detailed">
De<u>t</u>ailed summaries</label> <label for="detailed" accesskey="t">De<u>t</u>ailed summaries</label>
&nbsp; &nbsp;
<label for="inactive" accesskey="i">
<input type="checkbox" name="inactive" [% 'checked="checked"' IF <input type="checkbox" name="inactive" [% 'checked="checked"' IF
inactive %] id="inactive"> inactive %] id="inactive">
Also show <u>i</u>nactive [% terms.bugs %]</label> <label for="inactive" accesskey="i">Also show <u>i</u>nactive
[%+ terms.bugs %]</label>
</td> </td>
</tr></table> </tr></table>
......
...@@ -79,7 +79,6 @@ ...@@ -79,7 +79,6 @@
'field.description', 'field.description',
'field.accesskey', 'field.accesskey',
'sel.name', 'sel.name',
'sel.accesskey',
], ],
'search/search-specific.html.tmpl' => [ 'search/search-specific.html.tmpl' => [
...@@ -169,7 +168,6 @@ ...@@ -169,7 +168,6 @@
'reports/series-common.html.tmpl' => [ 'reports/series-common.html.tmpl' => [
'sel.name', 'sel.name',
'sel.accesskey',
'"onchange=\"$sel.onchange\"" IF sel.onchange', '"onchange=\"$sel.onchange\"" IF sel.onchange',
], ],
...@@ -325,11 +323,11 @@ ...@@ -325,11 +323,11 @@
'group.description', 'group.description',
'dep.title', 'dep.title',
'dep.fieldname', 'dep.fieldname',
'accesskey',
'bug.${dep.fieldname}.join(\', \')', 'bug.${dep.fieldname}.join(\', \')',
'selname', 'selname',
'depbug FILTER bug_link(depbug)', 'depbug FILTER bug_link(depbug)',
'"${bug.dup_id}" FILTER bug_link(bug.dup_id)', '"${bug.dup_id}" FILTER bug_link(bug.dup_id)',
'" accesskey=\"$accesskey\"" IF accesskey',
], ],
'bug/knob.html.tmpl' => [ 'bug/knob.html.tmpl' => [
......
...@@ -98,8 +98,9 @@ ...@@ -98,8 +98,9 @@
[% flag.setter.nick FILTER html %]: [% flag.setter.nick FILTER html %]:
</td> </td>
<td> <td>
<label title="[% type.description FILTER html %]"> <label title="[% type.description FILTER html %]"
[%- type.name FILTER html FILTER no_break %]</label> for="flag-[% flag.id %]">
[%- type.name FILTER html FILTER no_break -%]</label>
</td> </td>
<td> <td>
<select id="flag-[% flag.id %]" name="flag-[% flag.id %]" <select id="flag-[% flag.id %]" name="flag-[% flag.id %]"
...@@ -140,7 +141,8 @@ ...@@ -140,7 +141,8 @@
<tr> <tr>
<td>&nbsp;</td> <td>&nbsp;</td>
<td> <td>
<label title="[% type.description FILTER html %]"> <label title="[% type.description FILTER html %]"
for="flag_type-[% type.id %]">
[%- type.name FILTER html FILTER no_break %]</label> [%- type.name FILTER html FILTER no_break %]</label>
</td> </td>
<td> <td>
...@@ -179,7 +181,8 @@ ...@@ -179,7 +181,8 @@
[% END %] [% END %]
<tr> <tr>
<td colspan="2"> <td colspan="2">
addl. <label title="[% type.description FILTER html %]"> addl. <label title="[% type.description FILTER html %]"
for="flag_type-[% type.id %]">
[%- type.name FILTER html FILTER no_break %]</label> [%- type.name FILTER html FILTER no_break %]</label>
</td> </td>
<td> <td>
......
...@@ -70,11 +70,11 @@ function subcatSelected() { ...@@ -70,11 +70,11 @@ function subcatSelected() {
</tr> </tr>
[% ELSE %] [% ELSE %]
<tr> <tr>
<th>Category:</th> <th><label for="category">Category</label>:</th>
<th></th> <th></th>
<th>Sub-category:</th> <th><label for="subcategory">Sub-category</label>:</th>
<th></th> <th></th>
<th>Name:</th> <th><label for="name" accesskey="N">Name</label>:</th>
<th><br> <th><br>
</th> </th>
</tr> </tr>
...@@ -102,7 +102,6 @@ function subcatSelected() { ...@@ -102,7 +102,6 @@ function subcatSelected() {
</td> </td>
<td align="left"> <td align="left">
<label for="name" accesskey="N">
<select name="name" id="name" style="width: 15em" <select name="name" id="name" style="width: 15em"
size="5" multiple="multiple" size="5" multiple="multiple"
[%+ "disabled=\"disabled\"" UNLESS name.keys.size %]> [%+ "disabled=\"disabled\"" UNLESS name.keys.size %]>
...@@ -114,7 +113,6 @@ function subcatSelected() { ...@@ -114,7 +113,6 @@ function subcatSelected() {
<option value="" disabled="disabled"></option> <option value="" disabled="disabled"></option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
<td align="center" valign="middle"> <td align="center" valign="middle">
...@@ -233,18 +231,18 @@ function subcatSelected() { ...@@ -233,18 +231,18 @@ function subcatSelected() {
</td> </td>
<td style="text-align: right; vertical-align: bottom;"> <td style="text-align: right; vertical-align: bottom;">
<b>Cumulate:</b> <label for="cumulate"><b>Cumulate</b></label>:
<input type="checkbox" name="cumulate" value="1" <input type="checkbox" name="cumulate" id="cumulate" value="1"
[% " checked" IF chart.cumulate %]> [% " checked" IF chart.cumulate %]>
</td> </td>
<td></td> <td></td>
<td valign="bottom"> <td valign="bottom">
<b>Date Range:</b> <label for="datefrom"><b>Date Range</b></label>:
<input type="text" size="12" name="datefrom" <input type="text" size="12" name="datefrom" id="datefrom"
value="[% time2str("%Y-%m-%d", chart.datefrom) IF chart.datefrom%]"> value="[% time2str("%Y-%m-%d", chart.datefrom) IF chart.datefrom%]">
<b>to</b> <label for="dateto"><b>to</b></label>
<input type="text" size="12" name="dateto" <input type="text" size="12" name="dateto" id="dateto"
value="[% time2str("%Y-%m-%d", chart.dateto) IF chart.dateto %]"> value="[% time2str("%Y-%m-%d", chart.dateto) IF chart.dateto %]">
</td> </td>
......
...@@ -99,7 +99,6 @@ function checkNewState() { ...@@ -99,7 +99,6 @@ function checkNewState() {
[% BLOCK series_select %] [% BLOCK series_select %]
<td align="left"> <td align="left">
<label for="[% sel.name %]" accesskey="[% sel.accesskey %]">
<select name="[% sel.name %]" id="[% sel.name %]" <select name="[% sel.name %]" id="[% sel.name %]"
size="[% sel.size %]" style="width: 15em" size="[% sel.size %]" style="width: 15em"
[%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %] [%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %]
...@@ -115,6 +114,5 @@ function checkNewState() { ...@@ -115,6 +114,5 @@ function checkNewState() {
<option value="" disabled="disabled"></option> <option value="" disabled="disabled"></option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
[% END %] [% END %]
...@@ -124,7 +124,9 @@ function doOnSelectProduct(selectmode) { ...@@ -124,7 +124,9 @@ function doOnSelectProduct(selectmode) {
<table> <table>
<tr> <tr>
<th align="right"><u>S</u>ummary:</th> <th align="right">
<label for="short_desc" accesskey="s"><u>S</u>ummary</label>:
</th>
<td> <td>
<select name="short_desc_type"> <select name="short_desc_type">
[% FOREACH qv = query_variants %] [% FOREACH qv = query_variants %]
...@@ -134,7 +136,7 @@ function doOnSelectProduct(selectmode) { ...@@ -134,7 +136,7 @@ function doOnSelectProduct(selectmode) {
</select> </select>
</td> </td>
<td> <td>
<input name="short_desc" size="40" accesskey="s" <input name="short_desc" id="short_desc" size="40"
value="[% default.short_desc.0 FILTER html %]"> value="[% default.short_desc.0 FILTER html %]">
<script type="text/javascript"> <!-- <script type="text/javascript"> <!--
document.forms[queryform].short_desc.focus(); document.forms[queryform].short_desc.focus();
...@@ -157,11 +159,12 @@ function doOnSelectProduct(selectmode) { ...@@ -157,11 +159,12 @@ function doOnSelectProduct(selectmode) {
<td valign="top"> <td valign="top">
<table> <table>
<tr valign="bottom"> <tr valign="bottom">
<th align="left"><u>C</u>lassification:</th> <th align="left">
<label for="classification">Classification</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td align="left"> <td align="left">
<label for="classification">
<select name="classification" multiple="multiple" size="5" id="classification" <select name="classification" multiple="multiple" size="5" id="classification"
onchange="doOnSelectProduct(1);"> onchange="doOnSelectProduct(1);">
[% FOREACH cat = classification %] [% FOREACH cat = classification %]
...@@ -171,7 +174,6 @@ function doOnSelectProduct(selectmode) { ...@@ -171,7 +174,6 @@ function doOnSelectProduct(selectmode) {
</option> </option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -180,12 +182,13 @@ function doOnSelectProduct(selectmode) { ...@@ -180,12 +182,13 @@ function doOnSelectProduct(selectmode) {
<td valign="top"> <td valign="top">
<table> <table>
<tr valign="bottom"> <tr valign="bottom">
<th align="left"><u>P</u>roduct:</th> <th align="left">
<label for="product" accesskey="p"><u>P</u>roduct</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[%# Can't use the select block here because of the onChange %] [%# Can't use the select block here because of the onChange %]
<td align="left"> <td align="left">
<label for="product" accesskey="p">
<select name="product" multiple="multiple" size="5" id="product" <select name="product" multiple="multiple" size="5" id="product"
onchange="doOnSelectProduct(2);"> onchange="doOnSelectProduct(2);">
[% FOREACH p = product %] [% FOREACH p = product %]
...@@ -194,7 +197,6 @@ function doOnSelectProduct(selectmode) { ...@@ -194,7 +197,6 @@ function doOnSelectProduct(selectmode) {
[% p.name FILTER html %]</option> [% p.name FILTER html %]</option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -203,14 +205,13 @@ function doOnSelectProduct(selectmode) { ...@@ -203,14 +205,13 @@ function doOnSelectProduct(selectmode) {
<table> <table>
<tr valign="bottom"> <tr valign="bottom">
<th align="left"> <th align="left">
<a href="describecomponents.cgi">Co<u>m</u>ponent</a>: <label for="component" accesskey="m"><a href="describecomponents.cgi">Co<u>m</u>ponent</a></label>:
</th> </th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[%# Can't use the select block here because 'component' is a toolkit [%# Can't use the select block here because 'component' is a toolkit
reserved word - we use 'component_' instead. %] reserved word - we use 'component_' instead. %]
<td align="left"> <td align="left">
<label for="component" accesskey="m">
<select name="component" id="component" <select name="component" id="component"
multiple="multiple" size="5"> multiple="multiple" size="5">
[% FOREACH c = component_ %] [% FOREACH c = component_ %]
...@@ -219,7 +220,6 @@ function doOnSelectProduct(selectmode) { ...@@ -219,7 +220,6 @@ function doOnSelectProduct(selectmode) {
[% c FILTER html %]</option> [% c FILTER html %]</option>
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -227,12 +227,13 @@ function doOnSelectProduct(selectmode) { ...@@ -227,12 +227,13 @@ function doOnSelectProduct(selectmode) {
<td valign="top"> <td valign="top">
<table> <table>
<tr valign="bottom"> <tr valign="bottom">
<th align="left"><u>V</u>ersion:</th> <th align="left">
<label for="version">Version</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'version', [% PROCESS select sel = { name => 'version',
size => 5, size => 5 } %]
accesskey => 'v' } %]
</tr> </tr>
</table> </table>
</td> </td>
...@@ -240,12 +241,13 @@ function doOnSelectProduct(selectmode) { ...@@ -240,12 +241,13 @@ function doOnSelectProduct(selectmode) {
<td valign="top"> <td valign="top">
<table> <table>
<tr valign="bottom"> <tr valign="bottom">
<th align="left"><u>T</u>arget:</th> <th align="left">
<label for="target_milestone">Target</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'target_milestone', [% PROCESS select sel = { name => 'target_milestone',
size => 5, size => 5 } %]
accesskey => 't' } %]
</tr> </tr>
</table> </table>
</td> </td>
...@@ -267,7 +269,9 @@ function doOnSelectProduct(selectmode) { ...@@ -267,7 +269,9 @@ function doOnSelectProduct(selectmode) {
[% UNLESS field.name == 'status_whiteboard' AND NOT Param('usestatuswhiteboard') %] [% UNLESS field.name == 'status_whiteboard' AND NOT Param('usestatuswhiteboard') %]
<tr> <tr>
<th align="right">[% field.description %]:</th> <th align="right">
<label for="[% field.name %]" accesskey="[% field.accesskey %]">[% field.description %]</label>:
</th>
<td> <td>
<select name="[% field.name %]_type"> <select name="[% field.name %]_type">
[% FOREACH qv = query_variants %] [% FOREACH qv = query_variants %]
...@@ -277,8 +281,7 @@ function doOnSelectProduct(selectmode) { ...@@ -277,8 +281,7 @@ function doOnSelectProduct(selectmode) {
[% END %] [% END %]
</select> </select>
</td> </td>
<td><input name="[% field.name %]" size="40" <td><input name="[% field.name %]" id="[% field.name %]" size="40"
accesskey="[% field.accesskey %]"
value="[% default.${field.name}.0 FILTER html %]"> value="[% default.${field.name}.0 FILTER html %]">
</td> </td>
<td></td> <td></td>
...@@ -289,7 +292,7 @@ function doOnSelectProduct(selectmode) { ...@@ -289,7 +292,7 @@ function doOnSelectProduct(selectmode) {
[% IF have_keywords %] [% IF have_keywords %]
<tr> <tr>
<th align="right"> <th align="right">
<a href="describekeywords.cgi"><u>K</u>eywords</a>: <label for="keywords" accesskey="k"><a href="describekeywords.cgi"><u>K</u>eywords</a></label>:
</th> </th>
<td> <td>
<select name="keywords_type"> <select name="keywords_type">
...@@ -305,7 +308,7 @@ function doOnSelectProduct(selectmode) { ...@@ -305,7 +308,7 @@ function doOnSelectProduct(selectmode) {
</select> </select>
</td> </td>
<td> <td>
<input name="keywords" size="40" accesskey="k" <input name="keywords" id="keywords" size="40"
value="[% default.keywords.0 FILTER html %]"> value="[% default.keywords.0 FILTER html %]">
</td> </td>
</tr> </tr>
...@@ -315,11 +318,11 @@ function doOnSelectProduct(selectmode) { ...@@ -315,11 +318,11 @@ function doOnSelectProduct(selectmode) {
[% IF UserInGroup(Param("timetrackinggroup")) %] [% IF UserInGroup(Param("timetrackinggroup")) %]
<tr> <tr>
<th align="right"> <th align="right">
Dead<u>l</u>ine: <label for="deadlinefrom" accesskey="l">Dead<u>l</u>ine</label>:
</th> </th>
<td> <td>
from&nbsp; from&nbsp;
<input name="deadlinefrom" size="10" maxlength="10" accesskey="l">&nbsp; <input name="deadlinefrom" id="deadlinefrom" size="10" maxlength="10">&nbsp;
to&nbsp; to&nbsp;
<input name="deadlineto" size="10" maxlength="10"> <input name="deadlineto" size="10" maxlength="10">
</td> </td>
...@@ -340,12 +343,13 @@ function doOnSelectProduct(selectmode) { ...@@ -340,12 +343,13 @@ function doOnSelectProduct(selectmode) {
<td> <td>
<table> <table>
<tr> <tr>
<th align="left">St<u>a</u>tus:</th> <th align="left">
<label for="bug_status" accesskey="a">St<u>a</u>tus</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'bug_status', [% PROCESS select sel = { name => 'bug_status',
size => 7, size => 7 } %]
accesskey => 'a' } %]
</tr> </tr>
</table> </table>
</td> </td>
...@@ -353,61 +357,64 @@ function doOnSelectProduct(selectmode) { ...@@ -353,61 +357,64 @@ function doOnSelectProduct(selectmode) {
<table> <table>
<tr> <tr>
<th align="left"> <th align="left">
<u>R</u>esolution: <label for="resolution" accesskey="r"><u>R</u>esolution</label>:
</th> </th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'resolution', [% PROCESS select sel = { name => 'resolution',
size => 7, size => 7 } %]
accesskey => 'r' } %]
</tr> </tr>
</table> </table>
</td> </td>
<td> <td>
<table> <table>
<tr> <tr>
<th align="left">S<u>e</u>verity:</th> <th align="left">
<label for="bug_severity">Severity</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'bug_severity', [% PROCESS select sel = { name => 'bug_severity',
size => 7, size => 7 }%]
accesskey => 'e' } %]
</tr> </tr>
</table> </table>
</td> </td>
<td> <td>
<table> <table>
<tr> <tr>
<th align="left">Pr<u>i</u>ority:</th> <th align="left">
<label for="priority" accesskey="i">Pr<u>i</u>ority</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'priority', [% PROCESS select sel = { name => 'priority',
size => 7, size => 7 } %]
accesskey => 'i' } %]
</tr> </tr>
</table> </table>
</td> </td>
<td> <td>
<table> <table>
<tr> <tr>
<th align="left"><u>H</u>ardware:</th> <th align="left">
<label for="rep_platform" accesskey="h"><u>H</u>ardware</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'rep_platform', [% PROCESS select sel = { name => 'rep_platform',
size => 7, size => 7 } %]
accesskey => 'h' } %]
</tr> </tr>
</table> </table>
</td> </td>
<td> <td>
<table> <table>
<tr> <tr>
<th align="left"><u>O</u>S:</th> <th align="left">
<label for="op_sys" accesskey="o"><u>O</u>S</label>:
</th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
[% PROCESS select sel = { name => 'op_sys', [% PROCESS select sel = { name => 'op_sys',
size => 7, size => 7 } %]
accesskey => 'o' } %]
</tr> </tr>
</table> </table>
</td> </td>
...@@ -528,10 +535,11 @@ function doOnSelectProduct(selectmode) { ...@@ -528,10 +535,11 @@ function doOnSelectProduct(selectmode) {
<option value="include"[% " selected" IF default.bugidtype.0 == "include" %]>Only include</option> <option value="include"[% " selected" IF default.bugidtype.0 == "include" %]>Only include</option>
<option value="exclude"[% " selected" IF default.bugidtype.0 == "exclude" %]>Exclude</option> <option value="exclude"[% " selected" IF default.bugidtype.0 == "exclude" %]>Exclude</option>
</select> </select>
[% terms.bugs %] numbered: <label for="bug_id">[% terms.bugs %] numbered</label>:
</td> </td>
<td> <td>
<input type="text" name="bug_id" value="[% default.bug_id.0 FILTER html %]" size="20"> <input type="text" name="bug_id" id="bug_id"
value="[% default.bug_id.0 FILTER html %]" size="20">
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -541,10 +549,12 @@ function doOnSelectProduct(selectmode) { ...@@ -541,10 +549,12 @@ function doOnSelectProduct(selectmode) {
[% IF Param('usevotes') %] [% IF Param('usevotes') %]
<tr> <tr>
<td align="right"> <td align="right">
Only [% terms.bugs %] with at least: <label for="votes">Only [% terms.bugs %] with at least</label>:
</td> </td>
<td> <td>
<input name="votes" size="3" value="[% default.votes.0 FILTER html %]"> votes <input name="votes" id="votes" size="3"
value="[% default.votes.0 FILTER html %]">
votes
</td> </td>
</tr> </tr>
[% END %] [% END %]
...@@ -562,15 +572,20 @@ function doOnSelectProduct(selectmode) { ...@@ -562,15 +572,20 @@ function doOnSelectProduct(selectmode) {
<dl class="bug_changes"> <dl class="bug_changes">
<dt>Only [% terms.bugs %] changed between:</dt> <dt>
<label for="chfieldfrom">Only [% terms.bugs %] changed between</label>:
</dt>
<dd> <dd>
<input name="chfieldfrom" size="10" value="[% default.chfieldfrom.0 FILTER html %]"> <input name="chfieldfrom" id="chfieldfrom"
size="10" value="[% default.chfieldfrom.0 FILTER html %]">
and <input name="chfieldto" size="10" value="[% default.chfieldto.0 FILTER html %]"> and <input name="chfieldto" size="10" value="[% default.chfieldto.0 FILTER html %]">
<br>(YYYY-MM-DD or relative dates) <br>(YYYY-MM-DD or relative dates)
</dd> </dd>
<dt>where one or more of the following changed:</dt> <dt>
<label for="chfield">where one or more of the following changed</label>:
</dt>
<dd> <dd>
<select name="chfield" multiple="multiple" size="4"> <select name="chfield" id="chfield" multiple="multiple" size="4">
[% FOREACH field = chfield %] [% FOREACH field = chfield %]
<option value="[% field FILTER html %]" <option value="[% field FILTER html %]"
[% " selected" IF lsearch(default.chfield, field) != -1 %]> [% " selected" IF lsearch(default.chfield, field) != -1 %]>
...@@ -578,9 +593,10 @@ function doOnSelectProduct(selectmode) { ...@@ -578,9 +593,10 @@ function doOnSelectProduct(selectmode) {
[% END %] [% END %]
</select> </select>
</dd> </dd>
<dt>and the new value was:</dt> <dt>and <label for="chfieldvalue">the new value was</label>:</dt>
<dd> <dd>
<input name="chfieldvalue" size="20" value="[% default.chfieldvalue.0 FILTER html %]"> <input name="chfieldvalue" id="chfieldvalue"
size="20" value="[% default.chfieldvalue.0 FILTER html %]">
</dd> </dd>
</dl> </dl>
...@@ -595,7 +611,6 @@ function doOnSelectProduct(selectmode) { ...@@ -595,7 +611,6 @@ function doOnSelectProduct(selectmode) {
[% BLOCK select %] [% BLOCK select %]
<td align="left"> <td align="left">
<label for="[% sel.name %]" accesskey="[% sel.accesskey %]">
<select name="[% sel.name %]" id="[% sel.name %]" <select name="[% sel.name %]" id="[% sel.name %]"
multiple="multiple" size="[% sel.size %]"> multiple="multiple" size="[% sel.size %]">
[% FOREACH name = ${sel.name} %] [% FOREACH name = ${sel.name} %]
...@@ -610,6 +625,5 @@ function doOnSelectProduct(selectmode) { ...@@ -610,6 +625,5 @@ function doOnSelectProduct(selectmode) {
[% END %] [% END %]
[% END %] [% END %]
</select> </select>
</label>
</td> </td>
[% END %] [% END %]
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
<input type="hidden" name="cmdtype" value="doit"> <input type="hidden" name="cmdtype" value="doit">
<p> <p>
Sort results by: <label for="order">Sort results by</label>:
<select name="order"> <select name="order" id="order">
[% FOREACH order = orders %] [% FOREACH order = orders %]
<option value="[% order FILTER html %]" <option value="[% order FILTER html %]"
[% " selected" IF default.order.0 == order %]> [% " selected" IF default.order.0 == order %]>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment