Skip to content
Commits on Source (15)
  • Joanmarie Diggs's avatar
    Post-release version bump · 89ec69d2
    Joanmarie Diggs authored
    89ec69d2
  • Joanmarie Diggs's avatar
    Structural Navigation: Handle unimplemented collection interface error · 1e906206
    Joanmarie Diggs authored
    The collection interface is something applications and toolkits get
    "for free" from AT-SPI2. However, applications/toolkits that provide
    their own implementation of AT-SPI2 (e.g. WebKitGtk) presumably need
    to also implement AtspiCollection themselves, or do something so that
    the default AT-SPI2 implementation is used. Currently, in WebKitGtk
    version 2.36, a non-implemented error occurs when querying the
    collection interface on the document. We were not handling this error,
    causing Orca to be silent when structural navigation commands were
    used. This commit handles the error. It cannot solve the missing
    implementation, however. Thus in WebKitGtk apps,  Orca will now announce
    things like "no more headings" when there are in fact headings present.
    
    See issue #244
    1e906206
  • Pawan Chitrakar's avatar
    Update Nepali translation · 67d22cd2
    Pawan Chitrakar authored
    67d22cd2
  • Joanmarie Diggs's avatar
    Web: Don't treat DOCUMENT_FRAME as a stop-at role for generating ancestors · f5ce43c9
    Joanmarie Diggs authored
    When generating ancestors, we typically stop at large containers so as
    not to be too chatty. We were treating DOCUMENT_FRAME as such a container,
    primarily because it was how web documents were exposed to us (prior to
    the creation of DOCUMENT_WEB). Now that we have DOCUMENT_WEB, we should
    be able to distinguish ARIA's document role (DOCUMENT_FRAME), from a web
    document. And because we cannot control where an author might choose to
    use this role, we should not take it as a reason to stop generating
    ancestors. Example: The FluentUI react dialog applies the document
    role to a div which stands between the buttons and the dialog.
    
    Fixes issue 250
    f5ce43c9
  • Joanmarie Diggs's avatar
    Web: Improve presentation of description lists · 8863130f
    Joanmarie Diggs authored
    * Announce entering and leaving list
    * Announce item count (based on the number of description list terms)
    * Append the role name at the end of each description list term in
      order to make it possible to distinguish terms from their descriptions
      in confusing lists, while still making it possible for users to cut
      off that speech in cases where the distinction is obvious.
    * Similarly append the role name at the end of each description list
      value.
    
    See issue #248
    8863130f
  • Joanmarie Diggs's avatar
    6d080a2e
  • Joanmarie Diggs's avatar
    Web: Eliminate chattiness from newly-expanded/shown listbox · 6a9dfa42
    Joanmarie Diggs authored
    When a newly-expanded/shown listbox appears and focus is given to
    a child option, we generate ancestors. That presentation includes
    the name of the ancestor listbox.
    
    In some ARIA authoring, the name of the listbox is the same as the
    previously-focused object (e.g. a button or collapsed combobox).
    Repeating this name is unnecessarily chatty. This commit checks for
    that condition and returns early for the listbox name generation.
    
    Possibly fixes issue #252.
    6a9dfa42
  • Joanmarie Diggs's avatar
    Web: Don't return early when generating ancestors for table descendants · c0485afb
    Joanmarie Diggs authored
    If a user is tabbing among links inside an ARIA grid, we were not
    speaking the headers and positions of column headers. In order to fix
    this completely, we need to do two things: 1) Generate ancestors and
    2) Adjust what information gets generated for the cell information.
    The second might have undesired side effects, so the changes are being
    split. This commit only addresses the first.
    
    See issue #253
    c0485afb
  • Joanmarie Diggs's avatar
    Create 'ancestor' formatType for presentation of objects · b59cdfbd
    Joanmarie Diggs authored
    The 'focused' formatType has been serving dual purposes, specifying
    what to present when the object is already focused and something
    changed and what to present about an ancestor of a newly focused
    object. This approach was likely done because the information in
    both cases is expected to be minimal, and the set of roles for
    which we might want distinct already-focused info and as-ancestor
    info small to non-existent.
    
    It turns out that small may be true; non-existent isn't. Consider focus
    changing among items (e.g. links) descending from ARIA gridcells. If the
    column changes, we want to include some of the new cell/column info. And
    that info will be different from what we present when some state
    changes in the currently-focused Gtk table cell.
    
    This commit merely adds the capability of an ancestor formatType
    because having it makes sense in general. It falls back on the focused
    formatType, so no end-user-observable behavior should result from this
    commit. A subsequent commit will use this new formatType to solve the
    aforementioned table cell problem. And as other such instances become
    noticed, we can start decoupling "focused" from "ancestor."
    
    See issue #253.
    b59cdfbd
  • Joanmarie Diggs's avatar
    Announce row and column headers for interactable cell descendants · 2dbd4d90
    Joanmarie Diggs authored
    This commit causes us to present the row and/or column header when
    the user moves focus to a descendant of a cell in a different row
    and/or column.
    
    See issue #253.
    2dbd4d90
  • Joanmarie Diggs's avatar
    Store row and column info even when the focused object isn't a cell · 63e6e637
    Joanmarie Diggs authored
    The logic to determine whether or not the row and/or column header
    has changed relies on the values stored when the location changes.
    We were only storing those values when the new location was a cell
    (or cell-like thing). If instead the new location is a focusable
    descendant of the cell, we are at risk of duplicating header info.
    
    This commit fixes that by looking for the most immediate ancestor
    cell and storing its coordinates if found.
    
    See issue #253.
    63e6e637
  • Joanmarie Diggs's avatar
    Announce row and column indices for interactable cell descendants · 5147ab34
    Joanmarie Diggs authored
    This commit causes us to present the row and/or column index when
    the user moves focus to a descendant of a cell in a different row
    and/or column.
    
    See issue #253.
    5147ab34
  • Joanmarie Diggs's avatar
    Web: Don't allow time element or role to be parsed as sentences · e3a1cc97
    Joanmarie Diggs authored
    Because the time element has various punctuation marks in it, user
    agents sometimes expose it as being divided into multiple sentences.
    Given a time element inside of a link while doing a SayAll by
    sentence, we can theoretically repeat "link" after each substring
    reported to us as a full sentence. Alternatively we might say "link"
    only once, but somewhere in the middle rather than at the end.
    
    This commit solves that problem by always treating the time element
    as a single sentence, rather than asking user agents for its sentences.
    
    Fixes issue #247
    e3a1cc97
  • Joanmarie Diggs's avatar
    Release prep · 28e29e8e
    Joanmarie Diggs authored
    28e29e8e
  • Samuel Thibault's avatar
    New upstream version 42.2 · d04d1d45
    Samuel Thibault authored
    d04d1d45
