Closed Bug 1221256 Opened 5 years ago Closed 5 months ago

[IAccessible] put_accValue() not implemented

Categories

(Core :: Disability Access APIs, defect, P2)

Desktop
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox-esr68 72+ fixed
firefox70 --- wontfix
firefox71 --- wontfix
firefox72 --- verified

People

(Reporter: sylvain.werdefroy, Assigned: Jamie)

References

Details

(Keywords: parity-chrome, parity-ie, Whiteboard: [enterprise])

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

Steps to reproduce:

IAccessible method put_accValue() is not implemented in Firefox (this method is implemented in other browsers like Internet Explorer and Chrome).


Actual results:

IAccessible->put_accValue() returns E_NOTIMPL


Expected results:

IAccessible interface is easier to use than the IAccessible2 that needs to register a proxy.
It would be nice to implement this method, at least on text edit fields (objects with role=ROLE_SYSTEM_TEXT).
Component: Untriaged → Disability Access APIs
Product: Firefox → Core
Status: UNCONFIRMED → NEW
Ever confirmed: true
What assistive technology rely on this method?
I use the IAccessible interface in my open source e-sso tool (https://github.com/swSSO/swsso -- www.swsso.com)

Hello,

Is it possible to add support for this method ?
The following documentation ("MSAA Features We Do Not Support" section) stat that :
"No one has yet asked for the following features (if you need something, please contact the Mozilla Accessibility Community )"
https://developer.mozilla.org/en-US/docs/Mozilla/Accessibility/Gecko_info_for_Windows_accessibility_vendors

Thank you for your feedback.

Flags: needinfo?(jteh)

Fabio, what would you need it for? Invoking the accessibility engine is expensive. So if you just need to put something somewhere, and are considering the accessibility APIs for this, without actually wanting to consume any of the information it provides to assistive technologies, there should be better ways, like through a Firefox extension, to accomplish the same task. So knowing what use case you want to cover would be good.

Thanks for your answer Marco.
We rely on an eSSO product that needs to use this method to interact with Firefox browser.
This eSSO product has no plan yet to use other ways (Firefox extension) for this.

Flags: needinfo?(jteh)

While (as per comment 4) we'd rather clients not use accessibility APIs for something like this, enterprise IT tends to be a slow moving field and I'd rather not have enterprises abandoning Firefox because other browsers support this and Firefox doesn't. This is trivial to implement, so I'm just going to do it.

Priority: -- → P2
OS: Unspecified → Windows
Hardware: Unspecified → Desktop
Pushed by mzehe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cbe50feba8e1
Implement IAccessible::put_accValue for editable text. r=MarcoZ

Hi Jamie,
Thanks for implementing this interface.
And thanks to Fabio for waking up the bug I filed 4 years ago ;-)
Regards
Sylvain

Status: NEW → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72

Hi all,
Thank you that's a great news !
Could you confirm to us that this "fix" will as well be integrated in the ESR 68.4 version ? Or else, when will it be integrated in ESR release ?
Thank you.

Thanks guys for the modification, it will really be helpfull.

I can try for an ESR uplift, but I'm far from certain it'll be approved. This isn't a critical security or stability fix. If anything, it's an enhancement, not even a fix.

Verified fixed in Firefox 72.0a1 20191118093852 Windows 64 bit.

Comment on attachment 9109340 [details]
Bug 1221256: Implement IAccessible::put_accValue for editable text.

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Allows certain enterprise single sign-on tools to work with Firefox as they already do with Chrome and IE.
  • User impact if declined: Certain enterprise single sign-on tools will not work with Firefox.
  • Fix Landed on Version: 72
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Implements a Windows accessibility API function using existing Gecko code already used on other operating systems. Very few clients will use this function, only tools that need it such as enterprise SSO tools.
  • String or UUID changes made by this patch: None.
Attachment #9109340 - Flags: approval-mozilla-esr68?

My concern here is that this hasn't had a lot of "bake time" on pre-release or release channels. I'd be happier to uplift this to ESR if it has some time on beta. While this might only affect enterprises in this particular situation, if we break some major SSO signin it's going to be something we end up having to do a dot release to fix.

I also realize you are a good person to test this and yet generally try not to have the developer who wrote/ reviewed the patch also verify the fix. Do you think it really is low risk -- might it break something or cause perf problems with enterprise SSO ? Is there any more testing we might be able to do to further verify?

Flags: needinfo?(jteh)

Hi Liz,

I did test the implementation of the put_value on the nightly build with our ESSO solution.
It does work like a charm.

It is a great improvement for us, and probably also for Sylvain's (who open the case) very nice OpenSource ESSO solution.
Without that the only solution we have (as an ESSO solution) is to force the focus on the field and simulate keystroke to send the login and the password. It does work but it really is not very nice.

I've reviewed James modification. (Thank you a lot James) The impact should really be very low as their is no chnage unless someone call the API.

Regards

Hey Liz. Comment 17 should hopefully answer some of your concerns better than I could have. I guess we could try to test with some impacted eSSO solutions ourselves, though I'm not sure what's involved there and we'd need to get PI to do this. I don't see how this could cause any performance problems unless new eSSO solutions start using Firefox a11y that weren't previously. That is, I can't see a way that this method alone could cause performance problems. I don't think we'd break any SSO solution that isn't already broken; previously, this function just failed. I guess this could perhaps prevent a fallback solution if an eSSO solution has one and this function doesn't work as expected, since now, this function won't fail. That seems super unlikely though.

All of that said, I'll request an uplift to beta and we'll let it bake there for a bit.

Flags: needinfo?(jteh)

Comment on attachment 9109340 [details]
Bug 1221256: Implement IAccessible::put_accValue for editable text.

Beta/Release Uplift Approval Request

  • User impact if declined: Certain enterprise single sign-on tools will not work with Firefox.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Implements a Windows accessibility API function using existing Gecko code already used on other operating systems. Very few clients will use this function, only tools that need it such as enterprise SSO tools.
  • String changes made/needed: None.
Attachment #9109340 - Flags: approval-mozilla-beta?

Hi all,

I just tested on the nightly build with my ESSO solution, I can also confirm it's a great improvement!
IMHO, the change should not be risky at all.
Thanks!

Regards

Comment on attachment 9109340 [details]
Bug 1221256: Implement IAccessible::put_accValue for editable text.

Sorry, this is too late for beta, we have already shipped our last beta and it seems risky to add in our RC build code that just landed in Nightly. let's have it ride the 72 train 5 weeks later (it ships January 7) and the associated ESR minor release.

Attachment #9109340 - Flags: approval-mozilla-beta? → approval-mozilla-beta-

Comment on attachment 9109340 [details]
Bug 1221256: Implement IAccessible::put_accValue for editable text.

approved for 68.4esr

Attachment #9109340 - Flags: approval-mozilla-esr68? → approval-mozilla-esr68+
Regressions: 1602601
Whiteboard: [enterprise]
You need to log in before you can comment on or make changes to this bug.