-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Closed
Description
Bug explanation
When using ComboBox controls with MaterialDesignFloatingHintComboBox or MaterialDesignFilledComboBox styles, NVDA does not read the control's name correctly if the Header is complex (e.g., a StackPanel or DockPanel). This makes the controls inaccessible to screen reader users, as NVDA skips or fails to announce a meaningful name.
Steps to Reproduce:
- Use a ComboBox with MaterialDesignFloatingHintComboBox or MaterialDesignFilledComboBox style.
- Set a complex Header (e.g., a DockPanel with another ComboBox or a StackPanel with a TextBlock and icon).
- Set materialDesign:HintAssist.Hint to a descriptive string (e.g., "Routing").
- Run the app and navigate to the ComboBox with NVDA.
Expected Behavior:
NVDA should announce a meaningful name for the ComboBox, ideally using HintAssist.Hint.
Actual Behavior:
NVDA does not announce a meaningful name, reducing accessibility.
Proposed Solution:
Add a Setter to the MaterialDesignFloatingHintComboBox and MaterialDesignFilledComboBox styles in MaterialDesignTheme.ComboBox.xaml to set AutomationProperties.Name based on HintAssist.Hint:
Benefits:
• Enhances accessibility for screen reader users.
• Uses existing HintAssist.Hint for consistency.
• No visual changes to the ComboBox.
• Removes need for manual AutomationProperties.Name in XAML.
Code Sample:
Additional Notes:
• Currently, I must manually set AutomationProperties.Name for each ComboBox, which is repetitive.
Version
5.2.1