Skip to content

Commit 829c180

Browse files
emanoylovEmanoil Manoylov
andauthored
Questionnaire/Accessibility: Check boxes missing group label (#501)
Co-authored-by: Emanoil Manoylov <[email protected]>
1 parent 3813cba commit 829c180

File tree

6 files changed

+36
-21
lines changed

6 files changed

+36
-21
lines changed

classes/question/check.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function allows_dependents() {
8181
* @return \stdClass The check question context tags.
8282
*
8383
*/
84-
protected function question_survey_display($response, $dependants, $blankquestionnaire=false) {
84+
protected function question_survey_display($response, $dependants, $blankquestionnaire = false) {
8585
// Check boxes.
8686
$otherempty = false;
8787
if (!empty($response)) {
@@ -148,6 +148,9 @@ protected function question_survey_display($response, $dependants, $blankquestio
148148
format_string(stripslashes($response->answers[$this->id][$id]->value)) : '');
149149
$checkbox->label = format_text($choice->other_choice_display().'', FORMAT_HTML, ['noclean' => true]);
150150
}
151+
if (!empty($this->qlegend)) {
152+
$checkbox->alabel = strip_tags("{$this->qlegend} {$checkbox->label}");
153+
}
151154
$choicetags->qelements[] = (object)['choice' => $checkbox];
152155
}
153156
if ($otherempty) {
@@ -192,6 +195,9 @@ protected function response_survey_display($response) {
192195
$chobj->name = $id.$uniquetag++;
193196
$chobj->content = (($othertext === '') ? $id : $othertext);
194197
}
198+
if (!empty($this->qlegend)) {
199+
$chobj->alabel = strip_tags("{$this->qlegend} {$chobj->content}");
200+
}
195201
$resptags->choices[] = $chobj;
196202
}
197203
return $resptags;

classes/question/question.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ abstract class question {
9494
/** @var string $content The question's content. */
9595
public $content = '';
9696

97+
/** @var string $qlegend The question's legend. */
98+
public $qlegend = '';
99+
97100
/** @var string $allchoices The list of all question's choices. */
98101
public $allchoices = '';
99102

@@ -953,10 +956,12 @@ public function questionstart_survey_display($qnum, $response=null) {
953956
} else if ($this->type_id == QUESESSAY) {
954957
$pagetags->label = (object)['for' => 'q' . $this->id];
955958
}
959+
$content = file_rewrite_pluginfile_urls($this->content, 'pluginfile.php',
960+
$this->context->id, 'mod_questionnaire', 'question', $this->id);
956961
$options = ['noclean' => true, 'para' => false, 'filter' => true, 'context' => $this->context, 'overflowdiv' => true];
957-
$content = format_text(file_rewrite_pluginfile_urls($this->content, 'pluginfile.php',
958-
$this->context->id, 'mod_questionnaire', 'question', $this->id), FORMAT_HTML, $options);
959-
$pagetags->qcontent = $content;
962+
$pagetags->qcontent = format_text($content, FORMAT_HTML, $options);
963+
$this->qlegend = strip_tags($content);
964+
$pagetags->qlegend = $this->qlegend;
960965

961966
return $pagetags;
962967
}

templates/question_check.mustache

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,13 @@
5555
}}
5656
<!-- Begin HTML generated from question_check template. -->
5757
{{#qelements}}
58-
{{#choice}}
59-
<input id="{{choice.id}}" value="{{choice.value}}" name="{{choice.name}}" type="checkbox" {{#choice.checked}}checked="checked"{{/choice.checked}} />
60-
<label for="{{choice.id}}">{{{choice.label}}}</label>
61-
{{#choice.oname}}<input size="25" name="{{choice.oname}}" onclick="other_check(name)" value="{{choice.ovalue}}" type="text" />{{/choice.oname}}
62-
<br />
63-
{{/choice}}
58+
{{#choice}}
59+
<input id="{{choice.id}}" value="{{choice.value}}" name="{{choice.name}}" type="checkbox"
60+
{{#choice.checked}}checked="checked"{{/choice.checked}} aria-label="{{choice.alabel}}"/>
61+
<label for="{{choice.id}}">{{{choice.label}}}</label>
62+
{{#choice.oname}}<input size="25" name="{{choice.oname}}" onclick="other_check(name)" value="{{choice.ovalue}}"
63+
type="text"/>{{/choice.oname}}
64+
<br/>
65+
{{/choice}}
6466
{{/qelements}}
6567
<!-- End HTML generated from question_check template. -->

templates/question_container.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<fieldset id="qn-{{fieldset.id}}" class="{{fieldset.class}}">
4646
{{{dependencylist}}}
4747
{{#qnum}}
48-
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}}</legend>
48+
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}} {{qlegend}}</legend>
4949
<div class="qn-legend">
5050
<div class="qn-info">
5151
<h2 class="qn-number">{{{qnum}}}</h2>

templates/response_check.mustache

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,17 @@
4848
<div class="questionnaire_response questionnaire_check">{{!
4949
}}{{#choices}}{{!
5050
}}{{#selected}}{{!
51-
}}<span class="selected">{{^pdf}}<input type="checkbox" name="{{name}}" checked="checked" disabled="disabled" />{{/pdf}}
52-
{{{content}}}{{#pdf}} &#10003;{{/pdf}}</span>
51+
}}<span class="selected">{{^pdf}}
52+
<input type="checkbox" name="{{name}}" checked="checked" disabled="disabled" aria-label="{{alabel}}"/>{{/pdf}}
53+
{{{content}}}{{#pdf}} &#10003;{{/pdf}}</span>
5354
{{#othercontent}}<span class="response text">{{{.}}}</span>{{/othercontent}}
54-
{{/selected}}
55+
{{/selected}}
5556
{{^selected}}
56-
<span class="unselected"{{#pdf}} color="gray"{{/pdf}}>{{^pdf}}<input type="checkbox" name="{{name}}" disabled="disabled" />{{/pdf}}
57-
{{{content}}}</span>
57+
<span class="unselected"{{#pdf}} color="gray"{{/pdf}}>{{^pdf}}
58+
<input type="checkbox" name="{{name}}" disabled="disabled" aria-label="{{alabel}}"/>{{/pdf}}
59+
{{{content}}}</span>
5860
{{/selected}}
59-
<br />
61+
<br/>
6062
{{/choices}}
6163
</div>
6264
<!-- End HTML generated from response_check template. -->

templates/response_container.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@
5454
}}
5555
<!-- Begin fieldset generated from response_container template. -->
5656
<div class="box individualresp">
57-
<fieldset id="{{fieldset.id}}" class="{{fieldset.class}}">
57+
<fieldset id="qn-{{fieldset.id}}" class="{{fieldset.class}}">
5858
{{#qnum}}
59-
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}}</legend>
59+
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}} {{qlegend}}</legend>
6060
<div class="qn-legend">
6161
<div class="qn-info">
6262
<h2 class="qn-number">{{{.}}}</h2>
@@ -74,10 +74,10 @@
7474
{{#responses}}
7575
{{#respdate}}<div class="respdate">{{respdate}}</div>{{/respdate}}
7676
<fieldset id="{{fieldset.id}}" class="{{fieldset.class}}">
77-
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}</legend>
77+
<legend class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}} {{qlegend}}</legend>
7878
<div class="qn-legend">
7979
<div class="qn-info">
80-
<div class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}</div>
80+
<div class="accesshide">{{# str }}questionnum, mod_questionnaire{{/ str}}{{{qnum}}} {{qlegend}}</div>
8181
</div>
8282
{{{required}}}
8383
</div>

0 commit comments

Comments
 (0)