Describe the bug
NavigationViewItem
s 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:
NavigationView
control with PaneDisplayMode
set to Top
.NavigationViewItems
in NavigationView.MenuItems
with any content value: (ex: "Menu Item 1", "Menu Item 2", "Menu Item 3".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
@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.
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.