summaryrefslogtreecommitdiffstats
path: root/chrome/browser/accessibility
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-18 20:13:55 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-18 20:13:55 +0000
commit29bb72419494ee591e37c7346a6333eccbc15989 (patch)
tree1afcd0a55aa22e23f75ee092b7d82f2000c88650 /chrome/browser/accessibility
parent43b07e258308739c0727c937f100a985c7e2fc24 (diff)
downloadchromium_src-29bb72419494ee591e37c7346a6333eccbc15989.zip
chromium_src-29bb72419494ee591e37c7346a6333eccbc15989.tar.gz
chromium_src-29bb72419494ee591e37c7346a6333eccbc15989.tar.bz2
Implement support for special offset constants in IAccessibleText methods.
This allows JAWS to fully support text editing. BUG=none TEST=manual testing with JAWS screenreader Review URL: http://codereview.chromium.org/6469037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75418 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/accessibility')
-rw-r--r--chrome/browser/accessibility/browser_accessibility_win.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/browser/accessibility/browser_accessibility_win.cc b/chrome/browser/accessibility/browser_accessibility_win.cc
index fcd01a5..b5bf894 100644
--- a/chrome/browser/accessibility/browser_accessibility_win.cc
+++ b/chrome/browser/accessibility/browser_accessibility_win.cc
@@ -1223,9 +1223,17 @@ LONG BrowserAccessibilityWin::FindBoundary(
LONG start_offset,
LONG direction) {
LONG text_size = static_cast<LONG>(text.size());
- DCHECK(start_offset >= 0 && start_offset <= text_size);
+ DCHECK((start_offset >= 0 && start_offset <= text_size) ||
+ start_offset == IA2_TEXT_OFFSET_LENGTH ||
+ start_offset == IA2_TEXT_OFFSET_CARET);
DCHECK(direction == 1 || direction == -1);
+ if (start_offset == IA2_TEXT_OFFSET_LENGTH) {
+ start_offset = text_size;
+ } else if (start_offset == IA2_TEXT_OFFSET_CARET) {
+ get_caretOffset(&start_offset);
+ }
+
if (boundary == IA2_TEXT_BOUNDARY_CHAR) {
if (direction == 1 && start_offset < text_size)
return start_offset + 1;