diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e2ebb76e53..06a63723ab 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -27,6 +27,8 @@ Studio: Continued modification of Studio pages to follow a RESTful framework. includes Settings pages, edit page for Subsection and Unit, and interfaces for updating xblocks (xmodules) and getting their editing HTML. +LMS: Improve accessibility of inline discussions in courseware. + Blades: Put 2nd "Hide output" button at top of test box & increase text size for code response questions. BLD-126. diff --git a/common/static/coffee/src/discussion/discussion_module_view.coffee b/common/static/coffee/src/discussion/discussion_module_view.coffee index f99eba3872..e23215561e 100644 --- a/common/static/coffee/src/discussion/discussion_module_view.coffee +++ b/common/static/coffee/src/discussion/discussion_module_view.coffee @@ -2,6 +2,8 @@ if Backbone? class @DiscussionModuleView extends Backbone.View events: "click .discussion-show": "toggleDiscussion" + "keypress .discussion-show": + (event) -> DiscussionUtil.activateOnEnter(event, toggleDiscussion) "click .new-post-btn": "toggleNewPost" "click .new-post-cancel": "hideNewPost" "click .discussion-paginator a": "navigateToPage" @@ -70,6 +72,7 @@ if Backbone? DiscussionUtil.safeAjax $elem: $elem $loading: $elem + takeFocus: true url: url type: "GET" dataType: 'json' @@ -77,6 +80,7 @@ if Backbone? error: error renderDiscussion: ($elem, response, textStatus, discussionId) => + $elem.focus() window.user = new DiscussionUser(response.user_info) Content.loadContentInfos(response.annotated_content_info) DiscussionUtil.loadRoles(response.roles) diff --git a/common/static/coffee/src/discussion/utils.coffee b/common/static/coffee/src/discussion/utils.coffee index 89014c5f57..466beff419 100644 --- a/common/static/coffee/src/discussion/utils.coffee +++ b/common/static/coffee/src/discussion/utils.coffee @@ -2,9 +2,12 @@ $ -> if !window.$$contents window.$$contents = {} $.fn.extend - loading: -> - @$_loading = $("
Loading content
") + loading: (takeFocus) -> + @$_loading = $("
Loading content
") $(this).after(@$_loading) + if takeFocus + DiscussionUtil.makeFocusTrap(@$_loading) + @$_loading.focus() loaded: -> @$_loading.remove() @@ -87,6 +90,11 @@ class @DiscussionUtil "notifications_status" : "/notification_prefs/status" }[name] + @activateOnEnter: (event, func) -> + if event.which == 13 + e.preventDefault() + func(event) + @makeFocusTrap: (elem) -> elem.keydown( (event) -> @@ -127,7 +135,7 @@ class @DiscussionUtil if params["loadingCallback"]? params["loadingCallback"].apply(params["$loading"]) else - params["$loading"].loading() + params["$loading"].loading(params["takeFocus"]) if !params["error"] params["error"] = => @discussionAlert( diff --git a/common/static/coffee/src/discussion/views/discussion_content_view.coffee b/common/static/coffee/src/discussion/views/discussion_content_view.coffee index c695955897..9c3c4a01f5 100644 --- a/common/static/coffee/src/discussion/views/discussion_content_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_content_view.coffee @@ -4,7 +4,8 @@ if Backbone? events: "click .discussion-flag-abuse": "toggleFlagAbuse" - "keypress .discussion-flag-abuse": "toggleFlagAbuseKeypress" + "keypress .discussion-flag-abuse": + (event) -> DiscussionUtil.activateOnEnter(event, toggleFlagAbuse) attrRenderer: endorsed: (endorsed) -> @@ -106,11 +107,6 @@ if Backbone? @model.bind('change', @renderPartialAttrs, @) - toggleFollowingKeypress: (event) -> - # Activate on spacebar or enter - if event.which == 32 or event.which == 13 - @toggleFollowing(event) - toggleFollowing: (event) -> event.preventDefault() $elem = $(event.target) @@ -126,11 +122,6 @@ if Backbone? url: url type: "POST" - toggleFlagAbuseKeypress: (event) -> - # Activate on spacebar or enter - if event.which == 32 or event.which == 13 - @toggleFlagAbuse(event) - toggleFlagAbuse: (event) -> event.preventDefault() if window.user.id in @model.get("abuse_flaggers") or (DiscussionUtil.isFlagModerator and @model.get("abuse_flaggers").length > 0) diff --git a/common/static/coffee/src/discussion/views/discussion_thread_profile_view.coffee b/common/static/coffee/src/discussion/views/discussion_thread_profile_view.coffee index b8cecbf39b..7130ac555c 100644 --- a/common/static/coffee/src/discussion/views/discussion_thread_profile_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_thread_profile_view.coffee @@ -4,7 +4,8 @@ if Backbone? events: "click .discussion-vote": "toggleVote" "click .action-follow": "toggleFollowing" - "keypress .action-follow": "toggleFollowingKeypress" + "keypress .action-follow": + (event) -> DiscussionUtil.activateOnEnter(event, toggleFollowing) "click .expand-post": "expandPost" "click .collapse-post": "collapsePost" diff --git a/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee b/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee index b5f478a8af..1a3f8929e1 100644 --- a/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee @@ -4,10 +4,12 @@ if Backbone? events: "click .discussion-vote": "toggleVote" "click .discussion-flag-abuse": "toggleFlagAbuse" - "keypress .discussion-flag-abuse": "toggleFlagAbuseKeypress" + "keypress .discussion-flag-abuse": + (event) -> DiscussionUtil.activateOnEnter(event, toggleFlagAbuse) "click .admin-pin": "togglePin" "click .action-follow": "toggleFollowing" - "keypress .action-follow": "toggleFollowingKeypress" + "keypress .action-follow": + (event) -> DiscussionUtil.activateOnEnter(event, toggleFollowing) "click .action-edit": "edit" "click .action-delete": "_delete" "click .action-openclose": "toggleClosed" diff --git a/common/static/coffee/src/discussion/views/thread_response_show_view.coffee b/common/static/coffee/src/discussion/views/thread_response_show_view.coffee index aaff4a4a39..eaed0568c2 100644 --- a/common/static/coffee/src/discussion/views/thread_response_show_view.coffee +++ b/common/static/coffee/src/discussion/views/thread_response_show_view.coffee @@ -6,7 +6,8 @@ if Backbone? "click .action-delete": "_delete" "click .action-edit": "edit" "click .discussion-flag-abuse": "toggleFlagAbuse" - "keypress .discussion-flag-abuse": "toggleFlagAbuseKeypress" + "keypress .discussion-flag-abuse": + (event) -> DiscussionUtil.activateOnEnter(event, toggleFlagAbuse) $: (selector) -> @$el.find(selector) diff --git a/lms/templates/discussion/_discussion_module.html b/lms/templates/discussion/_discussion_module.html index 37f8052520..00f6c94801 100644 --- a/lms/templates/discussion/_discussion_module.html +++ b/lms/templates/discussion/_discussion_module.html @@ -2,6 +2,6 @@ <%include file="_underscore_templates.html" />
- Show Discussion + Show Discussion ${_("New Post")}