[Settings - Startup]: Keyboard focus is going on 'Startup' heading which is a non-interactive control. #17382

Open
opened 2026-01-31 05:40:48 +00:00 by claunia · 13 comments
Owner

Originally created by @ghost on GitHub (May 2, 2022).

Originally assigned to: @PankajBhojwani on GitHub.

Windows Terminal version

1.13.10984.0

Windows build number

22598.200

Other Software

Test Environment:
OS: Windows 11 Version 21H2 (OS Build 22598.200)
Screen Reader: Narrator.

Steps to reproduce

Repro Steps:
Open Windows Terminal.
Open Settings page using "Ctrl + ',' ".
Verify that Keyboard focus is going on 'Startup' heading which is a non-interactive control.

User Experience: -> Priority 1
Users with motor impairments who rely on keyboard will get confused if Keyboard Focus is going to non-interactive elements as well.

Note:
Issue is repro for all the tab items.

Guideline Reference:
https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html

Attachments:

Keyboard.focus.is.going.on.Startup.heading.which.is.a.non-interactive.control.zip

Expected Behavior

Keyboard focus should not move to 'Startup' heading which is a non-interactive control.

Actual Behavior

Keyboard focus is going on 'Startup' heading which is a non-interactive control.

Originally created by @ghost on GitHub (May 2, 2022). Originally assigned to: @PankajBhojwani on GitHub. ### Windows Terminal version 1.13.10984.0 ### Windows build number 22598.200 ### Other Software **Test Environment:** **OS:** Windows 11 Version 21H2 (OS Build 22598.200) **Screen Reader:** Narrator. ### Steps to reproduce **Repro Steps:** Open Windows Terminal. Open Settings page using "Ctrl + ',' ". Verify that Keyboard focus is going on 'Startup' heading which is a non-interactive control. **User Experience: -> Priority 1** Users with motor impairments who rely on keyboard will get confused if Keyboard Focus is going to non-interactive elements as well. **Note:** Issue is repro for all the tab items. **Guideline Reference:** https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html **Attachments:** [Keyboard.focus.is.going.on.Startup.heading.which.is.a.non-interactive.control.zip](https://github.com/microsoft/terminal/files/8610267/Keyboard.focus.is.going.on.Startup.heading.which.is.a.non-interactive.control.zip) ### Expected Behavior Keyboard focus should not move to 'Startup' heading which is a non-interactive control. ### Actual Behavior Keyboard focus is going on 'Startup' heading which is a non-interactive control.
Author
Owner

@zadjii-msft commented on GitHub (May 2, 2022):

Can we get a video for this one? When I try reproing this, focus lands on the hamburger button ("open/close navigation button"), which definitely is an interactive control

@zadjii-msft commented on GitHub (May 2, 2022): Can we get a video for this one? When I try reproing this, focus lands on the hamburger button ("open/close navigation button"), which definitely is an interactive control
Author
Owner

@zadjii-msft commented on GitHub (May 2, 2022):

(sorry for the fat-finger close)

@zadjii-msft commented on GitHub (May 2, 2022): (sorry for the fat-finger close)
Author
Owner

@PankajBhojwani commented on GitHub (May 2, 2022):

I believe this issue is talking about being able to navigate to the 'Startup' header in the main pane of the settings UI, i.e. like this:

header

This is certainly because the header is now a BreadcrumbBar, will look into how we can fix this/how the Settings app solves this

@PankajBhojwani commented on GitHub (May 2, 2022): I believe this issue is talking about being able to navigate to the 'Startup' header in the main pane of the settings UI, i.e. like this: <img width="1017" alt="header" src="https://user-images.githubusercontent.com/26824113/166265887-3cca872a-660a-44d3-a0cb-7dc5043f0db2.png"> This is certainly because the header is now a BreadcrumbBar, will look into how we can fix this/how the Settings app solves this
Author
Owner

@PankajBhojwani commented on GitHub (May 2, 2022):

Okay so the Settings App has this same issue as well:
settingsapp

