Commit 91345e19 authored by shreeram.k's avatar shreeram.k Committed by Commit bot

Fix MSAA+IA2 & AX for <header> tag and banner role

According to latest editor's draft http://rawgit.com/w3c/html-api-map/master/index.html
and http://www.w3.org/WAI/PF/aria-implementation/

It should be exposed as below when header is not contained by article or section elements

MSAA+IA2
Role: IA2_ROLE_HEADER
Object attributes: xml-roles:banner

AX
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"

BUG=282262

Review URL: https://codereview.chromium.org/656293002

Cr-Commit-Position: refs/heads/master@{#300411}
parent dbd94aa2
...@@ -335,6 +335,9 @@ below: ...@@ -335,6 +335,9 @@ below:
<ph name="WEEK">$1<ex>Week 38, 2014</ex></ph>, starting on <ph name="WEEK_START_DATE">$2<ex>September 15, 2014</ex></ph> <ph name="WEEK">$1<ex>Week 38, 2014</ex></ph>, starting on <ph name="WEEK_START_DATE">$2<ex>September 15, 2014</ex></ph>
</message> </message>
<message name="IDS_AX_ROLE_BANNER" desc="accessibility role description for banner">
banner
</message>
<message name="IDS_AX_ROLE_WEB_AREA" desc="accessibility role description for web area"> <message name="IDS_AX_ROLE_WEB_AREA" desc="accessibility role description for web area">
HTML content HTML content
</message> </message>
......
...@@ -575,6 +575,10 @@ NSDictionary* attributeToMethodNameMap = nil; ...@@ -575,6 +575,10 @@ NSDictionary* attributeToMethodNameMap = nil;
} }
switch([self internalRole]) { switch([self internalRole]) {
case ui::AX_ROLE_BANNER:
return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_BANNER));
break;
case ui::AX_ROLE_FOOTER: case ui::AX_ROLE_FOOTER:
return base::SysUTF16ToNSString(content_client->GetLocalizedString( return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_FOOTER)); IDS_AX_ROLE_FOOTER));
......
...@@ -3397,6 +3397,10 @@ void BrowserAccessibilityWin::InitRoleAndState() { ...@@ -3397,6 +3397,10 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia_role_ = ROLE_SYSTEM_DOCUMENT; ia_role_ = ROLE_SYSTEM_DOCUMENT;
ia_state_ |= STATE_SYSTEM_READONLY; ia_state_ |= STATE_SYSTEM_READONLY;
break; break;
case ui::AX_ROLE_BANNER:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_HEADER;
break;
case ui::AX_ROLE_BUSY_INDICATOR: case ui::AX_ROLE_BUSY_INDICATOR:
ia_role_ = ROLE_SYSTEM_ANIMATION; ia_role_ = ROLE_SYSTEM_ANIMATION;
ia_state_ |= STATE_SYSTEM_READONLY; ia_state_ |= STATE_SYSTEM_READONLY;
...@@ -3577,7 +3581,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { ...@@ -3577,7 +3581,6 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia_role_ = ROLE_SYSTEM_TEXT; ia_role_ = ROLE_SYSTEM_TEXT;
ia2_role_ = IA2_ROLE_LABEL; ia2_role_ = IA2_ROLE_LABEL;
break; break;
case ui::AX_ROLE_BANNER:
case ui::AX_ROLE_SEARCH: case ui::AX_ROLE_SEARCH:
ia_role_ = ROLE_SYSTEM_GROUPING; ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION; ia2_role_ = IA2_ROLE_SECTION;
......
...@@ -332,6 +332,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, ...@@ -332,6 +332,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
RunTest(FILE_PATH_LITERAL("aria-autocomplete.html")); RunTest(FILE_PATH_LITERAL("aria-autocomplete.html"));
} }
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBanner) {
RunTest(FILE_PATH_LITERAL("aria-banner.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) { IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) {
RunTest(FILE_PATH_LITERAL("aria-checkbox.html")); RunTest(FILE_PATH_LITERAL("aria-checkbox.html"));
} }
...@@ -604,6 +608,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFrameset) { ...@@ -604,6 +608,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFrameset) {
RunTest(FILE_PATH_LITERAL("frameset.html")); RunTest(FILE_PATH_LITERAL("frameset.html"));
} }
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeader) {
RunTest(FILE_PATH_LITERAL("header.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) { IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) {
RunTest(FILE_PATH_LITERAL("heading.html")); RunTest(FILE_PATH_LITERAL("heading.html"));
} }
......
android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Chromium Browser'
AXWebArea AXRoleDescription='HTML content'
AXGroup AXSubrole=AXLandmarkBanner AXRoleDescription='banner'
AXStaticText AXRoleDescription='text' AXValue='Chromium Browser'
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='Chromium Browser'
<!--
@MAC-ALLOW:AXRole*
@MAC-ALLOW:AXSubrole*
@WIN-ALLOW:xml-roles:*
-->
<!DOCTYPE html>
<html>
<body>
<div role="banner">
Chromium Browser
</div>
</body>
</html>
android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Chromium Browser'
AXWebArea AXRoleDescription='HTML content'
AXGroup AXSubrole=AXLandmarkBanner AXRoleDescription='banner'
AXStaticText AXRoleDescription='text' AXValue='Chromium Browser'
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='Chromium Browser'
<!--
@MAC-ALLOW:AXRole*
@MAC-ALLOW:AXSubrole*
@WIN-ALLOW:xml-roles:*
-->
<!DOCTYPE html>
<html>
<body>
<header>
Chromium Browser
</header>
</body>
</html>
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_SECTION READONLY xml-roles:banner IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='This is a header element.' ROLE_SYSTEM_STATICTEXT name='This is a header element.'
IA2_ROLE_NOTE xml-roles:complementary IA2_ROLE_NOTE xml-roles:complementary
ROLE_SYSTEM_STATICTEXT name='This is an aside element.' ROLE_SYSTEM_STATICTEXT name='This is an aside element.'
...@@ -13,7 +13,7 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ...@@ -13,7 +13,7 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
ROLE_SYSTEM_STATICTEXT name='This is a nav element.' ROLE_SYSTEM_STATICTEXT name='This is a nav element.'
ROLE_SYSTEM_APPLICATION xml-roles:application ROLE_SYSTEM_APPLICATION xml-roles:application
ROLE_SYSTEM_STATICTEXT name='This is an ARIA application landmark.' ROLE_SYSTEM_STATICTEXT name='This is an ARIA application landmark.'
IA2_ROLE_SECTION READONLY xml-roles:banner IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='This is an ARIA banner landmark.' ROLE_SYSTEM_STATICTEXT name='This is an ARIA banner landmark.'
IA2_ROLE_NOTE xml-roles:complementary IA2_ROLE_NOTE xml-roles:complementary
ROLE_SYSTEM_STATICTEXT name='This is an ARIA complementary landmark.' ROLE_SYSTEM_STATICTEXT name='This is an ARIA complementary landmark.'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment