Bug 1013904 - Text not selectable in in-content prefs. r=jaws.
authorAsaf Romano <mano@mozilla.com>
Fri, 30 May 2014 20:32:29 +0300
changeset 185859 67ad7ee35569f54afdc0ad874176ab35cb545bea
parent 185858 f6a04230ba78a123d072ed756375bb92ae26c1d8
child 185860 0521f4f30285d2b4bb4b3d010f52681ccd87e9e0
push id7069
push useraromano@mozilla.com
push dateFri, 30 May 2014 17:32:39 +0000
treeherderfx-team@67ad7ee35569 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjaws
bugs1013904
milestone32.0a1
Bug 1013904 - Text not selectable in in-content prefs. r=jaws.
browser/components/preferences/in-content/advanced.js
browser/components/preferences/in-content/advanced.xul
browser/components/preferences/in-content/applications.xul
browser/components/preferences/in-content/content.xul
browser/components/preferences/in-content/main.xul
browser/components/preferences/in-content/preferences.xul
browser/components/preferences/in-content/privacy.xul
browser/components/preferences/in-content/security.xul
browser/components/preferences/in-content/sync.js
browser/components/preferences/in-content/sync.xul
browser/themes/shared/incontentprefs/preferences.css
--- a/browser/components/preferences/in-content/advanced.js
+++ b/browser/components/preferences/in-content/advanced.js
@@ -297,17 +297,17 @@ var gAdvancedPane = {
       },
 
       QueryInterface: XPCOMUtils.generateQI([
         Components.interfaces.nsICacheStorageConsumptionObserver,
         Components.interfaces.nsISupportsWeakReference
       ])
     };
 
-    actualSizeLabel.value = prefStrBundle.getString("actualDiskCacheSizeCalculated");
+    actualSizeLabel.textContent = prefStrBundle.getString("actualDiskCacheSizeCalculated");
 
     var cacheService =
       Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
                 .getService(Components.interfaces.nsICacheStorageService);
     cacheService.asyncGetDiskConsumption(this.observer);
   },
 
   // Retrieves the amount of space currently used by offline cache
