Skip to content

Support UI Automation in Microsoft Edge Chromium and Google Chrome #10555

Closed

Description

@codeofdusk

Is your feature request related to a problem? Please describe.

When starting Chrome with the --enable-experimental-ui-automation flag, browse mode is not functional.

Describe the solution you'd like

Support for UIA Chrome, including browse mode and full functionality of all widgets.

Describe alternatives you've considered

Continue to use the IA2 implementation and forcibly ignore UIA (similar to #7497) if UIA becomes no longer behind a feature flag. However, UIA would likely improve performance on large pages.

Activity

  1. josephsl commented on Nov 28, 2019

    @josephsl
    Contributor
  2. LeonarddeR commented on Nov 29, 2019

    @LeonarddeR
    Collaborator

    I closed the other issue.

  3. Nikita34196 commented on Dec 7, 2019

    @Nikita34196

    The native UI Automation is enabled by default in microsoft edge starting with version 80.0.355.0 (Official Build) canary.

  4. changed the title [-]Support UI Automation in Google Chrome[/-] [+]Support UI Automation in Microsoft Edge Chromium and Google Chrome[/+] on Dec 18, 2019
  5. LeonarddeR commented on Dec 18, 2019

    @LeonarddeR
    Collaborator

    Even in the stable build of edge, UIA now turns out to be the default.

  6. Nikita34196 commented on Dec 18, 2019

    @Nikita34196

    I reported it to Microsoft. they said there should be UIA support on the nvda side. they also offer to turn it off manually, but not everyone knows how to do it. I don't think a lot of people will be able to turn it off in edge.

  7. LeonarddeR commented on Dec 18, 2019

    @LeonarddeR
    Collaborator
  8. Adriani90 commented on Apr 18, 2020

    @Adriani90
    Collaborator

    In Edge Cromium 81 which is the last stable version, UIA is enabled by default and browse mode seems to work as expected.
    @codeofdusk can you confirm?

  9. codeofdusk commented on Apr 19, 2020

    @codeofdusk
    ContributorAuthor

    On my machine (Chrome 83) with the --enable-experimental-ui-automation flag, NVDA now seems to force IAccessible 2.

  10. josephsl commented on Apr 19, 2020

    @josephsl
    Contributor
  11. codeofdusk commented on Apr 19, 2020

    @codeofdusk
    ContributorAuthor

    Makes sense, so this issue is still not resolved (we still need to implement support for UIA in Chrome).

  12. Adriani90 commented on Apr 30, 2020

    @Adriani90
    Collaborator

    CC: @feerrenrut after our private discussion I think this is maybe nice to keep an eye on for the future.

  13. LeonarddeR commented on May 1, 2020

    @LeonarddeR
    Collaborator

    Personally, I think a first pr should address two things:

    1. Ad a flag to NVDA's advanced settings to enforce IA2 in Edge and Chrome, which is enabled by default
    2. Implement a basic browse mode tree interceptor for UIA in Edge/Chrome that's active when UIA is used.
  14. codeofdusk commented on May 1, 2020

    @codeofdusk
    ContributorAuthor

    Ad a flag to NVDA's advanced settings to enforce IA2 in Edge and Chrome, which is enabled by default

    Why enforce IA2? Wouldn't it make sense to make the flag be for enabling UIA, similar to Word and Windows Console?

  15. feerrenrut commented on May 1, 2020

    @feerrenrut
    Contributor

    For these feature flags its important to additionally include an explicit "use default" option, so for a binary decision, it becomes ternary:

    • The current NVDA default (most users should / will stay on this option) the outcome of this option can change in future. It may result in X in this release and Y in the next.
    • Explicitly X
    • Explicitly Y

    This is particularly important if developers can foresee that the default setting may need to change. It allows developers to take the users explicit preferences into account during an upgrade procedure.

  16. codeofdusk commented on May 1, 2020

    @codeofdusk
    ContributorAuthor

    Yes, but like UIA console, don't expose this option in the GUI until it becomes default (compare the current checkbox to the combo box in #10964).

  17. feerrenrut commented on May 1, 2020

    @feerrenrut
    Contributor

    Yes, but like UIA console, don't expose this option in the GUI until it becomes default.

    No. This does not solve the problem I outlined. It must be exposed in the GUI otherwise the user is missing one of the explicit choices. They are left with only:

    • Explicit X
    • Current default Y

    If the user specifically wants to use Y until some amount of time after X has become the default doing this will break their config. To provide an effective update path you need three options for a binary setting:

    • Explicit X
    • Explicit Y
    • Current default (Y now, X later)

    This allows those who just want the recommended settings to get them. Those who want to try the latest thing to do so, and those who want to stay on the "tried and true" as long as possible to do so also.

  18. k-kolev1985 commented on May 1, 2020

    @k-kolev1985
    Contributor

    I don't know how important it is, but recently I was looking for the setting "Native UI Automation" in "edge://flags" in 64-bit Microsoft Edge Canary version 84.0.499.0 and did not find it by searching for "Native UI Automation" from within the provided search field. Could it be that the setting was removed and now UIA is the default and could not be changed as we could in the past? I don't know if this matters for this discussion, but I decided to share it with you just in case it does matter.

  19. LeonarddeR commented on May 1, 2020

    @LeonarddeR
    Collaborator

    I will do so in #11079, though now it is still binary, and really broken if enabled. I actually followed @codeofdusk's suggestion and worded it positively towards UIA instead.

  20. LeonarddeR commented on May 1, 2020

    @LeonarddeR
    Collaborator

    I implemented a prototype in #11079 that works somehow. However, it looks like browse mode is pretty broken in that it keeps bouncing all over the page in complexer documents. Therefore, I don't consider it good enough to go into a release build.

    May be either @feerrenrut or @michaelDCurran could elaborate on what the current plans are with Chromium and UIA. I see several solution.

    1. Abandon this ticket for now and close Add advanced setting to allow UIA in chromium based browsers #11079. It could serve as a reference for future attempts
    2. Only keep the Add advanced setting to allow UIA in chromium based browsers #11079 part that adds the flag to advanced settings, but clearly document that browse mode is not available. While being useless for most people, I think this might serve developers to rapidly test the state of the UIA implementation in test builds of Edge.
    3. Keep this as is, of course with a code quality review, but clearly document that browse mode is far from usable yet and that this implementation only serves development of Edge/Chromium. It might be suitable for Edge and Chromium accessibility devs to test their implementation based on what NVDA expects from it.
  21. codeofdusk commented on May 1, 2020

    @codeofdusk
    ContributorAuthor

    I vote for option 3 if the freeze can be fixed.

  22. added
    api/uiaFeature or bug requires an understanding of UIA
    on May 2, 2020
  23. feerrenrut commented on Oct 15, 2020

    @feerrenrut
    Contributor

    Just to document it, and it might be handy to know about for UIA in Chrome is the docs for "Runtime two way IAccessible2 to UI Automation elements look up via unique id": https://chromium.googlesource.com/chromium/src/+/master/docs/accessibility/ia2_to_uia.md

  24. feerrenrut commented on Feb 9, 2021

    @feerrenrut
    Contributor

    Should have been closed with PR #12025

  25. added this to the 2021.1 milestone on Feb 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions