summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorshreeram.k <shreeram.k@samsung.com>2014-12-16 17:28:56 -0800
committerCommit bot <commit-bot@chromium.org>2014-12-17 01:29:21 +0000
commit634dc714772518f79dd0ea145bd0433072ec74b5 (patch)
tree7880e180c49e3f81e38d08dac7bb00b971aeb30f /content
parent9d0bb838506b780d434dc7423db9b20875edb9fe (diff)
downloadchromium_src-634dc714772518f79dd0ea145bd0433072ec74b5.zip
chromium_src-634dc714772518f79dd0ea145bd0433072ec74b5.tar.gz
chromium_src-634dc714772518f79dd0ea145bd0433072ec74b5.tar.bz2
ARIA state/property aria-autocomplete should expose IA2_STATE_SUPPORTS_AUTOCOMPLETION.
According to specs http://rawgit.com/w3c/aria/master/core-aam/core-aam.html aria-autocomplete {"inline", "list","both"} set IA2_STATE_SUPPORTS_AUTOCOMPLETION. aria-autocomplete {"none"} Not Mapped Also, expose object attribute autocomplete: <value>. This CL depends on https://codereview.chromium.org/779513007/ BUG=169559, 169563 Review URL: https://codereview.chromium.org/785943002 Cr-Commit-Position: refs/heads/master@{#308714}
Diffstat (limited to 'content')
-rw-r--r--content/browser/accessibility/browser_accessibility_win.cc6
-rw-r--r--content/renderer/accessibility/blink_ax_tree_source.cc3
-rw-r--r--content/test/data/accessibility/aria-autocomplete-expected-android.txt7
-rw-r--r--content/test/data/accessibility/aria-autocomplete-expected-win.txt16
-rw-r--r--content/test/data/accessibility/aria-autocomplete.html7
5 files changed, 25 insertions, 14 deletions
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index f51c842..b269a07 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -2909,6 +2909,9 @@ void BrowserAccessibilityWin::OnDataChanged() {
InitRoleAndState();
+ // Expose autocomplete attribute for combobox and textbox.
+ StringAttributeToIA2(ui::AX_ATTR_AUTO_COMPLETE, "autocomplete");
+
// Expose the "display" and "tag" attributes.
StringAttributeToIA2(ui::AX_ATTR_DISPLAY, "display");
StringAttributeToIA2(ui::AX_ATTR_TEXT_INPUT_TYPE, "text-input-type");
@@ -3380,6 +3383,9 @@ void BrowserAccessibilityWin::InitRoleAndState() {
if (GetBoolAttribute(ui::AX_ATTR_CAN_SET_VALUE))
ia2_state_ |= IA2_STATE_EDITABLE;
+ if (!GetStringAttribute(ui::AX_ATTR_AUTO_COMPLETE).empty())
+ ia2_state_ |= IA2_STATE_SUPPORTS_AUTOCOMPLETION;
+
base::string16 html_tag = GetString16Attribute(
ui::AX_ATTR_HTML_TAG);
ia_role_ = 0;
diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc
index b3abfac..7866d9a 100644
--- a/content/renderer/accessibility/blink_ax_tree_source.cc
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc
@@ -267,6 +267,9 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
}
if (src.actionVerb().length())
dst->AddStringAttribute(ui::AX_ATTR_ACTION, UTF16ToUTF8(src.actionVerb()));
+ if (src.ariaAutoComplete().length())
+ dst->AddStringAttribute(ui::AX_ATTR_AUTO_COMPLETE,
+ UTF16ToUTF8(src.ariaAutoComplete()));
if (src.isAriaReadOnly())
dst->AddBoolAttribute(ui::AX_ATTR_ARIA_READONLY, true);
if (src.isButtonStateMixed())
diff --git a/content/test/data/accessibility/aria-autocomplete-expected-android.txt b/content/test/data/accessibility/aria-autocomplete-expected-android.txt
index 0ab359b..13a5ed3 100644
--- a/content/test/data/accessibility/aria-autocomplete-expected-android.txt
+++ b/content/test/data/accessibility/aria-autocomplete-expected-android.txt
@@ -1,4 +1,5 @@
android.webkit.WebView focusable focused scrollable
- android.view.View clickable name='autocomplete=inline'
- android.view.View clickable name='autocomplete=list'
- android.view.View clickable name='autocomplete=both'
+ android.widget.Spinner clickable name='autocomplete=inline'
+ android.widget.Spinner clickable name='autocomplete=list'
+ android.widget.Spinner clickable name='autocomplete=both'
+ android.widget.Spinner clickable name='autocomplete=none'
diff --git a/content/test/data/accessibility/aria-autocomplete-expected-win.txt b/content/test/data/accessibility/aria-autocomplete-expected-win.txt
index 9bb5b43..b9d8af3 100644
--- a/content/test/data/accessibility/aria-autocomplete-expected-win.txt
+++ b/content/test/data/accessibility/aria-autocomplete-expected-win.txt
@@ -1,9 +1,9 @@
-#<skip - IA2_STATE_SUPPORTS_AUTOCOMPLETION not set. http://crbug.com/169559
- - autocomplete:<value> attribute not set. http://crbug.com/169563 >
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
- IA2_ROLE_SECTION autocomplete:inline IA2_STATE_SUPPORTS_AUTOCOMPLETION
- ROLE_SYSTEM_TEXT name='autocomplete=inline' READONLY
- IA2_ROLE_SECTION autocomplete:list IA2_STATE_SUPPORTS_AUTOCOMPLETION
- ROLE_SYSTEM_TEXT name='autocomplete=list' READONLY
- IA2_ROLE_SECTION autocomplete:both IA2_STATE_SUPPORTS_AUTOCOMPLETION
- ROLE_SYSTEM_TEXT name='autocomplete=both' READONLY
+ ROLE_SYSTEM_COMBOBOX IA2_STATE_SUPPORTS_AUTOCOMPLETION autocomplete:inline
+ ROLE_SYSTEM_STATICTEXT name='autocomplete=inline'
+ ROLE_SYSTEM_COMBOBOX IA2_STATE_SUPPORTS_AUTOCOMPLETION autocomplete:list
+ ROLE_SYSTEM_STATICTEXT name='autocomplete=list'
+ ROLE_SYSTEM_COMBOBOX IA2_STATE_SUPPORTS_AUTOCOMPLETION autocomplete:both
+ ROLE_SYSTEM_STATICTEXT name='autocomplete=both'
+ ROLE_SYSTEM_COMBOBOX
+ ROLE_SYSTEM_STATICTEXT name='autocomplete=none'
diff --git a/content/test/data/accessibility/aria-autocomplete.html b/content/test/data/accessibility/aria-autocomplete.html
index f29c191..e95a19b 100644
--- a/content/test/data/accessibility/aria-autocomplete.html
+++ b/content/test/data/accessibility/aria-autocomplete.html
@@ -4,8 +4,9 @@
-->
<html>
<body>
- <div aria-autocomplete="inline">autocomplete=inline</div>
- <div aria-autocomplete="list">autocomplete=list</div>
- <div aria-autocomplete="both">autocomplete=both</div>
+ <div role="combobox" aria-autocomplete="inline">autocomplete=inline</div>
+ <div role="combobox" aria-autocomplete="list">autocomplete=list</div>
+ <div role="combobox"aria-autocomplete="both">autocomplete=both</div>
+ <div role="combobox" aria-autocomplete="none">autocomplete=none</div>
</body>
</html>