Wednesday, September 1, 2010

Firefox 4 beta - AT Vendor Alert

Hello friendly accessibility technology vendors and developers.

As of the Firefox 4 beta 5, the child windows associated with browser tabs have been removed thereby breaking the expectations of most windows screen readers. Regretfully, the timing of this change and the substantial impact it has on AT caught the Mozilla accessibility team by surprise. Unfortunately this change is a critical step in our browser's technical roadmap. The good news is that this issue was quickly discovered during our a recent beta cycle and now we can work together on a fix!

Let's fix this the right way. We probably shouldn't have AT relying on window classes to indicate where browser tabs are, however convenient it might have been years ago. I think, depending on how this per browser tab separation has been used in your code, we can provide an even better solution perhaps even allowing some hack removal on your side. We've very recently been in contact with most of the main AT vendors, and some have what sounds like a fix already in hand. We want to make sure we protect all our users from potential bustage, so we want to hear from all accessibility technology developers that use Windows accessibility API and have been relying on per browser tab window classes.

Something to look for... anywhere you have code checking for a specific window class "MozillaContentWindowClass" your code will almost certainly now be broken for FF4 beta5+. Note this class used to correspond to the HWND of the child content window that received focus whenever the top level window gained focus. To see how things look now I recommend Microsoft's UISpy tool. Be sure to run this against the most recent FF 4 beta or nightly.

We have time but must move swiftly. Please contact us directly or on our accessibility community mailing list.

Thanks for reading.

25 comments:

James Teh said...

It's also worth noting that the class name of the top level window (now the only window in most cases) is "MozillaWindowClass", not "MozillaUIWindowClass" as it was previously.

David Bolter said...

@jamie, right, thanks for that addition.

Aaron Leventhal said...

We have a relation from the top level window to the content. I think it's called RELATION_EMBEDS. Anyway, we tried to get AT vendors to move to that method a while back so that the earliest versions of their software would be compatible with the first version that made this change. It's been something like 2-3 years in the planning.

Aaron Leventhal said...

By the way, does this mean that current versions of JAWS and Window-Eyes won't be compatible with Firefox 4?

Will users of those products be required to upgrade if they want to use Firefox 4 with them?

Aaron Leventhal said...

Oh, and one more thing :)

This will probably break other types of software, such as biometric password utilities. I would also ask users to test for compatibility with specialized pointing devices and their scrolling capabilities.

David Bolter said...

@aaronlev

Thanks for the info! It seems I can still find surprises in gecko accessibility.

I see our embeds relation only exposing a single child ATM, the currently active content document, which seems okay...

Current versions of AT would break if we fail to mock the old windows structure. We are working on this, but we are advising AT devs to assume we need the long term fix asap.

Some AT actually push updates, and for at least one I think it is just updating a properties file that fixes this. I have a blog brewing about AT upgrade paths. We'll need to solve this and better coordinate release timing as we iterate faster on Firefox down the road.

David Bolter said...

Actually the surprises find me :)

Paddy said...

How to get Sidebar HWND in FF4.0?

I have a addon that have a sidebar created using VC++. For FF4.0 there is only one window(with class name MozillaWindowClass) when checked with Spy++. We do find window to reach the sidebar panel and set that as parent of sidebar pages built in Win32.

I tried getting the sidebar handle. I tried sending sidebar object from JS to CPP. Sidebar object is of type nsIDOMXULElement. I tried getting HWND directly from this, but couldn’t get it. I added one more function that uses nsIAccessibleDocument:: GetWindowHandle method. I converted nsIDOMXULElement to nsIDOMDocument. But when I query to get the nsIAccessibleDocument interface pointer, I don’t get it. It returns NULL.

I also tried getting nsIBaseWindow pointer from nsIDOMXULElement, but that also fails.

I tried sending sidebar window object from JS to CPP and then took the handle of that window.The handle that I get is of browser window. It opened sidebar in whole browser window.

So the problem is how to get the sidebar window object in FF4.0

Norman Robinson said...

This is very important to continued use of Firefox in the U.S. Government: if there isn't accessibility support (specifically relating to Section 508 requirements) then Firefox will be less likely to be used, and in some cases blocked by policy.

David Bolter said...

@Paddy, please post a bug report.

Dev note: using accessibility API for non-accessibility purposes incurs a performance penalty for your users. If possible please seek alternate API for your specific needs.

@Norman Robinson, thanks. We fixed the accessibility issue described in this blog post. Please see my subsequent post for details.

Richard Majece said...

My friend gave me an advice to read this and it made me think about writing friendship essay. I know that I will use firefox to read it.

Anonymous said...

using accessibility API for non-accessibility purposes incurs a performance penalty for your users. If possible please seek alternate API for your specific needs dewa poker

MyAssignmentHelp said...

Thank you for sharing this informative post.MyAssignmenthelp.co.uk is giving assignment help to students.we are already trusted by thousands of students who struggle to write their academic papers and also by those students who simply want computer network assignment help to save their time and make life easy.

belly boys said...