# Generated by Makefile. Do not edit.
 
2022-06-30 18:25:40 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Web: Don't allow time element or role to be parsed as sentences
M src/orca/scripts/web/script_utilities.py
2022-06-30 17:32:46 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Announce row and column indices for interactable cell descendants
M src/orca/formatting.py
M src/orca/speech_generator.py
2022-06-30 15:53:38 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Store row and column info even when the focused object isn't a cell
M src/orca/script_utilities.py
M src/orca/scripts/default.py
M src/orca/scripts/web/script_utilities.py
2022-06-30 15:28:36 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Announce row and column headers for interactable cell descendants
M src/orca/formatting.py
M src/orca/generator.py
M src/orca/scripts/web/speech_generator.py
M src/orca/speech_generator.py
2022-06-30 13:40:58 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Create 'ancestor' formatType for presentation of objects
M src/orca/formatting.py
M src/orca/speech_generator.py
2022-06-30 13:20:27 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Web: Don't return early when generating ancestors for table descendants
M src/orca/scripts/web/speech_generator.py
2022-06-22 11:57:57 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Web: Eliminate chattiness from newly-expanded/shown listbox
M src/orca/scripts/web/speech_generator.py
M src/orca/speech_generator.py
2022-06-17 18:07:38 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Add null check for description-list role methods
M src/orca/script_utilities.py
2022-06-17 15:28:02 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Web: Improve presentation of description lists
M src/orca/formatting.py
M src/orca/generator.py
M src/orca/script_utilities.py
M src/orca/scripts/web/script_utilities.py
M src/orca/scripts/web/speech_generator.py
M src/orca/speech_generator.py
2022-06-16 10:49:02 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Web: Don't treat DOCUMENT_FRAME as a stop-at role for generating ancestors
M src/orca/scripts/web/speech_generator.py
2022-05-19 07:49:37 +0000 Pawan Chitrakar <chautari@gmail.com>
Update Nepali translation
M po/ne.po
2022-05-17 14:14:09 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Structural Navigation: Handle unimplemented collection interface error
M src/orca/structural_navigation.py
2022-05-17 13:18:34 +0200 Joanmarie Diggs <jdiggs@igalia.com>
Post-release version bump
M README.md
M configure.ac
2022-05-17 13:12:11 +0200 Joanmarie Diggs <jdiggs@igalia.com>
 
