Last Week in NVDA (13 Oct)
The major highlight in the land of braille support last week was the implementation of initial support for braille in virtual buffers. The text of virtual buffers is displayed in braille when a virtual buffer gains focus. The virtual caret is tracked, and both scrolling the display and cursor routing can move the virtual caret. NVDA correctly switches between browsing the document and displaying the control with focus when pass through mode is disabled and enabled, respectively. Control field information, such as whether an element is a link, form field, etc., is not yet displayed. Also, controls cannot yet be activated by using the cursor routing keys. Finally, there were some minor fixes to braille in Windows command consoles.
In last week's update, I discussed Mick's work on using remote procedure call (RPC) for inter-process communication. Testing of RPC showed very promising results. Mick implemented NVDAController, a framework using RPC which enables external applications to trigger events inside NVDA appModules. Aside from being a useful feature, this allowed him to familiarise himself with RPC and served as a good practical test of RPC in NVDA. Although this functionality has been tested and does work, it is not yet enabled in NVDA, as its interface is still subject to change. Mick then began to work on converting the virtual buffer library to use RPC.
The major refactoring of the virtual buffer library over the last few weeks has transformed it into a package which differs vastly from the original library. It is almost a completely new library in many ways, as the interface has been rewritten and the package has been reorganised. Furthermore, the use of RPC has eliminated an entire layer of code. The end result for the user will be the same, but the code is very different. Therefore, we have decided to start a new code repository for the library and release it as a new version. Overall, the new version is much cleaner, more organised and better documented.
As usual, there were several minor changes to the main NVDA code that are nevertheless worth noting:
- I simplified and abstracted the tasks performed when moving the virtual caret in virtual buffers, which, aside from being cleaner, was necessary for braille support.
- Mick fixed problems with mouse tracking in Java objects.
- Mick changed the title command (NVDA+t) to report only the title instead of the entire object. If the foreground object has no name, the application's process name is used. I added the ability to spell the title and copy it to the clipboard.
- Aleksey Sadavoy made some improvements to the keyboard help mode, including the ability to read modifier keys when pressed alone and the ability to translate key names into other languages.
Aside from coding, Mick and I have been working on a presentation for next year's CSUN conference. We are moving further in our transition towards using Bazaar for our version control system. I have written some scripts to keep svn and bzr synchronised, and am in the process of getting Peter set up to use bzr. Finally, Mick and I are both making a presentation in Melbourne in November, so we are going to take the opportunity to have another hack fest.

rss
NVDA is supported by
Comments
No comments.