summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorje_julie.kim <je_julie.kim@samsung.com>2014-10-03 00:13:59 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-03 07:14:20 +0000
commit91d4e092d3a07e46ad55062dc0883071b3fe47e4 (patch)
tree414391b8b6b54ac3e8feb66389b11629faac13f9
parent70e2c89d784930d9cc49ee63d985c5fcfd524891 (diff)
downloadchromium_src-91d4e092d3a07e46ad55062dc0883071b3fe47e4.zip
chromium_src-91d4e092d3a07e46ad55062dc0883071b3fe47e4.tar.gz
chromium_src-91d4e092d3a07e46ad55062dc0883071b3fe47e4.tar.bz2
Add AX attribute conversion for input type
Exposed input type for tel, search, url and email on mac and windows. The Related CL: https://codereview.chromium.org/596393004/ BUG=323161 Review URL: https://codereview.chromium.org/559343002 Cr-Commit-Position: refs/heads/master@{#298008}
-rw-r--r--content/browser/accessibility/browser_accessibility_win.cc1
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc2
-rw-r--r--content/renderer/accessibility/blink_ax_tree_source.cc6
-rw-r--r--content/test/data/accessibility/input-types-expected-android.txt25
-rw-r--r--content/test/data/accessibility/input-types-expected-mac.txt50
-rw-r--r--content/test/data/accessibility/input-types-expected-win.txt87
-rw-r--r--content/test/data/accessibility/input-types.html9
-rw-r--r--ui/accessibility/ax_enums.idl1
-rw-r--r--ui/accessibility/ax_node_data.cc3
9 files changed, 73 insertions, 111 deletions
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index 57668891..19ab1ab 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -2909,6 +2909,7 @@ void BrowserAccessibilityWin::OnDataChanged() {
// Expose the "display" and "tag" attributes.
StringAttributeToIA2(ui::AX_ATTR_DISPLAY, "display");
+ StringAttributeToIA2(ui::AX_ATTR_TEXT_INPUT_TYPE, "text-input-type");
StringAttributeToIA2(ui::AX_ATTR_HTML_TAG, "tag");
StringAttributeToIA2(ui::AX_ATTR_ROLE, "xml-roles");
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 72ffc81..3467fcf 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -624,7 +624,7 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTime) {
// crbug.com/98976 will cause new elements to be added to the Blink a11y tree
// Re-baseline after the Blink change goes in
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- DISABLED_AccessibilityInputTypes) {
+ AccessibilityInputTypes) {
RunTest(FILE_PATH_LITERAL("input-types.html"));
}
diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc
index 80e8dca..0c7a5f9 100644
--- a/content/renderer/accessibility/blink_ax_tree_source.cc
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc
@@ -354,6 +354,12 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
line_breaks.push_back(src_line_breaks[i]);
dst->AddIntListAttribute(ui::AX_ATTR_LINE_BREAKS, line_breaks);
}
+
+ if (dst->role == ui::AX_ROLE_TEXT_FIELD &&
+ src.textInputType().length()) {
+ dst->AddStringAttribute(ui::AX_ATTR_TEXT_INPUT_TYPE,
+ UTF16ToUTF8(src.textInputType()));
+ }
}
// ARIA role.
diff --git a/content/test/data/accessibility/input-types-expected-android.txt b/content/test/data/accessibility/input-types-expected-android.txt
index da15d19..c9af06b 100644
--- a/content/test/data/accessibility/input-types-expected-android.txt
+++ b/content/test/data/accessibility/input-types-expected-android.txt
@@ -1,4 +1,3 @@
-#<skip --chromium dependancy>
android.webkit.WebView focusable focused scrollable
android.view.View
android.view.View
@@ -12,17 +11,6 @@ android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Color:'
android.view.View focusable
android.view.View
- android.view.View clickable name='Date:'
- android.view.View focusable input_type=20
- android.view.View
- android.view.View
- android.view.View clickable name='Datetime:'
- android.widget.EditText editable_text focusable input_type=4
- android.view.View
- android.view.View clickable name='Datetime-local:'
- android.view.View focusable input_type=4
- android.view.View
- android.view.View
android.view.View clickable name='Email:'
android.widget.EditText editable_text focusable input_type=209
android.view.View
@@ -32,10 +20,6 @@ android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Image:'
android.widget.Button focusable
android.view.View
- android.view.View clickable name='Month:'
- android.view.View focusable input_type=20
- android.view.View
- android.view.View
android.view.View clickable name='Number:'
android.widget.EditText editable_text focusable input_type=2
android.view.View
@@ -61,14 +45,5 @@ android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Text:'
android.widget.EditText editable_text focusable input_type=1
android.view.View
- android.view.View clickable name='Time:'
- android.view.View focusable input_type=36
- android.view.View
- android.view.View
android.view.View clickable name='Url:'
android.widget.EditText editable_text focusable input_type=17
- android.view.View
- android.view.View clickable name='Week:'
- android.view.View focusable input_type=4
- android.view.View
-
diff --git a/content/test/data/accessibility/input-types-expected-mac.txt b/content/test/data/accessibility/input-types-expected-mac.txt
index 8620d59..aa4c46b 100644
--- a/content/test/data/accessibility/input-types-expected-mac.txt
+++ b/content/test/data/accessibility/input-types-expected-mac.txt
@@ -1 +1,49 @@
-#<skip - need to generate expectation>
+AXWebArea
+ AXGroup
+ AXGroup
+ AXStaticText AXValue='Default: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='Button: '
+ AXButton
+ AXCheckBox AXTitle='Checkbox: ' AXValue='0'
+ AXGroup
+ AXStaticText AXValue='Color: '
+ AXColorWell AXValue='rgb 0.00000 0.00000 0.00000 1'
+ AXGroup
+ AXStaticText AXValue='Email: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='File: '
+ AXButton AXTitle='Choose File'
+ AXGroup
+ AXStaticText AXValue='Image: '
+ AXButton
+ AXGroup
+ AXStaticText AXValue='Number: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='Password: '
+ AXTextField
+ AXRadioButton AXTitle='Radio: ' AXValue='0'
+ AXGroup
+ AXStaticText AXValue='Range: '
+ AXSlider AXValue='50'
+ AXGroup
+ AXStaticText AXValue='Reset: '
+ AXButton AXTitle='Reset'
+ AXGroup
+ AXStaticText AXValue='Search: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='Submit: '
+ AXButton AXTitle='Submit'
+ AXGroup
+ AXStaticText AXValue='Tel: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='Text: '
+ AXTextField
+ AXGroup
+ AXStaticText AXValue='Url: '
+ AXTextField
diff --git a/content/test/data/accessibility/input-types-expected-win.txt b/content/test/data/accessibility/input-types-expected-win.txt
index 9e4c41c..806721f 100644
--- a/content/test/data/accessibility/input-types-expected-win.txt
+++ b/content/test/data/accessibility/input-types-expected-win.txt
@@ -1,9 +1,8 @@
-#<skip -- Chromium Dependancy>
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_SECTION READONLY
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Default: '
- ROLE_SYSTEM_TEXT name='Default: ' FOCUSABLE
+ ROLE_SYSTEM_TEXT name='Default: ' FOCUSABLE text-input-type:text
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Button: '
ROLE_SYSTEM_PUSHBUTTON name='Button: ' FOCUSABLE
@@ -12,41 +11,8 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
ROLE_SYSTEM_STATICTEXT name='Color: '
IA2_ROLE_COLOR_CHOOSER name='Color: ' FOCUSABLE
IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Date: '
- ROLE_SYSTEM_CLIENT name='Date: Month/Day/Year' FOCUSABLE
- IA2_ROLE_SECTION
- IA2_ROLE_SECTION
- ROLE_SYSTEM_SPINBUTTON name='Month' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name='/'
- ROLE_SYSTEM_SPINBUTTON name='Day' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name='/'
- ROLE_SYSTEM_SPINBUTTON name='Year' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Datetime: '
- ROLE_SYSTEM_TEXT name='Datetime: ' FOCUSABLE
- IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Datetime-local: '
- ROLE_SYSTEM_CLIENT name='Datetime-local: Month/Day/YearHours:MinutesAM/PM' FOCUSABLE
- IA2_ROLE_SECTION
- IA2_ROLE_SECTION
- ROLE_SYSTEM_SPINBUTTON name='Month' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name='/'
- ROLE_SYSTEM_SPINBUTTON name='Day' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name='/'
- ROLE_SYSTEM_SPINBUTTON name='Year' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON name='Hours' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name=':'
- ROLE_SYSTEM_SPINBUTTON name='Minutes' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON name='AM/PM' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Email: '
- ROLE_SYSTEM_TEXT name='Email: ' FOCUSABLE
+ ROLE_SYSTEM_TEXT name='Email: ' FOCUSABLE text-input-type:email
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='File: '
ROLE_SYSTEM_PUSHBUTTON name='Choose File' FOCUSABLE
@@ -54,22 +20,11 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
ROLE_SYSTEM_STATICTEXT name='Image: '
ROLE_SYSTEM_PUSHBUTTON name='Image: ' FOCUSABLE
IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Month: '
- ROLE_SYSTEM_CLIENT name='Month: Month, Year' FOCUSABLE
- IA2_ROLE_SECTION
- IA2_ROLE_SECTION
- ROLE_SYSTEM_SPINBUTTON name='Month' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name=', '
- ROLE_SYSTEM_SPINBUTTON name='Year' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Number: '
- ROLE_SYSTEM_TEXT name='Number: ' FOCUSABLE
+ ROLE_SYSTEM_TEXT name='Number: ' FOCUSABLE text-input-type:number
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Password: '
- ROLE_SYSTEM_TEXT name='Password: ' FOCUSABLE
+ ROLE_SYSTEM_TEXT name='Password: ' FOCUSABLE text-input-type:password
ROLE_SYSTEM_RADIOBUTTON name='Radio: ' FOCUSABLE
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Range: '
@@ -78,41 +33,17 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
ROLE_SYSTEM_STATICTEXT name='Reset: '
ROLE_SYSTEM_PUSHBUTTON name='Reset' FOCUSABLE
IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Search:'
- ROLE_SYSTEM_TEXT name='Search:' FOCUSABLE
+ ROLE_SYSTEM_STATICTEXT name='Search: '
+ ROLE_SYSTEM_TEXT name='Search: ' FOCUSABLE text-input-type:search
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Submit: '
ROLE_SYSTEM_PUSHBUTTON name='Submit' FOCUSABLE
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Tel: '
- ROLE_SYSTEM_TEXT name='Tel: ' FOCUSABLE
+ ROLE_SYSTEM_TEXT name='Tel: ' FOCUSABLE text-input-type:tel
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Text: '
- ROLE_SYSTEM_TEXT name='Text: ' FOCUSABLE
- IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Time: '
- ROLE_SYSTEM_CLIENT name='Time: Hours:MinutesAM/PM' FOCUSABLE
- IA2_ROLE_SECTION
- IA2_ROLE_SECTION
- ROLE_SYSTEM_SPINBUTTON name='Hours' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name=':'
- ROLE_SYSTEM_SPINBUTTON name='Minutes' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON name='AM/PM' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- ROLE_SYSTEM_PUSHBUTTON
+ ROLE_SYSTEM_TEXT name='Text: ' FOCUSABLE text-input-type:text
IA2_ROLE_LABEL
ROLE_SYSTEM_STATICTEXT name='Url: '
- ROLE_SYSTEM_TEXT name='Url: ' FOCUSABLE
- IA2_ROLE_LABEL
- ROLE_SYSTEM_STATICTEXT name='Week: '
- ROLE_SYSTEM_CLIENT name='Week: Week Week, Year' FOCUSABLE
- IA2_ROLE_SECTION
- IA2_ROLE_SECTION
- ROLE_SYSTEM_STATICTEXT name='Week '
- ROLE_SYSTEM_SPINBUTTON name='Week' FOCUSABLE
- ROLE_SYSTEM_STATICTEXT name=', '
- ROLE_SYSTEM_SPINBUTTON name='Year' FOCUSABLE
- ROLE_SYSTEM_SPINBUTTON
- ROLE_SYSTEM_PUSHBUTTON
- ROLE_SYSTEM_PUSHBUTTON
+ ROLE_SYSTEM_TEXT name='Url: ' FOCUSABLE text-input-type:url
diff --git a/content/test/data/accessibility/input-types.html b/content/test/data/accessibility/input-types.html
index 079c964..b45cc25 100644
--- a/content/test/data/accessibility/input-types.html
+++ b/content/test/data/accessibility/input-types.html
@@ -1,17 +1,16 @@
<!doctype html>
+<!--
+@WIN-ALLOW:text-input-type*
+-->
<html>
<body>
<label>Default: <input></label>
<label>Button: <input type="button"></label>
<label>Checkbox: <input type="checkbox"></label>
<label>Color: <input type="color"></label>
- <label>Date: <input type="date"></label>
- <label>Datetime: <input type="datetime"></label>
- <label>Datetime-local: <input type="datetime-local"></label>
<label>Email: <input type="email"></label>
<label>File: <input type="file"></label>
<label>Image: <input type="image"></label>
- <label>Month: <input type="month"></label>
<label>Number: <input type="number"></label>
<label>Password: <input type="password"></label>
<label>Radio: <input type="radio"></label>
@@ -21,8 +20,6 @@
<label>Submit: <input type="submit"></label>
<label>Tel: <input type="tel"></label>
<label>Text: <input type="text"></label>
- <label>Time: <input type="time"></label>
<label>Url: <input type="url"></label>
- <label>Week: <input type="week"></label>
</body>
</html>
diff --git a/ui/accessibility/ax_enums.idl b/ui/accessibility/ax_enums.idl
index bb119ef..94efe78 100644
--- a/ui/accessibility/ax_enums.idl
+++ b/ui/accessibility/ax_enums.idl
@@ -236,6 +236,7 @@
live_status,
role,
shortcut,
+ text_input_type,
url,
value
};
diff --git a/ui/accessibility/ax_node_data.cc b/ui/accessibility/ax_node_data.cc
index 4fd4b7e..a306214 100644
--- a/ui/accessibility/ax_node_data.cc
+++ b/ui/accessibility/ax_node_data.cc
@@ -276,6 +276,9 @@ std::string AXNodeData::ToString() const {
case AX_ATTR_SHORTCUT:
result += " shortcut=" + value;
break;
+ case AX_ATTR_TEXT_INPUT_TYPE:
+ result += " text_input_type=" + value;
+ break;
case AX_ATTR_URL:
result += " url=" + value;
break;