diff --git a/accessible/atk/AccessibleWrap.cpp b/accessible/atk/AccessibleWrap.cpp index 2f0159f00..a4e21b6ec 100644 --- a/accessible/atk/AccessibleWrap.cpp +++ b/accessible/atk/AccessibleWrap.cpp @@ -597,8 +597,7 @@ static void MaybeFireNameChange(AtkObject* aAtkObj, const nsString& aNewName) { NS_ConvertUTF16toUTF8 newNameUTF8(aNewName); - if (aAtkObj->name && - !strncmp(aAtkObj->name, newNameUTF8.get(), newNameUTF8.Length())) + if (aAtkObj->name && !strcmp(aAtkObj->name, newNameUTF8.get())) return; // Below we duplicate the functionality of atk_object_set_name(), diff --git a/accessible/base/nsAccessibilityService.cpp b/accessible/base/nsAccessibilityService.cpp index 10b316c39..4d40e9a7b 100644 --- a/accessible/base/nsAccessibilityService.cpp +++ b/accessible/base/nsAccessibilityService.cpp @@ -314,16 +314,13 @@ nsAccessibilityService::ListenersChanged(nsIArray* aEventChanges) nsIDocument* ownerDoc = node->OwnerDoc(); DocAccessible* document = GetExistingDocAccessible(ownerDoc); - // Always recreate for onclick changes. - if (document) { - if (nsCoreUtils::HasClickListener(node)) { - if (!document->GetAccessible(node)) { - document->RecreateAccessible(node); - } - } else { - if (document->GetAccessible(node)) { - document->RecreateAccessible(node); - } + // Create an accessible for a inaccessible element having click event + // handler. + if (document && !document->HasAccessible(node) && + nsCoreUtils::HasClickListener(node)) { + nsIContent* parentEl = node->GetFlattenedTreeParent(); + if (parentEl) { + document->ContentInserted(parentEl, node, node->GetNextSibling()); } break; }