From bf33799377eab662f8f25365cf15f57cf6697947 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 05 Jun 2014 10:44:35 -0400
Subject: [PATCH] Navigate with arrow keys only in treelist widgets; fix keyboard event detection in IE; new text label to help screen readers

---
 program/js/treelist.js |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/program/js/treelist.js b/program/js/treelist.js
index 958ae81..cce4d17 100644
--- a/program/js/treelist.js
+++ b/program/js/treelist.js
@@ -747,10 +747,16 @@
         if (li.length) {
           id = dom2id(li);
           node = indexbyid[id];
-          if (node && node.children.length)
+          if (node && node.children.length && node.collapsed != (keyCode == 37))
             toggle(id, rcube_event.get_modifier(e) == SHIFT_KEY);  // toggle subtree
         }
         return false;
+
+      case 9:  // Tab
+        // jump to last/first item to move focus away from the treelist widget by tab
+        var limit = rcube_event.get_modifier(e) == SHIFT_KEY ? 'first' : 'last';
+        container.find('li[role=treeitem]:has(a)')[limit]().find('a:'+limit).focus();
+        break;
     }
 
     return true;

--
Gitblit v1.9.1