2006-02-22 Willie Walker * NEWS, configure.in, README: prep for 0.2.1. * src/orca/gnomespeechfactory.py, src/orca/speech.py, src/orca/orca.py, src/orca/speechserver.py: add keystroke to reset speech: Insert+s. Interim workaround for bug 332253. 2006-02-16 Willie Walker * src/orca/brlmon.py: "improve" visibility of cell with cursor. * src/orca/brlmon.py: substitute macros for < and & so they are not interpreted by the pango interpreter. * src/orca/orca.py: add SIGSEGV handler to (hopefully) prevent core files. 2006-02-15 Rich Burridge * bugs/bugs.html Added a new entry for Evolution bug #331447: The accessible name for Mail message header list "checkbox" table cells is not useful. 2006-02-15 Rich Burridge * src/orca/scripts/Evolution.py A couple of tweaks to to clause 3) in the onFocus() method (Mail view: message header list). - It no longer speaks/brailles the headers for checkboxes. A side effect of this is that if the current cell with focus was a checkbox, then the region on the braille line that's visible now becomes the actual cell itself rather than the header. - Added spaces between each header and cell value. 2006-02-15 Rich Burridge * src/orca/scripts/Evolution.py Adjusted clause 3) in the onFocus() method (Mail view: message header list). It now speaks/brailles (with VERBOSITY_BRIEF) the column headers for each table cell that is read in the current row of the mail message header list. The focus in the braille line is given to the region containing that column header information for the current cell now, rather then the actual table cell. 2006-02-15 Rich Burridge * src/orca/scripts/Evolution.py Adjusted clause 3) in the onFocus() method (Mail view: message header list). It now uses the new displayRegionsWithFocus() method to (hopefully) correctly set the correct region to set the focus to on the braille line. 2006-02-15 Willie Walker * src/orca/braille.py, src/orca/Makefile.am, src/orca/settings.py, src/orca/brlmon.py: add beginnings of a braille monitor. This is currently turned off by default, but can be enabled by setting useBrailleMonitor=True in ~/.orca/user-settings.py. * src/orca/braille.py: refactor displayRegions to include a new method, displayRegionsWithFocus, which will set the cursor to a given region with focus. The new displayRegions method merely calls this new method with the region as specified by the indexOfFocusRegion parameter. 2006-02-14 Willie Walker * QUICKSTART: update to include Ubuntu notes on building eel, evolution-data-server, and evolution. Also re-order libgail-gnome and at-spi building - turns out that libgail-gnome depends upon at-spi's spi. 2006-02-14 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the 3) clause in the onFocus() method (Mail view: message header list). The last column (as well as the last row) in the message header list is now cached. Now, in order to speak the whole message header, the row must have changed or we are on the first or last message header in the list and the column number hasn't changed. 2006-02-14 Mike Pedersen * src/orca/speechgenerator.py Removed the auto-speaking of scrollpanes as they don't give any value-add to the speech user. 2006-02-10 Rich Burridge * src/orca/speechgenerator.py: _getSpeechForLabelAndRole src/orca/braillegenerator.py: _getDefaultBrailleRegions If we are being verbose, don't speak/braille the rolename if the role of the object is UNKNOWN (unless the obj has no label). 2006-02-10 Willie Walker * src/orca/focus_tracking_presenter.py, src/orca/settings.py: add "null" package to list of packages to search for scripts. This allows you to pick up a script from the directory where you run orca so you can more easily test your scripts. 2006-02-10 Rich Burridge * bugs/bugs.html Added a new entry for Evolution bug #330712 Accessible Name for TimeZone Button shouldn't contain its role. Added a new entry for Evolution bug #330723 Various components shouldn't include their role in their accessible name. 2006-02-09 Rich Burridge * src/orca/scripts/Evolution.py Added a new 10) "Mail view: message area - attachments" clause to the onFocus() method: Check if the focus is on the "go forward" button or the "attachment button" for an attachment in the mail message attachment area. (There will be a pair of these buttons for each attachment in the mail message). If it is, then get the text which describes the current attachment and speak it after doing the default action for the button. NOTE: it is assumed that the last table cell in the table contains this information. 2006-02-09 Clytie Siddall * configure.in Added vi in ALL_LINGUAS line. 2006-02-08 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the 3) "Mail view: message header list" clause in the onFocus() method: - If this focus event is just for a different table cell on the same row as last time, then we just speak the current cell. - The braille cursor to set to point to the current cell. - If a table check is a check box, and we've just moved the focus to the left or right on the same row, then it's now read (spoken/brailled) irrespective of whether it's checked or not. 2006-02-08 Willie Walker * src/orca/default.py: interim workaround for Orca not speaking Contact Source Selector panel items properly in Evolution. * bugs/bugs.html: update with information from OOo. * bugs/bug_330454.py, bugs/bugs.html: update with new FOCUSED state oddess for Evolution. * src/orca/settings.py: internationalize regular expressions for script mappings. * src/orca/braillegenerator.py, src/orca/speechgenerator.py, src/orca/scripts/StarOffice.py: start treating PARAGRAPH objects like TEXT objects. Also rip out the earlier StarOffice script logic now that the new UNO<->ATK bridge implementation is looking better. * src/orca/gnomespeechfactory.py: remove traceback when a chname cannot be found - it's really not a bad thing. 2006-02-07 Rich Burridge * src/orca/scripts/Evolution.py Added in another couple of scenerios to the onFocus() method. - Mail compose window: message area This works in conjunction with code in the next section. Check to see if focus is currently in the Mail compose window message area. If it is, then, if this is the first time, save a pointer to the HTML panel that will contain a variety of components that will, in turn, contain the message text. - Spell Checking Dialog This works in conjunction with code in the previous section. Check to see if current focus is in the table of possible replacement words in the spell checking dialog. If it is, then we use a cached handle to the Mail compose window message area, to find out where the text caret currently is, and use this to speak a selection of the surrounding text, to give the user context for the current misspelt word. 2006-02-06 Rich Burridge * src/orca/atspi.py Adjusted the __get_child_count() and __get_index() methods to no longer cache their values, as they could potentially change. 2006-02-06 Rich Burridge * bugs/bugs.html Adjusted the entry for "bug #329269" to show that it's not a bug and to give the required keynav sequence (Alt+Down Arrow). 2006-02-02 Willie Walker * test/harness/runall.sh, test/harness/runone.sh: do not override user's user-settings.py when running tests. Also sort the keystrokes files alphabetically before running. Finally attempt to politely tell Orca and other test utils (event_listener) to quit before running another test. * src/orca/orca.py: add current working directory to the beginning of sys.path - this is primarily for picking up a user-settings.py from the local directory for the purposes of running tests * src/orca/debug.py: remove gtk dependency * src/orca/settings.py: add script mapping for soffice.bin * src/orca/atspi.py: use EventDetails.host_application if it is available (this was added for AT-SPI 1.7.0) 2006-02-01 Willie Walker * test/harness/*: add some initial attempt at a test harness. runall.sh runs them all, runone.sh runs one. There's still issues with a different set of events coming from running the same test on the same system - it's most likely due to differences in timing when handling keystrokes. * test/keystrokes/*: arrange keystroke files in directories, with one directory per application. 2006-02-01 Rich Burridge * src/orca/speechgenerator.py: _getSpeechForComboBox src/orca/braillegenerator.py: _getBrailleRegionsForComboBox If the label of the combo box is the same as the utterance for the child object, then this utterance is only spoken/brailled once. 2006-02-01 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the default for Evolution, to read all table cells (such as in the mail message header summary list). Put a gettext wrapper around the "No appointments" string in the onFocus() method (case 5). * Added a case 7) to the onFocus() method: * This is for Mail view: insert attachment dialog: unlabelled arrow button. Check if the focus is on the unlabelled arrow button near the top of the mail view Insert Attachment dialog. If it is, then rather than just speak/braille "button", output something a little more useful. 2006-01-31 Rich Burridge * src/orca/scripts/Evolution.py Adjusted section 3) in the onFocus() method (reading mail message header summary items). It now checks if the current table cell is a check box. If it is, then to reduce verbosity, it only speaks and brailles it, if it's checked. 2006-01-30 Rich Burridge * bugs/bugs.html Added entries for Evolution bugs 329269 and 329270. 2006-01-27 Willie Walker * src/orca/bugs/bugs.html: Add gail infinite recursion bug 329230. * ChangeLog: fix 2006/2005 typos. :-) 2006-01-27 Willie Walker * src/orca/atspi.py: prevent infinite loop if obj.parent == parent. (This case is an AT-SPI bug, but we need to watch for it). * bugs/bugs.html: update to reflect bug entry information provided to us by external development teams. * src/orca/atspi.py: more work resulting from incompatible event data structure change in AT-SPI 1.7.0. * src/orca/atspi.py, src/orca/focus_tracking_presenter.py: change some ominous looking Traceback messages to what they really are: just information regarding normal behavior. 2006-01-26 Willie Walker * QUICKSTART: update Ubuntu notes for how to get older/supported releases of AT-SPI infrastructure. 2006-01-26 Rich Burridge * bugs/bugs.html Changed bug #324002 to now be an entry for bug #318973. Updated the notes section for that bug. * bugs/bugs.html Summary for bug #326725 has changed. 2006-01-25 Rich Burridge * bugs/bugs.html bugs/bug_326725.py Changed bug #328493 to now be an entry for bug #326725. Updated the notes section for that bug. Added in bug_326725.py to help track down this problem. 2006-01-25 Rich Burridge * bugs/bugs.html Updated the notes section for bug #328493 2006-01-24 Rich Burridge * bugs/bugs.html Added a new bug #328493 Broken component hierarchy in compose window message area. 2006-01-24 Willie Walker * src/orca/focus_tracking_presenter.py: be a bit more vocal when importing a script with syntax errors * src/orca/atspi.py: handle both AT-SPI 1.7.0+ and pre-1.7.0 event "any_data" handling. 2006-01-23 Rich Burridge * bugs/bugs.html Updated entry for bug #326649. Fix is in CVS HEAD. 2006-01-18 Willie Walker * src/orca/default.py, src/orca/speechgenerator.py: fix for bug 327568 - treat check menu items similar to check boxes. * bugs/bug_322903.py, bugs/bug_322903.html, bugs/bugs.html, src/orca/scripts/Mozilla.py: test case for showing how text can get jumbled as user types in a text area. The ultimate cause of this is that getTextAtOffset seems to position the caret at the starting offset that is passed into the call to getTextAtOffset. 2006-01-17 Willie Walker * src/orca/scripts/gaim.py: alternative logic to address bug 325917. I think the ultimate culprit may be the toolkit, but I think this workaround should hopefully work in the presence and/or absence of the possible toolkit bug. * src/orca/orca.py, src/orca/default.py, src/orca/input_event.py: keep track of mouse button events as another means for watching caret moved events. * src/tools/bug_template.py: adjust for bad indentation caused by emacs somehow messing up the indentation parameters. * src/orca/settings.py: add another alias for Firefox ("Deer Park") to manage unreleased versions of Firefox. 2006-01-13 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the onFocus() method to handle the following for the mail message header list: If the current locus of focus is not a table cell, then we are entering the mail message header list (rather than moving around inside it), so speak the number of mail messages total. 2006-01-13 Willie Walker * src/orca/orca.py, src/orca/debug.py: Add Insert+Ctrl+F5 as a means to cycle the debug level. I originally started making this a dialog box, but realized that interacting with it can cause a flurry of AT-SPI events. So...I dumbed this down to a simple cycle (press Insert+Ctrl+F5 repeatedly to cycle through the possible debug level values). 2006-01-12 Rich Burridge * src/orca/scripts/Evolution.py Tightened up the code in case "3)" in the onFocus() method. It was possible that some of the table cells in the current row in the mail message header table were None. This is now specifically tested for, and if found, that table cell is skipped. 2006-01-11 Rich Burridge * bugs/bugs.html Added in Evolution bug #326649. 2006-01-11 Rich Burridge * src/orca/scripts/Evolution.py Added in code to the the onFocus() method to handle: Preferences Dialog: options list. If the focus is in one of the various options on the left side of the Preferences dialog. then we just want to speak the name of the page we are currently on. Even though it looks like the focus is on one of the page tabs in this dialog, it's possible that it's actually on a table cell, within a table which is contained within a scroll pane. We check for this my looking for a component hierarchy of "table cell", "table", "unknown" and "scroll pane". If this is the case, then we get the parent of the scroll pane and look to see if one of its other children is a "page tab list". If that's true, then we get the Nth child, when N is the index of the initial table cell minus 1. We double check that this is a "page tab", then if so, speak and braille that component. NOTE: assumes there is only one "page tab list" in the "filler" component. This change improves the situation dramatically, but sometime we are still getting this component spoken twice. 2006-01-06 Willie Walker * src/orca/scripts/Makefile.am: take care in installing on 64-bit platforms * src/orca/gnomespeechfactory.py, src/orca/orca-setup.in: fix problem where speech will hang when using gnome speech and orca-setup. The main cause was the introduction of callbacks, which will not work properly when bonobo main is not being used (which is the case with orca-setup). 2006-01-04 Willie Walker * src/orca/flat_review.py: implement a mechanism to better handle the flat review of parents that manage a large number of descendants. This makes synaptic, for example, work a bit better with flat review. 2006-01-04 Willie Walker * bugs/bugs.html, bugs/bug_325809.py: add bug for table column headers not being taken into account for getAccessibleAtPoint 2005-12-21 Rich Burridge * bugs/bugs.html Added in Evolution bug #324726. 2005-12-20 Rich Burridge * src/orca/scripts/Evolution.py Added in code to the the onFocus() method to handle: Calendar view: day view: moving with arrow keys. If the focus is in the Calendar Day View, check to see if there are any appointments starting at the current time. If there are, then provide the user with useful feedback for that appointment, otherwise output the current time and state that there are no appointments. 2005-12-20 Rich Burridge * bugs/bugs.html Added in a workaround for Evolution bug #324193. 2005-12-19 Rich Burridge * src/orca/scripts/Evolution.py Removed the "placeholder" code in the onFocus() method for the following three scenerios: * Calendar view: day view: tabbing to day with no appts. * Calendar view: day view: moving with arrow keys. * Calendar view: month calendar The default utterances would appear to be sufficient. Added in some calls to debug.println for the remaining four cases handled by the onFocus() method. 2005-12-16 Rich Burridge * src/orca/scripts/Evolution.py Added in code to the onFocus() method to better handle calendar day view: tabbing to day with appts. If the focus is in the Calendar Day View on an appointment, then provide the user with userful feedback. First we get the current date and appointment summary from the parent. This is then followed by getting the information on the current appointment. The start time for the appointment is determined by detecting the equivalent child in the parent Calendar View's table has the same y position on the screen. The end time for the appointment is determined by using the height of the current appointment component divided by the height of a single child in the parent Calendar View's table Both of these time values depend upon the value of a time increment which is determined by the number of children in the parent Calendar View's table. 2005-12-16 Rich Burridge * src/orca/scripts/Evolution.py Fixed up the getTimeForCalRow() method to correctly handle all the possibly calendar day view appointment time increments that are possible. 2005-12-15 Rich Burridge * src/orca/scripts/Evolution.py Added in a new method: - getTimeForCalRow() which returns a string equivalent to the time of the given row in the calendar day view. Each calendar row is equivalent to 30 minutes, with time (row 0) starting at 12 am (midnight). More work on calendar appointment day view. If you now Tab into the day view and there are appointments for that day, then it's possible to determine the start time of each appointment using getTimeForCalRow(). 2005-12-15 Rich Burridge * bugs/bugs.html Added an entry for Evolution bug #324193. Bug #324104 is not a bug. 2005-12-15 Willie Walker * src/orca/default.py: partial workaround for link selection bug in Firefox. Only works if the caret offset is accurate, which it isn't (see the related Firefox bug at https://bugzilla.mozilla.org/show_bug.cgi?id=320395). * bugs/bugs.html, bugs/bug_{320383,320387,320388,320390, 320393,320395}: Firefox bugs. 2005-12-14 Rich Burridge * bugs/bugs.html Added entries for Evolution bugs #324002, #324005 and #324104. 2005-12-14 Rich Burridge * src/orca/scripts/Evolution.py Added in the definitions for two new custom roles: - CALENDAR_VIEW - CALENDAR_EVENT These get added to the rolenames list in the rolenames module. Added in code to the onFocus() method to detect the following cases: - Calendar view: day view: tabbing to day with no appts. - Calendar view: day view: tabbing to day with appts. - Calendar view: day view: moving with arrow keys. - Calendar view: month calendar Code for these cases needs to be completed. At the moment it just prints out debug messages. 2005-12-14 Willie Walker * src/orca/atspi.py: use object.role instead of rolenames.getRoleName for debug output. It was too confusing the other way. * src/orca/default.py: start taking hypertext into account when speaking characters and words. * src/orca/settings.py: try to make hyperlink voice stand out for now * src/orca/scripts/Mozilla.py: lots of evaluation of accessible hyperlink support. Many test cases to write and bugs to file against Firefox :-(. 2005-12-14 Willie Walker * src/orca/focus_tracking_presenter.py: with the exception of ImportErrors, print the stack trace for all errors encountered when importing a script at the SEVERE level. This helps to better identify syntax errors and bugs in custom scripts. * src/orca/scripts/Mozilla.py, src/orca/scripts/Makefile.am: initial pass at getting us going with evaluating Firefox's AT-SPI implementation. This does NOT provide any compelling access to Firefox at this point. * src/orca/default.py: permit presentation of caret moved events even on objects that are not the locus of focus. * src/orca/orca.py, src/orca/atspi.py: Rich's idea below looked so good that I added two new debug features: one to print an indented ancestry of an object and one to print the descendants of an object. I bound these to a debug keystroke in Orca: Insert+F7 prints the ancestry for the locusOfFocus and Ctrl+Insert+F7 prints the application hierarchy for the locus of focus, flagging the locus of focus with the string "(*)". 2005-12-13 Rich Burridge * src/orca/scripts/Evolution.py Added it two new methods: - walkComponentHierarchy() - a debug routine to print out the hierarchy of components for the given object. - isDesiredFocusedItem() - called to determine if the given object and it's hierarchy of parent objects, each have the desired roles. Adjusted the code in the onFocus() method to use the isDesiredFocusedItem() method. 2005-12-10 Willie Walker * bugs/bugs.html: create simple (let's try to keep it simple) table to help us keep track of bugs in our external dependencies 2005-12-09 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the handling of the message header list code in the onFocus() method to only braille the role of the table cell that currently has focus. This is achieved by adjusting the verbosity level of brailleRolenameStyle to VERBOSITY_LEVEL_BRIEF for the other table cells, restoring it to its original value at the end. 2005-12-09 Willie Walker * bugs/bug_323633.py: standalone test case that demonstrates the issue where metacity sends accessible label information one window behind when using Alt+TAB to cycle between windows. Logged as bugzilla bug #323633. 2005-12-08 Rich Burridge * src/orca/braille.py Added a new function displayRegions() that displays a list of regions on a single line, setting focus to the specified region. * src/orca/keynames.py Added a mapping of "SunF36" to "F 11" * src/orca/scripts/Evolution.py Adjusted the onFocus() method to use braille.displayRegions() to generate a braille display of multiple regions when displaying a message header or one of the four standard mail message pane header lines (assuming the user wants to speak the complete row). 2005-12-08 Rich Burridge * src/orca/{default.py, settings.py} Slight tweak to the last change. The initial state for whether to read just the current table cell or the whole row, is determined by a variable in settings.py that the user can override. 2005-12-08 Rich Burridge * src/orca/default.py Added the ability to toggle whether we should speak/braille just the current table cell or the whole row. This is currently toggled with Insert+F11 2005-12-07 Rich Burridge * src/orca/scripts/Evolution.py Adjusted the code in the onFocus() method to update the braille display as well as providing speech output. 2005-12-07 Rich Burridge * src/orca/scripts/Evolution.py Added code to the onFocus() method to handle the following case: When the focus is in the From:, To:, Subject: or Date: headers of a message in the message area, then we should read the whole row. See the comments in the Evolution.py script for further details. 2005-12-05 Rich Burridge * src/orca/scripts/Evolution.py Added code to the onFocus() method to handle the following case: When the focus is in the pane containing the lines of an actual mail message, then, for each of those lines, we don't want to speak "text", the role of the component that currently has focus. See the comments in the Evolution.py script for further details. 2005-12-05 Rich Burridge * src/orca/speechgenerator.py Adjusted the getSpeechContext() method to ignore speaking about objects the have an unknown role. This was an annoyance in the message pane window in Evolution. 2005-12-02 Willie Walker * src/docs/doc-set/*: update architecture and script guides. * src/docs/pydoc/Makefile.am: update to include latest sources. * src/orca/orca.py: fix circular import for presentation managers to allow pydoc to work better. * src/orca/braille.py, src/orca/atspi.py: pydoc improvements. * src/orca/kbd.y: remove obsolete file * src/orca/mag.py: I believe I finally have the import worked out on this correctly, and the primary cause (I think) was due to gnome-mag not building/installing the ORBit modules. I also submitted a bug/patch against gnome-mag: http://bugzilla.gnome.org/show_bug.cgi?id=323032. 2005-12-01 Rich Burridge * src/orca/scripts/Evolution.py Slight adjustment to look for the message header list by role rather than name, to avoid localisation problems. 2005-12-01 Rich Burridge * src/orca/scripts/Evolution.py Better handling of reading the details of the current message header that has focus. See comments in the Evolution.py script for further details. 2005-11-30 Willie Walker * src/orca/atspi.py: Fix for bug 319673: Accessible.__init__ now checks to make sure it is not passed a Python Accessible. If it is, it issues a warning and just returns the Python Accessible. 2005-11-30 Willie Walker * src/orca/Makefile.am: install orca convenience shell into ${bindir) instead of $(prefix)/bin * src/orca/speech.py: remove import of pdb 2005-11-30 Rich Burridge * src/orca/scripts/Evolution.py Added in the debug message from Will for the onFocus method. 2005-11-29 Willie Walker * Release 0.2.0