From 7400be1b6e65a8f76f48607e439e6c0103ce45e0 Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Tue, 18 Sep 2012 15:26:26 +0800 Subject: [PATCH] MDL-34777 Accessibility: Add labels to input elements in gradebook --- grade/edit/tree/lib.php | 52 ++++++++++++++++------- grade/report/grader/lib.php | 6 ++- grade/report/grader/module.js | 15 ++----- lang/en/grades.php | 3 +- mod/assign/feedback/comments/locallib.php | 6 ++- mod/assign/gradingtable.php | 9 ++-- mod/assign/lang/en/assign.php | 1 + mod/assign/locallib.php | 6 ++- 8 files changed, 60 insertions(+), 38 deletions(-) diff --git a/grade/edit/tree/lib.php b/grade/edit/tree/lib.php index a7f60554226..c5b3c4a5760 100644 --- a/grade/edit/tree/lib.php +++ b/grade/edit/tree/lib.php @@ -373,13 +373,16 @@ class grade_edit_tree { if ((($aggcoef == 'aggregationcoefweight' || $aggcoef == 'aggregationcoef') && $type == 'weight') || ($aggcoef == 'aggregationcoefextraweight' && $type == 'extra')) { - return ''. + return ''. ''; } elseif ($aggcoef == 'aggregationcoefextrasum' && $type == 'extra') { $checked = ($item->aggregationcoef > 0) ? 'checked="checked"' : ''; return ' - \n"; + + \n"; } else { return ''; } @@ -812,8 +815,9 @@ class grade_edit_tree_column_range extends grade_edit_tree_column { } elseif ($item->is_external_item()) { $grademax = format_float($item->grademax, $item->get_decimals()); } else { - $grademax = ''; - $grademax .= ''; + $grademax = ' + '; } $itemcell = clone($this->itemcell); @@ -849,7 +853,10 @@ class grade_edit_tree_column_aggregateonlygraded extends grade_edit_tree_column_ public function get_category_cell($category, $levelclass, $params) { $onlygradedcheck = ($category->aggregateonlygraded == 1) ? 'checked="checked"' : ''; $hidden = ''; - $aggregateonlygraded =''; + $aggregateonlygraded = ' + '; if ($this->forced) { $aggregateonlygraded = ($category->aggregateonlygraded) ? get_string('yes') : get_string('no'); @@ -886,7 +893,10 @@ class grade_edit_tree_column_aggregatesubcats extends grade_edit_tree_column_cat public function get_category_cell($category, $levelclass, $params) { $subcatscheck = ($category->aggregatesubcats == 1) ? 'checked="checked"' : ''; $hidden = ''; - $aggregatesubcats = ''; + $aggregatesubcats = ' + '; if ($this->forced) { $aggregatesubcats = ($category->aggregatesubcats) ? get_string('yes') : get_string('no'); @@ -924,7 +934,10 @@ class grade_edit_tree_column_aggregateoutcomes extends grade_edit_tree_column_ca public function get_category_cell($category, $levelclass, $params) { $outcomescheck = ($category->aggregateoutcomes == 1) ? 'checked="checked"' : ''; $hidden = ''; - $aggregateoutcomes = ''; + $aggregateoutcomes = ' + '; if ($this->forced) { $aggregateoutcomes = ($category->aggregateoutcomes) ? get_string('yes') : get_string('no'); @@ -966,8 +979,9 @@ class grade_edit_tree_column_droplow extends grade_edit_tree_column_category { } public function get_category_cell($category, $levelclass, $params) { - $droplow = ''; - $droplow .= ''; + $droplow = ''; + $droplow .= ''; if ($this->forced) { $droplow = $category->droplow; @@ -1001,7 +1015,8 @@ class grade_edit_tree_column_keephigh extends grade_edit_tree_column_category { public function get_category_cell($category, $levelclass, $params) { $keephigh = ''; - $keephigh .= ''; + $keephigh .= ''; if ($this->forced) { $keephigh = $category->keephigh; @@ -1048,8 +1063,10 @@ class grade_edit_tree_column_multfactor extends grade_edit_tree_column { $itemcell->text = ' '; return $itemcell; } - $multfactor = ''; - $multfactor .= ''; + $multfactor = ' + '; $itemcell->text = $multfactor; return $itemcell; @@ -1091,8 +1108,10 @@ class grade_edit_tree_column_plusfactor extends grade_edit_tree_column { return $itemcell; } - $plusfactor = ''; - $plusfactor .= ''; + $plusfactor = ' + '; $itemcell->text = $plusfactor; return $itemcell; @@ -1180,7 +1199,10 @@ class grade_edit_tree_column_select extends grade_edit_tree_column { $itemselect = ''; if ($params['itemtype'] != 'course' && $params['itemtype'] != 'category') { - $itemselect = ''; // TODO: convert to YUI handler + $itemselect = ' + '; // TODO: convert to YUI handler } //html_writer::table() will wrap the item cell contents in a so don't do it here return $itemselect; diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 99d4d9d038b..885bd4eea0f 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -1036,7 +1036,8 @@ class grade_report_grader extends grade_report { if ($this->get_pref('quickgrading') and $grade->is_editable()) { $value = format_float($gradeval, $decimalpoints); $gradelabel = fullname($user) . ' ' . $item->itemname; - $itemcell->text .= ''; + $itemcell->text .= ''; $itemcell->text .= ''; @@ -1049,7 +1050,8 @@ class grade_report_grader extends grade_report { // If quickfeedback is on, print an input element if ($this->get_pref('showquickfeedback') and $grade->is_editable()) { $feedbacklabel = fullname($user) . ' ' . $item->itemname; - $itemcell->text .= ''; + $itemcell->text .= ''; $itemcell->text .= ''; } diff --git a/grade/report/grader/module.js b/grade/report/grader/module.js index 638d083226e..800f5541c03 100644 --- a/grade/report/grader/module.js +++ b/grade/report/grader/module.js @@ -124,7 +124,6 @@ M.gradereport_grader.classes.report = function(Y, id, cfg, items, users, feedbac this.items = items; this.users = users; this.feedback = feedback; - this.feedbacklabel = ''; this.table = Y.one('#user-grades'); this.grades = grades; @@ -354,8 +353,8 @@ M.gradereport_grader.classes.ajax.prototype.make_editable = function(e) { node = node.ancestor('td'); } this.report.Y.detach('click', this.make_editable, node); -//alert(this.report.toSource()); - if (this.current) { + + if (this.current) { // Current is already set! this.process_editable_field(node); return; @@ -663,7 +662,7 @@ M.gradereport_grader.classes.ajax.prototype.submission_outcome = function(tid, o // otherwise we will prompt the user to choose to use their value or the new value! if (!this.current.has_changed() || confirm(M.str.gradereport_grader.ajaxfieldchanged)) { this.current.set_grade(finalgrade); - this.current.grade.set('value', finalgrade);alert(this.current.node.toSource()); + this.current.grade.set('value', finalgrade); } } } @@ -944,16 +943,11 @@ M.gradereport_grader.classes.textfield = function(report, node) { this.gradespan = node.one('.gradevalue'); this.inputdiv = this.report.Y.Node.create('
'); this.editfeedback = this.report.ajax.showquickfeedback; - this.gradelabel = this.report.Y.Node.create(''); this.grade = this.report.Y.Node.create(''); this.gradetype = 'value'; - this.inputdiv.append(this.gradelabel); this.inputdiv.append(this.grade); if (this.report.ajax.showquickfeedback) { - this.feedbacklabel = this.report.Y.Node.create(''); this.feedback = this.report.Y.Node.create(''); - - this.inputdiv.append(this.feedbacklabel); this.inputdiv.append(this.feedback); } }; @@ -964,7 +958,6 @@ M.gradereport_grader.classes.textfield.prototype.keyevents = []; M.gradereport_grader.classes.textfield.prototype.editable = false; M.gradereport_grader.classes.textfield.prototype.gradetype = null; M.gradereport_grader.classes.textfield.prototype.grade = null; -M.gradereport_grader.classes.textfield.prototype.gradelabel = null; M.gradereport_grader.classes.textfield.prototype.report = null; M.gradereport_grader.classes.textfield.prototype.node = null; M.gradereport_grader.classes.textfield.prototype.gradespam = null; @@ -982,9 +975,7 @@ M.gradereport_grader.classes.textfield.prototype.replace = function() { if (this.editfeedback) { this.set_feedback(this.get_feedback()); } - //this.node.on('.test').innerHTML('test'); this.node.replaceChild(this.inputdiv, this.gradespan); - //alert(this.inputdiv.toSource()); this.grade.focus(); this.editable = true; return this; diff --git a/lang/en/grades.php b/lang/en/grades.php index 6d173d6c9b6..a9fb4d4d935 100644 --- a/lang/en/grades.php +++ b/lang/en/grades.php @@ -150,7 +150,7 @@ $string['displayweighted'] = 'Display weighted grades'; $string['dropdown'] = 'Dropdown menu'; $string['droplow'] = 'Drop the lowest'; $string['droplow_help'] = 'This setting enables a specified number of the lowest grades to be excluded from the aggregation.'; -$string['droplowestvalue'] = 'Set the drop lowest grade value'; +$string['droplowestvalue'] = 'Set drop lowest grade value'; $string['dropped'] = 'Dropped'; $string['dropxlowest'] = 'Drop X lowest'; $string['dropxlowestwarning'] = 'Note: If you use drop x lowest the grading assumes that all items in the category have the same point value. If point values differ results will be unpredictable'; @@ -534,6 +534,7 @@ $string['savepreferences'] = 'Save preferences'; $string['scaleconfirmdelete'] = 'Are you sure you wish to delete the scale "{$a}"?'; $string['scaledpct'] = 'Scaled %'; $string['seeallcoursegrades'] = 'See all course grades'; +$string['select'] = 'Select {$a}'; $string['selectalloroneuser'] = 'Select all or one user'; $string['selectauser'] = 'Select a user'; $string['selectdestination'] = 'Select destination of {$a}'; diff --git a/mod/assign/feedback/comments/locallib.php b/mod/assign/feedback/comments/locallib.php index d89006345e9..7dcff1e3141 100644 --- a/mod/assign/feedback/comments/locallib.php +++ b/mod/assign/feedback/comments/locallib.php @@ -69,8 +69,10 @@ class assign_feedback_comments extends assign_feedback_plugin { } } - return html_writer::tag('textarea', $commenttext, array('name'=>'quickgrade_comments_' . $userid, - 'class'=>'quickgrade')); + return html_writer::tag('label', get_string('pluginname', 'assignfeedback_comments'), + array('for'=>'quickgrade_comments_' . $userid, 'class'=>'accesshide')) + . html_writer::tag('textarea', $commenttext, + array('name'=>'quickgrade_comments_' . $userid, 'id'=>'quickgrade_comments_' . $userid, 'class'=>'quickgrade')); } /** diff --git a/mod/assign/gradingtable.php b/mod/assign/gradingtable.php index c77a8f9bee5..43e7a5b6bb9 100644 --- a/mod/assign/gradingtable.php +++ b/mod/assign/gradingtable.php @@ -158,9 +158,8 @@ class assign_grading_table extends table_sql implements renderable { if (!$this->is_downloading()) { $columns[] = 'select'; $headers[] = get_string('select') . - '
'; + '
+
'; // Edit links. $columns[] = 'edit'; @@ -513,7 +512,9 @@ class assign_grading_table extends table_sql implements renderable { * @return string */ function col_select(stdClass $row) { - return ''; + return ' + userid . 'name="selectedusers" value="' . $row->userid . '"/>'; } /** diff --git a/mod/assign/lang/en/assign.php b/mod/assign/lang/en/assign.php index 5c53951abab..48da9d27fa8 100644 --- a/mod/assign/lang/en/assign.php +++ b/mod/assign/lang/en/assign.php @@ -236,6 +236,7 @@ $string['scale'] = 'Scale'; $string['sendnotifications'] = 'Notify graders about submissions'; $string['sendnotifications_help'] = 'If enabled, graders (usually teachers) receive a message whenever a student submits an assignment, early, on time and late. Message methods are configurable.'; $string['selectlink'] = 'Select...'; +$string['selectuser'] = 'Select {$a}'; $string['sendlatenotifications'] = 'Notify graders about late submissions'; $string['sendlatenotifications_help'] = 'If enabled, graders (usually teachers) receive a message whenever a student submits an assignment late. Message methods are configurable.'; $string['sendsubmissionreceipts'] = 'Send submission receipt to students'; diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 3cf8966a6e6..2b6fa0ff3b5 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -962,7 +962,8 @@ class assign { $displaygrade = format_float($grade); } $o = ''; - $o .= ''; + $o .= ''; $o .= ' / ' . format_float($this->get_instance()->grade,2); $o .= ''; return $o; @@ -984,7 +985,8 @@ class assign { } } if ($editing) { - $o = ''; $o .= ''; foreach ($this->cache['scale'] as $optionid => $option) { $selected = '';