Bug 288986. Disabled attribute confusion causing some XUL elements to be exposed in accessibility APIs as disabled when they aren't. sr=neil, a=asa

This commit is contained in:
aaronleventhal%moonset.net 2005-04-12 15:28:01 +00:00
Родитель 2fe790c286
Коммит bb1b37f305
5 изменённых файлов: 18 добавлений и 7 удалений

Просмотреть файл

@ -632,7 +632,18 @@ NS_IMETHODIMP nsAccessible::GetState(PRUint32 *aState)
// The disabled attribute is mostly used in XUL elements and HTML forms, but
// if someone sets it on another attribute,
// it seems reasonable to consider it unavailable
if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::disabled)) {
PRBool isDisabled;
if (content->IsContentOfType(nsIContent::eHTML)) {
// In HTML, just the presence of the disabled attribute means it is disabled,
// therefore disabled="false" indicates disabled!
isDisabled = content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::disabled);
}
else {
nsAutoString disabled;
content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::disabled, disabled);
isDisabled = disabled.EqualsLiteral("true");
}
if (isDisabled) {
*aState |= STATE_UNAVAILABLE;
}
else if (content->IsContentOfType(nsIContent::eELEMENT)) {

Просмотреть файл

@ -530,7 +530,7 @@
var disabled = this.mPanelContainer.childNodes.length == 1;
var menuItems = aPopupMenu.getElementsByAttribute("tbattr", "tabbrowser-multiple");
for (var i = 0; i < menuItems.length; i++)
menuItems[i].setAttribute("disabled", disabled);
menuItems[i].disabled = disabled;
]]>
</body>
</method>

Просмотреть файл

@ -28,9 +28,9 @@
onset="return document.title = val;"/>
<property name="canAdvance" onget="return this._canAdvance;"
onset="this._canAdvance=val; this._nextButton.setAttribute('disabled', !val);"/>
onset="this._canAdvance=val; this._nextButton.disabled = !val;"/>
<property name="canRewind" onget="return this._canRewind;"
onset="this._canRewind=val; this._backButton.setAttribute('disabled', !val);"/>
onset="this._canRewind=val; this._backButton.disabled = !val;"/>
<property name="pageStep" onget="return this._pageStack.length"/>

Просмотреть файл

@ -497,7 +497,7 @@
var disabled = this.mPanelContainer.childNodes.length == 1;
var menuItems = aPopupMenu.getElementsByAttribute("tbattr", "tabbrowser-multiple");
for (var i = 0; i < menuItems.length; i++)
menuItems[i].setAttribute("disabled", disabled);
menuItems[i].disabled = disabled;
]]>
</body>
</method>

Просмотреть файл

@ -30,9 +30,9 @@
onset="return document.title = val;"/>
<property name="canAdvance" onget="return this._canAdvance;"
onset="this._canAdvance=val; this._nextButton.setAttribute('disabled', !val);"/>
onset="this._canAdvance=val; this._nextButton.disabled = !val;"/>
<property name="canRewind" onget="return this._canRewind;"
onset="this._canRewind=val; this._backButton.setAttribute('disabled', !val);"/>
onset="this._canRewind=val; this._backButton.disabled = !val;"/>
<property name="pageStep" onget="return this._pageStack.length"/>