Hello,
I wanted to see if you had any advice for making the keyboard controls function properly for the multiselect dropdown menu when Windows Narrator is turned on. I'm able to select one item from the dropdown, but I'm unable to continue with any more navigation for the control afterwards.
The expected behavior should be that I can continue to interact with the dropdown after choosing one item. However I don't appear to be able to do anything else after the first selection.
The code I am working with is below, and I am using windows narrator as the accessibility tool. To reproduce,
- Turn on windows narrator.
- Grab focus on the dropdown.
- Use alt+down arrow to expand the dropdown. You should be able to press the down arrow to go through the options. Press enter on an option and the field should be updated.
- Use alt+down arrow again to select another option.
Expected behavior: The dropdown menu expands, and you can cycle through the options again.
Actual: The dropdown menu expands, but the narrator attempts to move onto the next focusable item, and the dropdown menu is closed.
Thank you for any advice:
@page "/"
@using Syncfusion.Blazor.DropDowns
<SfMultiSelect TValue="string[]" TItem="Countries" Placeholder="e.g. Australia" DataSource="@Country">
<MultiSelectFieldSettings Text="Name" Value="Code"></MultiSelectFieldSettings>
</SfMultiSelect>
@code{
public class Countries
{
public string Name { get; set; }
public string Code { get; set; }
}
List<Countries>Country = new List<Countries>
{
new Countries() { Name = "Australia", Code = "AU" },
new Countries() { Name = "Bermuda", Code = "BM" },
new Countries() { Name = "Canada", Code = "CA" },
new Countries() { Name = "Cameroon", Code = "CM" },
new Countries() { Name = "Denmark", Code = "DK" },
new Countries() { Name = "France", Code = "FR" },
new Countries() { Name = "Finland", Code = "FI" },
new Countries() { Name = "Germany", Code = "DE" },
new Countries() { Name = "Greenland", Code = "GL" },
new Countries() { Name = "Hong Kong", Code = "HK" },
new Countries() { Name = "India", Code = "IN" },
new Countries() { Name = "Italy", Code = "IT" },
new Countries() { Name = "Japan", Code = "JP" },
new Countries() { Name = "Mexico", Code = "MX" },
new Countries() { Name = "Norway", Code = "NO" },
new Countries() { Name = "Poland", Code = "PL" },
new Countries() { Name = "Switzerland", Code = "CH" },
new Countries() { Name = "United Kingdom", Code = "GB" },
new Countries() { Name = "United States", Code = "US" },
};
}
Clicking the link above shows an access denied page. But thank you for reporting the issue as a bug
I wanted to follow up on this request again to ask if there may be a fix? As you can see from the screenshot below, I am logged in, and have navigated to the post above, yet my access is still denied. Please let me know if I can provide any additional information:
Thank you for the update. According to the feedback link, the fix for this item is scheduled to release this month, January 2022. Is this still a correct timeline?
T
Thank you Dineshkumar.
I wanted to bring to your attention that there is very similar behavior with the SFDropdown component as well that could be stemming from the same issue. I pasted some code that I am working with below. To reproduce:
- Turn on windows narrator.
- Grab focus on the dropdown.
- Use alt+down arrow or enter to expand the dropdown. You should be able to press the down arrow to go through the options.
Expected behavior: The dropdown menu expands, and you can go through the options.
Actual: The dropdown menu expands, but the narrator attempts to move onto the next focusable item. If you turn off scan mode, then the narration is just silent.
@using Syncfusion.Blazor.DropDowns
@using MultiSelectSelectAll.Data
@using Syncfusion.Blazor.Buttons
<SfDropDownList TItem="GameFields" Width="100%" TValue="string" PopupHeight="230px" PopupWidth="auto" Placeholder="Select a game" DataSource="@Games">
<DropDownListEvents TItem="GameFields" TValue="string"></DropDownListEvents>
<DropDownListFieldSettings Text="Text" Value="ID"></DropDownListFieldSettings>
</SfDropDownList>
<div> extra text here</div>
<div> extra text here 2</div>
@code {
public class GameFields
{
public string ID { get; set; }
public string Text { get; set; }
}
private List<GameFields> Games = new List<GameFields>() {
new GameFields(){ ID= "", Text= "all" },
new GameFields(){ ID= "Game1", Text= "American Football" },
new GameFields(){ ID= "Game2", Text= "Badminton" },
new GameFields(){ ID= "Game3", Text= "Basketball" },
new GameFields(){ ID= "Game4", Text= "Cricket" },
new GameFields(){ ID= "Game5", Text= "Football" },
};
}