@@ -316,17 +316,17 @@ var gAdvancedPane = {
     var visitor = {
       visitDevice: function (deviceID, deviceInfo)
       {
         if (deviceID == "offline") {
           var actualSizeLabel = document.getElementById("actualAppCacheSize");
           var sizeStrings = DownloadUtils.convertByteUnits(deviceInfo.totalSize);
           var prefStrBundle = document.getElementById("bundlePreferences");
           var sizeStr = prefStrBundle.getFormattedString("actualAppCacheSize", sizeStrings);
-          actualSizeLabel.value = sizeStr;
+          actualSizeLabel.textContent = sizeStr;
         }
         // Do not enumerate entries
         return false;
       },
 
       visitEntry: function (deviceID, entryInfo)
       {
         // Do not enumerate entries.
--- a/browser/components/preferences/in-content/advanced.xul
+++ b/browser/components/preferences/in-content/advanced.xul
@@ -126,18 +126,17 @@
 #endif
   <stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences/preferences.properties"/>
 
 <hbox id="header-advanced"
       class="header"
       hidden="true"
       data-category="paneAdvanced">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneAdvanced.title;"/>
+  <label class="header-name">&paneAdvanced.title;</label>
 </hbox>
 
 <tabbox id="advancedPrefs"
         handleCtrlTab="false"
         handleCtrlPageUpDown="false"
         flex="1"
         data-category="paneAdvanced"
         hidden="true"
@@ -154,34 +153,34 @@
   </tabs>
 
   <tabpanels flex="1">
 
     <!-- General -->
     <tabpanel id="generalPanel" orient="vertical">
       <!-- Accessibility -->
       <groupbox id="accessibilityGroup" align="start">
-        <caption label="&accessibility.label;"/>
+        <caption><label>&accessibility.label;</label></caption>
 
         <checkbox id="useCursorNavigation"
                   label="&useCursorNavigation.label;"
                   accesskey="&useCursorNavigation.accesskey;"
                   preference="accessibility.browsewithcaret"/>
         <checkbox id="searchStartTyping"
                   label="&searchStartTyping.label;"
                   accesskey="&searchStartTyping.accesskey;"
                   preference="accessibility.typeaheadfind"/>
         <checkbox id="blockAutoRefresh"
                   label="&blockAutoRefresh.label;"
                   accesskey="&blockAutoRefresh.accesskey;"
                   preference="accessibility.blockautorefresh"/>
       </groupbox>
       <!-- Browsing -->
       <groupbox id="browsingGroup" align="start">
-        <caption label="&browsing.label;"/>
+        <caption><label>&browsing.label;</label></caption>
 
         <checkbox id="useAutoScroll"
                   label="&useAutoScroll.label;"
                   accesskey="&useAutoScroll.accesskey;"
                   preference="general.autoScroll"/>
         <checkbox id="useSmoothScrolling"
                   label="&useSmoothScrolling.label;"
                   accesskey="&useSmoothScrolling.accesskey;"
@@ -195,135 +194,132 @@
                   accesskey="&checkSpelling.accesskey;"
                   onsyncfrompreference="return gAdvancedPane.readCheckSpelling();"
                   onsynctopreference="return gAdvancedPane.writeCheckSpelling();"
                   preference="layout.spellcheckDefault"/>
       </groupbox>
 #ifdef HAVE_SHELL_SERVICE
       <!-- System Defaults -->
       <groupbox id="systemDefaultsGroup" orient="vertical">
-        <caption label="&systemDefaults.label;"/>
+        <caption><label>&systemDefaults.label;</label></caption>
 
         <checkbox id="alwaysCheckDefault" preference="browser.shell.checkDefaultBrowser"
                   label="&alwaysCheckDefault.label;" accesskey="&alwaysCheckDefault.accesskey;"
                   flex="1"/>
         <hbox class="indent">
           <deck id="setDefaultPane">
             <button id="setDefaultButton"
                     label="&setDefault.label;" accesskey="&setDefault.accesskey;"
                     oncommand="gAdvancedPane.setDefaultBrowser();"
                     preference="pref.general.disable_button.default_browser"/>
-            <label id="isDefaultLabel"
-                   value="&isDefault.label;"/>
+            <label id="isDefaultLabel">&isDefault.label;</label>
           </deck>
         </hbox>
       </groupbox>
 #endif
     </tabpanel>
 #ifdef MOZ_DATA_REPORTING
     <!-- Data Choices -->
     <tabpanel id="dataChoicesPanel" orient="vertical">
 #ifdef MOZ_TELEMETRY_REPORTING
       <groupbox>
-        <caption label="&telemetrySection.label;"/>
+        <caption><label>&telemetrySection.label;</label></caption>
         <description>&telemetryDesc.label;</description>
         <hbox>
           <checkbox id="submitTelemetryBox"
                     preference="toolkit.telemetry.enabled"
                     label="&enableTelemetry.label;"
                     accesskey="&enableTelemetry.accesskey;"/>
           <spacer flex="1"/>
           <label id="telemetryLearnMore"
-                 class="text-link"
-                 value="&telemetryLearnMore.label;"/>
+                 class="text-link">&telemetryLearnMore.label;</label>
         </hbox>
       </groupbox>
 #endif
 #ifdef MOZ_SERVICES_HEALTHREPORT
       <groupbox>
-        <caption label="&healthReportSection.label;"/>
+        <caption><label>&healthReportSection.label;</label></caption>
         <description>&healthReportDesc.label;</description>
         <hbox>
           <checkbox id="submitHealthReportBox"
                     oncommand="gAdvancedPane.updateSubmitHealthReport();"
                     label="&enableHealthReport.label;"
                     accesskey="&enableHealthReport.accesskey;"/>
           <spacer flex="1"/>
           <label id="FHRLearnMore"
-                 class="text-link"
-                 value="&healthReportLearnMore.label;"/>
+                 class="text-link">&healthReportLearnMore.label;</label>
         </hbox>
       </groupbox>
 #endif
 #ifdef MOZ_CRASHREPORTER
       <groupbox>
-        <caption label="&crashReporterSection.label;"/>
+        <caption><label>&crashReporterSection.label;</label></caption>
         <description>&crashReporterDesc.label;</description>
         <hbox>
           <checkbox id="submitCrashesBox"
                     oncommand="gAdvancedPane.updateSubmitCrashes();"
                     label="&enableCrashReporter.label;"
                     accesskey="&enableCrashReporter.accesskey;"/>
 
           <spacer flex="1"/>
           <label id="crashReporterLearnMore"
-                 class="text-link"
-                 value="&crashReporterLearnMore.label;"/>
+                 class="text-link">&crashReporterLearnMore.label;</label>
         </hbox>
       </groupbox>
 #endif
     </tabpanel>
 #endif
 
     <!-- Network -->
     <tabpanel id="networkPanel" orient="vertical">
 
       <!-- Connection -->
       <groupbox id="connectionGroup">
-        <caption label="&connection.label;"/>
+        <caption><label>&connection.label;</label></caption>
 
         <hbox align="center">
           <description flex="1" control="connectionSettings">&connectionDesc.label;</description>
           <button id="connectionSettings" icon="network" label="&connectionSettings.label;"
                   accesskey="&connectionSettings.accesskey;"
                   oncommand="gAdvancedPane.showConnections();"/>
         </hbox>
       </groupbox>
 
       <!-- Cache -->
       <groupbox id="cacheGroup">
-        <caption label="&httpCache.label;"/>
+        <caption><label>&httpCache.label;</label></caption>
 
         <hbox align="center">
           <label id="actualDiskCacheSize" flex="1"/>
           <button id="clearCacheButton" icon="clear"
                   label="&clearCacheNow.label;" accesskey="&clearCacheNow.accesskey;"
                   oncommand="gAdvancedPane.clearCache();"/>
         </hbox>
         <checkbox preference="browser.cache.disk.smart_size.enabled"
                   id="allowSmartSize" flex="1"
                   onsyncfrompreference="return gAdvancedPane.readSmartSizeEnabled();"
                   label="&overrideSmartCacheSize.label;"
                   accesskey="&overrideSmartCacheSize.accesskey;"/>
         <hbox align="center" class="indent">
           <label id="useCacheBefore" control="cacheSize"
-                accesskey="&limitCacheSizeBefore.accesskey;"
-                value="&limitCacheSizeBefore.label;"/>
+                 accesskey="&limitCacheSizeBefore.accesskey;">
+            &limitCacheSizeBefore.label;
+          </label>
           <textbox id="cacheSize" type="number" size="4" max="1024"
                   preference="browser.cache.disk.capacity"
                   onsyncfrompreference="return gAdvancedPane.readCacheSize();"
                   onsynctopreference="return gAdvancedPane.writeCacheSize();"
                   aria-labelledby="useCacheBefore cacheSize useCacheAfter"/>
           <label id="useCacheAfter" flex="1">&limitCacheSizeAfter.label;</label>
         </hbox>
       </groupbox>
 
       <!-- Offline apps -->
       <groupbox id="offlineGroup">
-        <caption label="&offlineStorage2.label;"/>
+        <caption><label>&offlineStorage2.label;</label></caption>
 
         <hbox align="center">
           <label id="actualAppCacheSize" flex="1"/>
           <button id="clearOfflineAppCacheButton" icon="clear"
                   label="&clearOfflineAppCacheNow.label;" accesskey="&clearOfflineAppCacheNow.accesskey;"
                   oncommand="gAdvancedPane.clearOfflineAppCache();"/>
         </hbox>
         <hbox align="center">
@@ -356,28 +352,28 @@
         </hbox>
       </groupbox>
     </tabpanel>
 
     <!-- Update -->
     <tabpanel id="updatePanel" orient="vertical">
 #ifdef MOZ_UPDATER
       <groupbox id="updateApp">
-        <caption label="&updateApp.label;"/>
+        <caption><label>&updateApp.label;</label></caption>
         <radiogroup id="updateRadioGroup"
                     oncommand="gAdvancedPane.updateWritePrefs();">
 #ifdef XP_WIN
 #ifdef MOZ_METRO
               <radio id="autoMetro"
                      value="autoMetro"
                      label="&updateAutoMetro.label;"
                      accesskey="&updateAutoMetro.accesskey;"/>
               <hbox id="autoMetroIndent"
                     class="indent">
-                <label value="&updateAutoMetroWarn.label;"/>
+                <label>&updateAutoMetroWarn.label;</label>
               </hbox>
 #endif
 #endif
           <radio id="autoDesktop"
                  value="auto"
                  label="&updateAuto1.label;"
                  accesskey="&updateAuto1.accesskey;"/>
           <hbox class="indent">
@@ -408,17 +404,17 @@
         <checkbox id="useService"
                   label="&useService.label;"
                   accesskey="&useService.accesskey;"
                   preference="app.update.service.enabled"/>
 #endif
       </groupbox>
 #endif
       <groupbox id="updateOthers">
-        <caption label="&updateOthers.label;"/>
+        <caption><label>&updateOthers.label;</label></caption>
         <checkbox id="enableSearchUpdate"
                   label="&enableSearchUpdate.label;"
                   accesskey="&enableSearchUpdate.accesskey;"
                   preference="browser.search.update"/>
       </groupbox>
     </tabpanel>
 
     <!-- Certificates -->
--- a/browser/components/preferences/in-content/applications.xul
+++ b/browser/components/preferences/in-content/applications.xul
@@ -57,18 +57,17 @@
   <key key="&focusSearch2.key;" modifiers="accel" oncommand="gApplicationsPane.focusFilterBox();"/>
 </keyset>
 
 <hbox id="header-application"
       class="header"
       hidden="true"
       data-category="paneApplications">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneApplications.title;"/>
+  <label class="header-name">&paneApplications.title;</label>
 </hbox>
 
 <vbox id="applicationsContent"
       data-category="paneApplications"
       hidden="true"
       flex="1">
   <hbox>
     <textbox id="filter" flex="1"
--- a/browser/components/preferences/in-content/content.xul
+++ b/browser/components/preferences/in-content/content.xul
@@ -28,22 +28,21 @@
 <script type="application/javascript" 
         src="chrome://browser/content/preferences/in-content/content.js"/>
 
 <hbox id="header-content"
       class="header"
       hidden="true"
       data-category="paneContent">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneContent.title;"/>
+  <label class="header-name">&paneContent.title;</label>
 </hbox>
 
 <groupbox id="miscGroup" data-category="paneContent" hidden="true">
-  <caption label="&popups.label;"/>
+  <caption><label>&popups.label;</label></caption>
 
   <grid id="contentGrid">
     <columns>
       <column flex="1"/>
       <column/>
     </columns>
     <rows id="contentRows-1">
       <row id="popupPolicyRow">
@@ -58,17 +57,17 @@
                 accesskey="&popupExceptions.accesskey;"/>
       </row>
     </rows>
   </grid>
 </groupbox>
 
 <!-- Fonts and Colors -->
 <groupbox id="fontsGroup" data-category="paneContent" hidden="true">
-  <caption label="&fontsAndColors.label;"/>
+  <caption><label>&fontsAndColors.label;</label></caption>
 
   <grid id="fontsGrid">
     <columns>
       <column flex="1"/>
       <column/>
     </columns>
     <rows id="fontsRows">
       <row id="fontRow">
@@ -119,17 +118,17 @@
                 oncommand="gContentPane.configureColors();"/>
       </row>
     </rows>
   </grid>
 </groupbox>
 
 <!-- Languages -->
 <groupbox id="languagesGroup" data-category="paneContent" hidden="true">
-  <caption label="&languages.label;"/>
+  <caption><label>&languages.label;</label></caption>
 
   <hbox id="languagesBox" align="center">
     <description flex="1" control="chooseLanguage">&chooseLanguage.label;</description>
     <button id="chooseLanguage"
             label="&chooseButton.label;"
             accesskey="&chooseButton.accesskey;"
             oncommand="gContentPane.showLanguages();"/>
   </hbox>
--- a/browser/components/preferences/in-content/main.xul
+++ b/browser/components/preferences/in-content/main.xul
@@ -86,28 +86,26 @@
                 type="bool"/>
 #endif
 </preferences>
 
 <hbox id="header-general"
       class="header"
       data-category="paneGeneral">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneGeneral.title;"/>
+  <label class="header-name">&paneGeneral.title;</label>
 </hbox>
 
 <!-- Startup -->
 <groupbox id="startupGroup" data-category="paneGeneral">
-  <caption label="&startup.label;"/>
+  <caption><label>&startup.label;</label></caption>
 
   <hbox align="center">
-    <label value="&startupPage.label;"
-           accesskey="&startupPage.accesskey;"
-           control="browserStartupPage"/>
+    <label accesskey="&startupPage.accesskey;"
+           control="browserStartupPage">&startupPage.label;</label>
     <menulist id="browserStartupPage"
               preference="browser.startup.page">
       <menupopup>
       <menuitem label="&startupHomePage.label;"
                 value="1"
                 id="browserStartupHomePage"/>
       <menuitem label="&startupBlankPage.label;"
                 value="0"
@@ -115,19 +113,18 @@
       <menuitem label="&startupLastSession.label;"
                 value="3"
                 id="browserStartupLastSession"/>
       </menupopup>
     </menulist>
   </hbox>
   <separator class="thin"/>
   <hbox align="center">
-    <label value="&homepage.label;"
-           accesskey="&homepage.accesskey;"
-           control="browserHomePage"/>
+    <label accesskey="&homepage.accesskey;"
+           control="browserHomePage">&homepage.label;</label>
     <textbox id="browserHomePage"
              class="padded uri-element"
              flex="1"
              type="autocomplete"
              autocompletesearch="history"
              onsyncfrompreference="return gMainPane.syncFromHomePref();"
              onsynctopreference="return gMainPane.syncToHomePref(this.value);"
              placeholder="&abouthome.pageTitle;"
@@ -151,17 +148,17 @@
             oncommand="gMainPane.restoreDefaultHomePage();"
             id="restoreDefaultHomePage"
             preference="pref.browser.homepage.disable_button.restore_default"/>
   </hbox>
 </groupbox>
 
 <!-- Downloads -->
 <groupbox id="downloadsGroup" data-category="paneGeneral">
-  <caption label="&downloads.label;"/>
+  <caption><label>&downloads.label;</label></caption>
 
   <radiogroup id="saveWhere"
               preference="browser.download.useDownloadDir"
               onsyncfrompreference="return gMainPane.readUseDownloadDir();">
     <hbox id="saveToRow">
       <radio id="saveTo"
              value="true"
              label="&saveTo.label;"
@@ -190,17 +187,17 @@
            value="false"
            label="&alwaysAsk.label;"
            accesskey="&alwaysAsk.accesskey;"/>
   </radiogroup>
 </groupbox>
 
 <!-- Tab preferences -->
 <groupbox data-category="paneGeneral">
-    <caption label="&tabsGroup.label;"/>
+    <caption><label>&tabsGroup.label;</label></caption>
     <checkbox id="linkTargeting" label="&newWindowsAsTabs.label;"
               accesskey="&newWindowsAsTabs.accesskey;"
               preference="browser.link.open_newwindow"
               onsyncfrompreference="return gMainPane.readLinkTarget();"
               onsynctopreference="return gMainPane.writeLinkTarget();"/>
 
     <checkbox id="warnCloseMultiple" label="&warnCloseMultipleTabs.label;"
               accesskey="&warnCloseMultipleTabs.accesskey;"
--- a/browser/components/preferences/in-content/preferences.xul
+++ b/browser/components/preferences/in-content/preferences.xul
@@ -83,79 +83,79 @@
     <richlistbox id="categories">
       <richlistitem id="category-general"
                     class="category"
                     value="paneGeneral"
                     helpTopic="prefs-main"
                     tooltiptext="&paneGeneral.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneGeneral.title;"/>
+        <label class="category-name" flex="1">&paneGeneral.title;</label>
       </richlistitem>
 
       <richlistitem id="category-content"
                     class="category"
                     value="paneContent"
                     helpTopic="prefs-content"
                     tooltiptext="&paneContent.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneContent.title;"/>
+        <label class="category-name" flex="1">&paneContent.title;</label>
       </richlistitem>
 
       <richlistitem id="category-application"
                     class="category"
                     value="paneApplications"
                     helpTopic="prefs-applications"
                     tooltiptext="&paneApplications.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneApplications.title;"/>
+        <label class="category-name" flex="1">&paneApplications.title;</label>
       </richlistitem>
 
       <richlistitem id="category-privacy"
                     class="category"
                     value="panePrivacy"
                     helpTopic="prefs-privacy"
                     tooltiptext="&panePrivacy.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&panePrivacy.title;"/>
+        <label class="category-name" flex="1">&panePrivacy.title;</label>
       </richlistitem>
 
       <richlistitem id="category-security"
                     class="category"
                     value="paneSecurity"
                     helpTopic="prefs-security"
                     tooltiptext="&paneSecurity.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneSecurity.title;"/>
+        <label class="category-name" flex="1">&paneSecurity.title;</label>
       </richlistitem>
 
 #ifdef MOZ_SERVICES_SYNC
       <richlistitem id="category-sync"
                     class="category"
                     value="paneSync"
                     helpTopic="prefs-weave"
                     tooltiptext="&paneSync.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneSync.title;"/>
+        <label class="category-name" flex="1">&paneSync.title;</label>
       </richlistitem>
 #endif
 
       <richlistitem id="category-advanced"
                     class="category"
                     value="paneAdvanced"
                     helpTopic="prefs-advanced-general"
                     tooltiptext="&paneAdvanced.title;"
                     align="center">
         <image class="category-icon"/>
-        <label class="category-name" flex="1" value="&paneAdvanced.title;"/>
+        <label class="category-name" flex="1">&paneAdvanced.title;</label>
       </richlistitem>
     </richlistbox>
 
     <vbox class="main-content" flex="1">
       <prefpane id="mainPrefPane">
 #include main.xul
 #include privacy.xul
 #include advanced.xul
--- a/browser/components/preferences/in-content/privacy.xul
+++ b/browser/components/preferences/in-content/privacy.xul
@@ -67,42 +67,42 @@
 
 </preferences>
 
 <hbox id="header-privacy"
       class="header"
       hidden="true"
       data-category="panePrivacy">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&panePrivacy.title;"/>
+  <label class="header-name">&panePrivacy.title;</label>
 </hbox>
 
 <!-- Tracking -->
 <groupbox id="trackingGroup" data-category="panePrivacy" hidden="true" align="start">
-  <caption label="&tracking.label;"/>
+  <caption><label>&tracking.label;</label></caption>
   <radiogroup id="doNotTrackSelection" orient="vertical"
               preference="privacy.donottrackheader.value"
               onsynctopreference="return gPrivacyPane.setTrackingPrefs()"
               onsyncfrompreference="return gPrivacyPane.getTrackingPrefs()">
     <radio id="dntnotrack" value="1" label="&dntTrackingNotOkay.label2;"
             accesskey="&dntTrackingNotOkay.accesskey;" />
     <radio id="dntdotrack" value="0" label="&dntTrackingOkay.label2;"
             accesskey="&dntTrackingOkay.accesskey;" />
     <radio id="dntnopref" value="-1" label="&dntTrackingNopref.label2;"
             accesskey="&dntTrackingNopref.accesskey;" />
   </radiogroup>
   <label class="text-link" id="doNotTrackInfo"
-         href="https://www.mozilla.org/dnt"
-         value="&doNotTrackInfo.label;"/>
+         href="https://www.mozilla.org/dnt">
+    &doNotTrackInfo.label;
+  </label>
 </groupbox>
 
 <!-- History -->
 <groupbox id="historyGroup" data-category="panePrivacy" hidden="true">
-  <caption label="&history.label;"/>
+  <caption><label>&history.label;</label></caption>
   <hbox align="center">
     <label id="historyModeLabel"
            control="historyMode"
            accesskey="&historyHeader.pre.accesskey;">&historyHeader.pre.label;
     </label>
     <menulist id="historyMode"
               oncommand="gPrivacyPane.updateHistoryModePane();
                         gPrivacyPane.updateHistoryModePrefs();
@@ -225,17 +225,17 @@
         </vbox>
       </vbox>
     </vbox>
   </deck>
 </groupbox>
 
 <!-- Location Bar -->
 <groupbox id="locationBarGroup" data-category="panePrivacy" hidden="true">
-  <caption label="&locationBar.label;"/>
+  <caption><label>&locationBar.label;</label></caption>
   <hbox align="center">
     <label id="locationBarSuggestionLabel"
            control="locationBarSuggestion"
            accesskey="&locbar.pre.accessKey;">&locbar.pre.label;</label>
     <menulist id="locationBarSuggestion"
               preference="browser.urlbar.autocomplete.enabled"
               onsyncfrompreference="return gPrivacyPane.readSuggestionPref();"
               onsynctopreference="return gPrivacyPane.writeSuggestionPref();">
--- a/browser/components/preferences/in-content/security.xul
+++ b/browser/components/preferences/in-content/security.xul
@@ -32,23 +32,22 @@
 
 </preferences>
 
 <hbox id="header-security"
       class="header"
       hidden="true"
       data-category="paneSecurity">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneSecurity.title;"/>
+  <label class="header-name">&paneSecurity.title;</label>
 </hbox>
 
 <!-- addons, forgery (phishing) UI -->
 <groupbox id="addonsPhishingGroup" data-category="paneSecurity" hidden="true">
-  <caption label="&general.label;"/>
+  <caption><label>&general.label;</label></caption>
 
   <hbox id="addonInstallBox">
     <checkbox id="warnAddonInstall" flex="1"
               label="&warnAddonInstall.label;"
               accesskey="&warnAddonInstall.accesskey;"
               preference="xpinstall.whitelist.required"
               onsyncfrompreference="return gSecurityPane.readWarnAddonInstall();"/>
     <button id="addonExceptions"
@@ -65,17 +64,17 @@
   <checkbox id="blockWebForgeries"
             label="&blockWebForgeries.label;"
             accesskey="&blockWebForgeries.accesskey;"
             preference="browser.safebrowsing.enabled" />
 </groupbox>
 
 <!-- Passwords -->
 <groupbox id="passwordsGroup" orient="vertical" data-category="paneSecurity" hidden="true">
-  <caption label="&passwords.label;"/>
+  <caption><label>&passwords.label;</label></caption>
 
   <hbox id="savePasswordsBox">
     <checkbox id="savePasswords" flex="1"
               label="&rememberPasswords.label;" accesskey="&rememberPasswords.accesskey;"
               preference="signon.rememberSignons"
               onsyncfrompreference="return gSecurityPane.readSavePasswords();"/>
     <button id="passwordExceptions"
             label="&passwordExceptions.label;"
--- a/browser/components/preferences/in-content/sync.js
+++ b/browser/components/preferences/in-content/sync.js
@@ -39,17 +39,17 @@ let gSyncPane = {
 
   get _usingCustomServer() {
     return Weave.Svc.Prefs.isSet("serverURL");
   },
 
   needsUpdate: function () {
     this.page = PAGE_NEEDS_UPDATE;
     let label = document.getElementById("loginError");
-    label.value = Weave.Utils.getErrorString(Weave.Status.login);
+    label.textContent = Weave.Utils.getErrorString(Weave.Status.login);
     label.className = "error";
   },
 
   init: function () {
     // If the Service hasn't finished initializing, wait for it.
     let xps = Components.classes["@mozilla.org/weave/service;1"]
                                 .getService(Components.interfaces.nsISupports)
                                 .wrappedJSObject;
@@ -175,17 +175,17 @@ let gSyncPane = {
       this.page = PAGE_NO_ACCOUNT;
     // else: sync was previously configured for the legacy provider, so we
     // make the "old" panels available.
     } else if (Weave.Status.login == Weave.LOGIN_FAILED_INVALID_PASSPHRASE ||
                Weave.Status.login == Weave.LOGIN_FAILED_LOGIN_REJECTED) {
       this.needsUpdate();
     } else {
       this.page = PAGE_HAS_ACCOUNT;
-      document.getElementById("accountName").value = Weave.Service.identity.account;
+      document.getElementById("accountName").textContent = Weave.Service.identity.account;
       document.getElementById("syncComputerName").value = Weave.Service.clientsEngine.localName;
       document.getElementById("tosPP").hidden = this._usingCustomServer;
     }
   },
 
   startOver: function (showDialog) {
     if (showDialog) {
       let flags = Services.prompt.BUTTON_POS_0 * Services.prompt.BUTTON_TITLE_IS_STRING +
--- a/browser/components/preferences/in-content/sync.xul
+++ b/browser/components/preferences/in-content/sync.xul
@@ -30,46 +30,47 @@
 <script type="application/javascript"
         src="chrome://browser/content/sync/utils.js"/>
 
 <hbox id="header-sync"
       class="header"
       hidden="true"
       data-category="paneSync">
   <image class="header-icon"/>
-  <label class="header-name"
-         value="&paneSync.title;"/>
+  <label class="header-name">&paneSync.title;</label>
 </hbox>
 
 <deck id="weavePrefsDeck" data-category="paneSync" hidden="true">
   <!-- These panels are for the "legacy" sync provider -->
   <vbox id="noAccount" align="center">
     <spacer flex="1"/>
     <description id="syncDesc">
       &weaveDesc.label;
     </description>
     <separator/>
     <label class="text-link"
-           onclick="event.stopPropagation(); gSyncPane.openSetup(null);"
-           value="&setupButton.label;"/>
+           onclick="event.stopPropagation(); gSyncPane.openSetup(null);">
+      &setupButton.label;
+    </label>
     <vbox id="pairDevice">
       <separator/>
       <label class="text-link"
-             onclick="event.stopPropagation(); gSyncPane.openSetup('pair');"
-             value="&pairDevice.label;"/>
+             onclick="event.stopPropagation(); gSyncPane.openSetup('pair');">
+        &pairDevice.label;
+      </label>
     </vbox>
     <spacer flex="3"/>
   </vbox>
 
   <vbox id="hasAccount">
     <groupbox class="syncGroupBox">
       <!-- label is set to account name -->
       <caption id="accountCaption" align="center">
         <image id="accountCaptionImage"/>
-        <label id="accountName" value=""/>
+        <label id="accountName"/>
       </caption>
 
       <hbox>
         <button type="menu"
                 label="&manageAccount.label;"
                 accesskey="&manageAccount.accesskey;">
           <menupopup>
             <menuitem label="&viewQuota.label;"
@@ -84,22 +85,23 @@
                       oncommand="gSyncPane.resetSync();"/>
           </menupopup>
         </button>
       </hbox>
 
       <hbox>
         <label id="syncAddDeviceLabel"
                class="text-link"
-               onclick="gSyncPane.openAddDevice(); return false;"
-               value="&pairDevice.label;"/>
+               onclick="gSyncPane.openAddDevice(); return false;">
+          &pairDevice.label;
+        </label>
       </hbox>
 
       <vbox>
-        <label value="&syncMy.label;" />
+        <label>&syncMy.label;</label>
         <richlistbox id="syncEnginesList"
                      orient="vertical"
                      onselect="if (this.selectedCount) this.clearSelection();">
           <richlistitem>
             <checkbox label="&engine.addons.label;"
                       accesskey="&engine.addons.accesskey;"
                       preference="engine.addons"/>
           </richlistitem>
@@ -135,89 +137,100 @@
     <groupbox class="syncGroupBox">
       <grid>
         <columns>
           <column/>
           <column flex="1"/>
         </columns>
         <rows>
           <row align="center">
-            <label value="&syncDeviceName.label;"
-                   accesskey="&syncDeviceName.accesskey;"
-                   control="syncComputerName"/>
+            <label accesskey="&syncDeviceName.accesskey;"
+                   control="syncComputerName">
+              &syncDeviceName.label;
+            </label>
             <textbox id="syncComputerName"
                      onchange="gSyncUtils.changeName(this)"/>
           </row>
         </rows>
       </grid>
       <hbox>
         <label class="text-link"
-               onclick="gSyncPane.startOver(true); return false;"
-               value="&unlinkDevice.label;"/>
+               onclick="gSyncPane.startOver(true); return false;">
+          &unlinkDevice.label;
+        </label>
       </hbox>
     </groupbox>
     <hbox id="tosPP" pack="center">
       <label class="text-link"
-             onclick="event.stopPropagation();gSyncUtils.openToS();"
-             value="&prefs.tosLink.label;"/>
+             onclick="event.stopPropagation();gSyncUtils.openToS();">
+        &prefs.tosLink.label;
+      </label>
       <label class="text-link"
-             onclick="event.stopPropagation();gSyncUtils.openPrivacyPolicy();"
-             value="&prefs.ppLink.label;"/>
+             onclick="event.stopPropagation();gSyncUtils.openPrivacyPolicy();">
+        &prefs.ppLink.label;
+      </label>
     </hbox>
   </vbox>
 
   <vbox id="needsUpdate" align="center" pack="center">
     <hbox>
-      <label id="loginError" value=""/>
+      <label id="loginError"/>
       <label class="text-link"
-             onclick="gSyncPane.updatePass(); return false;"
-             value="&updatePass.label;"/>
+             onclick="gSyncPane.updatePass(); return false;">
+        &updatePass.label;
+      </label>
       <label class="text-link"
-             onclick="gSyncPane.resetPass(); return false;"
-             value="&resetPass.label;"/>
+             onclick="gSyncPane.resetPass(); return false;">
+        &resetPass.label;
+      </label>
     </hbox>
     <label class="text-link"
-           onclick="gSyncPane.startOver(true); return false;"
-           value="&unlinkDevice.label;"/>
+           onclick="gSyncPane.startOver(true); return false;">
+      &unlinkDevice.label;
+    </label>
   </vbox>
 
   <!-- These panels are for the Firefox Accounts identity provider -->
   <vbox id="fxaDeterminingStatus" align="center">
     <spacer flex="1"/>
-    <label value="&determiningAcctStatus.label;"/>
+    <label>&determiningAcctStatus.label;</label>
     <spacer flex="1"/>
   </vbox>
 
   <vbox id="noFxaAccount">
     <label>&welcome.description;</label>
     <label class="text-link"
-            onclick="gSyncPane.signUp(); return false;"
-            value="&welcome.createAccount.label;"/>
+           onclick="gSyncPane.signUp(); return false;">
+      &welcome.createAccount.label;
+    </label>
     <label class="text-link"
-            onclick="gSyncPane.signIn(); return false;"
-            value="&welcome.signIn.label;"/>
+           onclick="gSyncPane.signIn(); return false;">
+      &welcome.signIn.label;
+    </label>
     <separator/>
     <label class="text-link"
-            onclick="gSyncPane.openOldSyncSupportPage(); return false;"
-            value="&welcome.useOldSync.label;"/>
+           onclick="gSyncPane.openOldSyncSupportPage(); return false;">
+      &welcome.useOldSync.label;
+    </label>
   </vbox>
 
   <vbox id="hasFxaAccount">
     <groupbox id="fxaGroup">
-      <caption label="&syncBrand.fxAccount.label;"/>
+      <caption><label>&syncBrand.fxAccount.label;</label></caption>
 
       <deck id="fxaLoginStatus">
 
         <!-- logged in and verified and all is good -->
         <hbox>
           <label id="fxaEmailAddress1"/>
           <vbox>
             <label class="text-link"
-                    onclick="gSyncPane.manageFirefoxAccount();"
-                    value="&manage.label;"/>
+                   onclick="gSyncPane.manageFirefoxAccount();">
+              &manage.label;
+            </label>
           </vbox>
           <spacer flex="1"/>
           <vbox>
             <button id="fxaUnlinkButton"
                     oncommand="gSyncPane.unlinkFirefoxAccount(true);"
                     label="&disconnect.label;"/>
           </vbox>
         </hbox>
@@ -229,42 +242,44 @@
             <label id="fxaEmailAddress2"/>
             &signedInUnverified.aftername.label;
           </description>
           <spacer flex="1"/>
           <vbox align="end">
             <button oncommand="gSyncPane.verifyFirefoxAccount();"
                     label="&verify.label;"/>
             <label class="text-link"
-                    onclick="/* no warning as account can't have previously synced */ gSyncPane.unlinkFirefoxAccount(false);"
-                    value="&forget.label;"/>
+                   onclick="/* no warning as account can't have previously synced */ gSyncPane.unlinkFirefoxAccount(false);">
+              &forget.label;
+            </label>
           </vbox>
         </hbox>
 
         <!-- logged in locally but server rejected credentials -->
         <hbox flex="1">
           <description>
             &signedInLoginFailure.beforename.label;
             <label id="fxaEmailAddress3"/>
             &signedInLoginFailure.aftername.label;
           </description>
           <spacer flex="1"/>
           <vbox align="end">
             <button oncommand="gSyncPane.reSignIn();"
                     label="&signIn.label;"/>
             <label class="text-link"
-                    onclick="gSyncPane.unlinkFirefoxAccount(true);"
-                    value="&forget.label;"/>
+                    onclick="gSyncPane.unlinkFirefoxAccount(true);">
+              &forget.label;
+            </label>
           </vbox>
         </hbox>
       </deck>
     </groupbox>
 
     <groupbox id="syncOptions">
-      <caption label="&syncBrand.shortName.label;"/>
+      <caption><label>&syncBrand.shortName.label;</label></caption>
       <hbox id="fxaSyncEngines">
         <vbox>
           <checkbox label="&engine.tabs.label;"
                     accesskey="&engine.tabs.accesskey;"
                     preference="engine.tabs"/>
           <checkbox label="&engine.bookmarks.label;"
                     accesskey="&engine.bookmarks.accesskey;"
                     preference="engine.bookmarks"/>
@@ -291,26 +306,29 @@
           <checkbox label="&engine.prefs.label;"
                     accesskey="&engine.prefs.accesskey;"
                     preference="engine.prefs"/>
         </vbox>
         <spacer/>
       </hbox>
     </groupbox>
     <hbox align="center">
-      <label value="&syncDeviceName.label;"
-              accesskey="&syncDeviceName.accesskey;"
-              control="syncComputerName"/>
+      <label accesskey="&syncDeviceName.accesskey;"
+             control="syncComputerName">
+        &syncDeviceName.label;
+      </label>
       <textbox id="fxaSyncComputerName"
                 flex="1"
                 onchange="gSyncUtils.changeName(this)"/>
     </hbox>
     <spacer flex="1"/>
     <hbox id="tosPP" pack="center">
       <label class="text-link small"
-              onclick="event.stopPropagation();gSyncUtils.openToS();"
-              value="&prefs.tosLink.label;"/>
+             onclick="event.stopPropagation();gSyncUtils.openToS();">
+        &prefs.tosLink.label;
+      </label>
       <label class="text-link small"
-              onclick="event.stopPropagation();gSyncUtils.openPrivacyPolicy();"
-              value="&fxaPrivacyNotice.link.label;"/>
+              onclick="event.stopPropagation();gSyncUtils.openPrivacyPolicy();">
+        &fxaPrivacyNotice.link.label;
+      </label>
     </hbox>
   </vbox>
 </deck>
--- a/browser/themes/shared/incontentprefs/preferences.css
+++ b/browser/themes/shared/incontentprefs/preferences.css
@@ -10,22 +10,26 @@
   src: url("chrome://browser/content/fonts/ClearSans-Regular.woff") format('woff');
 }
 
 page {
   -moz-appearance: none;
   background-image: linear-gradient(#FFFFFF, #EDEDED 100px);
 }
 
+* {
+  -moz-user-select: text;
+}
+
 caption {
   -moz-appearance: none;
   margin: 0;
 }
 
-.caption-text {
+caption > label {
   font-size: 1.3rem;
   font-weight: bold;
   line-height: 22px;
   margin: 0 !important;
 }
 
 .main-content {
   padding: 40px 48px 48px;