Bug 573706 - make frame based accessible creation more pellucid, r=davidb, sr=roc

This commit is contained in:
Alexander Surkov
2010-06-28 21:02:03 +09:00
parent 47c9623cec
commit 0a6b10381a
48 changed files with 648 additions and 850 deletions

View File

@@ -110,21 +110,18 @@ NS_QUERYFRAME_HEAD(nsHTMLButtonControlFrame)
NS_QUERYFRAME_TAIL_INHERITING(nsHTMLContainerFrame)
#ifdef ACCESSIBILITY
NS_IMETHODIMP nsHTMLButtonControlFrame::GetAccessible(nsIAccessible** aAccessible)
already_AddRefed<nsAccessible>
nsHTMLButtonControlFrame::CreateAccessible()
{
nsCOMPtr<nsIAccessibilityService> accService = do_GetService("@mozilla.org/accessibilityService;1");
if (accService) {
nsIContent* content = GetContent();
nsCOMPtr<nsIDOMHTMLButtonElement> buttonElement(do_QueryInterface(content));
if (buttonElement) //If turned XBL-base form control off, the frame contains HTML 4 button
return accService->CreateHTML4ButtonAccessible(static_cast<nsIFrame*>(this), aAccessible);
nsCOMPtr<nsIDOMHTMLInputElement> inputElement(do_QueryInterface(content));
if (inputElement) //If turned XBL-base form control on, the frame contains normal HTML button
return accService->CreateHTMLButtonAccessible(static_cast<nsIFrame*>(this), aAccessible);
return IsInput() ?
accService->CreateHTMLButtonAccessible(mContent, PresContext()->PresShell()) :
accService->CreateHTML4ButtonAccessible(mContent, PresContext()->PresShell());
}
return NS_ERROR_FAILURE;
return nsnull;
}
#endif