Bug 875665 - Fix activate action for <textarea/> and add action tests for text input elements. r=surkov

This commit is contained in:
Eitan Isaacson 2013-05-31 11:16:18 -07:00
parent 96a9e57beb
commit 2cdb21fcd1
4 changed files with 28 additions and 9 deletions

View File

@ -452,13 +452,9 @@ HTMLTextFieldAccessible::GetActionName(uint8_t aIndex, nsAString& aName)
NS_IMETHODIMP
HTMLTextFieldAccessible::DoAction(uint8_t aIndex)
{
if (aIndex == 0) {
HTMLInputElement* element = HTMLInputElement::FromContent(mContent);
if (element)
return element->Focus();
if (aIndex == 0)
return TakeFocus();
return NS_ERROR_FAILURE;
}
return NS_ERROR_INVALID_ARG;
}

View File

@ -5,9 +5,10 @@ const MOUSEDOWN_EVENT = 1;
const MOUSEUP_EVENT = 2;
const CLICK_EVENT = 4;
const COMMAND_EVENT = 8;
const FOCUS_EVENT = 16;
const CLICK_EVENTS = MOUSEDOWN_EVENT | MOUSEUP_EVENT | CLICK_EVENT;
const ALL_EVENTS = CLICK_EVENTS | COMMAND_EVENT;
const XUL_EVENTS = CLICK_EVENTS | COMMAND_EVENT;
////////////////////////////////////////////////////////////////////////////////
// Public functions
@ -74,6 +75,9 @@ function testActions(aArray)
if (events & COMMAND_EVENT)
eventSeq.push(new checkerOfActionInvoker("command", elm));
if (events & FOCUS_EVENT)
eventSeq.push(new focusChecker(elm));
}
if (actionObj.eventSeq)

View File

@ -11,6 +11,10 @@
<script type="application/javascript"
src="../common.js"></script>
<script type="application/javascript"
src="../role.js"></script>
<script type="application/javascript"
src="../states.js"></script>
<script type="application/javascript"
src="../events.js"></script>
<script type="application/javascript"
@ -49,7 +53,18 @@
ID: "radio",
actionName: "select",
events: CLICK_EVENTS
},
{
ID: "textarea",
actionName: "activate",
events: FOCUS_EVENT
},
{
ID: "textinput",
actionName: "activate",
events: FOCUS_EVENT
}
];
document.getElementById("checkbox_mixed").indeterminate = true;
@ -86,5 +101,9 @@
<fieldset>
<input id="radio" type="radio">Radio</input>
</fieldset>
<textarea id="textarea" placeholder="What's happening?"></textarea>
<input id="textinput" type="text">
</body>
</html>

View File

@ -48,12 +48,12 @@
{
ID: "menuitem",
actionName: "click",
events: ALL_EVENTS
events: XUL_EVENTS
},
{
ID: "button",
actionName: "press",
events: ALL_EVENTS
events: XUL_EVENTS
},
{
ID: "buttonmenu",