Prep for 42.1 release
42.2 - 1 July 2022
Web:
* Fix several issues relating to presentation of navigation among
focusable descendants within ARIA grids and tables
* Improve support for description lists
* Fix SayAll presentation of time element inside link
* Fix presentation of the FluentUI react dialog (and any other
dialog which has an ARIA document-role descendant
* Eliminate chattiness from newly-expanded/shown listbox
WebKitGtk:
* Fail gracefully when structural navigation commands are used in
WebKitGtk 2.36.x (the collection interface won't be supported
until 2.26.4)
New and updated translations (THANKS EVERYONE!!!):
ne Nepali Pawan Chitrakar
=========
42.1 - 17 May 2022
Web (Chromium + Gecko):
......
# Orca v42.1
# Orca v42.2
## Introduction
......
# Orca v42.1
# Orca v42.2
## Introduction
......
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for orca 42.1.
# Generated by GNU Autoconf 2.71 for orca 42.2.
#
# Report bugs to <https://gitlab.gnome.org/GNOME/orca/-/issues/>.
#
......@@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='orca'
PACKAGE_TARNAME='orca'
PACKAGE_VERSION='42.1'
PACKAGE_STRING='orca 42.1'
PACKAGE_VERSION='42.2'
PACKAGE_STRING='orca 42.2'
PACKAGE_BUGREPORT='https://gitlab.gnome.org/GNOME/orca/-/issues/'
PACKAGE_URL=''
......@@ -1358,7 +1358,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures orca 42.1 to adapt to many kinds of systems.
\`configure' configures orca 42.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1429,7 +1429,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of orca 42.1:";;
short | recursive ) echo "Configuration of orca 42.2:";;
esac
cat <<\_ACEOF
......@@ -1565,7 +1565,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
orca configure 42.1
orca configure 42.2
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
......@@ -1769,7 +1769,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by orca $as_me 42.1, which was
It was created by orca $as_me 42.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
......@@ -3033,7 +3033,7 @@ fi
# Define the identity of the package.
PACKAGE='orca'
VERSION='42.1'
VERSION='42.2'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
......@@ -9550,7 +9550,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by orca $as_me 42.1, which was
This file was extended by orca $as_me 42.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -9609,7 +9609,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
orca config.status 42.1
orca config.status 42.2
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
......
m4_define([orca_version], [42.1])
m4_define([orca_version], [42.2])
m4_define(pygobject_required_version, 3.18)
m4_define(atspi_required_version, 2.26)
......
No preview for this file type
This diff is collapsed.
......@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: orca 42.1\n"
"Project-Id-Version: orca 42.2\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/orca/issues\n"
"POT-Creation-Date: 2022-05-17 13:13+0200\n"
"POT-Creation-Date: 2022-07-01 18:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -111,18 +111,21 @@ formatting = {
'speech': {
'prefix': {
'ancestor': '[]',
'focused': 'detailsFor',
'unfocused': 'oldAncestors + newAncestors',
'basicWhereAmI': 'toolbar',
'detailedWhereAmI' : '[]'
},
'suffix': {
'ancestor': '[]',
'focused': '[]',
'unfocused': 'newNodeLevel + unselectedCell + clickable + pause + hasLongDesc + hasDetails + detailsFor +' + TUTORIAL + ' + description + pause + hasPopup',
'basicWhereAmI': TUTORIAL + ' + clickable + hasLongDesc + description + pause + hasPopup + pause + detailsFor + pause + allDetails',
'detailedWhereAmI': TUTORIAL + ' + clickable + hasLongDesc + description + pause + hasPopup + detailsFor + pause + allDetails'
},
'default': {
'ancestor': '[]',
'focused': '[]',
'unfocused': 'labelOrName + roleName + availability + ' + MNEMONIC + ' + accelerator + childWidget',
'basicWhereAmI': 'labelOrName + roleName',
......@@ -200,11 +203,15 @@ formatting = {
'ROLE_CONTENT_SUGGESTION': {
'focused': 'leaving or roleName',
},
pyatspi.ROLE_DESCRIPTION_LIST: {
'focused' : 'leaving or (labelOrName + pause + (numberOfChildren or roleName) + pause + nestingLevel)',
'unfocused': 'labelOrName + pause + focusedItem + pause + multiselectableState + (numberOfChildren or roleName) + pause'
},
pyatspi.ROLE_DESCRIPTION_TERM: {
'unfocused': '(labelOrName or (displayedText + allTextSelection))',
'unfocused': '(labelOrName or (displayedText + allTextSelection) + roleName)',
},
pyatspi.ROLE_DESCRIPTION_VALUE: {
'unfocused': '(labelOrName or (displayedText + allTextSelection))',
'unfocused': '(labelOrName or (displayedText + allTextSelection) + roleName)',
},
pyatspi.ROLE_DIAL: {
'focused': 'value',
......@@ -474,6 +481,7 @@ formatting = {
'basicWhereAmI': 'labelAndName + pause + table'
},
pyatspi.ROLE_TABLE_CELL: {
'ancestor': 'newRowHeader + newColumnHeader + pause + newRow + pause + newColumn',
'focused': '((tableCell2ChildLabel + tableCell2ChildToggle) or cellCheckedState) + pause + (expandableState and (expandableState + pause + numberOfChildren + pause))',
'unfocused': 'tableCellRow + pause',
'basicWhereAmI': 'parentRoleName + pause + columnHeader + pause + rowHeader + pause + roleName + pause + cellCheckedState + pause + (realActiveDescendantDisplayedText or imageDescription + image) + pause + columnAndRow + pause + expandableState + pause + nodeLevel + pause',
......@@ -1053,6 +1061,12 @@ class Formatting(dict):
except:
pass
if args.get('formatType') == 'ancestor':
try:
return self[args['mode']][args['role']]['focused']
except:
pass
if args.get('formatType') == 'detailedWhereAmI':
try:
return self[args['mode']][args['role']]['basicWhereAmI']
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.