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..e358b5d287f 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -104,8 +104,13 @@ M.form_filemanager.init = function(Y, options) { } // initialize 'select file' panel 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'); 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 @@ -1011,8 +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(); + Y.one('#'+selectnode.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') ) );