Open Bug 1949871 Opened 1 year ago Updated 1 year ago

Firefox does not implement UIA patterns to the degree that Chromium does

Categories

(Core :: Disability Access APIs, task)

task

Tracking

()

People

(Reporter: nlapre, Unassigned)

References

(Blocks 1 open bug)

Details

Though we've implemented Gecko support for UIA to the UIA spec, there are some mismatches with the de facto reference implementation in Chromium when it comes to exposed patterns, particularly for controls. This bug captures a list of relevant elements where there are potential mismatches that we should address so that UIA ATs work as expected.

To reproduce this yourself, compare Firefox (with UIA enabled via the accessibility.uia.enable preference) to Edge using the Accessibility Inspector for Windows. A useful page for testing form controls is here. Hover or otherwise focus the control in question, then observe the listed patterns in the UI of the Accessibility Inspector.

The result of the above steps is listed below. This list is not comprehensive, but does at least capture form controls.

  • Button:
    • Firefox: InvokePattern, ScrollItemPattern
    • Edge: InvokePattern, ScrollItemPattern, TextChildPattern
  • Combobox:
    • Firefox: ValuePattern, ExpandCollapsePattern, ScrollItemPattern
    • Edge: ValuePattern, ExpandCollapsePattern, ScrollItemPattern, TextChildPattern
  • Combobox item (option):
    • Firefox: ScrollItemPattern, SelectionItemPattern
    • Edge: InvokePattern, ScrollItemPattern, SelectionItemPattern, TextChildPattern
  • Listbox (list):
    • Firefox: InvokePattern, SelectionPattern, ScrollItemPattern
    • Edge: SelectionPattern, ValuePattern, ScrollPattern, ScrollItemPattern, TextChildPattern
  • Group (in listbox):
    • Firefox: ScrollItemPattern, TextChildPattern
    • Edge: ScrollItemPattern, TextChildPattern
  • Check box:
    • Firefox: TogglePattern, ScrollItemPattern
    • Edge: ValuePattern, TogglePattern, ScrollItemPattern, TextChildPattern
  • Radio button:
    • Firefox: SelectionItemPattern, TogglePattern, ScrollItemPattern
    • Edge: InvokePattern, ValuePattern, SelectionItemPattern, ScrollItemPattern, TextChildPattern
  • Progress indicator:
    • Firefox: ValuePattern, RangeValuePattern, ScrollItemPattern
    • Edge: ValuePattern, RangeValuePattern, ScrollItemPattern, TextChildPattern
  • Slider:
    • Firefox: ValuePattern, RangeValuePattern, ScrollItemPattern
    • Edge: ValuePattern, RangeValuePattern, ScrollItemPattern, TextChildPattern
  • Text input (edit):
    • Firefox: InvokePattern, ValuePattern, TextPattern, ScrollItemPattern
    • Edge: ValuePattern, TextPattern, ScrollItemPattern, TextChildPattern, TextEditPattern
  • More complex buttons (color picker, file picker, etc.):
    • Firefox: InvokePattern, ScrollItemPattern
    • Edge: InvokePattern, ValuePattern, ScrollItemPattern, TextChildPattern
  • Date picker (and local date and time picker, time picker, week picker, month picker):
    • Firefox: Exposed as group, not as date picker. Patterns: ScrollItemPattern
    • Edge: InvokePattern, ValuePattern, ScrollItemPattern, TextChildPattern
  • Spin button:
    • Firefox: InvokePattern, ValuePattern, RangeValuePattern, TextPattern, ScrollItemPattern
    • Edge: ValuePattern, RangeValuePattern, TextPattern, ScrollItemPattern, TextChildPattern, TextEditPattern
  • Table:
    • Firefox: GridPattern, TablePattern, ScrollItemPattern
    • Edge: GridPattern, TablePattern, ScrollItemPattern, TextChildPattern
  • Row:
    • Firefox: ScrollItemPattern
    • Edge: ScrollItemPattern, TextChildPattern
  • Column header:
    • Firefox: GridItemPattern, SelectionItemPattern, TableItemPattern, ScrollItemPattern
    • Edge: GridItemPattern, TableItemPattern, ScrollItemPattern, TextChildPattern

The one that stands out to me here is the TextChild pattern. I didn't even know that existed before today. That was added in Windows 8, which is when narrator started getting actual attention from Microsoft, so that could be significant. Or it could be a red herring.

I haven't attributed these to any differences in functionality, but it seems worth collecting anyhow.

Other honorable mention candidates to look at:

  • TextEditPattern, which I don't think we support at all
  • ValuePattern, which we - unlike Edge - don't implement for a fair few control types
  • ScrollPattern on listbox
  • InvokePattern on a few controls (combobox options, radio buttons, etc.)
Depends on: 1950275
Type: defect → task
Blocks: uia
Depends on: 1949920
See Also: uia →
You need to log in before you can comment on or make changes to this bug.