Skip to content

Commit

Permalink
Fix #1122 Improved accessibility of project properties, folder proper…
Browse files Browse the repository at this point in the history
…ties, workspace properties and publish settings windows:

- Tabs within these are keyboard accessible
- All form elements are keyboard accessible, labelled properly and use appropriate HTML tags rather than images for checkboxes etc.
- Button colour contrast is improved
- User is now notified with on-screen confirmation when any properties have been changed
- Links which open in new window are labelled appropriately
- Some rewording of strings to make things clearer
- Fixed strings moved to language files
- Appropriate error messages show when you don't have correct rights to makes changes
- Improved information shown in workspace properties > my projects so it includes extra info and links to projects
  • Loading branch information
FayCross committed Jul 28, 2023
1 parent be6d150 commit 2cdd820
Show file tree
Hide file tree
Showing 89 changed files with 2,618 additions and 2,064 deletions.
129 changes: 44 additions & 85 deletions folderproperties.php
Expand Up @@ -36,7 +36,7 @@
-->

<link href="website_code/styles/properties_tab.css" media="screen" type="text/css" rel="stylesheet" />
<link href="website_code/styles/folderproperties_tab.css" media="screen" type="text/css" rel="stylesheet" />
<!--<link href="website_code/styles/folderproperties_tab.css" media="screen" type="text/css" rel="stylesheet" />-->
<link href="website_code/styles/frontpage.css" media="screen" type="text/css" rel="stylesheet" />
<link href="website_code/styles/xerte_buttons.css" media="screen" type="text/css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="modules/xerte/parent_templates/Nottingham/common_html5/font-awesome/css/font-awesome.min.css">
Expand All @@ -62,92 +62,51 @@
-->

<body onload="javascript:folderproperties();tab_highlight('1');" onunload="javascript:parent.window.opener.refresh_workspace();">
<div class="properties_main">
<body onload="javascript:folderproperties();" onunload="javascript:parent.window.opener.refresh_workspace();">

<div class="properties_main">
<div class="main_area">
<div>
<span id="title">
<img src="website_code/images/Icon_Folder.gif" style="vertical-align:middle; padding-left:10px;" />
<?PHP echo FOLDERPROPERTIES_DISPLAY_TITLE; ?>
</span>
<div id="title">
<h1><i class="fa fa-info-circle xerte-icon"></i><?php echo FOLDERPROPERTIES_DISPLAY_TITLE; ?></h1>
</div>
<div id="data_area">

<div id="menu_tabs">

<div id="tabs" role="tablist">

<button id="tabFolder" type="button" role="tab" aria-controls="panelFolder" aria-selected="true" class="tabSelected" onclick="javascript:folderproperties(); tabClicked('tabFolder');">
<i class="fa fa-folder fa-fw xerte-icon"></i>&nbsp;<?PHP echo FOLDERPROPERTIES_TAB_FOLDER; ?>
</button>

<button id="tabContent" type="button" role="tab" aria-controls="panelContent" aria-selected="false" onclick="javascript:folder_content(); tabClicked('tabContent');">
<i class="fa fa-file-text fa-fw xerte-icon"></i>&nbsp;<?PHP echo FOLDERPROPERTIES_TAB_CONTENT; ?>
</button>

<button id="tabRss" type="button" role="tab" aria-controls="panelRss" aria-selected="false" onclick="javascript:folder_rss(); tabClicked('tabRss');">
<i class="fa fa-rss fa-fw xerte-icon"></i>&nbsp;<?PHP echo FOLDERPROPERTIES_TAB_RSS; ?>
</button>

<button id="tabSyn" type="button" role="tab" aria-controls="panelSyn" aria-selected="false" onclick="javascript:sharing_status_folder(); tabClicked('tabSyn');">
<i class="fa fa-share fa-fw xerte-icon"></i>&nbsp;<?PHP echo FOLDERPROPERTIES_TAB_SHARED; ?>
</button>

</div>

<div id="dynamic_area">

<div id="panelFolder" class="tabPanel" role="tabpanel" aria-labelledby="tabFolder"></div>
<div id="panelContent" class="tabPanel" role="tabpanel" aria-labelledby="tabContent"></div>
<div id="panelRss" class="tabPanel" role="tabpanel" aria-labelledby="tabRss"></div>
<div id="panelSyn" class="tabPanel" role="tabpanel" aria-labelledby="tabSyn"></div>

