diff --git a/question/behaviour/rendererbase.php b/question/behaviour/rendererbase.php index adf93634c3e91..e04a638c1f0c9 100644 --- a/question/behaviour/rendererbase.php +++ b/question/behaviour/rendererbase.php @@ -86,24 +86,30 @@ public function manual_comment_fields(question_attempt $qa, question_display_opt $commenteditor = html_writer::tag('div', html_writer::tag('textarea', s($commenttext), array('id' => $id, 'name' => $inputname, 'rows' => 10, 'cols' => 60))); + $commenteditor .= html_writer::end_tag('div'); - $commenteditor .= html_writer::start_tag('div'); - if (count($formats == 1)) { + $editorformat = ''; + if (count($formats) == 1) { reset($formats); - $commenteditor .= html_writer::empty_tag('input', array('type' => 'hidden', + $editorformat .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $inputname . 'format', 'value' => key($formats))); - } else { - $commenteditor .= html_writer::select( - $formats, $inputname . 'format', $commentformat, ''); + $editorformat = html_writer::start_tag('div', array('class' => 'fitem')); + $editorformat .= html_writer::start_tag('div', array('class' => 'fitemtitle')); + $editorformat .= html_writer::tag('label', get_string('format'), array('for'=>'menu'.$inputname.'format')); + $editorformat .= html_writer::end_tag('div'); + $editorformat .= html_writer::start_tag('div', array('class' => 'felement fhtmleditor')); + $editorformat .= html_writer::select($formats, $inputname.'format', $commentformat, ''); + $editorformat .= html_writer::end_tag('div'); + $editorformat .= html_writer::end_tag('div'); } - $commenteditor .= html_writer::end_tag('div'); $comment = html_writer::tag('div', html_writer::tag('div', html_writer::tag('label', get_string('comment', 'question'), array('for' => $id)), array('class' => 'fitemtitle')) . html_writer::tag('div', $commenteditor, array('class' => 'felement fhtmleditor')), array('class' => 'fitem')); + $comment .= $editorformat; $mark = ''; if ($qa->get_max_mark()) { @@ -117,6 +123,7 @@ public function manual_comment_fields(question_attempt $qa, question_display_opt 'type' => 'text', 'size' => $fieldsize, 'name' => $markfield, + 'id'=> $markfield ); if (!is_null($currentmark)) { $attributes['value'] = $qa->format_fraction_as_mark( diff --git a/question/format/xhtml/format.php b/question/format/xhtml/format.php index 6110d2761822b..7b3d9b657c4ec 100644 --- a/question/format/xhtml/format.php +++ b/question/format/xhtml/format.php @@ -93,18 +93,24 @@ protected function writequestion($question) { } $expout .= "\n"; break; - case 'shortanswer': - $expout .= "\n"; + case SHORTANSWER: + $expout .= html_writer::start_tag('ul', array('class' => 'shortanswer')); + $expout .= html_writer::start_tag('li'); + $expout .= html_writer::label(get_string('answer'), 'quest_'.$id, false, array('class' => 'accesshide')); + $expout .= html_writer::empty_tag('input', array('id' => "quest_$id", 'name' => "quest_$id", 'type' => 'text')); + $expout .= html_writer::end_tag('li'); + $expout .= html_writer::end_tag('ul'); break; - case 'numerical': - $expout .= "\n"; + case NUMERICAL: + $expout .= html_writer::start_tag('ul', array('class' => 'numerical')); + $expout .= html_writer::start_tag('li'); + $expout .= html_writer::label(get_string('answer'), 'quest_'.$id, false, array('class' => 'accesshide')); + $expout .= html_writer::empty_tag('input', array('id' => "quest_$id", 'name' => "quest_$id", 'type' => 'text')); + $expout .= html_writer::end_tag('li'); + $expout .= html_writer::end_tag('ul'); break; - case 'match': - $expout .= "\n"; + $expout .= html_writer::end_tag('ul'); break; case 'description': break; diff --git a/question/type/calculated/lang/en/qtype_calculated.php b/question/type/calculated/lang/en/qtype_calculated.php index 36e2d1d25e3f1..a27d9bea6e746 100644 --- a/question/type/calculated/lang/en/qtype_calculated.php +++ b/question/type/calculated/lang/en/qtype_calculated.php @@ -49,6 +49,7 @@ $string['decimals'] = 'with {$a}'; $string['deleteitem'] = 'Delete item'; $string['deletelastitem'] = 'Delete last item'; +$string['distributionoption'] = 'Select distribution option'; $string['editdatasets'] = 'Edit the wildcards datasets'; $string['editdatasets_help'] = 'Wildcard values may be created by entering a number in each wild card field then clicking the add button. To automatically generate 10 or more values, select the number of values required before clicking the add button. A uniform distribution means any value between the limits is equally likely to be generated; a loguniform distribution means that values towards the lower limit are more likely.'; $string['editdatasets_link'] = 'question/type/calculated'; @@ -79,6 +80,7 @@ $string['keptlocal2'] = 'a file from the same question private set of files as before'; $string['keptlocal3'] = 'a link from the same question private set of links as before'; $string['lastitem(s)'] = 'last items(s)'; +$string['lengthoption'] = 'Select length option'; $string['loguniform'] = 'Loguniform'; $string['loguniformbit'] = 'digits, from a loguniform distribution'; $string['makecopynextpage'] = 'Next page (new question)'; diff --git a/question/type/calculated/questiontype.php b/question/type/calculated/questiontype.php index 2ffb7d5f8b62a..cc1b773e56de6 100644 --- a/question/type/calculated/questiontype.php +++ b/question/type/calculated/questiontype.php @@ -751,11 +751,13 @@ public function custom_generator_tools($datasetdef) { ? 'decimals' : 'significantfigures'), 'qtype_calculated', $i); } - $menu1 = html_writer::select($lengthoptions, 'calclength[]', $regs[4], null); + $menu1 = html_writer::label(get_string('lengthoption', 'qtype_calculated'), 'menucalclength', false, array('class' => 'accesshide')); + $menu1 .= html_writer::select($lengthoptions, 'calclength[]', $regs[4], null); $options = array('uniform' => get_string('uniformbit', 'qtype_calculated'), 'loguniform' => get_string('loguniformbit', 'qtype_calculated')); - $menu2 = html_writer::select($options, 'calcdistribution[]', $regs[1], null); + $menu2 = html_writer::label(get_string('distributionoption', 'qtype_calculated'), 'menucalcdistribution', false, array('class' => 'accesshide')); + $menu2 .= html_writer::select($options, 'calcdistribution[]', $regs[1], null); return '
' diff --git a/question/type/essay/renderer.php b/question/type/essay/renderer.php index ac2bac96c8fc4..1905e2ecd5ca0 100644 --- a/question/type/essay/renderer.php +++ b/question/type/essay/renderer.php @@ -219,12 +219,14 @@ public function response_area_input($name, $qa, $step, $lines, $context) { array('id' => $id, 'name' => $inputname, 'rows' => $lines, 'cols' => 60))); $output .= html_writer::start_tag('div'); - if (count($formats == 1)) { + if (count($formats) == 1) { reset($formats); $output .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $inputname . 'format', 'value' => key($formats))); } else { + $output .= html_writer::label(get_string('format'), 'menu' . $inputname . 'format', false); + $output .= ' '; $output .= html_writer::select($formats, $inputname . 'format', $responseformat, ''); } $output .= html_writer::end_tag('div'); diff --git a/question/type/match/lang/en/qtype_match.php b/question/type/match/lang/en/qtype_match.php index a096607bbc8f7..5dd3c4ad3297c 100644 --- a/question/type/match/lang/en/qtype_match.php +++ b/question/type/match/lang/en/qtype_match.php @@ -24,6 +24,7 @@ */ $string['addmoreqblanks'] = '{no} More Sets of Blanks'; +$string['answer'] = 'Answer {$a}'; $string['availablechoices'] = 'Available choices'; $string['correctansweris'] = 'The correct answer is: {$a}'; $string['filloutthreeqsandtwoas'] = 'You must provide at least two questions and three answers. You can provide extra wrong answers by giving an answer with a blank question. Entries where both the question and the answer are blank will be ignored.'; diff --git a/question/type/match/renderer.php b/question/type/match/renderer.php index 8a3372c843331..2cadb7ef93c5f 100644 --- a/question/type/match/renderer.php +++ b/question/type/match/renderer.php @@ -53,6 +53,7 @@ public function formulation_and_controls(question_attempt $qa, $result .= html_writer::start_tag('tbody'); $parity = 0; + $i = 1; foreach ($stemorder as $key => $stemid) { $result .= html_writer::start_tag('tr', array('class' => 'r' . $parity)); @@ -80,12 +81,14 @@ public function formulation_and_controls(question_attempt $qa, } $result .= html_writer::tag('td', + html_writer::label(get_string('answer', 'qtype_match', $i), 'menu' . $qa->get_qt_field_name('sub' . $key), false, array('class' => 'accesshide')) . html_writer::select($choices, $qa->get_qt_field_name('sub' . $key), $selected, array('0' => 'choose'), array('disabled' => $options->readonly)) . ' ' . $feedbackimage, array('class' => $classes)); $result .= html_writer::end_tag('tr'); $parity = 1 - $parity; + $i++; } $result .= html_writer::end_tag('tbody'); $result .= html_writer::end_tag('table'); diff --git a/question/type/multianswer/renderer.php b/question/type/multianswer/renderer.php index 682e905bc8e39..0134eb4e7b583 100644 --- a/question/type/multianswer/renderer.php +++ b/question/type/multianswer/renderer.php @@ -228,11 +228,11 @@ public function subquestion(question_attempt $qa, question_display_options $opti s($correctanswer->answer), $options); $output = ''; - $output .= html_writer::start_tag('label', array('class' => 'subq')); + $output .= html_writer::tag('label', get_string('answer'), + array('class' => 'subq accesshide', 'for' => $inputattributes['id'])); $output .= html_writer::empty_tag('input', $inputattributes); $output .= $feedbackimg; $output .= $feedbackpopup; - $output .= html_writer::end_tag('label'); return $output; } @@ -279,7 +279,6 @@ public function subquestion(question_attempt $qa, question_display_options $opti $inputattributes['class'] = $this->feedback_class($matchinganswer->fraction); $feedbackimg = $this->feedback_image($matchinganswer->fraction); } - $select = html_writer::select($choices, $qa->get_qt_field_name($fieldname), $response, array('' => ''), $inputattributes); @@ -296,11 +295,11 @@ public function subquestion(question_attempt $qa, question_display_options $opti $qa, 'question', 'answer', $rightanswer->id), $options); $output = ''; - $output .= html_writer::start_tag('label', array('class' => 'subq')); + $output .= html_writer::tag('label', get_string('answer'), + array('class' => 'subq accesshide', 'for' => $inputattributes['id'])); $output .= $select; $output .= $feedbackimg; $output .= $feedbackpopup; - $output .= html_writer::end_tag('label'); return $output; } diff --git a/question/type/numerical/lang/en/qtype_numerical.php b/question/type/numerical/lang/en/qtype_numerical.php index 75dc4570c0504..fb4784b6c7718 100644 --- a/question/type/numerical/lang/en/qtype_numerical.php +++ b/question/type/numerical/lang/en/qtype_numerical.php @@ -26,6 +26,7 @@ $string['acceptederror'] = 'Accepted error'; $string['addmoreanswerblanks'] = 'Blanks for {no} More Answers'; $string['addmoreunitblanks'] = 'Blanks for {no} More Units'; +$string['answercolon'] = 'Answer:'; $string['answermustbenumberorstar'] = 'The answer must be a number, for example -1.234 or 3e8, or \'*\'.'; $string['answerno'] = 'Answer {$a}'; $string['decfractionofquestiongrade'] = 'as a fraction (0-1) of the question grade'; diff --git a/question/type/numerical/renderer.php b/question/type/numerical/renderer.php index 7689a2c9b218b..d1b7c0ad30cad 100644 --- a/question/type/numerical/renderer.php +++ b/question/type/numerical/renderer.php @@ -98,7 +98,9 @@ public function formulation_and_controls(question_attempt $qa, array('class' => 'unitchoices')); } else if ($question->unitdisplay == qtype_numerical::UNITSELECT) { - $unitchoice = html_writer::select($question->ap->get_unit_options(), + $unitchoice = html_writer::label(get_string('selectunit', 'qtype_numerical'), + 'menu' . $qa->get_qt_field_name('unit'), false, array('class' => 'accesshide')); + $unitchoice .= html_writer::select($question->ap->get_unit_options(), $qa->get_qt_field_name('unit'), $selectedunit, array(''=>'choosedots'), array('disabled' => $options->readonly)); } @@ -111,7 +113,10 @@ public function formulation_and_controls(question_attempt $qa, } if ($placeholder) { - $questiontext = substr_replace($questiontext, $input, + $inputinplace = html_writer::tag('label', get_string('answer'), + array('for' => $inputattributes['id'], 'class' => 'accesshide')); + $inputinplace .= $input; + $questiontext = substr_replace($questiontext, $inputinplace, strpos($questiontext, $placeholder), strlen($placeholder)); } @@ -119,8 +124,8 @@ public function formulation_and_controls(question_attempt $qa, if (!$placeholder) { $result .= html_writer::start_tag('div', array('class' => 'ablock')); - $result .= get_string('answer', 'qtype_shortanswer', - html_writer::tag('div', $input, array('class' => 'answer'))); + $result .= html_writer::tag('label', get_string('answercolon', 'qtype_numerical'), array('for' => $inputattributes['id'])); + $result .= html_writer::tag('span', $input, array('class' => 'answer')); $result .= html_writer::end_tag('div'); } diff --git a/question/type/shortanswer/renderer.php b/question/type/shortanswer/renderer.php index e7879bfb68039..cfdca17d8265c 100644 --- a/question/type/shortanswer/renderer.php +++ b/question/type/shortanswer/renderer.php @@ -71,11 +71,13 @@ public function formulation_and_controls(question_attempt $qa, $placeholder = $matches[0]; $inputattributes['size'] = round(strlen($placeholder) * 1.1); } - $input = html_writer::empty_tag('input', $inputattributes) . $feedbackimg; if ($placeholder) { - $questiontext = substr_replace($questiontext, $input, + $inputinplace = html_writer::tag('label', get_string('answer'), + array('for' => $inputattributes['id'], 'class' => 'accesshide')); + $inputinplace .= $input; + $questiontext = substr_replace($questiontext, $inputinplace, strpos($questiontext, $placeholder), strlen($placeholder)); } @@ -83,8 +85,9 @@ public function formulation_and_controls(question_attempt $qa, if (!$placeholder) { $result .= html_writer::start_tag('div', array('class' => 'ablock')); - $result .= get_string('answer', 'qtype_shortanswer', - html_writer::tag('div', $input, array('class' => 'answer'))); + $result .= html_writer::tag('label', get_string('answer', 'qtype_shortanswer', + html_writer::tag('span', $input, array('class' => 'answer'))), + array('for' => $inputattributes['id'])); $result .= html_writer::end_tag('div'); }