-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
retest tabindex change on focusout #32
Comments
It doesn't seem to change Orca's behavior; I don't recall how other ATs did - needs more testing. |
After more testing, this doesn't seem to help much. Like Orca, NVDA is fine either way (Chrome, FF). JAWS is ok in Chrome but in Firefox, JAWS browse mode visits both the tree's label and active (tabindex=0) treeitem's label; sometimes visits the treeitem twice. VoiceOver on Mac is a hot mess, I can't remember what it was like the last time but I feel it's about the same; both Safari and Chrome struggle in general and don't improve with the change. |
We need clearer test instructions and documentation of results. |
For the record, here's the diff of the rough implementation I tested: diff --git a/lib/navigator.js b/lib/navigator.js
index 21472a0..f61f896 100644
--- a/lib/navigator.js
+++ b/lib/navigator.js
@@ -15,12 +15,10 @@ class navigator {
this.tree = extractAbstractTree(node);
this.node.addEventListener('keydown', this.move.bind(this));
this.node.addEventListener('focusin', () => {
- this.node.setAttribute('tabindex', '-1');
this.highlight(true);
});
this.node.addEventListener('focusout', () => {
- this.highlight(false);
- this.node.setAttribute('tabindex', '0');
+ this.highlight(false, true);
});
}
@@ -69,7 +67,7 @@ class navigator {
node.getAttribute('data-owns').split(' ').forEach(id => this.highlightSubtree(boolean, this.node.querySelector(`[data-owns-id="${id}"]`)));
}
- highlight(boolean) {
+ highlight(boolean, focusOut) {
const activedescendant =
this.active().name === this.node.getAttribute('data-owns-id')
? this.node
@@ -81,7 +79,7 @@ class navigator {
activedescendant.focus();
}
if (boolean === false) {
- activedescendant.setAttribute('tabindex', '-1');
+ if (!focusOut) activedescendant.setAttribute('tabindex', '-1');
activedescendant.classList.remove('is-activedescendant');
}
} |
Looking at the APG patterns, they leave the tabindex as is when focus leaves the tree. Let's try that as it might help improve UX for revisiting a tree after exploration (cf. https://gitlab.gnome.org/GNOME/orca/-/issues/195#note_1065628).
The text was updated successfully, but these errors were encountered: