diff --git a/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp b/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
index cfb0fc50f89..7d4cd649a03 100644
--- a/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
+++ b/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
@@ -97,10 +97,8 @@ NS_IMETHODIMP nsHTMLCheckboxAccessible::AccDoAction(PRUint8 index)
{
if (index == 0) { // 0 is the magic value for default action
nsCOMPtr htmlCheckboxElement(do_QueryInterface(mDOMNode));
- PRBool checked = PR_FALSE;
if (htmlCheckboxElement) {
- htmlCheckboxElement->GetChecked(&checked);
- htmlCheckboxElement->SetChecked(!checked);
+ htmlCheckboxElement->Click();
return NS_OK;
}
return NS_ERROR_FAILURE;
@@ -134,8 +132,10 @@ NS_IMETHODIMP nsHTMLRadioButtonAccessible::AccDoAction(PRUint8 index)
{
if (index == eAction_Click) {
nsCOMPtr element(do_QueryInterface(mDOMNode));
- element->Click();
- return NS_OK;
+ if (element) {
+ element->Click();
+ return NS_OK;
+ }
}
return NS_ERROR_INVALID_ARG;
}
@@ -181,8 +181,10 @@ NS_IMETHODIMP nsHTMLButtonAccessible::AccDoAction(PRUint8 index)
{
if (index == 0) {
nsCOMPtr element(do_QueryInterface(mDOMNode));
- element->Click();
- return NS_OK;
+ if (element) {
+ element->Click();
+ return NS_OK;
+ }
}
return NS_ERROR_INVALID_ARG;
}