зеркало из https://github.com/mozilla/pjs.git
Bug 193803. Expose iframes correctly in accessibility apis, fix iframe events. r=kyle, sr=henry
This commit is contained in:
Родитель
1cf695921f
Коммит
743f5bf616
|
@ -558,14 +558,7 @@ NS_IMETHODIMP nsAccessible::GetAccId(PRInt32 *aAccId)
|
|||
|
||||
NS_IMETHODIMP nsAccessible::CacheOptimizations(nsIAccessible *aParent, PRInt32 aSiblingIndex, nsIDOMNodeList *aSiblingList)
|
||||
{
|
||||
if (aParent) {
|
||||
PRUint32 role = 0;
|
||||
aParent->GetAccRole(&role);
|
||||
// prevent from invalid caching nsHTMLIFrameRootAccessible
|
||||
if (role != ROLE_NOTHING) {
|
||||
mParent = aParent;
|
||||
}
|
||||
}
|
||||
mParent = aParent;
|
||||
if (aSiblingList)
|
||||
mSiblingList = aSiblingList;
|
||||
mSiblingIndex = aSiblingIndex;
|
||||
|
|
|
@ -835,8 +835,9 @@ void nsRootAccessible::FireDocLoadFinished()
|
|||
if (mBusy != eBusyStateDone) {
|
||||
mBusy = eBusyStateDone;
|
||||
#ifndef MOZ_ACCESSIBILITY_ATK
|
||||
if (mListener)
|
||||
if (mListener) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, this, nsnull);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,36 +56,42 @@ nsHTMLIFrameAccessible::nsHTMLIFrameAccessible(nsIDOMNode* aNode, nsIAccessible*
|
|||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccName(nsAString& aAccName)
|
||||
{
|
||||
return GetTitle(aAccName);
|
||||
nsresult rv = GetTitle(aAccName);
|
||||
if (NS_FAILED(rv) || aAccName.IsEmpty())
|
||||
rv = GetURL(aAccName);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccValue(nsAString& aAccValue)
|
||||
{
|
||||
return GetURL(aAccValue);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccFirstChild(nsIAccessible **aChild)
|
||||
{
|
||||
return mRootAccessible->GetAccFirstChild(_retval);
|
||||
NS_IF_ADDREF(*aChild = mRootAccessible);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccLastChild(nsIAccessible **aChild)
|
||||
{
|
||||
return mRootAccessible->GetAccLastChild(_retval);
|
||||
NS_IF_ADDREF(*aChild = mRootAccessible);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccChildCount(PRInt32 *aNumChildren)
|
||||
{
|
||||
return mRootAccessible->GetAccChildCount(_retval);
|
||||
*aNumChildren = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PANE;
|
||||
*_retval = ROLE_CLIENT;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -352,13 +358,6 @@ nsHTMLIFrameRootAccessible::~nsHTMLIFrameRootAccessible()
|
|||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
// prevent |this| from being cached by nsAccessible::CacheOptimizations
|
||||
*_retval = ROLE_NOTHING;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void addAccessibleEventListener (in nsIAccessibleEventListener aListener); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::AddAccessibleEventListener(nsIAccessibleEventListener *aListener)
|
||||
{
|
||||
|
@ -380,3 +379,18 @@ NS_IMETHODIMP nsHTMLIFrameRootAccessible::RemoveAccessibleEventListener()
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PANE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccName(nsAString& aAccName)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccValue(nsAString& aAccValue)
|
||||
{
|
||||
return GetURL(aAccValue);
|
||||
}
|
||||
|
|
|
@ -97,6 +97,8 @@ class nsHTMLIFrameRootAccessible : public nsRootAccessible
|
|||
virtual ~nsHTMLIFrameRootAccessible();
|
||||
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
NS_IMETHOD GetAccName(nsAString& aAccName);
|
||||
NS_IMETHOD GetAccValue(nsAString& aAccValue);
|
||||
|
||||
// ----- nsIAccessibleEventReceiver -------------------
|
||||
NS_IMETHOD AddAccessibleEventListener(nsIAccessibleEventListener *aListener);
|
||||
|
|
Загрузка…
Ссылка в новой задаче