Re: Another appeal for an IDispatch interface for Firefox
Alexander Surkov <[email protected]> Thu, 17 Feb 2011 11:45:28 +0800
| Newsgroups | gmane.comp.mozilla.accessibility |
|---|---|
| Message-ID | <[email protected]> |
Hi, Jamal. I doubt Firefox is going to expose activex object to allow a script to manage the Firefox since addons are intended for this. But if we talk about AT then I think you can access Firefox from script if the application that executes your script allows to query IAccessible interface for Firefox (since it supports IDispatch for IAccessible objects). Having said that I don't think Firefox will copy one-to-one IE behavior but I think we should be able to figure out alternatives. Thank you. Alexander. On Wed, Feb 16, 2011 at 6:31 AM, Jamal Mazrui <[email protected]> wrote: > Hi Alexander, > In general, scripting languages like VBScript, VBA, and JAWS Script can > only use COM servers that implement an IDispatch interface. Parameters and > return types are variant data types. > > The developers of JAWS, itself, probably use C++ and a lower level COM > interface when accessing COM servers. Scripts that run on top of JAWS, > however, need the friendlier IDispatch interface. > > Thus, I hope that COM interface can be implemented by Mozilla on Windows as > well, which would make GECO and XUL-based applications scriptable by > assistive technologies. Scripts can add functionality unforseen by the > original application developers, especially functionality that improves > accessibility or efficiency by users with disabilities. > > A Wikipedia article about IDispatch is here: > > http://en.wikipedia.org/wiki/IDispatch > > Jamal > > > > On 2/15/2011 6:04 AM, Alexander Surkov wrote: > >> Hi, Jamal. >> >> I don't know well JAWS scripting but I think they should provide a way to >> get IAccessible for Firefox. If it's general vbscript then who does >> executes >> it? Do these platforms provide a way to get IAccessible for desired >> application? >> >> What kind of interfaces do you look for? >> >> Thank you. >> Alexander. >> >> >> On Sat, Feb 12, 2011 at 4:12 AM, Jamal Mazrui<[email protected]> >> wrote: >> >> Hi Alexander, >>> The JAWS scripting language, and scripting languages in general, can only >>> access COM object models through an IDispatch interface. They cannot >>> work >>> with IUnknown or other, low-level COM interfaces. >>> >>> A problem with Firefox extensions is that an end-user has to separately >>> install and authorize them, whereas screen reader scripts or apps can be >>> distributed in a more friendly manner. I also do not know of a way that >>> an extension can integrate with the screen reader synchronously. For >>> example, I would want to instantiate a COM object via the CreateObject or >>> GetObject functions of the JAWS scripting language. My script might then >>> call methods and retrieve properties from the Firefox object model in >>> order >>> to get desired pieces of information. The script might then use one of >>> the >>> Say or Braille functions of the JAWS scripting language in order to >>> convey >>> that information to the user. >>> >>> This kind of technique is used extensively by scripts for JAWS and >>> Window-Eyes (which generally uses VBScript for such purposes). It is >>> used, >>> for example, in scripts to increase the accessibility and usability of >>> Microsoft Word, Excel, and PowerPoint, as well as Internet Explorer. It >>> is >>> also used for accessing myriad other COM object models that are part of >>> Windows, e.g., with ProgIDs like >>> "Scripting.FileSystemObject,"VBScript.RegExp," "WScript.Shell," and the >>> WMI >>> object model. >>> >>> Jamal >>> >>> ------------------------------ >>> *From:* Alexander Surkov [mailto:[email protected]] >>> *Sent:* Friday, February 11, 2011 2:04 PM >>> *To:* Jamal Mazrui >>> *Cc:* [email protected] >>> *Subject:* Re: Another appeal for an IDispatch interface for Firefox >>> >>> Hi, Jamal. >>> >>> What kind of interfaces are looking for? You can use IAccessible >>> interface >>> for Firefox UI and web pages content from scripts (for example, from JAWS >>> scripts). If you need more power then we could try to make that for >>> IAccessible2. I'd certanly wouldn't do that for ISimpleDOM interfaces, >>> what >>> is an equivalent of IE interfaces at some precision, due to number of >>> reasons. >>> >>> But technically if you talk about accessibility extensions for Firefox >>> why >>> does Firefox addons approach not work for you? Here you can use Gecko >>> nsIAccessible interfaces (and much more) from JS and have no >>> restrictions. >>> >>> Thank you. >>> Alexander. >>> >>> >>> On Sat, Feb 12, 2011 at 1:20 AM, Jamal Mazrui<[email protected] >>> >wrote: >>> >>> This is to reiterate a suggestion I made a couple years ago. On >>>> Windows, it certainly aids accessibility for assistive technology >>>> developers to be able to obtain information about Firefox user interface >>>> controls and web content via a COM interface. Unfortunately, however, >>>> an early-bound, low-level COM interface that is tailored to C++ >>>> programmers does not help scripters of assistive technology. JAWS, >>>> Window-Eyes, and Hal, for example, include full-fledged scripting >>>> languages that are designed for advanced users with skill in a high >>>> level programming language. Such individuals often know from personal >>>> experience what kinds of enhancements to their browsing experiences >>>> would be most helpful. The 3rd party market of accessibility extensions >>>> to Firefox would be significantly larger, in my opinion, if scripters >>>> could build extensions on top of their assistive technologies. >>>> >>>> For this to happen, the COM object models of Firefox (and other Mozilla >>>> applications such as Thunderbird) need to be additionally exposed via a >>>> late-bound IDispatch interface with a ProgID that supports automation >>>> clients. For example, the syntax to obtain an initial COM object might >>>> be something like >>>> >>>> OFirefox = CreateObject("Firefox.Application") >>>> >>>> I know that adding an IDispatch interface is not a trivial programming >>>> project. Nevertheless, it is a common practice among software >>>> developers for Windows applications, and I think the benefits would be >>>> significant on that platform. Internet Explorer offers such an >>>> interface, and as a result, I know of JAWS and Window-Eyes scripters >>>> (including myself) who have put it to good use, e.g., enabling access to >>>> the DOM of the current web page in ways not facilitated by default >>>> screen reader functionality. >>>> >>>> Regards, >>>> Jamal >>>> >>>> Jamal Mazrui >>>> Deputy Director, Accessibility and Innovation Initiative >>>> Federal Communications Commission >>>> 202.418.0069 >>>> >>>> _______________________________________________ >>>> dev-accessibility mailing list >>>> [email protected] >>>> https://lists.mozilla.org/listinfo/dev-accessibility >>>> >>>> >>> >>> _______________________________________________ >> dev-accessibility mailing list >> [email protected] >> https://lists.mozilla.org/listinfo/dev-accessibility >> >>