diff options
author | wurblzap%gmail.com <> | 2006-04-18 16:58:44 +0200 |
---|---|---|
committer | wurblzap%gmail.com <> | 2006-04-18 16:58:44 +0200 |
commit | 794419cacad6de57a10228a4f839a4ed5c44d9ed (patch) | |
tree | 0489f9fd849075571d42a26e966bd64db650193c | |
parent | 6ec3903ce315493dc6cc3ded2d9c6c69b0dfc8a2 (diff) | |
download | bugzilla-794419cacad6de57a10228a4f839a4ed5c44d9ed.tar.gz bugzilla-794419cacad6de57a10228a4f839a4ed5c44d9ed.tar.xz |
Bug 281691: Misused <label>'s cause screen reader problems.
Patch by Marc Schumann <wurblzap@gmail.com>,
r=LpSolit, a=justdave
-rw-r--r-- | template/en/default/bug/comments.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 176 | ||||
-rw-r--r-- | template/en/default/bug/summarize-time.html.tmpl | 16 | ||||
-rw-r--r-- | template/en/default/filterexceptions.pl | 4 | ||||
-rw-r--r-- | template/en/default/flag/list.html.tmpl | 11 | ||||
-rw-r--r-- | template/en/default/reports/create-chart.html.tmpl | 44 | ||||
-rw-r--r-- | template/en/default/reports/series-common.html.tmpl | 32 | ||||
-rw-r--r-- | template/en/default/search/form.html.tmpl | 146 | ||||
-rw-r--r-- | template/en/default/search/knob.html.tmpl | 4 |
9 files changed, 223 insertions, 213 deletions
diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index 1ccf9904c..55a84819f 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -130,7 +130,8 @@ <input type="checkbox" name="isprivate-[% count %]" value="1" onClick="updateCommentPrivacy(this, [% count %])" id="isprivate-[% count %]" - [% " checked=\"checked\"" IF comment.isprivate %]> Private + [% " checked=\"checked\"" IF comment.isprivate %]> + <label for="isprivate-[% count %]">Private</label> </i> [% END %] [% IF UserInGroup(Param('timetrackinggroup')) && diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index b08ce6432..c2bd1b50b 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -157,34 +157,29 @@ [% IF Param("usebugaliases") %] <tr> <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> - <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 %]" - size="20" maxlength="20"> - </label> + <input id="alias" name="alias" value="[% bug.alias FILTER html %]" + size="20" maxlength="20"> </td> </tr> [% END %] <tr> <td align="right"> - <b><u>P</u>roduct:</b> + <label for="product" accesskey="p"><b><u>P</u>roduct</b></label>: </td> - [% PROCESS select selname => "product" accesskey => "p" %] + [% PROCESS select selname => "product" %] </tr> [%# *** Component Version CC Priority Severity AssignedTo Milestone *** %] <tr> <td align="right"> - <b> - <a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]"> - Co<u>m</u>ponent</a>: - </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>: </td> - [% PROCESS select selname => "component" accesskey => "m" %] + [% PROCESS select selname => "component" %] </tr> <tr> @@ -228,35 +223,35 @@ <tr> <td align="right"> - <b><u>H</u>ardware:</b> + <label for="rep_platform" accesskey="h"><b><u>H</u>ardware</b></label>: </td> - [% PROCESS select selname => "rep_platform" accesskey => "h" %] + [% PROCESS select selname => "rep_platform" %] </tr> <tr> <td align="right"> - <b><u>O</u>S:</b> + <label for="op_sys" accesskey="o"><b><u>O</u>S</b></label>: </td> - [% PROCESS select selname => "op_sys" accesskey => "o" %] + [% PROCESS select selname => "op_sys" %] </tr> <tr> <td align="right"> - <b>Version:</b> + <label for="version"><b>Version</b></label>: </td> [% PROCESS select selname => "version" %] </tr> <tr> <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> - [% PROCESS select selname => "priority" accesskey => "i" %] + [% PROCESS select selname => "priority" %] </tr> <tr> <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> [% PROCESS select selname = "bug_severity" %] </tr> @@ -264,12 +259,12 @@ [% IF Param("usetargetmilestone") && bug.target_milestone %] <tr> <td align="right"> - <b> + <label for="target_milestone"><b> [% IF bug.milestoneurl %] <a href="[% bug.milestoneurl FILTER html %]"> [% END %] - Target Milestone[% "</a>" IF bug.milestoneurl %]: - </b> + Target Milestone[% "</a>" IF bug.milestoneurl %] + [%%]</b></label>: </td> [% PROCESS select selname = "target_milestone" %] </tr> @@ -294,13 +289,13 @@ <tr> <td align="right" valign="top"> - <b><u>A</u>dd CC:</b> + <label for="newcc" accesskey="a"><b><u>A</u>dd CC</b></label>: </td> <td> [% INCLUDE global/userselect.html.tmpl + id => "newcc" name => "newcc" value => "" - accesskey => "a" size => 30 multiple => 5 %] @@ -308,23 +303,24 @@ </tr> <tr> - <td align="right" valign="top"> - <b>CC:</b> - </td> - <td valign="top"> [% IF bug.cc %] - <select name="cc" multiple="multiple" size="5"> - [% FOREACH c = bug.cc %] - <option value="[% c FILTER html %]">[% c FILTER html %]</option> - [% END %] - </select> - <br> - <input type="checkbox" name="removecc">Remove selected CCs - <br> + <td align="right" valign="top"> + <label for="cc"><b>CC</b></label>: + </td> + <td valign="top"> + <select id="cc" name="cc" multiple="multiple" size="5"> + [% FOREACH c = bug.cc %] + <option value="[% c FILTER html %]">[% c FILTER html %]</option> + [% END %] + </select> + <br> + <input type="checkbox" id="removecc" name="removecc"> + [%%]<label for="removecc">Remove selected CCs</label> + <br> + </td> [% ELSE %] - <input type="hidden" name="cc" value=""> + <td colspan="2"><input type="hidden" name="cc" value=""></td> [% END %] - </td> </tr> </table> @@ -341,13 +337,13 @@ [% IF Param('useqacontact') %] <tr> <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 colspan="7"> [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" name => "qa_contact" value => bug.qa_contact.login - accesskey => "q" size => 60 emptyok => 1 %] @@ -357,27 +353,27 @@ <tr> <td align="right"> - <b> + <label for="bug_file_loc" accesskey="u"><b> [% IF bug.bug_file_loc 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 %] - <u>U</u>RL: + <u>U</u>RL [% END %] - </b> + [%%]</b></label>: </td> <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"> </td> </tr> <tr> <td align="right"> - <b><u>S</u>ummary:</b> + <label for="short_desc" accesskey="s"><b><u>S</u>ummary</b></label>: </td> <td colspan="5"> - <input name="short_desc" accesskey="s" + <input name="short_desc" id="short_desc" value="[% bug.short_desc FILTER html %]" size="60"> </td> </tr> @@ -385,10 +381,11 @@ [% IF Param('usestatuswhiteboard') %] <tr> <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 colspan="5"> - <input name="status_whiteboard" accesskey="w" + <input name="status_whiteboard" id="status_whiteboard" value="[% bug.status_whiteboard FILTER html %]" size="60"> </td> </tr> @@ -397,11 +394,9 @@ [% IF use_keywords %] <tr> <td align="right"> - <b> - <a href="describekeywords.cgi"><u>K</u>eywords</a>: - </b> + <label for="keywords" accesskey="k"><b><a href="describekeywords.cgi"><u>K</u>eywords</a></b></label>: <td colspan="5"> - <input name="keywords" accesskey="k" + <input name="keywords" id="keywords" value="[% bug.keywords.join(', ') FILTER html %]" size="60"> </td> </tr> @@ -431,16 +426,16 @@ <table cellspacing="0" cellpadding="4" border="1"> <tr> <th align="center" bgcolor="#cccccc"> - Orig. Est. + <label for="estimated_time">Orig. Est.</label> </th> <th align="center" bgcolor="#cccccc"> Current Est. </th> <th align="center" bgcolor="#cccccc"> - Hours Worked + <label for="work_time">Hours Worked</label> </th> <th align="center" bgcolor="#cccccc"> - Hours Left + <label for="remaining_time">Hours Left</label> </th> <th align="center" bgcolor="#cccccc"> %Complete @@ -449,12 +444,12 @@ Gain </th> <th align="center" bgcolor="#cccccc"> - Deadline + <label for="deadline">Deadline</label> </th> </tr> <tr> <td align="center"> - <input name="estimated_time" + <input name="estimated_time" id="estimated_time" value="[% PROCESS formattimeunit time_unit=bug.estimated_time %]" size="6" maxlength="6"> @@ -465,11 +460,12 @@ </td> <td align="center"> [% 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();"> </td> <td align="center"> - <input name="remaining_time" + <input name="remaining_time" id="remaining_time" value="[% PROCESS formattimeunit time_unit=bug.remaining_time %]" size="6" maxlength="6" onchange="updateRemainingTime();"> @@ -482,7 +478,7 @@ [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] </td> <td align="center"> - <input name="deadline" value="[% bug.deadline %]" + <input name="deadline" id="deadline" value="[% bug.deadline %]" size="10" maxlength="10"><br /> <small>(YYYY-MM-DD)</small> </td> @@ -559,11 +555,12 @@ [%# *** Comments Groups *** %] <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")) %] <input type="checkbox" name="commentprivacy" value="1" id="newcommentprivacy" - onClick="updateCommentTagControl(this, form)"> Private + onClick="updateCommentTagControl(this, form)"> + <label for="newcommentprivacy">Private</label> [% END %] <br> <a name="add_comment"></a> @@ -573,15 +570,12 @@ minrows = 10 maxrows = 25 cols = constants.COMMENT_COLS - accesskey = 'c' %] [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] <br> - <label for="addselfcc"> - <input type="checkbox" id="addselfcc" name="addselfcc"> - Add [% user.login FILTER html %] to CC list - </label> + <input type="checkbox" id="addselfcc" name="addselfcc"> + <label for="addselfcc">Add [% user.login FILTER html %] to CC list</label> [% END %] <br> @@ -606,10 +600,11 @@ [% END %] - <input type="checkbox" name="bit-[% group.bit %]" value="1" - [% " checked=\"checked\"" IF group.ison %] - [% " disabled=\"disabled\"" IF NOT group.ingroup %]> - [% group.description %] + <input type="checkbox" value="1" + name="bit-[% group.bit %]" id="bit-[% group.bit %]" + [% " checked=\"checked\"" IF group.ison %] + [% " disabled=\"disabled\"" IF NOT group.ingroup %]> + <label for="bit-[% group.bit %]">[% group.description %]</label> <br> [% END %] [% END %] @@ -637,10 +632,14 @@ </p> <p> - <input type="checkbox" name="reporter_accessible" value="1" - [% " checked" IF bug.reporter_accessible %]>Reporter - <input type="checkbox" name="cclist_accessible" value="1" - [% " checked" IF bug.cclist_accessible %]>CC List + <input type="checkbox" value="1" + name="reporter_accessible" id="reporter_accessible" + [% " checked" IF bug.reporter_accessible %]> + <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> [% END %] [% END %] @@ -663,14 +662,17 @@ [%############################################################################%] [% 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> [% FOREACH depbug = bug.${dep.fieldname} %] [% depbug FILTER bug_link(depbug) %][% " " %] [% END %] </td> <td> - <input name="[% dep.fieldname %]" accesskey="[% accesskey %]" + <input name="[% dep.fieldname %]" id="[% dep.fieldname %]" value="[% bug.${dep.fieldname}.join(', ') %]"> </td> [% END %] @@ -682,14 +684,12 @@ [% BLOCK select %] <td> - <label for="[% selname %]" accesskey="[% accesskey %]"> - <select name="[% selname %]" id="[% selname %]"> - [% FOREACH x = bug.choices.${selname} %] - <option value="[% x FILTER html %]" - [% " selected" IF x == bug.${selname} %]>[% x FILTER html %] - </option> - [% END %] - </select> - </label> + <select id="[% selname %]" name="[% selname %]"> + [% FOREACH x = bug.choices.${selname} %] + <option value="[% x FILTER html %]" + [% " selected" IF x == bug.${selname} %]>[% x FILTER html %] + </option> + [% END %] + </select> </td> [% END %] diff --git a/template/en/default/bug/summarize-time.html.tmpl b/template/en/default/bug/summarize-time.html.tmpl index 35808f951..bf4850153 100644 --- a/template/en/default/bug/summarize-time.html.tmpl +++ b/template/en/default/bug/summarize-time.html.tmpl @@ -258,8 +258,8 @@ <table> <tr> <td align="right"> - <b>Period <label accesskey="s" - for="start_date"><u>s</u>tarting</label></b>: + <b><label accesskey="s" + for="start_date">Period <u>s</u>tarting</label></b>: </td><td colspan="3"> <input type="text" id="start_date" name="start_date" size="11" align="right" value="[% start_date FILTER html %]" maxlength="10"> @@ -286,26 +286,24 @@ %]><label for="owner" accesskey="d"><u>D</u>eveloper</label> </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> </select> </td></tr><tr> <td> </td><td colspan="4"> - <label for="monthly" accesskey="m"> <input type="checkbox" name="monthly" [% 'checked="checked"' IF 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 %] - <label for="detailed" accesskey="t"> <input type="checkbox" name="detailed" [% 'checked="checked"' IF detailed %] id="detailed"> - De<u>t</u>ailed summaries</label> + <label for="detailed" accesskey="t">De<u>t</u>ailed summaries</label> - <label for="inactive" accesskey="i"> <input type="checkbox" name="inactive" [% 'checked="checked"' IF 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> </tr></table> diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl index b7e43c3c6..bb139e2de 100644 --- a/template/en/default/filterexceptions.pl +++ b/template/en/default/filterexceptions.pl @@ -79,7 +79,6 @@ 'field.description', 'field.accesskey', 'sel.name', - 'sel.accesskey', ], 'search/search-specific.html.tmpl' => [ @@ -169,7 +168,6 @@ 'reports/series-common.html.tmpl' => [ 'sel.name', - 'sel.accesskey', '"onchange=\"$sel.onchange\"" IF sel.onchange', ], @@ -325,11 +323,11 @@ 'group.description', 'dep.title', 'dep.fieldname', - 'accesskey', 'bug.${dep.fieldname}.join(\', \')', 'selname', 'depbug FILTER bug_link(depbug)', '"${bug.dup_id}" FILTER bug_link(bug.dup_id)', + '" accesskey=\"$accesskey\"" IF accesskey', ], 'bug/knob.html.tmpl' => [ diff --git a/template/en/default/flag/list.html.tmpl b/template/en/default/flag/list.html.tmpl index 83992617a..7a92f1277 100644 --- a/template/en/default/flag/list.html.tmpl +++ b/template/en/default/flag/list.html.tmpl @@ -98,8 +98,9 @@ [% flag.setter.nick FILTER html %]: </td> <td> - <label title="[% type.description FILTER html %]"> - [%- type.name FILTER html FILTER no_break %]</label> + <label title="[% type.description FILTER html %]" + for="flag-[% flag.id %]"> + [%- type.name FILTER html FILTER no_break -%]</label> </td> <td> <select id="flag-[% flag.id %]" name="flag-[% flag.id %]" @@ -140,7 +141,8 @@ <tr> <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> </td> <td> @@ -179,7 +181,8 @@ [% END %] <tr> <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> </td> <td> diff --git a/template/en/default/reports/create-chart.html.tmpl b/template/en/default/reports/create-chart.html.tmpl index 005d14752..c02e8db04 100644 --- a/template/en/default/reports/create-chart.html.tmpl +++ b/template/en/default/reports/create-chart.html.tmpl @@ -70,11 +70,11 @@ function subcatSelected() { </tr> [% ELSE %] <tr> - <th>Category:</th> + <th><label for="category">Category</label>:</th> <th></th> - <th>Sub-category:</th> + <th><label for="subcategory">Sub-category</label>:</th> <th></th> - <th>Name:</th> + <th><label for="name" accesskey="N">Name</label>:</th> <th><br> </th> </tr> @@ -102,19 +102,17 @@ function subcatSelected() { </td> <td align="left"> - <label for="name" accesskey="N"> - <select name="name" id="name" style="width: 15em" - size="5" multiple="multiple" - [%+ "disabled=\"disabled\"" UNLESS name.keys.size %]> - [% FOREACH x = name.keys.sort %] - <option value="[% name.$x FILTER html %]"> - [% x FILTER html %]</option> - [% END %] - [% UNLESS name.keys.size %] - <option value="" disabled="disabled"></option> - [% END %] - </select> - </label> + <select name="name" id="name" style="width: 15em" + size="5" multiple="multiple" + [%+ "disabled=\"disabled\"" UNLESS name.keys.size %]> + [% FOREACH x = name.keys.sort %] + <option value="[% name.$x FILTER html %]"> + [% x FILTER html %]</option> + [% END %] + [% UNLESS name.keys.size %] + <option value="" disabled="disabled"></option> + [% END %] + </select> </td> <td align="center" valign="middle"> @@ -233,18 +231,18 @@ function subcatSelected() { </td> <td style="text-align: right; vertical-align: bottom;"> - <b>Cumulate:</b> - <input type="checkbox" name="cumulate" value="1" + <label for="cumulate"><b>Cumulate</b></label>: + <input type="checkbox" name="cumulate" id="cumulate" value="1" [% " checked" IF chart.cumulate %]> </td> <td></td> - <td valign="bottom"> - <b>Date Range:</b> - <input type="text" size="12" name="datefrom" + <td valign="bottom"> + <label for="datefrom"><b>Date Range</b></label>: + <input type="text" size="12" name="datefrom" id="datefrom" value="[% time2str("%Y-%m-%d", chart.datefrom) IF chart.datefrom%]"> - <b>to</b> - <input type="text" size="12" name="dateto" + <label for="dateto"><b>to</b></label> + <input type="text" size="12" name="dateto" id="dateto" value="[% time2str("%Y-%m-%d", chart.dateto) IF chart.dateto %]"> </td> diff --git a/template/en/default/reports/series-common.html.tmpl b/template/en/default/reports/series-common.html.tmpl index 06b6af870..42bf0b7ba 100644 --- a/template/en/default/reports/series-common.html.tmpl +++ b/template/en/default/reports/series-common.html.tmpl @@ -99,22 +99,20 @@ function checkNewState() { [% BLOCK series_select %] <td align="left"> - <label for="[% sel.name %]" accesskey="[% sel.accesskey %]"> - <select name="[% sel.name %]" id="[% sel.name %]" - size="[% sel.size %]" style="width: 15em" - [%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %] - [%+ "onchange=\"$sel.onchange\"" IF sel.onchange %]> - [% FOREACH x = ${sel.name}.keys.sort %] - <option value="[% x FILTER html %]" - [% " selected" IF default.${sel.name} == x %]> - [% x FILTER html %]</option> - [% END %] - [% IF newtext %] - <option value="">[% newtext FILTER html %]</option> - [% ELSIF NOT ${sel.name}.keys.size %] - <option value="" disabled="disabled"></option> - [% END %] - </select> - </label> + <select name="[% sel.name %]" id="[% sel.name %]" + size="[% sel.size %]" style="width: 15em" + [%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %] + [%+ "onchange=\"$sel.onchange\"" IF sel.onchange %]> + [% FOREACH x = ${sel.name}.keys.sort %] + <option value="[% x FILTER html %]" + [% " selected" IF default.${sel.name} == x %]> + [% x FILTER html %]</option> + [% END %] + [% IF newtext %] + <option value="">[% newtext FILTER html %]</option> + [% ELSIF NOT ${sel.name}.keys.size %] + <option value="" disabled="disabled"></option> + [% END %] + </select> </td> [% END %] diff --git a/template/en/default/search/form.html.tmpl b/template/en/default/search/form.html.tmpl index 6b0a5a2c8..5fa3055b2 100644 --- a/template/en/default/search/form.html.tmpl +++ b/template/en/default/search/form.html.tmpl @@ -124,7 +124,9 @@ function doOnSelectProduct(selectmode) { <table> <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> <select name="short_desc_type"> [% FOREACH qv = query_variants %] @@ -134,7 +136,7 @@ function doOnSelectProduct(selectmode) { </select> </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 %]"> <script type="text/javascript"> <!-- document.forms[queryform].short_desc.focus(); @@ -157,21 +159,21 @@ function doOnSelectProduct(selectmode) { <td valign="top"> <table> <tr valign="bottom"> - <th align="left"><u>C</u>lassification:</th> + <th align="left"> + <label for="classification">Classification</label>: + </th> </tr> <tr valign="top"> <td align="left"> - <label for="classification"> - <select name="classification" multiple="multiple" size="5" id="classification" - onchange="doOnSelectProduct(1);"> + <select name="classification" multiple="multiple" size="5" id="classification" + onchange="doOnSelectProduct(1);"> [% FOREACH cat = classification %] <option value="[% cat.name FILTER html %]" [% " selected" IF lsearch(default.classification, cat.name) != -1 %]> [% cat.name FILTER html %] </option> [% END %] - </select> - </label> + </select> </td> </tr> </table> @@ -180,21 +182,21 @@ function doOnSelectProduct(selectmode) { <td valign="top"> <table> <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 valign="top"> [%# Can't use the select block here because of the onChange %] <td align="left"> - <label for="product" accesskey="p"> - <select name="product" multiple="multiple" size="5" id="product" - onchange="doOnSelectProduct(2);"> + <select name="product" multiple="multiple" size="5" id="product" + onchange="doOnSelectProduct(2);"> [% FOREACH p = product %] <option value="[% p.name FILTER html %]" [% " selected" IF lsearch(default.product, p.name) != -1 %]> [% p.name FILTER html %]</option> [% END %] - </select> - </label> + </select> </td> </tr> </table> @@ -203,23 +205,21 @@ function doOnSelectProduct(selectmode) { <table> <tr valign="bottom"> <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> </tr> <tr valign="top"> [%# Can't use the select block here because 'component' is a toolkit reserved word - we use 'component_' instead. %] <td align="left"> - <label for="component" accesskey="m"> - <select name="component" id="component" - multiple="multiple" size="5"> + <select name="component" id="component" + multiple="multiple" size="5"> [% FOREACH c = component_ %] <option value="[% c FILTER html %]" [% " selected" IF lsearch(default.component, c) != -1 %]> [% c FILTER html %]</option> [% END %] - </select> - </label> + </select> </td> </tr> </table> @@ -227,12 +227,13 @@ function doOnSelectProduct(selectmode) { <td valign="top"> <table> <tr valign="bottom"> - <th align="left"><u>V</u>ersion:</th> + <th align="left"> + <label for="version">Version</label>: + </th> </tr> <tr valign="top"> [% PROCESS select sel = { name => 'version', - size => 5, - accesskey => 'v' } %] + size => 5 } %] </tr> </table> </td> @@ -240,12 +241,13 @@ function doOnSelectProduct(selectmode) { <td valign="top"> <table> <tr valign="bottom"> - <th align="left"><u>T</u>arget:</th> + <th align="left"> + <label for="target_milestone">Target</label>: + </th> </tr> <tr valign="top"> [% PROCESS select sel = { name => 'target_milestone', - size => 5, - accesskey => 't' } %] + size => 5 } %] </tr> </table> </td> @@ -267,7 +269,9 @@ function doOnSelectProduct(selectmode) { [% UNLESS field.name == 'status_whiteboard' AND NOT Param('usestatuswhiteboard') %] <tr> - <th align="right">[% field.description %]:</th> + <th align="right"> + <label for="[% field.name %]" accesskey="[% field.accesskey %]">[% field.description %]</label>: + </th> <td> <select name="[% field.name %]_type"> [% FOREACH qv = query_variants %] @@ -277,8 +281,7 @@ function doOnSelectProduct(selectmode) { [% END %] </select> </td> - <td><input name="[% field.name %]" size="40" - accesskey="[% field.accesskey %]" + <td><input name="[% field.name %]" id="[% field.name %]" size="40" value="[% default.${field.name}.0 FILTER html %]"> </td> <td></td> @@ -289,7 +292,7 @@ function doOnSelectProduct(selectmode) { [% IF have_keywords %] <tr> <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> <td> <select name="keywords_type"> @@ -305,7 +308,7 @@ function doOnSelectProduct(selectmode) { </select> </td> <td> - <input name="keywords" size="40" accesskey="k" + <input name="keywords" id="keywords" size="40" value="[% default.keywords.0 FILTER html %]"> </td> </tr> @@ -315,11 +318,11 @@ function doOnSelectProduct(selectmode) { [% IF UserInGroup(Param("timetrackinggroup")) %] <tr> <th align="right"> - Dead<u>l</u>ine: + <label for="deadlinefrom" accesskey="l">Dead<u>l</u>ine</label>: </th> <td> from - <input name="deadlinefrom" size="10" maxlength="10" accesskey="l"> + <input name="deadlinefrom" id="deadlinefrom" size="10" maxlength="10"> to <input name="deadlineto" size="10" maxlength="10"> </td> @@ -340,12 +343,13 @@ function doOnSelectProduct(selectmode) { <td> <table> <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 valign="top"> [% PROCESS select sel = { name => 'bug_status', - size => 7, - accesskey => 'a' } %] + size => 7 } %] </tr> </table> </td> @@ -353,61 +357,64 @@ function doOnSelectProduct(selectmode) { <table> <tr> <th align="left"> - <u>R</u>esolution: + <label for="resolution" accesskey="r"><u>R</u>esolution</label>: </th> </tr> <tr valign="top"> [% PROCESS select sel = { name => 'resolution', - size => 7, - accesskey => 'r' } %] + size => 7 } %] </tr> </table> </td> <td> <table> <tr> - <th align="left">S<u>e</u>verity:</th> + <th align="left"> + <label for="bug_severity">Severity</label>: + </th> </tr> <tr valign="top"> [% PROCESS select sel = { name => 'bug_severity', - size => 7, - accesskey => 'e' } %] + size => 7 }%] </tr> </table> </td> <td> <table> <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 valign="top"> [% PROCESS select sel = { name => 'priority', - size => 7, - accesskey => 'i' } %] + size => 7 } %] </tr> </table> </td> <td> <table> <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 valign="top"> [% PROCESS select sel = { name => 'rep_platform', - size => 7, - accesskey => 'h' } %] + size => 7 } %] </tr> </table> </td> <td> <table> <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 valign="top"> [% PROCESS select sel = { name => 'op_sys', - size => 7, - accesskey => 'o' } %] + size => 7 } %] </tr> </table> </td> @@ -528,10 +535,11 @@ function doOnSelectProduct(selectmode) { <option value="include"[% " selected" IF default.bugidtype.0 == "include" %]>Only include</option> <option value="exclude"[% " selected" IF default.bugidtype.0 == "exclude" %]>Exclude</option> </select> - [% terms.bugs %] numbered: + <label for="bug_id">[% terms.bugs %] numbered</label>: </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> </tr> <tr> @@ -541,10 +549,12 @@ function doOnSelectProduct(selectmode) { [% IF Param('usevotes') %] <tr> <td align="right"> - Only [% terms.bugs %] with at least: + <label for="votes">Only [% terms.bugs %] with at least</label>: </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> </tr> [% END %] @@ -562,15 +572,20 @@ function doOnSelectProduct(selectmode) { <dl class="bug_changes"> - <dt>Only [% terms.bugs %] changed between:</dt> + <dt> + <label for="chfieldfrom">Only [% terms.bugs %] changed between</label>: + </dt> <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 %]"> <br>(YYYY-MM-DD or relative dates) </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> - <select name="chfield" multiple="multiple" size="4"> + <select name="chfield" id="chfield" multiple="multiple" size="4"> [% FOREACH field = chfield %] <option value="[% field FILTER html %]" [% " selected" IF lsearch(default.chfield, field) != -1 %]> @@ -578,9 +593,10 @@ function doOnSelectProduct(selectmode) { [% END %] </select> </dd> - <dt>and the new value was:</dt> + <dt>and <label for="chfieldvalue">the new value was</label>:</dt> <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> </dl> @@ -595,9 +611,8 @@ function doOnSelectProduct(selectmode) { [% BLOCK select %] <td align="left"> - <label for="[% sel.name %]" accesskey="[% sel.accesskey %]"> - <select name="[% sel.name %]" id="[% sel.name %]" - multiple="multiple" size="[% sel.size %]"> + <select name="[% sel.name %]" id="[% sel.name %]" + multiple="multiple" size="[% sel.size %]"> [% FOREACH name = ${sel.name} %] <option value="[% name FILTER html %]" [% " selected" IF lsearch(default.${sel.name}, name) != -1 %]> @@ -609,7 +624,6 @@ function doOnSelectProduct(selectmode) { [% name FILTER html %]</option> [% END %] [% END %] - </select> - </label> + </select> </td> [% END %] diff --git a/template/en/default/search/knob.html.tmpl b/template/en/default/search/knob.html.tmpl index 68d279047..833e37f55 100644 --- a/template/en/default/search/knob.html.tmpl +++ b/template/en/default/search/knob.html.tmpl @@ -43,8 +43,8 @@ <input type="hidden" name="cmdtype" value="doit"> <p> - Sort results by: - <select name="order"> + <label for="order">Sort results by</label>: + <select name="order" id="order"> [% FOREACH order = orders %] <option value="[% order FILTER html %]" [% " selected" IF default.order.0 == order %]> |