diff --git a/mozilla/accessible/src/base/nsAccessibilityAtomList.h b/mozilla/accessible/src/base/nsAccessibilityAtomList.h index c31fcd93fb4..b0ec6dc6179 100755 --- a/mozilla/accessible/src/base/nsAccessibilityAtomList.h +++ b/mozilla/accessible/src/base/nsAccessibilityAtomList.h @@ -78,6 +78,7 @@ ACCESSIBILITY_ATOM(optgroup, "optgroup") ACCESSIBILITY_ATOM(option, "option") ACCESSIBILITY_ATOM(q, "q") ACCESSIBILITY_ATOM(select, "select") +ACCESSIBILITY_ATOM(toolbaritem, "toolbaritem") ACCESSIBILITY_ATOM(ul, "ul") // Alphabetical list of attributes @@ -89,6 +90,7 @@ ACCESSIBILITY_ATOM(id, "id") ACCESSIBILITY_ATOM(name, "name") ACCESSIBILITY_ATOM(tabindex, "tabindex") ACCESSIBILITY_ATOM(title, "title") +ACCESSIBILITY_ATOM(tooltiptext, "tooltiptext") // DHTML accessibility attributes ACCESSIBILITY_ATOM(valuenow, "valuenow") // For DHTML widget values diff --git a/mozilla/accessible/src/base/nsAccessible.cpp b/mozilla/accessible/src/base/nsAccessible.cpp index 88eda3b7aee..4340979662b 100644 --- a/mozilla/accessible/src/base/nsAccessible.cpp +++ b/mozilla/accessible/src/base/nsAccessible.cpp @@ -973,13 +973,8 @@ nsresult nsAccessible::AppendStringWithSpaces(nsAString *aFlatString, const nsAS nsresult nsAccessible::AppendFlatStringFromContentNode(nsIContent *aContent, nsAString *aFlatString) { nsAutoString textEquivalent; - nsCOMPtr xulElement(do_QueryInterface(aContent)); - if (xulElement) { - nsCOMPtr elt(do_QueryInterface(aContent)); - NS_ASSERTION(elt, "No DOM element for content node!"); - elt->GetAttribute(NS_LITERAL_STRING("value"), textEquivalent); // Prefer value over tooltiptext - if (textEquivalent.IsEmpty()) - elt->GetAttribute(NS_LITERAL_STRING("tooltiptext"), textEquivalent); + if (aContent->IsContentOfType(nsIContent::eXUL)) { + aContent->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::tooltiptext, textEquivalent); textEquivalent.CompressWhitespace(); return AppendStringWithSpaces(aFlatString, textEquivalent); } @@ -1298,14 +1293,28 @@ nsresult nsAccessible::GetXULName(nsAString& aLabel, PRBool aCanAggregateSubtree return NS_OK; } - if (!aCanAggregateSubtree) { - // Don't use AppendFlatStringFromSubtree for container widgets like menulist - // Still try the title as as fallback method in that case. - content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title, aLabel); + content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::tooltiptext, label); + label.CompressWhitespace(); + if (!label.IsEmpty()) { + aLabel = label; return NS_OK; } - return AppendFlatStringFromSubtree(content, &aLabel); + // Can get text from title of if we're a child of a + nsIContent *bindingParent = content->GetBindingParent(); + nsIContent *parent = bindingParent? bindingParent->GetParent() : + content->GetParent(); + if (parent && parent->Tag() == nsAccessibilityAtoms::toolbaritem && + NS_CONTENT_ATTR_HAS_VALUE == parent->GetAttr(kNameSpaceID_None, + nsAccessibilityAtoms::title, + label)) { + label.CompressWhitespace(); + aLabel = label; + return NS_OK; + } + + // Don't use AppendFlatStringFromSubtree for container widgets like menulist + return aCanAggregateSubtree? AppendFlatStringFromSubtree(content, &aLabel) : NS_OK; } NS_IMETHODIMP nsAccessible::FireToolkitEvent(PRUint32 aEvent, nsIAccessible *aTarget, void * aData) @@ -1346,6 +1355,7 @@ nsRoleMapEntry nsAccessible::gWAIRoleMap[] = {"secret-text", ROLE_PASSWORD_TEXT, eTitleOnly, STATE_PROTECTED, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, // XXX Use ext state STATE_SINGLE_LINE {"select", ROLE_LIST, eTitleOnly, 0, {"readonly", 0, STATE_READONLY}, {"multiselect", 0, STATE_EXTSELECTABLE | STATE_MULTISELECTABLE}, {0, 0, 0}}, {"slider", ROLE_SLIDER, eTitleOnly, 0, {"readonly", 0, STATE_READONLY}, {0, 0, 0}, {0, 0, 0}}, + {"spreadsheet", ROLE_TABLE, eTitleOnly, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE | STATE_FOCUSABLE, {"readonly", 0, STATE_READONLY}, {0, 0, 0}, {0, 0, 0}}, {"submit", ROLE_PUSHBUTTON, eAggregateSubtree, STATE_DEFAULT, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, {"textarea", ROLE_TEXT, eTitleOnly, 0, {"readonly", 0, STATE_READONLY}, {0, 0, 0}, {0, 0, 0}}, // XXX Use ext state STATE_MULTI_LINE {"textfield", ROLE_TEXT, eTitleOnly, 0, {"readonly", 0, STATE_READONLY}, {0, 0, 0}, {0, 0, 0}}, // XXX Use ext state STATE_SINGLE_LINE diff --git a/mozilla/toolkit/content/widgets/autocomplete.xml b/mozilla/toolkit/content/widgets/autocomplete.xml index db74bdc0ce9..a0965e0a353 100644 --- a/mozilla/toolkit/content/widgets/autocomplete.xml +++ b/mozilla/toolkit/content/widgets/autocomplete.xml @@ -84,9 +84,6 @@ @@ -96,9 +93,13 @@ @@ -219,9 +220,7 @@ onset="this.setAttribute('crop',val); return val;" onget="return this.getAttribute('crop');"/> - + diff --git a/mozilla/xpfe/browser/resources/content/navigator.xul b/mozilla/xpfe/browser/resources/content/navigator.xul index 4fb6a54ceb9..3b5ba710b3b 100644 --- a/mozilla/xpfe/browser/resources/content/navigator.xul +++ b/mozilla/xpfe/browser/resources/content/navigator.xul @@ -177,6 +177,9 @@ + +