The curious thing is that we don't have this issue when the BreadcrumbBar has more than 1 item, i.e. in the following example, the Appearance Breadcrumb is not keyboard focusable at all, and we don't do anything special to achieve this behaviour - it seems to be in-built to the BreacrumbBar class (this might have been a recent change, based on the fact that #12325 was repro-able a few months ago).

So this makes me wonder whether this is a bug with the BreadcrumbBar itself, i.e. it should never allow the right-most Breadcrumb to be focusable, even when there is only 1 Breadcrumb

EDIT: I was wrong about the above, all breadcrumb items are accessible, even the final one (you have to use the arrow keys to get there though, not tab)

@PankajBhojwani commented on GitHub (May 2, 2022): Okay so the Settings App has this same issue as well: <img width="879" alt="settingsapp" src="https://user-images.githubusercontent.com/26824113/166296595-73be3f15-97e3-4cf1-8dfb-617088051f2e.png"> <del>The curious thing is that we don't have this issue when the BreadcrumbBar has more than 1 item, i.e. in the following example, the `Appearance` Breadcrumb is not keyboard focusable at all, and we don't do anything special to achieve this behaviour - it seems to be in-built to the `BreacrumbBar` class (this might have been a recent change, based on the fact that #12325 was repro-able a few months ago).</del> <del>So this makes me wonder whether this is a bug with the `BreadcrumbBar` itself, i.e. it should never allow the right-most Breadcrumb to be focusable, even when there is only 1 Breadcrumb</del> EDIT: I was wrong about the above, all breadcrumb items are accessible, even the final one (you have to use the arrow keys to get there though, not tab)
Author
Owner

@zadjii-msft commented on GitHub (May 2, 2022):

I bet it is a BreadcrumbBar bug. Question is, can we do anything to work around it? Like, maybe set it to not focusable if there's only one element?

@zadjii-msft commented on GitHub (May 2, 2022): I bet it is a BreadcrumbBar bug. Question is, can we do anything to work around it? Like, maybe set it to not focusable if there's only one element?
Author
Owner

@zadjii-msft commented on GitHub (May 3, 2022):

@v-rpundir No worries, I think we figured out what was being described here.

@zadjii-msft commented on GitHub (May 3, 2022): @v-rpundir No worries, I think we figured out what was being described here.
Author
Owner

@PankajBhojwani commented on GitHub (May 3, 2022):

I bet it is a BreadcrumbBar bug. Question is, can we do anything to work around it? Like, maybe set it to not focusable if there's only one element?

Unfortunately the BreadcrumbBar does not actually give access to the BreadcrumbBarItems in it (see the ItemsSource section on this page), so we can't manage the IsTabStop property of that first BreadcrumbBarItem... And toggling the IsTabStop proeprty of the entire BreadcrumbBar does not seem to do anything (i.e. even if the BreadcrumbBar has IsTabStop=false, it is still possible to tab to the BreadcrumbBarItem).

Will work with @carlos-zamora to get this filed upstream.

@PankajBhojwani commented on GitHub (May 3, 2022): > I bet it is a BreadcrumbBar bug. Question is, can we do anything to work around it? Like, maybe set it to not focusable if there's only one element? Unfortunately the BreadcrumbBar does not actually give access to the BreadcrumbBarItems in it (see the ItemsSource section on [this page](https://docs.microsoft.com/en-us/windows/apps/design/controls/breadcrumbbar)), so we can't manage the IsTabStop property of that first BreadcrumbBarItem... And toggling the `IsTabStop` proeprty of the entire `BreadcrumbBar` does not seem to do anything (i.e. even if the `BreadcrumbBar` has `IsTabStop=false`, it is still possible to tab to the BreadcrumbBarItem). Will work with @carlos-zamora to get this filed upstream.
Author
Owner

@DHowett commented on GitHub (May 3, 2022):

So, I understand there to be a distinction here. Technically, you can interact with "Startup" and all page root breadcrumbs. They do something when there is another page on top of them.

@v-rpundir I am worried that removing focus from the title in the 1-page case (where it does nothing) will make it harder for users to discover that they can interact with the title in the 2- or 3-page case (where it navigates back to the previous pages.)

What are your thoughts?

@DHowett commented on GitHub (May 3, 2022): So, I understand there to be a distinction here. Technically, you _can_ interact with "Startup" and all page root breadcrumbs. They do something _when there is another page on top of them._ @v-rpundir I am worried that removing focus from the title in the 1-page case (where it does nothing) will make it harder for users to discover that they can interact with the title in the 2- or 3-page case (where it navigates back to the previous pages.) What are your thoughts?
Author
Owner

@PankajBhojwani commented on GitHub (May 3, 2022):

So, I understand there to be a distinction here. Technically, you can interact with "Startup" and all page root breadcrumbs. They do something when there is another page on top of them.

By that logic, should we also allow focus to land on the Appearance crumb in this example? (I know in our case no crumb is ever extended from Appearance, but there's no way for the BreadcrumbBar to know that.)

In either case we would need to file it upstream (either they should allow focus to fall on all crumbs, or never allow focus to fall on the right-most crumb).

@PankajBhojwani commented on GitHub (May 3, 2022): > So, I understand there to be a distinction here. Technically, you can interact with "Startup" and all page root breadcrumbs. They do something when there is another page on top of them. <del>By that logic, should we also allow focus to land on the `Appearance` crumb in this example? (I know in our case no crumb is ever extended from `Appearance`, but there's no way for the `BreadcrumbBar` to know that.) </del> <del>In either case we would need to file it upstream (either they should allow focus to fall on all crumbs, or never allow focus to fall on the right-most crumb). </del>
Author
Owner

@PankajBhojwani commented on GitHub (May 3, 2022):

Turns out you actually can access the final breadcrumb in the breadcrumb bar (you need to start using the arrow keys instead of the tab key though, that's why I missed it). Edited my comments above to reflect that.

So this is an interesting case - the breadcrumb items are themselves always 'interactable' (they can essentially be thought of as buttons), however for the final breadcrumb item in any breadcrumb bar we just elect to do nothing when it is invoked. Does this mean that the item itself should not be focusable?

@PankajBhojwani commented on GitHub (May 3, 2022): Turns out you actually can access the final breadcrumb in the breadcrumb bar (you need to start using the arrow keys instead of the tab key though, that's why I missed it). Edited my comments above to reflect that. So this is an interesting case - the breadcrumb items are themselves always 'interactable' (they can essentially be thought of as buttons), however for the final breadcrumb item in any breadcrumb bar we just elect to do nothing when it is invoked. Does this mean that the item itself should not be focusable?
Author
Owner

@carlos-zamora commented on GitHub (May 3, 2022):

@v-rpundir I think the posted Guideline Reference isn't the correct one. The guideline is talking about a visual focus indicator. As shown in the images above, the focus indicator appears as desired. However, the bug you are mentioning seems to be more along the lines of "a control that cannot be interacted with should not be focusable", correct? Is there a more suitable guideline reference you could post?

@carlos-zamora commented on GitHub (May 3, 2022): @v-rpundir I think the posted Guideline Reference isn't the correct one. The [guideline](https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html) is talking about a visual focus indicator. As shown in the images above, the focus indicator appears as desired. However, the bug you are mentioning seems to be more along the lines of "a control that cannot be interacted with should not be focusable", correct? Is there a more suitable guideline reference you could post?
Author
Owner

@ghost commented on GitHub (May 5, 2022):

@carlos-zamora updated the guidelines in the bug. Apologies as mistakenly added focus visible instead of focus order.

@ghost commented on GitHub (May 5, 2022): @carlos-zamora updated the guidelines in the bug. Apologies as mistakenly added focus visible instead of focus order.
Author
Owner

@ghost commented on GitHub (Jun 15, 2022):

I have logged this bug because page heading is non-interactive item so tab focus should not move to that control as Keyboard only, Screen Reader, Voice Access users misunderstand that as an interactive control.

As per Discussion with team, we are degrading the severity of this bug.

@ghost commented on GitHub (Jun 15, 2022): I have logged this bug because page heading is non-interactive item so tab focus should not move to that control as Keyboard only, Screen Reader, Voice Access users misunderstand that as an interactive control. As per Discussion with team, we are degrading the severity of this bug.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#17382