You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[dev-v5] FluentAppBar overflow trigger is a roleless interactive div #5322
FluentAppBar renders its overflow trigger as a focusable, clickable div with an aria-label, but without an interactive ARIA role:
<divid="appbar-more-f7730221"
class="fluent-appbar-more-item"
tabindex="0"
slot="trigger"
title="View more apps"
aria-label="0 hidden items"></div>
The component source currently renders this element directly as a div and registers FluentKeyCode for it.
axe-core 4.13 reports aria-prohibited-attr (serious): aria-label is not permitted on this roleless generic element. The element also exposes no button semantics despite being keyboard-focusable and activating the overflow popover.
This is distinct from #1864 / #1871, which corrected the AppBar navigation and item roles but did not cover the overflow trigger.
Repro
Render a FluentAppBar with enough FluentAppBarItem children to enable its overflow trigger.
Inspect .fluent-appbar-more-item after rendering.
Run axe-core with WCAG 2.x A/AA rules.
The same violation occurs even when the label says 0 hidden items, because the overflow trigger remains rendered and focusable.
Expected behavior
Render the trigger as a native button where possible, or give the existing element complete button semantics (including role="button" and correct Enter/Space behavior). Its accessible label and expanded/popup state should be exposed on the role-bearing trigger.
Activity