From 7f60308a353a076af2b9404e0746ccb60e792870 Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Fri, 2 Aug 2013 20:25:35 +0800 Subject: [PATCH 1/3] MDL-35934 Filemanager: add aria attributes for editing file/folder. Add unique reference ids --- files/renderer.php | 2 +- lib/form/filemanager.js | 9 ++++++++- mod/data/field/file/field.class.php | 2 +- mod/data/field/picture/field.class.php | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/files/renderer.php b/files/renderer.php index a48187eae72..16dc4783131 100644 --- a/files/renderer.php +++ b/files/renderer.php @@ -114,7 +114,7 @@ class core_files_renderer extends plugin_renderer_base { array('invalidjson', 'repository'), array('popupblockeddownload', 'repository'), array('unknownoriginal', 'repository'), array('confirmdeletefolder', 'repository'), array('confirmdeletefilewithhref', 'repository'), array('confirmrenamefolder', 'repository'), - array('confirmrenamefile', 'repository'), array('newfolder', 'repository') + array('confirmrenamefile', 'repository'), array('newfolder', 'repository'), array('edit', 'moodle') ) ); if (empty($filemanagertemplateloaded)) { diff --git a/lib/form/filemanager.js b/lib/form/filemanager.js index a63119cd6a7..4f966ce0649 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -103,9 +103,14 @@ M.form_filemanager.init = function(Y, options) { this.pathbar.removeChild(this.pathnode); } // initialize 'select file' panel - this.selectnode = Y.Node.createWithFilesSkin(M.form_filemanager.templates.fileselectlayout); + this.selectnode = Y.Node.createWithFilesSkin(M.form_filemanager.templates.fileselectlayout). + set('aria-live', 'assertive'). + set('role', 'dialog'); this.selectnode.generateID(); + + var labelid = 'fm-dialog-label_'+ this.selectnode.get('id'); this.selectui = new Y.Panel({ + headerContent: '' + M.str.moodle.edit + '', srcNode : this.selectnode, zIndex : 7600, centered : true, @@ -114,6 +119,7 @@ M.form_filemanager.init = function(Y, options) { render : true }); this.selectui.plug(Y.Plugin.Drag,{handles:['#'+this.selectnode.get('id')+' .yui3-widget-hd']}); + Y.one('#'+this.selectnode.get('id')).setAttribute('aria-labelledby', labelid); this.selectui.hide(); this.setup_select_file(); // setup buttons onclick events @@ -1013,6 +1019,7 @@ M.form_filemanager.init = function(Y, options) { } // show panel this.selectui.show(); + document.getElementById(this.selectui.get('id')).focus(); }, render: function() { this.print_path(); diff --git a/mod/data/field/file/field.class.php b/mod/data/field/file/field.class.php index bc7b8778654..5ea4f564c6b 100644 --- a/mod/data/field/file/field.class.php +++ b/mod/data/field/file/field.class.php @@ -98,7 +98,7 @@ class data_field_file extends data_field_base { array('invalidjson', 'repository'), array('popupblockeddownload', 'repository'), array('unknownoriginal', 'repository'), array('confirmdeletefolder', 'repository'), array('confirmdeletefilewithhref', 'repository'), array('confirmrenamefolder', 'repository'), - array('confirmrenamefile', 'repository') + array('confirmrenamefile', 'repository'), array('edit', 'moodle') ) ); diff --git a/mod/data/field/picture/field.class.php b/mod/data/field/picture/field.class.php index 63ed44038a3..ae02f3d0744 100644 --- a/mod/data/field/picture/field.class.php +++ b/mod/data/field/picture/field.class.php @@ -112,7 +112,7 @@ class data_field_picture extends data_field_base { array('invalidjson', 'repository'), array('popupblockeddownload', 'repository'), array('unknownoriginal', 'repository'), array('confirmdeletefolder', 'repository'), array('confirmdeletefilewithhref', 'repository'), array('confirmrenamefolder', 'repository'), - array('confirmrenamefile', 'repository') + array('confirmrenamefile', 'repository'), array('edit', 'moodle') ) ); From 26489591ab8df94d263ad2cc8a6df0a57c02a2f0 Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Thu, 8 Aug 2013 14:02:59 +0800 Subject: [PATCH 2/3] MDL-35934 Filemanager: update set focus attribute. Also limit the display string for the dialog header to fit nicely on mobile devices --- lib/form/filemanager.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/form/filemanager.js b/lib/form/filemanager.js index 4f966ce0649..7e1ac30bf56 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -1017,9 +1017,17 @@ M.form_filemanager.init = function(Y, options) { } }, false); } + // update dialog header + var nodename = node.fullname; + // Limit the string length so it fits nicely on mobile devices + var namelength = 50; + if (nodename.length > namelength) { + nodename = nodename.substring(0, namelength) + '...'; + } + Y.one('#fm-dialog-label_'+selectnode.get('id')).setContent(Y.Escape.html(M.str.moodle.edit+' '+nodename)); // show panel this.selectui.show(); - document.getElementById(this.selectui.get('id')).focus(); + Y.one('#'+selectnode.get('id')).focus(); }, render: function() { this.print_path(); From 1b25169215666b954ba23f8c5559a6cfd29e0042 Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Mon, 12 Aug 2013 12:28:03 +0800 Subject: [PATCH 3/3] MDL-35934 Filemanager: change the set attribute to use setAttribute() instead of YUI set(). --- lib/form/filemanager.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/form/filemanager.js b/lib/form/filemanager.js index 7e1ac30bf56..e358b5d287f 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -103,9 +103,9 @@ M.form_filemanager.init = function(Y, options) { this.pathbar.removeChild(this.pathnode); } // initialize 'select file' panel - this.selectnode = Y.Node.createWithFilesSkin(M.form_filemanager.templates.fileselectlayout). - set('aria-live', 'assertive'). - set('role', 'dialog'); + this.selectnode = Y.Node.createWithFilesSkin(M.form_filemanager.templates.fileselectlayout); + this.selectnode.setAttribute('aria-live', 'assertive'); + this.selectnode.setAttribute('role', 'dialog'); this.selectnode.generateID(); var labelid = 'fm-dialog-label_'+ this.selectnode.get('id');