Microsoft-ui-xaml: NavigationViewItem tab control type supports invoke pattern with PaneDisplayMode="Top"

Created on 17 Jun 2020  ·  10Comments  ·  Source: microsoft/microsoft-ui-xaml

Describe the bug

NavigationViewItems in a NavigationView with the PaneDisplayMode set to Top supports the invoke pattern, which is a violation of Section 508 502.3.10 (according to Accessibility Insights for Windows).

Steps to reproduce the bug

Steps to reproduce the behavior:

  1. Create an app with a NavigationView control with PaneDisplayMode set to Top.
  2. Add NavigationViewItems in NavigationView.MenuItems with any content value: (ex: "Menu Item 1", "Menu Item 2", "Menu Item 3".
  3. Run the app with Accessibility Insights.

Expected behavior

Expected: Invoke pattern is not supported.

Screenshots

Version Info

NuGet package version:

[Microsoft.UI.Xaml 2.4.2]


| Windows 10 version | Saw the problem? |
| :--------------------------------- | :-------------------- |
| Insider Build (xxxxx) | |
| November 2019 Update (18363) | Yes |
| May 2019 Update (18362) | |
| October 2018 Update (17763) | |
| April 2018 Update (17134) | |
| Fall Creators Update (16299) | |
| Creators Update (15063) | |


| Device form factor | Saw the problem? |
| :-------------------- | :------------------- |
| Desktop | Yes |
| Mobile | |
| Xbox | |
| Surface Hub | |
| IoT | |

Additional context

accessibility area-NavigationView needs-cherrypicktorelease team-Controls

Most helpful comment

Hi! I'm a developer on the Accessibility Insights team. I've left an answer to the internal StackOverflow post explaining why Accessibility Insights flags this as a violation and what the user impact of it might be.

All 10 comments

@dennykim do you happen to know what happens when you invoke it? I'd guess nothing?

@ojhad FYI

@StephenLPeters invoking selects the item and switches to the selected item. It seems that the functionality is not compromised; only the conflicting accessibility patterns.

@anawishnoff and @chigy as FYI. I believe the invoke and selection happening together is by design. What exactly is the accessibility issue ? I assume we support both invoke and selection patterns on the items.

@ranjeshj according to Accessibility Insights, the accessibility issue is that the invoke pattern shouldn't be supported for this control type (tab item).

@YuliKl @anawishnoff I think we wanted to support both Invoke and Selection. Is that an issue with accessibility ?

I posed this question on our internal StackOverflow to hopefully receive advice from accessibility experts. I don't currently understand the problem with the existing implementation.

Hi! I'm a developer on the Accessibility Insights team. I've left an answer to the internal StackOverflow post explaining why Accessibility Insights flags this as a violation and what the user impact of it might be.

Thank you, @dbjorge, for the very helpful answer. I reviewed the Invoke and SelectionItem control patterns, and checked the Control Pattern Mapping table.

All this documentation suggests to me that NavigationViewItems (in both top and left layouts) should follow the Tab Item precedent from the table and implement only the Selection Item pattern and not implement the Invoke pattern.

@chingucoding, do you have any interest in fixing this issue?

Of course @YuliKl , would love to! I will look into this.

Was this page helpful?
0 / 5 - 0 ratings