RE: Another appeal for an IDispatch interface for Firefox

"Jamal Mazrui" <[email protected]> Fri, 11 Feb 2011 15:12:15 -0500
Newsgroups gmane.comp.mozilla.accessibility
Message-ID <9E3F9A88A3F4A54F81C9BC47D87A17A4E12C08@P2PXMB01S1.fccnet.win.fcc.gov>
 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