Re: [orca-list] Structural navigation



Hi Tomas:

the question is: Is Orca really the right place to implement document
navigation or could it be done on a different level?

I don't believe Orca is the right place to implement a number of navigation techniques. Instead, it should be provided by the toolkit and/or application. My reasoning for this is that quality navigation techniques benefit more than just one class of user and can be far more efficient if done inside the application space.

We had many long and difficult conversations with the Firefox team about getting Firefox to properly support keyboard navigation. The problem is that the caret navigation code in Gecko is apparently ensnarled deep inside the core rendering code. My understanding is that nobody understands it and nobody wants to touch it.

In addition, at the time the AT-SPI implementation of Firefox was still emerging. So...with finite resources, the collective community chose to work with getting the AT-SPI implementation done and complete rather than spend Gecko engineering time on keyboard navigation.

Knowing that Firefox would not solve the keyboard navigation issue, we made the decision to go down one of two paths: 1) implement the navigation logic in Orca itself, or 2) write a Firefox extension to do the navigation. We chose to do it in Orca mainly because we didn't want to require the user to install an extra extension and because we really didn't know how to write an extension. In doing the work, we anticipated that Firefox would eventually support keyboard navigation. As a result, we instrumented Orca so that we could hopefully just 'turn off' the Orca navigation code once Firefox properly supported keyboard navigation.

With the huge Gecko/AT-SPI implementation hump behind us, it might be time to consider moving navigation back 'in process' in Gecko. Given the huge amount of pushback we had regarding actually fixing the core Gecko code itself, I suspect the logical path might be to write a keyboard navigation extension for Firefox.

Will




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]