diff options
author | je_julie.kim <je_julie.kim@samsung.com> | 2014-10-03 00:13:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-03 07:14:20 +0000 |
commit | 91d4e092d3a07e46ad55062dc0883071b3fe47e4 (patch) | |
tree | 414391b8b6b54ac3e8feb66389b11629faac13f9 | |
parent | 70e2c89d784930d9cc49ee63d985c5fcfd524891 (diff) | |
download | chromium_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}
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; |