зеркало из https://github.com/mozilla/gecko-dev.git
Bug 302359. Accessibility fixes for options dialogs. r=mconnor, r=parente, sr=darin, a=parente
This commit is contained in:
Родитель
032ea8b227
Коммит
1a825a8d3e
|
@ -217,15 +217,32 @@ NS_IMETHODIMP nsAccessible::GetDescription(nsAString& aDescription)
|
|||
}
|
||||
if (!content->IsContentOfType(nsIContent::eTEXT)) {
|
||||
nsAutoString description;
|
||||
if (!mRoleMapEntry ||
|
||||
NS_FAILED(GetTextFromRelationID(nsAccessibilityAtoms::describedby, description))) {
|
||||
if (NS_CONTENT_ATTR_HAS_VALUE !=
|
||||
content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title, description)) {
|
||||
nsAutoString name;
|
||||
GetName(name);
|
||||
if (name.IsEmpty() || description == name) {
|
||||
// Has no name or description is not unique
|
||||
description.Truncate();
|
||||
if (mRoleMapEntry) {
|
||||
GetTextFromRelationID(nsAccessibilityAtoms::describedby, description);
|
||||
}
|
||||
if (description.IsEmpty()) {
|
||||
PRBool isXUL = content->IsContentOfType(nsIContent::eXUL);
|
||||
if (isXUL) {
|
||||
// Try XUL <description control="[id]">description text</description>
|
||||
nsIContent *descriptionContent =
|
||||
GetXULLabelContent(content, nsAccessibilityAtoms::description);
|
||||
if (descriptionContent) {
|
||||
// We have a description content node
|
||||
AppendFlatStringFromSubtree(descriptionContent, &description);
|
||||
}
|
||||
}
|
||||
if (description.IsEmpty()) {
|
||||
nsIAtom *descAtom = isXUL ? nsAccessibilityAtoms::tooltiptext :
|
||||
nsAccessibilityAtoms::title;
|
||||
if (NS_CONTENT_ATTR_HAS_VALUE ==
|
||||
content->GetAttr(kNameSpaceID_None, descAtom, description)) {
|
||||
nsAutoString name;
|
||||
GetName(name);
|
||||
if (name.IsEmpty() || description == name) {
|
||||
// Don't use tooltip for a description if this object
|
||||
// has no name or the tooltip is the same as the name
|
||||
description.Truncate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1255,7 +1272,6 @@ nsresult nsAccessible::AppendFlatStringFromContentNode(nsIContent *aContent, nsA
|
|||
if (textContent->TextLength() > 0) {
|
||||
nsAutoString text;
|
||||
textContent->AppendTextTo(text);
|
||||
text.CompressWhitespace();
|
||||
if (!text.IsEmpty())
|
||||
aFlatString->Append(text);
|
||||
if (isHTMLBlock && !aFlatString->IsEmpty())
|
||||
|
@ -1271,11 +1287,12 @@ nsresult nsAccessible::AppendFlatStringFromContentNode(nsIContent *aContent, nsA
|
|||
aContent->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::value,
|
||||
textEquivalent);
|
||||
}
|
||||
else {
|
||||
aContent->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::tooltiptext,
|
||||
textEquivalent);
|
||||
else if (NS_CONTENT_ATTR_HAS_VALUE !=
|
||||
aContent->GetAttr(kNameSpaceID_None,
|
||||
nsAccessibilityAtoms::tooltiptext,
|
||||
textEquivalent)) {
|
||||
AppendNameFromAccessibleFor(aContent, aFlatString, PR_TRUE /* use value */);
|
||||
}
|
||||
textEquivalent.CompressWhitespace();
|
||||
return AppendStringWithSpaces(aFlatString, textEquivalent);
|
||||
}
|
||||
return NS_OK; // Not HTML and not XUL -- we don't handle it yet
|
||||
|
@ -1348,7 +1365,7 @@ nsresult nsAccessible::AppendFlatStringFromSubtreeRecurse(nsIContent *aContent,
|
|||
|
||||
PRUint32 index;
|
||||
for (index = 0; index < numChildren; index++) {
|
||||
AppendFlatStringFromSubtree(aContent->GetChildAt(index), aFlatString);
|
||||
AppendFlatStringFromSubtreeRecurse(aContent->GetChildAt(index), aFlatString);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -1384,7 +1401,7 @@ nsIContent* nsAccessible::GetXULLabelContent(nsIContent *aForNode, nsIAtom *aLab
|
|||
}
|
||||
|
||||
// Look for label in subtrees of nearby ancestors
|
||||
static const PRUint32 kAncestorLevelsToSearch = 3;
|
||||
static const PRUint32 kAncestorLevelsToSearch = 5;
|
||||
PRUint32 count = 0;
|
||||
while (!labelContent && ++count <= kAncestorLevelsToSearch &&
|
||||
(aForNode = aForNode->GetParent()) != nsnull) {
|
||||
|
@ -1826,23 +1843,6 @@ NS_IMETHODIMP nsAccessible::GetFinalState(PRUint32 *aState)
|
|||
// via DHTML accessibility disabled property
|
||||
finalState &= ~(STATE_SELECTABLE | STATE_FOCUSABLE);
|
||||
}
|
||||
else if (gLastFocusedNode == mDOMNode && (mRoleMapEntry->state & STATE_SELECTABLE)) {
|
||||
// If we're focused and selectable and not inside a multiselect,
|
||||
// then we're also selected
|
||||
nsCOMPtr<nsIAccessible> container = this;
|
||||
PRUint32 containerState = 0, containerRole;
|
||||
while (0 == (containerState & STATE_MULTISELECTABLE)) {
|
||||
nsCOMPtr<nsIAccessible> current;
|
||||
current.swap(container);
|
||||
current->GetParent(getter_AddRefs(container));
|
||||
if (!container || (NS_SUCCEEDED(container->GetFinalRole(&containerRole)) &&
|
||||
containerRole == ROLE_PANE)) {
|
||||
finalState |= STATE_SELECTED;
|
||||
break;
|
||||
}
|
||||
container->GetFinalState(&containerState);
|
||||
}
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
|
||||
if (content) {
|
||||
|
|
|
@ -374,29 +374,17 @@ void nsRootAccessible::FireAccessibleFocusEvent(nsIAccessible *aAccessible,
|
|||
// Special dynamic content handling
|
||||
PRUint32 role = ROLE_NOTHING;
|
||||
aAccessible->GetFinalRole(&role);
|
||||
PRUint32 naturalRole; // The natural role is the role that this type of element normally has
|
||||
aAccessible->GetRole(&naturalRole);
|
||||
if (role != naturalRole) {
|
||||
nsCOMPtr<nsIAccessible> multiSelect = GetMultiSelectFor(aNode);
|
||||
if (!multiSelect) {
|
||||
// Selection events that mirror focus events
|
||||
// Mirror selection events to focus, but only for widgets that are selectable
|
||||
// but not a descendent of a multi-selectable widget
|
||||
// Selection events for multiselects is handled separately
|
||||
// in nsDocAccessible::AttributeChanged() for DHTML widgets and
|
||||
// in nsRootAccessible::HandleEvent() via
|
||||
// DOMItemSelected and DOMItemUnselected for everything else
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_SELECTION,
|
||||
aAccessible, nsnull);
|
||||
}
|
||||
if (role == ROLE_MENUITEM) {
|
||||
if (!mIsInDHTMLMenu) { // Entering menus
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUSTART, this, nsnull);
|
||||
if (role == ROLE_MENUITEM) {
|
||||
if (!mIsInDHTMLMenu) { // Entering menus
|
||||
PRUint32 naturalRole; // The natural role is the role that this type of element normally has
|
||||
aAccessible->GetRole(&naturalRole);
|
||||
if (role != naturalRole) { // Must be a DHTML menuitem
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUSTART, this, nsnull);
|
||||
mIsInDHTMLMenu = ROLE_MENUITEM;
|
||||
}
|
||||
mIsInDHTMLMenu = PR_TRUE;
|
||||
}
|
||||
}
|
||||
if (role != ROLE_MENUITEM && mIsInDHTMLMenu) { // Leaving menus
|
||||
else if (mIsInDHTMLMenu) {
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUEND, this, nsnull);
|
||||
mIsInDHTMLMenu = PR_FALSE;
|
||||
}
|
||||
|
|
|
@ -47,7 +47,10 @@
|
|||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<prefpane id="paneAdvanced" onpaneload="gAdvancedPane.init();"
|
||||
helpURI="chrome://browser/locale/help/help.rdf">
|
||||
helpURI="chrome://browser/locale/help/help.rdf"
|
||||
xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xmlns:aaa="http://www.w3.org/2005/07/aaa">
|
||||
|
||||
<preferences>
|
||||
<preference id="browser.preferences.advanced.selectedTabIndex"
|
||||
|
@ -128,7 +131,7 @@
|
|||
<groupbox>
|
||||
<caption label="&languages.caption;"/>
|
||||
<hbox align="center">
|
||||
<description flex="1">&languagesInfo.label;</description>
|
||||
<description flex="1" control="showLanguages">&languagesInfo.label;</description>
|
||||
<button label="&showLanguages.label;"
|
||||
accesskey="&showLanguages.accesskey;"
|
||||
oncommand="gAdvancedPane.showLanguages();"/>
|
||||
|
@ -136,8 +139,8 @@
|
|||
</groupbox>
|
||||
</tabpanel>
|
||||
<tabpanel orient="vertical" align="start">
|
||||
<label>&autoCheck.label;</label>
|
||||
<vbox class="indent">
|
||||
<label control="autoUpdateGroup">&autoCheck.label;</label>
|
||||
<vbox class="indent" id="autoUpdateGroup" xhtml2:role="wairole:groupbox">
|
||||
<hbox>
|
||||
<checkbox id="enableAppUpdate"
|
||||
label="&enableAppUpdate.label;"
|
||||
|
@ -160,7 +163,7 @@
|
|||
</hbox>
|
||||
</vbox>
|
||||
<separator/>
|
||||
<label id="updateModeLabel">&whenUpdatesFound.label;</label>
|
||||
<label id="updateModeLabel" control="updateMode">&whenUpdatesFound.label;</label>
|
||||
<radiogroup id="updateMode" class="indent"
|
||||
preference="app.update.auto">
|
||||
<radio id="ask" value="false"
|
||||
|
@ -219,7 +222,7 @@
|
|||
</groupbox>
|
||||
<groupbox>
|
||||
<caption label="&certificates.label;"/>
|
||||
<description>&certselect.description;</description>
|
||||
<description control="certselection">&certselect.description;</description>
|
||||
<radiogroup id="certSelection" orient="horizontal" preftype="string"
|
||||
preference="security.default_personal_cert">
|
||||
<radio label="&certselect.auto;" accesskey="&certselect.auto.accesskey;"
|
||||
|
@ -230,7 +233,7 @@
|
|||
|
||||
<separator/>
|
||||
|
||||
<description>
|
||||
<hbox>
|
||||
<button label="&viewCertificates.label;" accesskey="&viewCertificates.accesskey;"
|
||||
oncommand="gAdvancedPane.showCertificates();"
|
||||
preference="security.disable_button.openCertManager"/>
|
||||
|
@ -242,7 +245,7 @@
|
|||
<button label="&viewSecurityDevices.label;" accesskey="&viewSecurityDevices.accesskey;"
|
||||
oncommand="gAdvancedPane.showSecurityDevices();"
|
||||
preference="security.disable_button.openDeviceManager"/>
|
||||
</description>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
</tabpanels>
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
buttons="accept,cancel,help"
|
||||
ondialogaccept="return gChangeActionDialog.onAccept();"
|
||||
ondialoghelp="openHelp('prefs-download-actions', 'chrome://browser/locale/help/help.rdf');"
|
||||
xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xmlns:aaa="http://www.w3.org/2005/07/aaa"
|
||||
style="width: &window.width;;"
|
||||
persist="screenX screenY">
|
||||
|
||||
|
@ -66,8 +69,9 @@
|
|||
</vbox>
|
||||
</hbox>
|
||||
<vbox id="changeActionContent" flex="1">
|
||||
<label>&whenDownloading.label;</label>
|
||||
<radiogroup id="handlerGroup" onselect="gChangeActionDialog.doEnabling(this.selectedItem);" flex="1">
|
||||
<label control="handlerGroup">&whenDownloading.label;</label>
|
||||
<radiogroup id="handlerGroup" onselect="gChangeActionDialog.doEnabling(this.selectedItem);"
|
||||
flex="1" xhtml2:role="wairole:radiogroup" aaa:describedby="changeActionHeader"/>
|
||||
<separator class="thin"/>
|
||||
<radio id="openDefault" value="system"
|
||||
label="&openDefault.label;" accesskey="&openDefault.accesskey;"/>
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
oncommand="gCookiesWindow.clearFilter();" disabled="true"/>
|
||||
</hbox>
|
||||
<separator class="thin"/>
|
||||
<label id="cookiesIntro" value="&cookiesonsystem.label;"/>
|
||||
<label control="cookiesList" id="cookiesIntro" value="&cookiesonsystem.label;"/>
|
||||
<separator class="thin"/>
|
||||
<tree id="cookiesList" flex="1" style="height: 10em;"
|
||||
onkeypress="gCookiesWindow.onCookieKeyPress(event)"
|
||||
|
|
|
@ -74,7 +74,9 @@
|
|||
oncommand="gDownloadActionsWindow.clearFilter();" disabled="true"/>
|
||||
</hbox>
|
||||
<separator class="thin"/>
|
||||
<label id="actionsIntro">&fileTypesDescription.label;</label>
|
||||
<label id="actionsIntro" control="fileHandlersList">
|
||||
&fileTypesDescription.label;
|
||||
</label>
|
||||
<separator class="thin"/>
|
||||
<tree id="fileHandlersList" flex="1"
|
||||
lastSelected="0" persist="lastSelected"
|
||||
|
|
|
@ -117,10 +117,11 @@
|
|||
<groupbox>
|
||||
<caption label="&fileTypes.label;"/>
|
||||
|
||||
<description>&fileTypesDescription.label;</description>
|
||||
<description control="configureActions">&fileTypesDescription.label;</description>
|
||||
<separator class="thin"/>
|
||||
<hbox>
|
||||
<button label="&configureActions.label;" accesskey="&configureActions.accesskey;"
|
||||
<button id="configureActions" label="&configureActions.label;"
|
||||
accesskey="&configureActions.accesskey;"
|
||||
oncommand="gDownloadsPane.showFileTypeActions();"
|
||||
preference="pref.downloads.disable_button.edit_actions"/>
|
||||
</hbox>
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<groupbox>
|
||||
<caption label="&connectionsInfo.caption;"/>
|
||||
<hbox align="center">
|
||||
<description flex="1">&proxiesInfo.label;</description>
|
||||
<description flex="1" control="catProxiesButton">&proxiesInfo.label;</description>
|
||||
<button id="catProxiesButton" icon="network" label="&showConnections.label;"
|
||||
accesskey="&showConnections.accesskey;"
|
||||
oncommand="gGeneralPane.showConnections();"/>
|
||||
|
|
|
@ -62,9 +62,9 @@
|
|||
</keyset>
|
||||
|
||||
<vbox class="contentPane" flex="1">
|
||||
<description id="permissionsText"/>
|
||||
<description id="permissionsText" control="url"/>
|
||||
<separator class="thin"/>
|
||||
<label value="&address.label;"/>
|
||||
<label control="url" value="&address.label;"/>
|
||||
<hbox align="start">
|
||||
<textbox id="url" flex="1"
|
||||
oninput="gPermissionManager.onHostInput(event.target);"
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
<script type="application/x-javascript" src="chrome://browser/content/sanitize.js"/>
|
||||
<script type="application/x-javascript" src="chrome://browser/content/preferences/privacy.js"/>
|
||||
|
||||
<description>&privacy.intro;</description>
|
||||
<description control="panePrivacy">&privacy.intro;</description>
|
||||
<separator class="thin"/>
|
||||
<tabbox id="privacyPrefs" flex="1"
|
||||
onselect="gPrivacyPane.tabSelectionChanged(event);">
|
||||
|
@ -107,11 +107,14 @@
|
|||
<tab label="&itemCookies.label;" helpTopic="prefs-cookies"/>
|
||||
<tab label="&itemCache.label;" helpTopic="prefs-cache"/>
|
||||
</tabs>
|
||||
<tabpanels flex="1">
|
||||
<tabpanels flex="1" xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xmlns:aaa="http://www.w3.org/2005/07/aaa">
|
||||
<tabpanel orient="vertical">
|
||||
<hbox align="center">
|
||||
<hbox xhtml2:role="wairole:label" id="historyDaysContainer" align="center">
|
||||
<label control="historyDays" accesskey="&rememberPages.accesskey;">&rememberPages.label;</label>
|
||||
<textbox id="historyDays" size="2" preference="browser.history_expire_days"/>
|
||||
<textbox id="historyDays" size="2" preference="browser.history_expire_days"
|
||||
xhtml2:role="wairole:textfield" aaa:labelledby="historyDaysContainer"/>
|
||||
<label>&rememberDays.label;</label>
|
||||
</hbox>
|
||||
<separator flex="1"/>
|
||||
|
@ -123,7 +126,7 @@
|
|||
</hbox>
|
||||
</tabpanel>
|
||||
<tabpanel orient="vertical">
|
||||
<description>&savedFormData.intro;</description>
|
||||
<description control="saveFormHistory">&savedFormData.intro;</description>
|
||||
<vbox align="start">
|
||||
<checkbox id="saveFormHistory" preference="browser.formfill.enable"
|
||||
label="&enableFormFill.label;" accesskey="&enableFormFill.accesskey;"/>
|
||||
|
@ -137,7 +140,7 @@
|
|||
</hbox>
|
||||
</tabpanel>
|
||||
<tabpanel orient="vertical">
|
||||
<description>&savedPasswords.intro;</description>
|
||||
<description control="savePasswords">&savedPasswords.intro;</description>
|
||||
<hbox>
|
||||
<checkbox id="savePasswords"
|
||||
label="&enablePasswords.label;" accesskey="&enablePasswords.accesskey;"
|
||||
|
@ -145,7 +148,7 @@
|
|||
</hbox>
|
||||
<separator/>
|
||||
<hbox align="start">
|
||||
<description flex="1">&masterPassword.intro;</description>
|
||||
<description control="setMasterPassword" flex="1">&masterPassword.intro;</description>
|
||||
<!-- XXXben - check for keychain access use -->
|
||||
<vbox>
|
||||
<button id="setMasterPassword"
|
||||
|
@ -166,7 +169,7 @@
|
|||
</hbox>
|
||||
</tabpanel>
|
||||
<tabpanel orient="vertical">
|
||||
<description>&downloadManager.intro;</description>
|
||||
<description control="viewDownloads" >&downloadManager.intro;</description>
|
||||
<separator class="thin"/>
|
||||
<hbox align="center">
|
||||
<label accesskey="&downloadsRetentionPolicy.accesskey;"
|
||||
|
@ -182,7 +185,8 @@
|
|||
</hbox>
|
||||
<separator flex="1"/>
|
||||
<hbox>
|
||||
<button label="&viewDownloads.label;" accesskey="&viewDownloads.accesskey;"
|
||||
<button id="viewDownloads" label="&viewDownloads.label;"
|
||||
accesskey="&viewDownloads.accesskey;"
|
||||
oncommand="gPrivacyPane.viewDownloads();"/>
|
||||
<spring flex="1"/>
|
||||
<button icon="clear" label="&clearDownloads.label;"
|
||||
|
@ -195,7 +199,7 @@
|
|||
created without user interaction, unlike Software Installation,
|
||||
Popup and Image whitelists -->
|
||||
<vbox>
|
||||
<description>&cookies.intro;</description>
|
||||
<description control="enableCookies">&cookies.intro;</description>
|
||||
<hbox>
|
||||
<checkbox id="enableCookies" preference="network.cookie.cookieBehavior"
|
||||
label="&enableCookies.label;" accesskey="&enableCookies.accesskey;"
|
||||
|
@ -245,12 +249,13 @@
|
|||
</hbox>
|
||||
</tabpanel>
|
||||
<tabpanel orient="vertical">
|
||||
<description>&cache.intro;</description>
|
||||
<hbox align="center">
|
||||
<description control="cacheSize">&cache.intro;</description>
|
||||
<hbox xhtml2:role="wairole:label" id="cacheSizeContainer" align="center">
|
||||
<label accesskey="&cacheUseUpTo.accesskey;" control="cacheSize">&cacheUseUpTo.label;</label>
|
||||
<textbox id="cacheSize" size="2" preference="browser.cache.disk.capacity"
|
||||
onsyncfrompreference="return gPrivacyPane.readCacheSizePref();"
|
||||
onsynctopreference="return gPrivacyPane.writeCacheSizePref();"/>
|
||||
onsynctopreference="return gPrivacyPane.writeCacheSizePref();"
|
||||
xhtml2:role="wairole:textfield" aaa:labelledby="cacheSizeContainer"/>
|
||||
<label>&cacheSize.label;</label>
|
||||
</hbox>
|
||||
<separator flex="1"/>
|
||||
|
@ -304,7 +309,7 @@
|
|||
</groupbox>
|
||||
<groupbox orient="vertical" flex="1">
|
||||
<caption label="&itemPasswords.label;"/>
|
||||
<description>&savedPasswords.intro;</description>
|
||||
<description control="savePasswords" >&savedPasswords.intro;</description>
|
||||
<hbox align="center">
|
||||
<checkbox id="savePasswords"
|
||||
label="&enablePasswords.label;" accesskey="&enablePasswords.accesskey;"
|
||||
|
@ -322,7 +327,7 @@
|
|||
</groupbox>
|
||||
<groupbox orient="vertical" flex="1">
|
||||
<caption label="&itemDownloads.label;"/>
|
||||
<description>&downloadManager.intro;</description>
|
||||
<description control="viewDownloads">&downloadManager.intro;</description>
|
||||
<label accesskey="&downloadsRetentionPolicy.accesskey;"
|
||||
control="downloadsRetentionPolicy">&downloadsRetentionPolicy.label;</label>
|
||||
<hbox>
|
||||
|
@ -337,7 +342,8 @@
|
|||
</hbox>
|
||||
<separator flex="1"/>
|
||||
<hbox>
|
||||
<button label="&viewDownloads.label;" accesskey="&viewDownloads.accesskey;"
|
||||
<button id="viewDownloads" label="&viewDownloads.label;"
|
||||
accesskey="&viewDownloads.accesskey;"
|
||||
oncommand="gPrivacyPane.viewDownloads();"/>
|
||||
<spring flex="1"/>
|
||||
<button label="&clearDownloads.label;" accesskey="&clearDownloads.accesskey;"
|
||||
|
@ -350,7 +356,7 @@
|
|||
Popup and Image whitelists -->
|
||||
<caption label="&itemCookies.label;"/>
|
||||
<vbox>
|
||||
<description>&cookies.intro;</description>
|
||||
<description control="enableCookies">&cookies.intro;</description>
|
||||
<hbox>
|
||||
<checkbox id="enableCookies" preference="network.cookie.cookieBehavior"
|
||||
label="&enableCookies.label;" accesskey="&enableCookies.accesskey;"
|
||||
|
@ -398,7 +404,7 @@
|
|||
</groupbox>
|
||||
<groupbox orient="vertical" flex="1">
|
||||
<caption label="&itemCache.label;"/>
|
||||
<description>&cache.intro;</description>
|
||||
<description id="cacheSize">&cache.intro;</description>
|
||||
<hbox align="center">
|
||||
<label accesskey="&cacheUseUpTo.accesskey;" control="cacheSize">&cacheUseUpTo.label;</label>
|
||||
<textbox id="cacheSize" size="2" preference="browser.cache.disk.capacity"
|
||||
|
@ -417,9 +423,10 @@
|
|||
#endif
|
||||
<separator class="thin"/>
|
||||
<hbox align="center">
|
||||
<button label="&sanitizeSettings.label;" accesskey="&sanitizeSettings.accesskey;"
|
||||
<button id="sanitizeSettings" label="&sanitizeSettings.label;"
|
||||
accesskey="&sanitizeSettings.accesskey;"
|
||||
oncommand="gPrivacyPane.showSanitizeSettings();"/>
|
||||
<description flex="1">&sanitize.intro;</description>
|
||||
<description flex="1" control="sanitizeSettings" >&sanitize.intro;</description>
|
||||
</hbox>
|
||||
<separator/>
|
||||
</prefpane>
|
||||
|
|
|
@ -68,10 +68,10 @@
|
|||
<preference id="privacy.sanitize.promptOnSanitize" name="privacy.sanitize.promptOnSanitize" type="bool"/>
|
||||
</preferences>
|
||||
|
||||
<groupbox orient="vertical" align="start">
|
||||
<groupbox id="sanitizeItems" orient="vertical" align="start">
|
||||
<caption label="&items.label;"/>
|
||||
|
||||
<label>&sanitizeItems.label;</label>
|
||||
<description control="sanitizeItems">&sanitizeItems.label;</description>
|
||||
<checkbox label="&itemHistory.label;" accesskey="&itemHistory.accesskey;" preference="privacy.item.history"/>
|
||||
<checkbox label="&itemFormData.label;" accesskey="&itemFormData.accesskey;" preference="privacy.item.formdata"/>
|
||||
<checkbox label="&itemPasswords.label;" accesskey="&itemPasswords.accesskey;" preference="privacy.item.passwords"
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
<tabpanels id="panel" flex="1">
|
||||
<!-- saved signons -->
|
||||
<vbox id="savedsignons" flex="1">
|
||||
<description>&spiel.signonsstored.label;</description>
|
||||
<description control="signonsTree">&spiel.signonsstored.label;</description>
|
||||
<separator class="thin"/>
|
||||
<tree id="signonsTree" flex="1" style="height: 20em;" hidecolumnpicker="true"
|
||||
onkeypress="HandleSignonKeyPress(event)"
|
||||
|
@ -96,7 +96,7 @@
|
|||
</vbox>
|
||||
<!-- rejected signon sites -->
|
||||
<vbox id="rejectedsites" flex="1">
|
||||
<description>&spiel.signonsnotstored.label;</description>
|
||||
<description control="rejectsTree">&spiel.signonsnotstored.label;</description>
|
||||
<separator class="thin"/>
|
||||
<tree id="rejectsTree" flex="1" style="height: 10em;" hidecolumnpicker="true"
|
||||
onkeypress="HandleRejectKeyPress(event)"
|
||||
|
|
|
@ -424,15 +424,15 @@
|
|||
<content xul:dlgbuttons="accept,cancel" xul:persist="lastSelected screenX screenY"
|
||||
xul:closebuttonlabel="&preferencesCloseButton.label;"
|
||||
xul:closebuttonaccesskey="&preferencesCloseButton.accesskey;"
|
||||
xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xhtml2:role="wairole:dialog"
|
||||
#ifdef XP_WIN
|
||||
xul:title="&preferencesDefaultTitleWin.title;">
|
||||
#else
|
||||
xul:title="&preferencesDefaultTitleMac.title;">
|
||||
#endif
|
||||
<xul:radiogroup anonid="selector" orient="horizontal" class="paneSelector chromeclass-toolbar"
|
||||
xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xmlns:waistate="http://www.w3.org/2005/07/aaa"
|
||||
xhtml2:role="wairole:list"/> <!-- Expose to accessibility APIs as a list -->
|
||||
<xul:hbox flex="1" class="paneDeckContainer">
|
||||
<xul:deck anonid="paneDeck" flex="1">
|
||||
|
@ -562,8 +562,6 @@
|
|||
radio.setAttribute("label", aPaneElement.label);
|
||||
// Expose preference group choice to accessibility APIs as an unchecked list item
|
||||
// The parent group is exposed to accessibility APIs as a list
|
||||
radio.setAttributeNS("http://www.w3.org/TR/xhtml2", "role", "wairole:listitem");
|
||||
radio.setAttributeNS("http://www.w3.org/2005/07/aaa", "checked", "false");
|
||||
if (aPaneElement.image)
|
||||
radio.setAttribute("src", aPaneElement.image);
|
||||
radio.style.listStyleImage = aPaneElement.style.listStyleImage;
|
||||
|
@ -1128,6 +1126,16 @@
|
|||
<xul:image class="paneButtonIcon" xbl:inherits="src"/>
|
||||
<xul:label class="paneButtonLabel" xbl:inherits="value=label"/>
|
||||
</content>
|
||||
<implementation implements="nsIAccessibleProvider">
|
||||
<property name="accessible">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
var accService = Components.classes["@mozilla.org/accessibilityService;1"].getService(Components.interfaces.nsIAccessibilityService);
|
||||
return accService.createXULListitemAccessible(this);
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
</bindings>
|
||||
|
|
|
@ -219,7 +219,7 @@ function setPasswordStrength()
|
|||
}
|
||||
|
||||
var mymeter=document.getElementById('pwmeter');
|
||||
mymeter.setAttribute("value",pwstrength);
|
||||
mymeter.value = pwstrength;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
<stringbundle id="bundlePreferences" src="chrome://mozapps/locale/preferences/preferences.properties"/>
|
||||
|
||||
<description>&masterPasswordDescription.label;</description>
|
||||
<description control="pw1">&masterPasswordDescription.label;</description>
|
||||
|
||||
<groupbox>
|
||||
<grid>
|
||||
|
@ -51,7 +51,7 @@
|
|||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="&setPassword.oldPassword.label;"/>
|
||||
<label control="oldpw" value="&setPassword.oldPassword.label;"/>
|
||||
<textbox id="oldpw" type="password"/>
|
||||
<!-- This textbox is inserted as a workaround to the fact that making the 'type'
|
||||
& 'disabled' property of the 'oldpw' textbox toggle between ['password' &
|
||||
|
@ -63,12 +63,12 @@
|
|||
<textbox id="message" disabled="true" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="&setPassword.newPassword.label;"/>
|
||||
<label control="pw1" value="&setPassword.newPassword.label;"/>
|
||||
<textbox id="pw1" type="password"
|
||||
oninput="setPasswordStrength(); checkPasswords();"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="&setPassword.reenterPassword.label;"/>
|
||||
<label control="pw2" value="&setPassword.reenterPassword.label;"/>
|
||||
<textbox id="pw2" type="password" oninput="checkPasswords();"/>
|
||||
</row>
|
||||
</rows>
|
||||
|
@ -80,6 +80,6 @@
|
|||
<progressmeter id="pwmeter" mode="determined" value="0"/>
|
||||
</groupbox>
|
||||
|
||||
<description class="header">&masterPasswordWarning.label;</description>
|
||||
<description control="pw2" class="header">&masterPasswordWarning.label;</description>
|
||||
|
||||
</dialog>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
</vbox>
|
||||
|
||||
<vbox align="center">
|
||||
<description>&calibrate.instructions;</description>
|
||||
<description control="horizSize">&calibrate.instructions;</description>
|
||||
<separator class="thin"/>
|
||||
<hbox align="center">
|
||||
<textbox id="horizSize" size="5"/>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<preference id="security.OCSP.URL" name="security.OCSP.URL" type="string"/>
|
||||
</preferences>
|
||||
|
||||
<description>&validation.ocsp.description;</description>
|
||||
<description control="securityOSCPEnabled">&validation.ocsp.description;</description>
|
||||
<radiogroup id="securityOCSPEnabled" preference="security.OCSP.enabled"
|
||||
onsyncfrompreference="return gOCSPDialog._updateUI();">
|
||||
<radio value="0" label="&disableOCSP.label;"/>
|
||||
|
|
|
@ -13,14 +13,19 @@
|
|||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
style="width: 35em;"
|
||||
ondialogaccept="gRemovePasswordDialog.removePassword();"
|
||||
onload="gRemovePasswordDialog.init()">
|
||||
onload="gRemovePasswordDialog.init()"
|
||||
xmlns:xhtml2="http://www.w3.org/TR/xhtml2"
|
||||
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
|
||||
xmlns:aaa="http://www.w3.org/2005/07/aaa">
|
||||
|
||||
<script type="application/x-javascript" src="chrome://mozapps/content/preferences/removemp.js"/>
|
||||
|
||||
<stringbundle id="bundlePreferences" src="chrome://mozapps/locale/preferences/preferences.properties"/>
|
||||
|
||||
<description>&removeWarning1.label;</description>
|
||||
<description class="header">&removeWarning2.label;</description>
|
||||
<vbox id="warnings">
|
||||
<description>&removeWarning1.label;</description>
|
||||
<description class="header">&removeWarning2.label;</description>
|
||||
</vbox>
|
||||
|
||||
<separator class="thin"/>
|
||||
|
||||
|
@ -28,8 +33,10 @@
|
|||
<caption label="&removeInfo.label;"/>
|
||||
|
||||
<hbox align="center">
|
||||
<label value="&setPassword.oldPassword.label;"/>
|
||||
<textbox id="password" type="password" oninput="gRemovePasswordDialog.validateInput();"/>
|
||||
<label control="password" value="&setPassword.oldPassword.label;"/>
|
||||
<textbox id="password" type="password"
|
||||
oninput="gRemovePasswordDialog.validateInput();"
|
||||
xhtml2:role="textfield" aaa:describedby="warnings"/>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
|
|
|
@ -58,21 +58,28 @@
|
|||
<preference id="app.update.mode" name="app.update.mode" type="int"/>
|
||||
</preferences>
|
||||
|
||||
<description>&update.intro;</description>
|
||||
<description control="autoInstallMode">&update.intro;</description>
|
||||
<radiogroup id="autoInstallMode" preference="app.update.mode">
|
||||
<hbox>
|
||||
<radio label="&ausMode0Name.label;" accesskey="&ausMode0Name.accesskey;"
|
||||
<radio id="ausMode0" label="&ausMode0Name.label;" accesskey="&ausMode0Name.accesskey;"
|
||||
value="0" flex="1"/>
|
||||
</hbox>
|
||||
<description class="updatePrefsInfo" id="ausMode0Info">&ausMode0Name.info;</description>
|
||||
<description control="ausMode0" class="updatePrefsInfo" id="ausMode0Info">
|
||||
&ausMode0Name.info;
|
||||
</description>
|
||||
<hbox>
|
||||
<radio label="&ausMode1Name.label;" accesskey="&ausMode1Name.accesskey;"
|
||||
<radio id="ausMode1" label="&ausMode1Name.label;" accesskey="&ausMode1Name.accesskey;"
|
||||
value="1" flex="1"/>
|
||||
</hbox>
|
||||
<description class="updatePrefsInfo" id="ausMode1Info">&ausMode1Name.info;</description>
|
||||
<radio label="&ausMode2Name.label;" accesskey="&ausMode2Name.accesskey;"
|
||||
<description control="ausMode1" class="updatePrefsInfo" id="ausMode1Info">
|
||||
&ausMode1Name.info;
|
||||
</description>
|
||||
<radio id="ausMode2" label="&ausMode2Name.label;" accesskey="&ausMode2Name.accesskey;"
|
||||
value="2"/>
|
||||
<description class="updatePrefsInfo" id="ausMode2Info">&ausMode2Name.info;</description>
|
||||
<description control="ausMode2" class="updatePrefsInfo"
|
||||
id="ausMode2Info">
|
||||
&ausMode2Name.info;
|
||||
</description>
|
||||
</radiogroup>
|
||||
<separator/>
|
||||
<separator/>
|
||||
|
|
Загрузка…
Ссылка в новой задаче