From 0accbaee07ccb4d87973c1bc7862072f5149a4ed Mon Sep 17 00:00:00 2001 From: Vik Paruchuri Date: Thu, 10 Oct 2013 11:59:43 -0400 Subject: [PATCH] Various open ended accessibility fixes --- .../xmodule/js/src/combinedopenended/display.coffee | 2 +- .../combined_open_ended_modulev1.py | 7 ++++++- .../open_ended_grading_classes/open_ended_module.py | 9 ++++++++- .../open_ended_grading_classes/self_assessment_module.py | 8 ++++++++ .../combinedopenended/combined_open_ended_status.html | 1 + .../combinedopenended/openended/open_ended.html | 6 +++--- .../combinedopenended/openended/open_ended_rubric.html | 2 +- .../selfassessment/self_assessment_prompt.html | 6 +++--- 8 files changed, 31 insertions(+), 10 deletions(-) diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee index 030d93e9b5..644f63e3ec 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee @@ -533,7 +533,7 @@ class @CombinedOpenEnded gentle_alert: (msg) => if @$el.find(@oe_alert_sel).length @$el.find(@oe_alert_sel).remove() - alert_elem = "
" + msg + "
" + alert_elem = "" @$el.find('.open-ended-action').after(alert_elem) @$el.find(@oe_alert_sel).css(opacity: 0).animate(opacity: 1, 700) diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py index 45a5379683..8c3da6d5b2 100644 --- a/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py +++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py @@ -819,10 +819,14 @@ class CombinedOpenEndedV1Module(): Output: The status html to be rendered """ status = [] + current_task_human_name = "" for i in xrange(0, len(self.task_xml)): human_task_name = self.extract_human_name_from_task(self.task_xml[i]) - task_data = {'task_number': i + 1, 'human_task' : human_task_name, 'current' : self.current_task_number==i} + # Extract the name of the current task for screen readers. + if self.current_task_number == i: + current_task_human_name = human_task_name + task_data = {'task_number': i + 1, 'human_task': human_task_name, 'current': self.current_task_number==i} status.append(task_data) context = { @@ -830,6 +834,7 @@ class CombinedOpenEndedV1Module(): 'grader_type_image_dict': GRADER_TYPE_IMAGE_DICT, 'legend_list': LEGEND_LIST, 'render_via_ajax': render_via_ajax, + 'current_task_human_name': current_task_human_name, } status_html = self.system.render_template("{0}/combined_open_ended_status.html".format(self.TEMPLATE_DIR), context) diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py index 2d973aa9ed..8b88e676ae 100644 --- a/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py +++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py @@ -696,6 +696,13 @@ class OpenEndedModule(openendedchild.OpenEndedChild): correct = "" previous_answer = self.get_display_answer() + # Use the module name as a unique id to pass to the template. + try: + module_id = self.system.location.name + except AttributeError: + # In cases where we don't have a system or a location, use a fallback. + module_id = "open_ended" + context = { 'prompt': self.child_prompt, 'previous_answer': previous_answer, @@ -703,7 +710,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): 'allow_reset': self._allow_reset(), 'rows': 30, 'cols': 80, - 'id': 'open_ended', + 'module_id': module_id, 'msg': post_assessment, 'child_type': 'openended', 'correct': correct, diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py index 6c0d1bbf08..d36aa7d62c 100644 --- a/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py +++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py @@ -57,6 +57,13 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild): # set context variables and render template previous_answer = self.get_display_answer() + # Use the module name as a unique id to pass to the template. + try: + module_id = self.system.location.name + except AttributeError: + # In cases where we don't have a system or a location, use a fallback. + module_id = "self_assessment" + context = { 'prompt': self.child_prompt, 'previous_answer': previous_answer, @@ -66,6 +73,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild): 'allow_reset': self._allow_reset(), 'child_type': 'selfassessment', 'accept_file_upload': self.accept_file_upload, + 'module_id': module_id, } html = system.render_template('{0}/self_assessment_prompt.html'.format(self.TEMPLATE_DIR), context) diff --git a/lms/templates/combinedopenended/combined_open_ended_status.html b/lms/templates/combinedopenended/combined_open_ended_status.html index 866eaccb1c..a74d3f03c0 100644 --- a/lms/templates/combinedopenended/combined_open_ended_status.html +++ b/lms/templates/combinedopenended/combined_open_ended_status.html @@ -12,4 +12,5 @@ %endfor + diff --git a/lms/templates/combinedopenended/openended/open_ended.html b/lms/templates/combinedopenended/openended/open_ended.html index 52d8042038..3a73ebd6b0 100644 --- a/lms/templates/combinedopenended/openended/open_ended.html +++ b/lms/templates/combinedopenended/openended/open_ended.html @@ -1,5 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> -
+
${prompt|n} @@ -7,9 +7,9 @@
- ${_("Response")} +
- +
diff --git a/lms/templates/combinedopenended/openended/open_ended_rubric.html b/lms/templates/combinedopenended/openended/open_ended_rubric.html index 55194a9318..1d73647ec7 100644 --- a/lms/templates/combinedopenended/openended/open_ended_rubric.html +++ b/lms/templates/combinedopenended/openended/open_ended_rubric.html @@ -11,7 +11,7 @@ % for i in range(len(categories)): <% category = categories[i] %> <% m = randint(0,1000) %> - ${category['description']} + ${category['description']}
    % for j in range(len(category['options'])): <% option = category['options'][j] %> diff --git a/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html b/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html index 93b0e7bacd..be8e346adb 100644 --- a/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html +++ b/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html @@ -1,5 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> -
    @@ -8,10 +8,10 @@
    - ${_("Response")} +
    - +