Re: Another appeal for an IDispatch interface for Firefox

Alexander Surkov <[email protected]> Tue, 15 Feb 2011 19:04:00 +0800
Newsgroups gmane.comp.mozilla.accessibility
Message-ID <[email protected]>
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
>>
>
>