Fixes bug 94245, bug 94249 and bug 94263. Accessibility fixes for GW Micro. r=jgaunt, sr=waterson.

This commit is contained in:
aaronl%netscape.com 2001-08-09 04:58:01 +00:00
parent 819513506c
commit 9ea24e0527
17 changed files with 94 additions and 49 deletions

View File

@ -2,4 +2,4 @@ jump = Jump
press = Press
check = Check
uncheck = Uncheck
select = Select
select = Select

View File

@ -2,4 +2,4 @@ jump = Jump
press = Press
check = Check
uncheck = Uncheck
select = Select
select = Select

View File

@ -471,7 +471,16 @@ nsAccessible::~nsAccessible()
#endif
}
nsresult nsAccessible::GetAccParent(nsIAccessible ** aAccParent)
NS_IMETHODIMP nsAccessible::GetAccName(nsAWritableString& _retval)
{
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("title"), _retval);
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP nsAccessible::GetAccParent(nsIAccessible ** aAccParent)
{
nsCOMPtr<nsIPresContext> context;
GetPresContext(context);
@ -583,7 +592,7 @@ nsresult nsAccessible::GetTranslatedString(PRUnichar *aKey, nsAWritableString *a
// nsCOMPtr<nsIStringBundleService> stringBundleService(do_GetService(kStringBundleServiceCID, &rv));
if (!stringBundleService) {
NS_WARNING("ERROR: Failed to get StringBundle Service instance.\n");
return NS_ERROR_FAILURE;;
return NS_ERROR_FAILURE;
}
stringBundleService->CreateBundle(ACCESSIBLE_BUNDLE_URL, getter_AddRefs(stringBundle));
}
@ -1496,6 +1505,17 @@ NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval)
}
NS_IMETHODIMP nsLinkableAccessible::GetAccValue(nsAWritableString& _retval)
{
if (IsALink()) {
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mLinkContent));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("href"), _retval);
}
return NS_ERROR_FAILURE;
}
/* PRUint8 getAccNumActions (); */
NS_IMETHODIMP nsLinkableAccessible::GetAccNumActions(PRUint8 *_retval)
{

View File

@ -45,6 +45,7 @@ class nsIContent;
class nsAccessible : public nsGenericAccessible
{
public:
NS_IMETHOD GetAccName(nsAWritableString& _retval);
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
@ -141,6 +142,7 @@ class nsLinkableAccessible : public nsAccessible
NS_IMETHOD GetAccActionName(PRUint8 index, nsAWritableString& _retval);
NS_IMETHOD AccDoAction(PRUint8 index);
NS_IMETHOD GetAccState(PRUint32 *_retval);
NS_IMETHOD GetAccValue(nsAWritableString& _retval);
protected:
PRBool IsALink();

View File

@ -105,6 +105,9 @@ NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccName(nsAWritableString& _retval
}
label.CompressWhitespace();
if (label.IsEmpty())
return nsAccessible::GetAccName(_retval);
_retval.Assign(label);
return NS_OK;
@ -176,7 +179,7 @@ NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccActionName(PRUint8 index, nsAWrita
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -189,7 +192,7 @@ NS_IMETHODIMP nsHTMLCheckboxAccessible::AccDoAction(PRUint8 index)
element->SetChecked(checked ? PR_FALSE : PR_TRUE);
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
@ -214,7 +217,7 @@ NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccActionName(PRUint8 index, nsAWr
_retval = NS_LITERAL_STRING("select");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -225,7 +228,7 @@ NS_IMETHODIMP nsHTMLRadioButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
@ -258,7 +261,7 @@ NS_IMETHODIMP nsHTMLButtonAccessible::GetAccActionName(PRUint8 index, nsAWritabl
_retval = NS_LITERAL_STRING("press");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -269,7 +272,7 @@ NS_IMETHODIMP nsHTMLButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* unsigned long getAccRole (); */
@ -317,7 +320,7 @@ NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccActionName(PRUint8 index, nsAWritab
_retval = NS_LITERAL_STRING("press");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -328,7 +331,7 @@ NS_IMETHODIMP nsHTML4ButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* unsigned long getAccRole (); */
@ -390,7 +393,13 @@ NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccValue(nsAWritableString& _retval)
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
nsCOMPtr<nsIDOMHTMLInputElement> inputElement(do_QueryInterface(mDOMNode));
if (inputElement) {
inputElement->GetValue(_retval);
return NS_OK;
}
return NS_ERROR_FAILURE;
}
/* long getAccState (); */
@ -445,7 +454,7 @@ NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccState(PRUint32 *_retval)
*_retval |= moreStates;
return rv;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
PRBool disabled = PR_FALSE;

View File

@ -182,7 +182,7 @@ NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccNextSibling(nsIAccessible **_ret
return accessible->GetAccNextSibling(_retval);
*_retval = nsnull;
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
/* nsIAccessible getAccPreviousSibling (); */
@ -194,7 +194,7 @@ NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccPreviousSibling(nsIAccessible **
return accessible->GetAccPreviousSibling(_retval);
*_retval = nsnull;
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetHTMLIFrameAccessible(nsIAccessible** aAcc)

View File

@ -61,10 +61,3 @@ NS_IMETHODIMP nsHTMLLinkAccessible::GetAccRole(PRUint32 *_retval)
return NS_OK;
}
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccValue(nsAWritableString& _retval)
{
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("href"), _retval);
return NS_ERROR_FAILURE;;
}

View File

@ -33,7 +33,6 @@ public:
nsHTMLLinkAccessible(nsIDOMNode* aDomNode, nsIWeakReference* aShell);
NS_IMETHOD GetAccName(nsAWritableString& _retval);
NS_IMETHOD GetAccRole(PRUint32 *_retval);
NS_IMETHOD GetAccValue(nsAWritableString& _retval);
};
#endif

View File

@ -52,7 +52,6 @@ NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval)
return NS_OK;
}
/* nsIAccessible getAccFirstChild (); */
NS_IMETHODIMP nsHTMLTextAccessible::GetAccFirstChild(nsIAccessible **_retval)
{

View File

@ -471,7 +471,16 @@ nsAccessible::~nsAccessible()
#endif
}
nsresult nsAccessible::GetAccParent(nsIAccessible ** aAccParent)
NS_IMETHODIMP nsAccessible::GetAccName(nsAWritableString& _retval)
{
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("title"), _retval);
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP nsAccessible::GetAccParent(nsIAccessible ** aAccParent)
{
nsCOMPtr<nsIPresContext> context;
GetPresContext(context);
@ -583,7 +592,7 @@ nsresult nsAccessible::GetTranslatedString(PRUnichar *aKey, nsAWritableString *a
// nsCOMPtr<nsIStringBundleService> stringBundleService(do_GetService(kStringBundleServiceCID, &rv));
if (!stringBundleService) {
NS_WARNING("ERROR: Failed to get StringBundle Service instance.\n");
return NS_ERROR_FAILURE;;
return NS_ERROR_FAILURE;
}
stringBundleService->CreateBundle(ACCESSIBLE_BUNDLE_URL, getter_AddRefs(stringBundle));
}
@ -1496,6 +1505,17 @@ NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval)
}
NS_IMETHODIMP nsLinkableAccessible::GetAccValue(nsAWritableString& _retval)
{
if (IsALink()) {
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mLinkContent));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("href"), _retval);
}
return NS_ERROR_FAILURE;
}
/* PRUint8 getAccNumActions (); */
NS_IMETHODIMP nsLinkableAccessible::GetAccNumActions(PRUint8 *_retval)
{

View File

@ -45,6 +45,7 @@ class nsIContent;
class nsAccessible : public nsGenericAccessible
{
public:
NS_IMETHOD GetAccName(nsAWritableString& _retval);
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
@ -141,6 +142,7 @@ class nsLinkableAccessible : public nsAccessible
NS_IMETHOD GetAccActionName(PRUint8 index, nsAWritableString& _retval);
NS_IMETHOD AccDoAction(PRUint8 index);
NS_IMETHOD GetAccState(PRUint32 *_retval);
NS_IMETHOD GetAccValue(nsAWritableString& _retval);
protected:
PRBool IsALink();

View File

@ -395,9 +395,10 @@ NS_IMETHODIMP nsHTMLComboboxButtonAccessible::AccDoAction(PRUint8 index)
}
return NS_ERROR_FAILURE;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/**
* Just one action ( click ).
*/

View File

@ -105,6 +105,9 @@ NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccName(nsAWritableString& _retval
}
label.CompressWhitespace();
if (label.IsEmpty())
return nsAccessible::GetAccName(_retval);
_retval.Assign(label);
return NS_OK;
@ -176,7 +179,7 @@ NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccActionName(PRUint8 index, nsAWrita
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -189,7 +192,7 @@ NS_IMETHODIMP nsHTMLCheckboxAccessible::AccDoAction(PRUint8 index)
element->SetChecked(checked ? PR_FALSE : PR_TRUE);
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
@ -214,7 +217,7 @@ NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccActionName(PRUint8 index, nsAWr
_retval = NS_LITERAL_STRING("select");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -225,7 +228,7 @@ NS_IMETHODIMP nsHTMLRadioButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
@ -258,7 +261,7 @@ NS_IMETHODIMP nsHTMLButtonAccessible::GetAccActionName(PRUint8 index, nsAWritabl
_retval = NS_LITERAL_STRING("press");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -269,7 +272,7 @@ NS_IMETHODIMP nsHTMLButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* unsigned long getAccRole (); */
@ -317,7 +320,7 @@ NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccActionName(PRUint8 index, nsAWritab
_retval = NS_LITERAL_STRING("press");
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* void accDoAction (in PRUint8 index); */
@ -328,7 +331,7 @@ NS_IMETHODIMP nsHTML4ButtonAccessible::AccDoAction(PRUint8 index)
element->Click();
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_INVALID_ARG;
}
/* unsigned long getAccRole (); */
@ -390,7 +393,13 @@ NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccValue(nsAWritableString& _retval)
return NS_OK;
}
return NS_ERROR_NOT_IMPLEMENTED;
nsCOMPtr<nsIDOMHTMLInputElement> inputElement(do_QueryInterface(mDOMNode));
if (inputElement) {
inputElement->GetValue(_retval);
return NS_OK;
}
return NS_ERROR_FAILURE;
}
/* long getAccState (); */
@ -445,7 +454,7 @@ NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccState(PRUint32 *_retval)
*_retval |= moreStates;
return rv;
}
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
PRBool disabled = PR_FALSE;

View File

@ -182,7 +182,7 @@ NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccNextSibling(nsIAccessible **_ret
return accessible->GetAccNextSibling(_retval);
*_retval = nsnull;
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
/* nsIAccessible getAccPreviousSibling (); */
@ -194,7 +194,7 @@ NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccPreviousSibling(nsIAccessible **
return accessible->GetAccPreviousSibling(_retval);
*_retval = nsnull;
return NS_ERROR_NOT_IMPLEMENTED;
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetHTMLIFrameAccessible(nsIAccessible** aAcc)

View File

@ -61,10 +61,3 @@ NS_IMETHODIMP nsHTMLLinkAccessible::GetAccRole(PRUint32 *_retval)
return NS_OK;
}
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccValue(nsAWritableString& _retval)
{
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
if (elt)
return elt->GetAttribute(NS_LITERAL_STRING("href"), _retval);
return NS_ERROR_FAILURE;;
}

View File

@ -33,7 +33,6 @@ public:
nsHTMLLinkAccessible(nsIDOMNode* aDomNode, nsIWeakReference* aShell);
NS_IMETHOD GetAccName(nsAWritableString& _retval);
NS_IMETHOD GetAccRole(PRUint32 *_retval);
NS_IMETHOD GetAccValue(nsAWritableString& _retval);
};
#endif

View File

@ -52,7 +52,6 @@ NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval)
return NS_OK;
}
/* nsIAccessible getAccFirstChild (); */
NS_IMETHODIMP nsHTMLTextAccessible::GetAccFirstChild(nsIAccessible **_retval)
{