Winforms: [Accessibility] Needs to implement UIA provider for all controls

Created on 10 Jun 2020  路  3Comments  路  Source: dotnet/winforms

  • Base issue: #2146
  • Base PR: #3037

  • .NET Core Version: 5.0

Problem description:

  • Many .Net Core WinForms controls support MSAA proxy, which is unmanaged for us. These controls don't support UIA provider. This doesn't allow us to change some Accessibility properties or methods to fix some Accessibility bugs. We can't manage our AccessibleObjects fully.

Expected behavior:

  • All .Net 5.0 controls support UIA provider

Minimal repro:

  • Create a .Net 5.0 Winforms app
  • Add any control to the MainForm
  • Check ProviderDescription Accessibility property of this control using Inspect

Controls

Made:

  • [x] Splitter (#3246)
  • [x] RadioButton (#3244)
  • [x] PictureBox (#3233)
  • [x] CheckBox (#3228)
  • [x] Button (#3215)
  • [x] ListView (#3224)

In progress:

In the 6.0 future:

  • [ ] TextBoxBase
  • [ ] MaskedTextBox
  • [ ] DateTimePicker
  • [ ] ScrollBar
  • [ ] HScrollBar
  • [ ] VScrollBar
  • [ ] UpDownBase - abstract
  • [ ] NumericUpDown
  • [ ] MenuStrip
  • [ ] ListControl - abstract
  • [ ] FlowLayoutPanel

In the distant future

  • [ ] GridErrorDlg
  • [ ] GridToolTip
  • [ ] MdiControlStrip
  • [ ] MdiWindowListStrip
  • [ ] ToolStripScrollButton
  • [ ] MarshalingControl - sealed
  • [ ] MdiWindowDialog - sealed
  • [ ] ComponentEditorForm
  • [x] ParkingWindow - sealed
  • [ ] ToolStripPanel
  • [ ] SendKeys
  • [ ] PrintControllerWithStatusDialog
  • [ ] ComponentEditorPage
  • [ ] AxHost
  • [ ] BindingNavigator
  • [ ] ContainerControl
  • [ ] ContextMenuStrip
tenet-accessibility

Most helpful comment

In the 5.0 definitely:

  • [ ] TextBoxBase

In the 5.0 maybe:

  • [ ] ListControl - abstract
  • [ ] MenuStrip

In the 6.0+:

  • [ ] ScrollBar
  • [ ] HScrollBar
  • [ ] VScrollBar
  • [ ] MaskedTextBox
  • [ ] DateTimePicker
  • [ ] UpDownBase - abstract
  • [ ] NumericUpDown
  • [ ] MenuStrip
  • [ ] FlowLayoutPanel

All 3 comments

@RussKie - let's take a look at Win32 docs about which UIA patterns are really needed on which controls.

@merriemcgaw, if I got it correctly, we need to implement UIA for all controls to have correct navigation in the Accessibility hierarchy. We need it to fix #3037.

In the 5.0 definitely:

  • [ ] TextBoxBase

In the 5.0 maybe:

  • [ ] ListControl - abstract
  • [ ] MenuStrip

In the 6.0+:

  • [ ] ScrollBar
  • [ ] HScrollBar
  • [ ] VScrollBar
  • [ ] MaskedTextBox
  • [ ] DateTimePicker
  • [ ] UpDownBase - abstract
  • [ ] NumericUpDown
  • [ ] MenuStrip
  • [ ] FlowLayoutPanel
Was this page helpful?
0 / 5 - 0 ratings