Bug 1033283 - Expose STATE_PRESSED on menu buttons, r=surkov

This commit is contained in:
Marco Zehe 2014-07-04 09:51:54 +02:00
Родитель 97876cf0a5
Коммит 9547dd8aec
4 изменённых файлов: 81 добавлений и 2 удалений

Просмотреть файл

@ -1582,7 +1582,8 @@ Accessible::ApplyARIAState(uint64_t* aState) const
}
// special case: A native button element whose role got transformed by ARIA to a toggle button
if (IsButton())
// Also applies to togglable button menus, like in the Dev Tools Web Console.
if (IsButton() || IsMenuButton())
aria::MapToState(aria::eARIAPressed, element, aState);
if (!mRoleMapEntry)

Просмотреть файл

@ -11,6 +11,8 @@
<script type="application/javascript"
src="../common.js"></script>
<script type="application/javascript"
src="../role.js" />
<script type="application/javascript">
<![CDATA[
@ -21,6 +23,10 @@
ok(!isAccessible("presentation_descr"),
"Presentation description shouldn't be accessible.");
// aria-pressed
testRole("pressed_button", ROLE_TOGGLE_BUTTON);
testRole("pressed_menu_button", ROLE_TOGGLE_BUTTON);
SimpleTest.finish();
}
@ -37,7 +43,12 @@
title="Do not create accessibles for XUL label or description having a role of 'presentation'">
Mozilla Bug 494345
</a>
<p id="display"></p>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1033283"
title="Expose pressed state on XUL menu toggle buttons">
Mozilla Bug 1033283
</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
@ -47,6 +58,12 @@
<vbox flex="1">
<label id="presentation_label" role="presentation" value="label"/>
<description id="presentation_descr" role="presentation" value="description"/>
<button id="pressed_button" aria-pressed="true" label="I am pressed" />
<button id="pressed_menu_button" aria-pressed="true" label="I am pressed" type="menu-button">
<menupopup>
<menuitem label="I am a menu item" />
</menupopup>
</button>
</vbox>

Просмотреть файл

@ -7,6 +7,7 @@ support-files =
z_frames_update.html
[test_aria.html]
[test_aria.xul]
[test_aria_imgmap.html]
[test_aria_widgetitems.html]
[test_buttons.html]

Просмотреть файл

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="Accessible XUL ARIA state tests">
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
<script type="application/javascript"
src="../common.js" />
<script type="application/javascript"
src="../role.js" />
<script type="application/javascript"
src="../states.js" />
<script type="application/javascript">
<![CDATA[
function doTest()
{
// aria-pressed
testStates("pressed_button", STATE_PRESSED, 0, STATE_CHECKABLE);
testStates("pressed_menu_button", STATE_PRESSED | STATE_HASPOPUP, 0, STATE_CHECKABLE);
SimpleTest.finish()
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTest);
]]>
</script>
<hbox flex="1" style="overflow: auto;">
<body xmlns="http://www.w3.org/1999/xhtml">
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1033283"
title="Expose pressed state on XUL menu toggle buttons">
Mozilla Bug 1033283
</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
<vbox flex="1">
<button id="pressed_button" aria-pressed="true" label="I am pressed" />
<button id="pressed_menu_button" aria-pressed="true" label="I am pressed" type="menu-button">
<menupopup>
<menuitem label="I am a menu item" />
</menupopup>
</button>
</vbox>
</hbox>
</window>