summaryrefslogtreecommitdiff
path: root/plugins/kolab_delegation
diff options
context:
space:
mode:
authorAleksander Machniak <machniak@kolabsys.com>2014-06-13 10:35:09 (GMT)
committerAleksander Machniak <machniak@kolabsys.com>2014-06-13 10:35:09 (GMT)
commit26a2dd01c46a14598dfc2dd0a22d45bf07434068 (patch)
tree7a3044316ac32f8c9e022e2f4d73b78e16737115 /plugins/kolab_delegation
parentdac282685d7b6d6efd48c2b8438389133e6e6ad6 (diff)
downloadroundcubemail-plugins-kolab-26a2dd01c46a14598dfc2dd0a22d45bf07434068.tar.gz
kolab_delegation: accessibility improvements (#3086)
Diffstat (limited to 'plugins/kolab_delegation')
-rw-r--r--plugins/kolab_delegation/kolab_delegation.js16
-rw-r--r--plugins/kolab_delegation/kolab_delegation.php4
-rw-r--r--plugins/kolab_delegation/localization/en_US.inc3
-rw-r--r--plugins/kolab_delegation/package.xml4
-rw-r--r--plugins/kolab_delegation/skins/larry/style.css2
-rw-r--r--plugins/kolab_delegation/skins/larry/templates/settings.html23
6 files changed, 30 insertions, 22 deletions
diff --git a/plugins/kolab_delegation/kolab_delegation.js b/plugins/kolab_delegation/kolab_delegation.js
index c28d7d4..4ecaa51 100644
--- a/plugins/kolab_delegation/kolab_delegation.js
+++ b/plugins/kolab_delegation/kolab_delegation.js
@@ -49,8 +49,8 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
if (rcmail.gui_objects.delegatelist) {
rcmail.delegatelist = new rcube_list_widget(rcmail.gui_objects.delegatelist,
{ multiselect:true, draggable:false, keyboard:true });
- rcmail.delegatelist.addEventListener('select', function(o) { rcmail.select_delegate(o); });
- rcmail.delegatelist.init();
+ rcmail.delegatelist.addEventListener('select', function(o) { rcmail.select_delegate(o); })
+ .init();
rcmail.enable_command('delegate-add', true);
}
@@ -77,14 +77,16 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
$('input.write', this.parentNode.parentNode).prop('checked', false);
});
- $('.foldersblock thead td img').click(function(e) {
- var $this = $(this),
- classname = $this.parent().get(0).className,
- list = $this.closest('table').find('input.'+classname),
+ var fn = function(elem) {
+ var classname = elem.className,
+ list = $(elem).closest('table').find('input.' + classname),
check = list.not(':checked').length > 0;
list.prop('checked', check).change();
- });
+ };
+
+ $('th.read,th.write').click(function() { fn(this); })
+ .keydown(function(e) { if (e.which == 13 || e.which == 32) fn(this); });
}
}
});
diff --git a/plugins/kolab_delegation/kolab_delegation.php b/plugins/kolab_delegation/kolab_delegation.php
index df58e92..f8974c6 100644
--- a/plugins/kolab_delegation/kolab_delegation.php
+++ b/plugins/kolab_delegation/kolab_delegation.php
@@ -497,8 +497,8 @@ class kolab_delegation extends rcube_plugin
$write_ico = $attrib['writeicon'] ? html::img(array('src' => $path . $attrib['writeicon'], 'title' => $this->gettext('write'))) : '';
$table = new html_table(array('cellspacing' => 0));
- $table->add_header(array('class' => 'read', 'title' => $this->gettext('read')), $read_ico);
- $table->add_header(array('class' => 'write', 'title' => $this->gettext('write')), $write_ico);
+ $table->add_header(array('class' => 'read', 'title' => $this->gettext('read'), 'tabindex' => 0), $read_ico);
+ $table->add_header(array('class' => 'write', 'title' => $this->gettext('write'), 'tabindex' => 0), $write_ico);
$table->add_header('foldername', $this->rc->gettext('folder'));
$checkbox_read = new html_checkbox(array('name' => 'read[]', 'class' => 'read'));
diff --git a/plugins/kolab_delegation/localization/en_US.inc b/plugins/kolab_delegation/localization/en_US.inc
index 825f016..b3a0f10 100644
--- a/plugins/kolab_delegation/localization/en_US.inc
+++ b/plugins/kolab_delegation/localization/en_US.inc
@@ -27,4 +27,7 @@ $labels['updateerror'] = 'Could not update delegate.';
$labels['createsuccess'] = 'The delegate was successfully added.';
$labels['createerror'] = 'Could not add delegate.';
+$labels['arialabeldelegatedelete'] = 'Delegate deletion dialog';
+$labels['arialabeldelegateform'] = 'Delegate properties form';
+
?>
diff --git a/plugins/kolab_delegation/package.xml b/plugins/kolab_delegation/package.xml
index d22b3f0..2b9d3d3 100644
--- a/plugins/kolab_delegation/package.xml
+++ b/plugins/kolab_delegation/package.xml
@@ -15,9 +15,9 @@
<email>machniak@kolabsys.com</email>
<active>yes</active>
</lead>
- <date>2013-06-25</date>
+ <date>2014-06-13</date>
<version>
- <release>0.3</release>
+ <release>0.4</release>
<api>0.1</api>
</version>
<stability>
diff --git a/plugins/kolab_delegation/skins/larry/style.css b/plugins/kolab_delegation/skins/larry/style.css
index 06aec7b..d026d16 100644
--- a/plugins/kolab_delegation/skins/larry/style.css
+++ b/plugins/kolab_delegation/skins/larry/style.css
@@ -115,10 +115,12 @@ div.foldersblock h3.note {
background: url(read.png) center no-repeat;
width: 18px;
height: 20px;
+ cursor: pointer;
}
.foldersblock th.write {
background: url(write.png) center no-repeat;
width: 18px;
height: 20px;
+ cursor: pointer;
}
diff --git a/plugins/kolab_delegation/skins/larry/templates/settings.html b/plugins/kolab_delegation/skins/larry/templates/settings.html
index b0842f2..5f1b683 100644
--- a/plugins/kolab_delegation/skins/larry/templates/settings.html
+++ b/plugins/kolab_delegation/skins/larry/templates/settings.html
@@ -10,11 +10,13 @@
<div id="mainscreen" class="offset">
+<h1 class="voice"><roundcube:label name="settings" /> : <roundcube:label name="kolab_delegation.tabtitle" /></h1>
+
<roundcube:include file="/includes/settingstabs.html" />
<div id="settings-right">
-<div id="sectionslist" class="uibox listbox">
+<div id="sectionslist" class="uibox listbox" role="navigation" aria-labelledby="delegatelist-title">
<h2 id="delegatelist-title" class="boxtitle"><roundcube:label name="kolab_delegation.delegates" /></h2>
<div class="boxlistcontent">
<roundcube:object name="plugin.delegatelist" id="delegate-table" class="listing" cellspacing="0" />
@@ -24,30 +26,29 @@
</div>
</div>
-<div id="prefs-box" class="uibox contentbox">
+<div id="prefs-box" class="uibox contentbox" role="main">
<div class="iframebox">
- <roundcube:frame contentframe="delegation-frame" id="delegation-frame" style="width:100%; height:100%" frameborder="0" src="/watermark.html" />
+ <roundcube:frame contentframe="delegation-frame" id="delegation-frame" style="width:100%; height:100%" frameborder="0" src="/watermark.html" title="arialabeldelegateform" />
</div>
- <roundcube:object name="message" id="message" class="statusbar" />
</div>
</div>
+</div>
+<div id="delegate-delete-dialog" role="dialog" aria-labelledby="aria-label-delegatedeletedialog" aria-hidden="true">
+ <h3 id="aria-label-delegatedeletedialog" class="voice"><roundcube:label name="kolab_delegation.arialabeldelegatedelete" /></h3>
+ <p><roundcube:label name="kolab_delegation.delegatedeleteconfirm" /></p>
+ <span><input type="checkbox" value="1" checked="checked" /><roundcube:label name="kolab_delegation.delegateremoveacl" /></span>
</div>
<roundcube:include file="/includes/footer.html" />
<script type="text/javascript">
- var viewsplit = new rcube_splitter({ id:'delegatelistsplitter', p1:'#sectionslist', p2:'#prefs-box', orientation:'v', relative:true, start:266, min:150, size:12 });
- rcmail.add_onload('viewsplit.init()');
+var viewsplit = new rcube_splitter({ id:'delegatelistsplitter', p1:'#sectionslist', p2:'#prefs-box', orientation:'v', relative:true, start:266, min:150, size:12 });
+rcmail.add_onload('viewsplit.init()');
</script>
-<div id="delegate-delete-dialog">
- <p><roundcube:label name="kolab_delegation.delegatedeleteconfirm" /></p>
- <span><input type="checkbox" value="1" checked="checked" /><roundcube:label name="kolab_delegation.delegateremoveacl" /></span>
-</div>
-
</body>
</html>