diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp index 21f0dfca7d9c..1958599ce2d1 100644 --- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -612,11 +612,15 @@ NS_IMETHODIMP nsAccessible::GetAccState(PRUint32 *aAccState) nsresult rv = NS_OK; *aAccState = 0; - if (NS_SUCCEEDED(rv) && mFocusController) { - nsCOMPtr focusedElement, currElement(do_QueryInterface(mDOMNode)); - mFocusController->GetFocusedElement(getter_AddRefs(focusedElement)); - if (focusedElement == currElement) - *aAccState |= STATE_FOCUSED; + nsCOMPtr currElement(do_QueryInterface(mDOMNode)); + if (currElement) { + *aAccState |= STATE_FOCUSABLE; + if (mFocusController) { + nsCOMPtr focusedElement; + rv = mFocusController->GetFocusedElement(getter_AddRefs(focusedElement)); + if (NS_SUCCEEDED(rv) && focusedElement == currElement) + *aAccState |= STATE_FOCUSED; + } } return rv; @@ -1469,7 +1473,7 @@ NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval) nsAccessible::GetAccState(_retval); *_retval |= STATE_READONLY | STATE_SELECTABLE; if (IsALink()) { - *_retval |= STATE_FOCUSABLE | STATE_LINKED; + *_retval |= STATE_LINKED; if (mIsLinkVisited) *_retval |= STATE_TRAVERSED; } diff --git a/accessible/src/html/nsHTMLTextAccessible.cpp b/accessible/src/html/nsHTMLTextAccessible.cpp index 85522619ccde..3490eaa3a5e3 100644 --- a/accessible/src/html/nsHTMLTextAccessible.cpp +++ b/accessible/src/html/nsHTMLTextAccessible.cpp @@ -47,7 +47,7 @@ NS_IMETHODIMP nsHTMLTextAccessible::GetAccName(nsAWritableString& _retval) /* unsigned long getAccRole (); */ NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval) { - *_retval = ROLE_STATICTEXT; + *_retval = ROLE_TEXT; return NS_OK; } diff --git a/accessible/src/nsAccessible.cpp b/accessible/src/nsAccessible.cpp index 21f0dfca7d9c..1958599ce2d1 100644 --- a/accessible/src/nsAccessible.cpp +++ b/accessible/src/nsAccessible.cpp @@ -612,11 +612,15 @@ NS_IMETHODIMP nsAccessible::GetAccState(PRUint32 *aAccState) nsresult rv = NS_OK; *aAccState = 0; - if (NS_SUCCEEDED(rv) && mFocusController) { - nsCOMPtr focusedElement, currElement(do_QueryInterface(mDOMNode)); - mFocusController->GetFocusedElement(getter_AddRefs(focusedElement)); - if (focusedElement == currElement) - *aAccState |= STATE_FOCUSED; + nsCOMPtr currElement(do_QueryInterface(mDOMNode)); + if (currElement) { + *aAccState |= STATE_FOCUSABLE; + if (mFocusController) { + nsCOMPtr focusedElement; + rv = mFocusController->GetFocusedElement(getter_AddRefs(focusedElement)); + if (NS_SUCCEEDED(rv) && focusedElement == currElement) + *aAccState |= STATE_FOCUSED; + } } return rv; @@ -1469,7 +1473,7 @@ NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval) nsAccessible::GetAccState(_retval); *_retval |= STATE_READONLY | STATE_SELECTABLE; if (IsALink()) { - *_retval |= STATE_FOCUSABLE | STATE_LINKED; + *_retval |= STATE_LINKED; if (mIsLinkVisited) *_retval |= STATE_TRAVERSED; } diff --git a/accessible/src/nsHTMLTextAccessible.cpp b/accessible/src/nsHTMLTextAccessible.cpp index 85522619ccde..3490eaa3a5e3 100644 --- a/accessible/src/nsHTMLTextAccessible.cpp +++ b/accessible/src/nsHTMLTextAccessible.cpp @@ -47,7 +47,7 @@ NS_IMETHODIMP nsHTMLTextAccessible::GetAccName(nsAWritableString& _retval) /* unsigned long getAccRole (); */ NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval) { - *_retval = ROLE_STATICTEXT; + *_retval = ROLE_TEXT; return NS_OK; }