Completed
Last Updated: 19 Sep 2023 10:31 by ADMIN
Release 4.6.0 (11 Oct 2023) (R3 2023)

While the menu is usable the way it is, it could be better. If you take a look at the example menu in the best practices link that I provided in the original post, you will see what I mean. Some of the differences include the following:

  • For any item in your menu that is a link and not a submenu, the item is read by NVDA saying "collapsed" which is unnecessary and could get frustrating to a screen reader user. This doesn't happen with the best practices menu.
  • Using the keyboard left and right buttons move the focus to the next adjacent menu item, but it doesn't set focus to the top menu item and read it. Instead, it just says "Menu". The best practices will focus on the top menu item when moving left or right.
  • The escape key isn't being used to cancel out of the dropdown on the menu. A user should be able to click ESC and the menu should close, with focus set back to the parent menu item. This presents a navigational issue for those submenu items that have further submenus. In order for a user to navigate to an adjacent menu, they need to traverse to the left all the way down the submenus before it will move on to the next adjacent top item. With the ESC key, they can move back to the parent item, and then navigate right or left from there.
  • Tabbing out of the menu when the focus is on the submenu, messes up the tab order, so the shift tab doesn't navigate back to the menu. If the focus is on one of the top menu items, then tabbing out and back works. However, it should set the focus back to the last top menu item that has focus, not the first item. So if the 3rd item had focus, then tabbing out and then shift-tabbing back should set the focus back to the 3rd item, not the first item. And if you tab out from a submenu item from the 2nd parent item, then shift-tab should bring them back to the 2nd parent item.

Best practices example: https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html

Completed
Last Updated: 21 Mar 2023 13:58 by ADMIN
Release 4.2.0 (26/04/2023)

Hello,

If I disable a Menu item at runtime, it prohibits access to child items via the mouse, but still opens the child group of items if I use the keyboard navigation.

Here is a test page with a workaround included (which is to recreate the Menu).

<TelerikButton OnClick="@DisableItem">Disable Services item</TelerikButton>
<TelerikButton OnClick="@EnableItem">Enable Services item</TelerikButton>

@if (ShowMenu)
{
    <TelerikMenu Data="@MenuItems" />
}

@code {
    List<MenuItem> MenuItems { get; set; }

    bool ShowMenu { get; set; } = true;

    async Task DisableItem()
    {
        MenuItems.Find(x => x.Text == "Services").Disabled = true;

        MenuItems = new List<MenuItem>(MenuItems);

        // workaround start
        ShowMenu = false;
        await Task.Delay(1);
        ShowMenu = true;
        // workaround end
    }

    async Task EnableItem()
    {
        MenuItems.Find(x => x.Text == "Services").Disabled = false;

        MenuItems = new List<MenuItem>(MenuItems);
    }

    protected override void OnInitialized()
    {
        MenuItems = new List<MenuItem>()
    {
            new MenuItem()
            {
                Text = "Company",
                Items = new List<MenuItem>()
                {
                    new MenuItem()
                    {
                        Text = "Overview"
                    },
                    new MenuItem()
                    {
                        Text = "Events"
                    }
                }
            },
            new MenuItem()
            {
                Text = "Services",
                Items = new List<MenuItem>()
                {
                    new MenuItem()
                    {
                        Text = "Consulting"
                    },
                    new MenuItem()
                    {
                        Text = "Education"
                    }
                }
            }
        };

        base.OnInitialized();
    }

    public class MenuItem
    {
        public string Text { get; set; }
        public bool Disabled { get; set; }
        public List<MenuItem> Items { get; set; }
    }
}

Unplanned
Last Updated: 13 Jan 2023 19:02 by Ron Hary
I'm using the Menu component and I am handling the OnClick event. I noticed that when an exception is thrown in its handler, it does not reach the ErrorBoundary.
Completed
Last Updated: 11 Mar 2021 09:09 by ADMIN
Release 2.23.0

Use any demo and rapidly hover between parent menu items:

Completed
Last Updated: 19 Jan 2021 10:14 by ADMIN
Release 2.21.0
Created by: Justin
Comments: 0
Category: Menu
Type: Bug Report
1
The menu gets the focus off other components such as TextBox and NumericTextBox on every keystroke in the input area. 
Completed
Last Updated: 09 Nov 2020 07:27 by ADMIN
Release 2.20.0
I would expect that setting HasChildren to false would prevent sub-menus and expand arrows from the current item. It does not. I am using hierarchical data binding.
Completed
Last Updated: 21 Apr 2020 15:27 by ADMIN
Release 2.11.0
Created by: Simon
Comments: 1
Category: Menu
Type: Bug Report
1

If the collection you pass to the Menu Data parameter is null or empty, you will get an exception like this

System.ArgumentNullException: Value cannot be null. (Parameter 'source')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Telerik.Blazor.Components.TelerikMenu`1.<BuildRenderTree>b__0_0(RenderTreeBuilder __builder2)
Duplicated
Last Updated: 02 Mar 2020 13:24 by ADMIN
Created by: Allan
Comments: 3
Category: Menu
Type: Bug Report
0

Using the demo on https://demos.telerik.com/blazor-ui/menu/index if you select Item 1 with the left mouse button, both Item 1 and Item 2 drop downs open, see attached images