Closed isidorn closed 4 years ago
For your info, it seems that in Microsoft Word for example, navigating items in the status bar can be done with:
These six key combinations all wrap, i.e. it is not possible to escape from the status bar with tab. I think this is an important point.
IN VS Code, as tab is able to move across parts, I think it makes sense not to implement tab to navigate status bar items, as it might introduce confusion as of what tab is able to reach.
@leonardder agree with you. Tab should move focus out of the status bar, and we will only navigate with left / right. Up / down also do not make a lot of sense since visiually it is just one horisontal line imho. Though this might not be obvious so we can make it easier for users and make down behave same as right and up same as left.
Created a PR for this, interested parties can chime in https://github.com/microsoft/vscode/pull/97072
I really like this functionality. Would it be possible to focus an item by default though? In MS Office, the first entry gets focus by default and if you move focus through items, the focused entry is saved on the status bar so that when you move out/in with f6/shift+f6, the focused item remains the same.
@leonardder preservig focus makes sense, can you please file a new issue for that? Focusing an item by default for the first time does not make so much sense since the inital F6 should read the whole status bar content, not only the first item. However if we adress your other concern - that we preserve focus than I think we should be good.
Focusing an item by default for the first time does not make so much sense since the initial F6 should read the whole status bar content, not only the first item.
Mm, this is currently not the case in NVDA. You can only read the status bar with object navigation commands. May be this is something we should fix in NVDA, though. What does Orca do in this case? @joanmarie
@leonardder @isidorn Pressing f6 orca reads only 'status bar', but not its content. To read the contents of the status bar I need to use the flat review mode or the arrows.
Strange that with VoiceOver this just works. @joanmarie can we improve something on the VS Code side such that the actual content gets read, and not 'status bar'
I guess you could add aria-labelledby to the status bar containing ids of all the direct children, but only if no child has focus. I find that a bit tricky. From an IAccessible2 perspective, I'd say the content of the status bar should be the accValue of the status bar object and not the accName.
@isidorn I can do something in Orca and have started working on it (nothing yet committed: speech is easy, doing the braille is uncovering some issues related to the whole "named div" thing. So I'm probably going to wind up having both speech and braille dive down looking for the real objects to present. In this case links.)
In the meantime, something I noticed about the keyboard navigation: Once I've started arrowing amongst items in the status bar, cycling via F6 doesn't bring me back to the status bar; it brings me back to whatever was the last focused object in the status bar. The only way I've found to work around that is quitting and restarting VSCode, which is making debugging the change in Orca a bit more tedious. ;) Is this by design and/or is there a keystroke I can use to give focus to the status bar itself?
Ok, support landed in Orca master to present the newly-focused status bar in speech and braille.
@joanmarie It looks great! Thank you.
@joanmarie great. Yeah that is by design, more details here https://github.com/microsoft/vscode/issues/97241
Press esc
to focus the status bar once the focus is on a status bar entry
Once focus is on the status bar it should be possible to navigate left / right via keyboard so that focus jump over each element.
Destilled from https://github.com/microsoft/vscode/issues/95428 @bpasero let me know if you have ideas, pointers. We might run into the issue that you reverse the elements for your flex layout.