Kareerkonncect is a leading software training institute providing Software Training, Project Guidance, IT consulting and Technology Workshops. Using our enhanced global software training delivery methodology, innovative software training approach and industry expertise, we provide high-value corporate training services that enable our clients to enhance business performance, accelerate time-to-market, increase productivity and improve customer service. More Info- Cpt Jobs in usa

Best Travel Portal Development said...

Make your travel portal more user-friendly by using flight API among the travelers. Team India Web design offers the best and error-free Flight API Integration to the travel agents at the best price.

belly sons said...

Global Interscope is the best swimming pools designing in Hyderabad where the you can get all the facilities to improve better.

swimming pool contractors in hyderabad, Execution, Equipment Supplies, Services and Lifestyle Products.

Brukkevin said...

Thank you for such a well written article. It’s full of insightful information and entertaining descriptions. Your point of view is the best among many. Logan Jacket

OGEN Infosystem (P) Limited said...

This blog was really amazing and valuable, thank you so much for sharing this blog. Ogen Infosystem is a leading Website Designing and Development Company in Delhi, for more information about us visit our website.
Website Designing Company in Delhi

JamesLynch said...

You really make it seem so easy along with your presentation but I in finding this matter to be really something that I feel I might by no means understand. It kind of feels too complicated and very extensive for me. I am taking a look forward for your subsequent publish, I will try to get the hang of it!seiko prospex diver

Anonymous said...

Read your blog, it was amazing and great to hear from you. Here is our business Perma Construction Aids Private Limited which was incorporated in the year 1997, we offer a wide range of Construction Chemicals products all around the market. We are supported by a team of highly experienced professionals who help us in offering a qualitative range of products to our clients. Our ranges include Bonded Agent, Strength Repair and Bonding Agent, Epoxy Concrete Bonding Agent, and Structural Repair Products.
We provide the customization facility and provide the products on a high-quality basis.
Do visit our website.

Perma Construction Aids Private Limited
Perma Construction Products

Anonymous said...

Read your blog, it was amazing and great to hear from you. Here is our business which is into commercial kitchen equipment. Our firm's multidisciplinary approach offers clients, comprehensive and cost-effective solutions to their most challenging situations. At Dé ChefMech, we will help clients find the right type of commercial cooking equipment for your business. Each and every kitchen equipment, at Dé ChefMech, is the perfect lineup of commercial kitchen equipment, with a compact design that allows providing the features and power every chef needs.
Do visit our website.
Chef Mech

Paul Stevs said...

Read your blog, it was amazing and great to hear from you. Our company Linear Systems has been a top firm in the process industry market since past many years. We started off our operations back in the year 1986 and since then, there is no turning back. Our company is known for the quality production of Burner Controllers for Furnaces and Boilers using state of the art technology.The firm has gained a lot of experience and expertise being so many years in the field. We have a good number of collaborations with Boiler and Furnace manufacturers for the necessary requirements. Started off small, but today have 20,000+ controllers installed over places like Canada, India, Bangladesh, Nepal, Sudan, Africa, etc. and it became possible only because of the hard work and effort of our staff, the timely delivery of products, and our quality assured services.
Do visit our website.
linear systems

Paul Stevs said...

Read your blog, it was amazing and great to hear from you. Here is our company Jehangir Gulabbhai & Bilimoria & Daruwalla, It is an Intellectual Property and civil litigation firm widely known for its expertise and experience in handling a wide variety of Intellectual Property and civil law matters.
The firm primarily specializes in all matters related to Intellectual Property Law including Trade Marks, Patents, Designs, Copyrights, Trade Secrets, Confidential Information, Technical ‘Know-How’, Food Safety & Standards, Legal Metrology and conducting Criminal Prosecutions in respect of Trade Mark and Copyright matters.
The firm also handles matters relating to General Practice and Litigation, Arbitration and Conciliation, Corporate Law, Consumer Protection and Restrictive Trade Practices, Succession Law, Specific Performance of Contracts, Conveyancing amongst others.
JGBD

ozpaperhelp said...

Hello guy's,
Thank you so much for sharing this information reagrading to realated assignments.Ozpaperhelp.com is the best platform where you can get the exact infoemation about your relatetd assignment and project report with affordable price.
Hnd Networking Technology Assignment
HND Computing And System Development
Mechanical Engineering Assignment Help
Environmental Engineering Assignment Help
Aeronautical Engineering Assignment Help
Engineering Assignment Help
Agricultural Engineering Assignment Help
Robotic Engineering Assignment Help
Civil Engineering Assignment Help
Highway engineering Assignment Help
SYSTEM SCIENCE AND ENGINEERINGASSESSMENT HELP
Mechanical Engineering Assignment Help
MME315 Mechanical Engineering Solution Help
Software Engineering Methodologies
HND Diploma in Creative Thinking
HND Diploma Event Management
HND Diploma in Business Enterprise
HND Diploma in Accounting and Business
HND Diploma in Professional Consulting
HND Diploma in Investment and Finance
HND Diploma in Management (Finance)


Zaf said...

As I always say, it is a pleasure for me to read your blogs. It is not easy to get such an elaborated and smartly presented content at random websites. I read many blogs in a day and out of them, yours are one of the best blogs. Rent a Car Islamabad Without Driver Rates