summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2022-03-31 15:36:01 +0200
committerAndras Timar <andras.timar@collabora.com>2022-04-01 13:16:33 +0200
commit1107e1d9fd3750e6e9af5ce4c0e2f9a649408f3f (patch)
tree01367a2cc74ac066837c75409dd85e9a3118b84f
parentwsd: test SSL hostname (diff)
downloadonline-1107e1d9fd3750e6e9af5ce4c0e2f9a649408f3f.tar.gz
online-1107e1d9fd3750e6e9af5ce4c0e2f9a649408f3f.zip
jsdialog: a11y: make widgets focusable fixes #2965
- now widgets are accessible using tab key - can close all dialogs with ESC key Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I4dcafb90f61bd05a91048ec1631d6eb851986c20
-rw-r--r--browser/src/control/Control.JSDialog.js2
-rw-r--r--browser/src/control/Control.JSDialogBuilder.js6
2 files changed, 7 insertions, 1 deletions
diff --git a/browser/src/control/Control.JSDialog.js b/browser/src/control/Control.JSDialog.js
index e33ee61224..ccf9891ea3 100644
--- a/browser/src/control/Control.JSDialog.js
+++ b/browser/src/control/Control.JSDialog.js
@@ -280,6 +280,8 @@ L.Control.JSDialog = L.Control.extend({
container.querySelector('[id=\'' + focusWidgetId + '\']') : null;
if (focusWidget)
focusWidget.focus();
+ if (focusWidget && document.activeElement !== focusWidget)
+ console.error('cannot get focus for widget: "' + focusWidgetId + '"');
};
this.dialogs[data.id] = {
diff --git a/browser/src/control/Control.JSDialogBuilder.js b/browser/src/control/Control.JSDialogBuilder.js
index b8cefa01cc..4c7e86b471 100644
--- a/browser/src/control/Control.JSDialogBuilder.js
+++ b/browser/src/control/Control.JSDialogBuilder.js
@@ -2961,13 +2961,17 @@ L.Control.JSDialogBuilder = L.Control.extend({
if (!parent || !data || !data.id || data.id === '')
return;
+ var control = parent.querySelector('[id=\'' + data.id + '\']');
if (data.visible === 'false' || data.visible === false) {
- var control = parent.querySelector('[id=\'' + data.id + '\']');
if (control)
L.DomUtil.addClass(control, 'hidden');
else if (parent.id === data.id)
L.DomUtil.addClass(parent, 'hidden');
}
+
+ // natural tab-order when using keyboard navigation
+ if (control && !control.hasAttribute('tabIndex'))
+ control.setAttribute('tabIndex', '0');
},
build: function(parent, data, hasVerticalParent, parentHasManyChildren) {