nsresult HTMLTextFieldAccessible::GetNameInternal(nsAString& aName) { nsresult rv = Accessible::GetNameInternal(aName); NS_ENSURE_SUCCESS(rv, rv); if (!aName.IsEmpty()) return NS_OK; if (mContent->GetBindingParent()) { // XXX: bug 459640 // There's a binding parent. // This means we're part of another control, so use parent accessible for name. // This ensures that a textbox inside of a XUL widget gets // an accessible name. Accessible* parent = Parent(); if (parent) parent->GetName(aName); } if (!aName.IsEmpty()) return NS_OK; // text inputs and textareas might have useful placeholder text mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::placeholder, aName); return NS_OK; }
ENameValueFlag HTMLTextFieldAccessible::NativeName(nsString& aName) { ENameValueFlag nameFlag = Accessible::NativeName(aName); if (!aName.IsEmpty()) return nameFlag; if (mContent->GetBindingParent()) { // XXX: bug 459640 // There's a binding parent. // This means we're part of another control, so use parent accessible for name. // This ensures that a textbox inside of a XUL widget gets // an accessible name. Accessible* parent = Parent(); if (parent) parent->GetName(aName); } if (!aName.IsEmpty()) return eNameOK; // text inputs and textareas might have useful placeholder text mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::placeholder, aName); return eNameOK; }
nsresult XULGroupboxAccessible::GetNameInternal(nsAString& aName) { // XXX: we use the first related accessible only. Accessible* label = RelationByType(nsIAccessibleRelation::RELATION_LABELLED_BY).Next(); if (label) return label->GetName(aName); return NS_OK; }