</div>

</div>
<div id="data_area">

<!--
Dynamic area is the DIV used by the AJAX queries (The right hand side area of the properties panel.
-->

<div id="dynamic_area">
</div>

<!--
Set up the three menu tabs
Structure
tab1-1 is the small part to the right of the main tab, this is used to deal with the border round the main section
tab1 is the actual tab with the text in it
-->

<div id="menu_tabs">
<div class="tab_spacer" style="height:35px;">
</div>
<div id="tab1-1" class="tab_right_pad" style="height:38px;">
</div>
<div id="tab1" class="tab" style="width:146px; height:38px;">
<p onclick="javascript:tab_highlight('1');folderproperties()">
<?PHP echo "<i class=\"fa fa-folder\"></i>&nbsp;".FOLDERPROPERTIES_TAB_FOLDER; ?>
</p>
</div>
<div class="tab_spacer">
</div>
<div id="tab2-1" class="tab_right_pad" style="height:38px;">
</div>
<div id="tab2" class="tab" style="width:146px; height:38px;">
<p onclick="javascript:tab_highlight('2'); folder_content()">
<?PHP echo "<i class=\"fa fa-folder-open\"></i>&nbsp;".FOLDERPROPERTIES_TAB_CONTENT; ?>
</p>
</div>
<div class="tab_spacer">
</div>
<div id="tab3-1" class="tab_right_pad" style="height:38px;">
</div>
<div id="tab3" class="tab" style="width:146px; height:38px;">
<p onclick="javascript:tab_highlight('3'); folder_rss()">
<?PHP echo "<i class=\"fa fa-rss\"></i>&nbsp;".FOLDERPROPERTIES_TAB_RSS; ?>
</p>
</div>

<div class="tab_spacer">
</div>
<div id="tab4-1" class="tab_right_pad" style="height:38px;">
</div>
<!-- Copied and modified from properties.php -->
<div id="tab4" class="tab" style="width:146px; height:38px;">
<p onclick="javascript:tab_highlight('4'); sharing_status_folder()">
<?PHP echo "<i class=\"fa fa-share\"></i>&nbsp;".FOLDERPROPERTIES_TAB_SHARED; ?>
</p>
</div>

<div class="tab_spacer">
</div>
<!--
Last spacer given sufficient height to fill the rest of the border for the right hand panel
-->
<div class="tab_spacer" style="height:357px;">
</div>
</div>
</div>
<div style="clear:both;"></div>
</div>
<div style="clear:both;"></div>
</div>
</div>
<div style="clear:both;"></div>
</div>
</div>

</body>
</html>
6 changes: 3 additions & 3 deletions languages/en-GB/folderproperties.inc
Expand Up @@ -14,11 +14,11 @@

define("FOLDERPROPERTIES_DISPLAY_TITLE", "Folder Properties");

define("FOLDERPROPERTIES_TAB_FOLDER", "Folder Properties");
define("FOLDERPROPERTIES_TAB_FOLDER", "Folder");

define("FOLDERPROPERTIES_TAB_CONTENT", "Folder Contents");
define("FOLDERPROPERTIES_TAB_CONTENT", "Contents");

define("FOLDERPROPERTIES_TAB_RSS", "Folder RSS feed");
define("FOLDERPROPERTIES_TAB_RSS", "RSS");

define("FOLDERPROPERTIES_TAB_SHARED", "Shared settings");
?>
33 changes: 14 additions & 19 deletions languages/en-GB/modules/decision/export_page.inc
Expand Up @@ -9,22 +9,17 @@
* @copyright Pat Lockley
* @package
*/

define("XERTE_EXPORT_HTML5", "Export with Javascript (a.k.a. HTML5) Engine");
define("XERTE_EXPORT_FLASH", "Export with Flash Engine");
define("XERTE_EXPORT_DESCRIPTION","There are several ways to export a project. An exported project is packaged, but not deleted, into a zip file for you to share with another user, to deploy on the web, or to import into an LMS or VLE. You can choose whether to export all of the project's files, or just those files used by the project.");

define("XERTE_EXPORT_ZIP_ARCHIVE", "Archive export. Complete export only really needed for troubleshooting xml or other issues : ");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get Archive Zip.");

define("XERTE_EXPORT_ZIP", "Export for deployment. Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation: ");
define("XERTE_EXPORT_ZIP_LINK","Get Deployment Zip.");

define("XERTE_EXPORT_SCORM", "Export for SCORM deployment: self contained, SCORM 1.2 or SCORM 2004 enables tracking of Quiz scores e.g. into Moodle gradebook: ");

define("XERTE_EXPORT_SCORM_12_LINK","Get SCORM 1.2 package");

define("XERTE_EXPORT_SCORM_2004_LINK","Get SCORM 2004 3rd Ed package");




define("XERTE_EXPORT_DESCRIPTION", "Exported projects are downloaded to your computer in a zip file. The original project is not deleted and will remain in Xerte. There are several ways to export a project.");

define("XERTE_EXPORT_INTERFACE", "Export interface:");
define("XERTE_EXPORT_HTML5", "HTML5");
define("XERTE_EXPORT_FLASH", "Flash (please note that Flash is no longer supported)");

define("XERTE_EXPORT_ZIP_TITLE", "Deployment export");
define("XERTE_EXPORT_ZIP", "Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation.");
define("XERTE_EXPORT_ZIP_LINK","Get deployment zip");

define("XERTE_EXPORT_ZIP_ARCHIVE_TITLE", "Archive export");
define("XERTE_EXPORT_ZIP_ARCHIVE", "Complete export only really needed for troubleshooting xml or other issues.");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get archive zip");
31 changes: 13 additions & 18 deletions languages/en-GB/modules/site/export_page.inc
Expand Up @@ -10,21 +10,16 @@
* @package
*/

define("XERTE_EXPORT_HTML5", "Export as HTML5");
define("XERTE_EXPORT_FLASH", "Export with Flash Engine");
define("XERTE_EXPORT_DESCRIPTION","There are several ways to export a project. An exported project is packaged, but not deleted, into a zip file for you to share with another user, to deploy on the web, or to import into an LMS or VLE. You can choose whether to export all of the project's files, or just those files used by the project.");

define("XERTE_EXPORT_ZIP_ARCHIVE", "Archive export. Complete export only really needed for troubleshooting xml or other issues : ");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get Archive Zip.");

define("XERTE_EXPORT_ZIP", "Export for deployment. Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation: ");
define("XERTE_EXPORT_ZIP_LINK","Get Deployment Zip.");

define("XERTE_EXPORT_SCORM", "Export for SCORM deployment: self contained, SCORM 1.2 or SCORM 2004 enables tracking of Quiz scores e.g. into Moodle gradebook: ");

define("XERTE_EXPORT_SCORM_12_LINK","Get SCORM 1.2 package");

define("XERTE_EXPORT_SCORM_2004_LINK","Get SCORM 2004 3rd Ed package");



define("XERTE_EXPORT_DESCRIPTION", "Exported projects are downloaded to your computer in a zip file. The original project is not deleted and will remain in Xerte. There are several ways to export a project.");

define("XERTE_EXPORT_INTERFACE", "Export interface:");
define("XERTE_EXPORT_HTML5", "HTML5");
define("XERTE_EXPORT_FLASH", "Flash (please note that Flash is no longer supported)");

define("XERTE_EXPORT_ZIP_TITLE", "Deployment export");
define("XERTE_EXPORT_ZIP", "Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation.");
define("XERTE_EXPORT_ZIP_LINK","Get deployment zip");

define("XERTE_EXPORT_ZIP_ARCHIVE_TITLE", "Archive export");
define("XERTE_EXPORT_ZIP_ARCHIVE", "Complete export only really needed for troubleshooting xml or other issues.");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get archive zip");
35 changes: 19 additions & 16 deletions languages/en-GB/modules/xerte/export_page.inc
Expand Up @@ -10,27 +10,30 @@
* @package
*/

define("XERTE_EXPORT_HTML5", "Export as HTML5");
define("XERTE_EXPORT_FLASH", "Export with Flash Engine (please note that Flash is no longer supported)");
define("XERTE_EXPORT_DESCRIPTION","There are several ways to export a project. An exported project is packaged, but not deleted, into a zip file for you to share with another user, to deploy on the web, or to import into a SCORM compliant LMS or VLE. You can choose whether to export all of the project's files, or just those files used by the project.");

define("XERTE_EXPORT_ZIP_ARCHIVE", "Archive export. Complete export only really needed for troubleshooting xml or other issues : ");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get Archive Zip.");

define("XERTE_EXPORT_ZIP_OFFLINE", "Offline export. Special offline package that can be used offline, by simply double-clicking on the index.htm file stored on a local disk or USB stick: ");
define("XERTE_EXPORT_ZIP_OFFLINE_LINK","Get Offline Zip.");

define("XERTE_EXPORT_ZIP", "Export for deployment. Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation: ");
define("XERTE_EXPORT_ZIP_LINK","Get Deployment Zip.");
define("XERTE_EXPORT_DESCRIPTION", "Exported projects are downloaded to your computer in a zip file. The original project is not deleted and will remain in Xerte. There are several ways to export a project.");

define("XERTE_EXPORT_INTERFACE", "Export interface:");
define("XERTE_EXPORT_HTML5", "HTML5");
define("XERTE_EXPORT_FLASH", "Flash (please note that Flash is no longer supported)");

define("XERTE_EXPORT_SCORM", "Export for SCORM deployment: self contained, SCORM 1.2 or SCORM 2004 enables tracking of Quiz scores e.g. into your VLE/LMS gradebook: ");
define("XERTE_EXPORT_ZIP_TITLE", "Deployment export");
define("XERTE_EXPORT_ZIP", "Contains only the files required for importing into a VLE/LMS (without SCORM tracking), deploying onto a web server, or for importing into another Xerte installation.");
define("XERTE_EXPORT_ZIP_LINK","Get deployment zip");

define("XERTE_EXPORT_SCORM_TITLE", "SCORM export");
define("XERTE_EXPORT_SCORM", "Self contained, SCORM 1.2 or SCORM 2004 enables tracking of interactivity scores e.g. into your LMS/VLE gradebook.");
define("XERTE_EXPORT_SCORM_12_LINK","Get SCORM 1.2 package");

define("XERTE_EXPORT_SCORM_2004_LINK","Get SCORM 2004 3rd Ed package");

define("XERTE_EXPORT_ZIP_ARCHIVE_TITLE", "Archive export");
define("XERTE_EXPORT_ZIP_ARCHIVE", "Complete export only really needed for troubleshooting xml or other issues.");
define("XERTE_EXPORT_ZIP_ARCHIVE_LINK","Get archive zip");

define("XERTE_EXPORT_ZIP_OFFLINE_TITLE", "Offline export");
define("XERTE_EXPORT_ZIP_OFFLINE", "Special offline package that can be used offline. Double-click on the index.htm file stored on a local disk or USB stick.");
define("XERTE_EXPORT_ZIP_OFFLINE_LINK","Get offline zip");

define("XERTE_EXPORT_XAPI", "Export for xAPI (TinCan) deployment.");

define("XERTE_EXPORT_XAPI", "Export for xAPI (TinCan) deployment");
define("XERTE_EXPORT_XAPI_LINK","Get xAPI (TinCan) package");


Expand Down
4 changes: 2 additions & 2 deletions languages/en-GB/properties.inc
Expand Up @@ -14,11 +14,11 @@
define("PROPERTIES_DISPLAY_TITLE","Project Properties");
define("PROPERTIES_TAB_PROJECT","Project");
define("PROPERTIES_TAB_NOTES","Notes");
define("PROPERTIES_TAB_MEDIA","Media and quota");
define("PROPERTIES_TAB_MEDIA","Media and files");
define("PROPERTIES_TAB_ACCESS","Access");
define("PROPERTIES_TAB_SHARED","Shared settings");
define("PROPERTIES_TAB_RSS","RSS");
define("PROPERTIES_TAB_OPEN","Open Content");
define("PROPERTIES_TAB_OPEN","Open content");
define("PROPERTIES_TAB_EXPORT","Export");
define("PROPERTIES_TAB_TSUGI","LTI/xAPI");
define("PROPERTIES_TAB_PEER","Peer review");
Expand Down
6 changes: 3 additions & 3 deletions languages/en-GB/publishproperties.inc
Expand Up @@ -10,11 +10,11 @@
* @package
*/

define("PUBLISH_PROPERTIES_TITLE","Publishing your project");
define("PUBLISH_PROPERTIES_DISPLAY_TITLE","Publishing your project");
define("PUBLISH_PROPERTIES_TITLE","Publish settings");
define("PUBLISH_PROPERTIES_DISPLAY_TITLE","Publish Settings");
define("PUBLISH_PROPERTIES_TAB_PROJECT","Project");
define("PUBLISH_PROPERTIES_TAB_ACCESS","Access");
define("PUBLISH_PROPERTIES_TAB_RSS","RSS");
define("PUBLISH_PROPERTIES_TAB_OPEN","Open Content");
define("PUBLISH_PROPERTIES_TAB_OPEN","Open content");

?>
Expand Up @@ -13,4 +13,4 @@

define("FOLDER_CONTENT_TEMPLATE_CONTENTS","Folder contents");

define("FOLDER_CONTENT_FAIL","Sorry you do not have rights to this folder");
define("FOLDER_CONTENT_FAIL","You do not have rights to this folder");
Expand Up @@ -11,8 +11,10 @@
*/


define("FOLDER_RSS_FEEDS","Folder RSS Feeds");
define("FOLDER_RSS_FEEDS","Folder RSS feeds");

define("FOLDER_RSS_PUBLIC","If there is any public content in this folder, you will be able to access it via the RSS Feed at");

define("FOLDER_RSS_FAIL", "Sorry only the creator or co-author of the folder can set notes for the folder");
define("FOLDER_RSS_FAIL", "You do not have rights to this folder");

define("FOLDER_RSS_LINKS", " (opens in new window)");
Expand Up @@ -13,10 +13,12 @@

define("FOLDER_PROPERTIES_PROPERTIES","Folder properties");

define("FOLDER_PROPERTIES_CALLED","This folder is called");
define("FOLDER_PROPERTIES_CALLED","Folder name");

define("FOLDER_PROPERTIES_CHANGE","Change the name of the folder");

define("FOLDER_PROPERTIES_BUTTON_SAVE","Rename");

define("FOLDER_PROPERTIES_CHANGED", "Name changed");

define("FOLDER_PROPERTIES_FAIL","Sorry you do not have rights to this folder");
define("FOLDER_PROPERTIES_FAIL","You do not have rights to this folder");
Expand Up @@ -10,11 +10,15 @@
* @package
*/

define("SHARING_INSTRUCTION","To share this folder with a user or a group, please type their name here. A user must have an account on the site to appear in this search. Also select a role to grant the user or group.");
define("SHARING_INSTRUCTION","To share this folder with another person/group, type their name below. Users must have an account on the site to appear in this search.");

define("SHARING_NAME_LABEL", "Recipient of folder");

define("SHARING_ROLE_LABEL", "Role");

define("SHARING_NAMES","Names will appear here");

define("SHARING_CURRENT","This folder is currently shared with : ");
define("SHARING_CURRENT","This folder is currently shared with:");

define("SHARING_CREATOR", "Creator");

Expand All @@ -33,14 +37,16 @@
define("SHARING_REMOVE_DESCRIPTION", "Press the button below to remove any sharing rights");

define("SHARING_REMOVE", "Remove");

define("SHARING_STOP_INSTRUCTIONS","If you no longer need access to this folder, you can stop it being shared with you:");

define("SHARING_STOP","Click to stop sharing this folder");

define("SHARING_NOT_SHARED","This folder is not shared");
define("SHARING_NOT_SHARED","This folder is not currently shared");

define("SHARING_FAIL","You have no rights to this folder");
define("SHARING_FAIL","You do not have rights to this folder");

define("SHARING_FAIL_SHARED_SUBFOLDER","You cannot reshare a subfolder of a shared folder");
define("SHARING_FAIL_SHARED_SUBFOLDER","You cannot share a subfolder of a shared folder");


?>
2 changes: 1 addition & 1 deletion languages/en-GB/website_code/php/import/import.inc
Expand Up @@ -24,7 +24,7 @@

define("IMPORT_NO_EQUIVALENT_FAIL","No valid template equivalent found on this site. Please contact your system administrators.");

define("IMPORT_ZIP_FAIL","You can only import Zip Files");
define("IMPORT_ZIP_FAIL","You can only import zip files");

define("IMPORT_XERTE_ONLY","Only Xerte templates are currently imported");

Expand Down

0 comments on commit 2cdd820

Please sign in to comment.