Commit 212af789 authored by Gavin Williams's avatar Gavin Williams Committed by Commit Bot

Remove ChromeVox navigation stops from labels on <select> elements

-Most select elements have an associated text label to explain the
 element's purpose. To be in line with the overall Settings page
 a11y strategy, the labels will be marked as aria-hidden so
 ChromeVox navigation will skip over the label and navigate directly
 to the select element.

-This CL is primarily adding aria-hidden to the labels and in a few
 places correcting/adding the select element aria-label.

Fixed: 1015899
Change-Id: Ibc0a18498bdcdbba7bc3f824a24831a13716f372
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1947194Reviewed-by: default avatarHector Carmona <hcarmona@chromium.org>
Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Commit-Queue: Gavin Williams <gavinwill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#723486}
parent 1ccf4c36
...@@ -5000,7 +5000,7 @@ ...@@ -5000,7 +5000,7 @@
Low-power charger Low-power charger
</message> </message>
<message name="IDS_SETTINGS_POWER_SOURCE_CALCULATING" desc="In Device Settings > Power, the power source description when the power status is being determined."> <message name="IDS_SETTINGS_POWER_SOURCE_CALCULATING" desc="In Device Settings > Power, the power source description when the power status is being determined.">
Checking... Checking power sources...
</message> </message>
<message name="IDS_SETTINGS_POWER_IDLE_LABEL" desc="In Device Settings > Power, label for behavior when device is idle."> <message name="IDS_SETTINGS_POWER_IDLE_LABEL" desc="In Device Settings > Power, label for behavior when device is idle.">
When idle When idle
......
...@@ -76,11 +76,12 @@ ...@@ -76,11 +76,12 @@
<h2>$i18n{textToSpeechPreviewHeading}</h2> <h2>$i18n{textToSpeechPreviewHeading}</h2>
<div class="settings-box first"> <div class="settings-box first">
<div class="start settings-box-text"> <div id="textToSpeechPreviewVoice" class="start settings-box-text"
aria-hidden="true">
$i18n{textToSpeechPreviewVoice} $i18n{textToSpeechPreviewVoice}
</div> </div>
<select id="previewVoice" class="md-select" <select id="previewVoice" class="md-select"
label="$i18n{textToSpeechPreviewVoice}" aria-labelledby="textToSpeechPreviewVoice"
value="{{defaultPreviewVoice}}" value="{{defaultPreviewVoice}}"
disabled="[[!hasVoices]]"> disabled="[[!hasVoices]]">
<template is="dom-repeat" id="previewVoiceOptions" <template is="dom-repeat" id="previewVoiceOptions"
......
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
role-description="$i18n{subpageArrowRoleDescription}"> role-description="$i18n{subpageArrowRoleDescription}">
</cr-link-row> </cr-link-row>
<div class="settings-box" hidden="[[!pageVisibility.pageZoom]]"> <div class="settings-box" hidden="[[!pageVisibility.pageZoom]]">
<div id="pageZoom" class="start settings-box-text"> <div id="pageZoom" class="start settings-box-text" aria-hidden="true">
$i18n{pageZoom} $i18n{pageZoom}
</div> </div>
<select id="zoomLevel" class="md-select" aria-labelledby="pageZoom" <select id="zoomLevel" class="md-select" aria-labelledby="pageZoom"
......
...@@ -69,12 +69,15 @@ ...@@ -69,12 +69,15 @@
value="{{creditCard.cardNumber}}" value="{{creditCard.cardNumber}}"
on-input="onCreditCardNameOrNumberChanged_"> on-input="onCreditCardNameOrNumberChanged_">
</cr-input> </cr-input>
<label id="creditCardExpiration" class="cr-form-field-label"> <!-- aria-hidden for creditCardExpiration label since
creditCardExpirationMonth and creditCardExpirationYear provide
sufficient labeling. -->
<label class="cr-form-field-label" aria-hidden="true">
$i18n{creditCardExpiration} $i18n{creditCardExpiration}
</label> </label>
<select class="md-select" id="month" value="[[expirationMonth_]]" <select class="md-select" id="month" value="[[expirationMonth_]]"
on-change="onMonthChange_" on-change="onMonthChange_"
aria-labelledby="creditCardExpiration"> aria-label="$i18n{creditCardExpirationMonth}">
<template is="dom-repeat" items="[[monthList_]]"> <template is="dom-repeat" items="[[monthList_]]">
<option>[[item]]</option> <option>[[item]]</option>
</template> </template>
......
...@@ -53,13 +53,12 @@ ...@@ -53,13 +53,12 @@
in the omnibox and a different one in the launcher. --> in the omnibox and a different one in the launcher. -->
<div class="settings-box first block"> <div class="settings-box first block">
<div id="search-wrapper"> <div id="search-wrapper">
<div id="searchExplanation" class="start settings-box-text"> <div id="searchExplanation" class="start settings-box-text"
aria-hidden="true">
$i18n{osSearchEngineLabel} $i18n{osSearchEngineLabel}
<iron-icon id="help-icon" icon="cr:help-outline" <iron-icon id="help-icon" icon="cr:help-outline"></iron-icon>
aria-label="$i18n{osSearchEngineTooltip}"
aria-describedby="tooltip"></iron-icon>
<paper-tooltip id="tooltip" for="help-icon" position="bottom" <paper-tooltip id="tooltip" for="help-icon" position="bottom"
aria-hidden="true" fit-to-visible-bounds> fit-to-visible-bounds>
$i18n{osSearchEngineTooltip} $i18n{osSearchEngineTooltip}
</paper-tooltip> </paper-tooltip>
</div> </div>
......
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
<template is="dom-if" restamp <template is="dom-if" restamp
if="[[showDisplaySelectMenu_(displays, selectedDisplay)]]"> if="[[showDisplaySelectMenu_(displays, selectedDisplay)]]">
<div class="settings-box indented"> <div class="settings-box indented">
<div id="displayScreenTitle" class="start"> <div id="displayScreenTitle" class="start" aria-hidden="true">
$i18n{displayScreenTitle} $i18n{displayScreenTitle}
</div> </div>
<select class="md-select" on-change="updatePrimaryDisplay_" <select class="md-select" on-change="updatePrimaryDisplay_"
...@@ -208,7 +208,8 @@ ...@@ -208,7 +208,8 @@
</div> </div>
<template is="dom-if" if="[[!unifiedDesktopMode_]]" restamp> <template is="dom-if" if="[[!unifiedDesktopMode_]]" restamp>
<div class="settings-box indented"> <div class="settings-box indented">
<div id="displayOrientation" class="start text-area"> <div id="displayOrientation" class="start text-area"
aria-hidden="true">
$i18n{displayOrientation} $i18n{displayOrientation}
</div> </div>
<template is="dom-if" if="[[isDevicePolicyEnabled_( <template is="dom-if" if="[[isDevicePolicyEnabled_(
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
<style include="settings-shared md-select"></style> <style include="settings-shared md-select"></style>
<div id="powerSourceRow" class="settings-box first two-line" <div id="powerSourceRow" class="settings-box first two-line"
hidden$="[[!batteryStatus_.present]]"> hidden$="[[!batteryStatus_.present]]">
<div class="start"> <div class="start" id="powerSourceLabelDiv">
<div>[[powerSourceLabel_]]</div> <div>[[powerSourceLabel_]]</div>
<div class="secondary">[[batteryStatus_.statusText]]</div> <div class="secondary">[[batteryStatus_.statusText]]</div>
</div> </div>
<select id="powerSource" class="md-select" <select id="powerSource" class="md-select"
hidden$="[[!showPowerSourceDropdown_]]" hidden$="[[!showPowerSourceDropdown_]]"
aria-label="$i18n{powerSourceLabel}" aria-labelledby="powerSourceLabelDiv"
on-change="onPowerSourceChange_"> on-change="onPowerSourceChange_">
<option value="" selected="[[isEqual_('', selectedPowerSourceId_)]]"> <option value="" selected="[[isEqual_('', selectedPowerSourceId_)]]">
$i18n{powerSourceBattery} $i18n{powerSourceBattery}
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</div> </div>
<div class$="settings-box [[getFirst_(batteryStatus_.present)]]"> <div class$="settings-box [[getFirst_(batteryStatus_.present)]]">
<div class="start">$i18n{powerIdleLabel}</div> <div class="start" aria-hidden="true">$i18n{powerIdleLabel}</div>
<template is="dom-if" if="[[idleControlled_]]" restamp> <template is="dom-if" if="[[idleControlled_]]" restamp>
<cr-policy-indicator id="idleControlledIndicator" <cr-policy-indicator id="idleControlledIndicator"
indicator-type="devicePolicy" indicator-type="devicePolicy"
......
...@@ -54,11 +54,12 @@ ...@@ -54,11 +54,12 @@
</settings-toggle-button> </settings-toggle-button>
<div class="settings-box" id="dsp-hotword-container" <div class="settings-box" id="dsp-hotword-container"
hidden="[[hotwordDspAvailable_]]"> hidden="[[hotwordDspAvailable_]]">
<div class="start text-area settings-box-text"> <div class="start text-area settings-box-text" aria-hidden="true">
<div class="label"> <div class="label" id="googleAssistantEnableHotword">
$i18n{googleAssistantEnableHotword} $i18n{googleAssistantEnableHotword}
</div> </div>
<div class="secondary label"> <div class="secondary label"
id="googleAssistantEnableHotwordDescription">
$i18n{googleAssistantEnableHotwordWithoutDspDescription} $i18n{googleAssistantEnableHotwordWithoutDspDescription}
</div> </div>
</div> </div>
...@@ -73,6 +74,7 @@ ...@@ -73,6 +74,7 @@
preference. --> preference. -->
<select id="dsp-hotword-state" class="md-select" <select id="dsp-hotword-state" class="md-select"
aria-labelledby="googleAssistantEnableHotword" aria-labelledby="googleAssistantEnableHotword"
aria-describedby="googleAssistantEnableHotwordDescription"
on-change="onDspHotwordStateChange_" on-change="onDspHotwordStateChange_"
disabled="[[hotwordEnforced_]]"> disabled="[[hotwordEnforced_]]">
<template is="dom-repeat" items="[[hotwordDropdownList_]]"> <template is="dom-repeat" items="[[hotwordDropdownList_]]">
......
...@@ -99,7 +99,8 @@ ...@@ -99,7 +99,8 @@
</div> </div>
<div class="settings-box two-line"> <div class="settings-box two-line">
<div class="start"> <div class="start">
<div id="printerProtocol" class="cr-form-field-label"> <div id="printerProtocol" class="cr-form-field-label"
aria-hidden="true">
$i18n{printerProtocol} $i18n{printerProtocol}
</div> </div>
<div class="secondary"> <div class="secondary">
......
...@@ -44,7 +44,8 @@ ...@@ -44,7 +44,8 @@
</div> </div>
<div class="settings-box two-line"> <div class="settings-box two-line">
<div class="start"> <div class="start">
<div id="printerProtocol" class="cr-form-field-label"> <div id="printerProtocol" class="cr-form-field-label"
aria-hidden="true">
$i18n{printerProtocol} $i18n{printerProtocol}
</div> </div>
<div class="secondary"> <div class="secondary">
......
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
<iron-icon icon="[[icon]]"> <iron-icon icon="[[icon]]">
</iron-icon> </iron-icon>
</div> </div>
<div class="middle" id="permissionHeader"> <div class="middle" id="permissionHeader" aria-hidden="true">
[[label]] [[label]]
<div class="secondary" <div class="secondary" id="permissionSecondary"
hidden$="[[!hasPermissionInfoString_(site.source, category, hidden$="[[!hasPermissionInfoString_(site.source, category,
site.setting)]]" site.setting)]]"
inner-h-t-m-l="[[permissionInfoString_( inner-h-t-m-l="[[permissionInfoString_(
...@@ -47,7 +47,8 @@ ...@@ -47,7 +47,8 @@
</div> </div>
</div> </div>
<select id="permission" class="md-select" <select id="permission" class="md-select"
aria-labelledby="permissionHeader" aria-label$="[[label]]"
aria-describedby="permissionSecondary"
on-change="onPermissionSelectionChange_" on-change="onPermissionSelectionChange_"
disabled$="[[!isPermissionUserControlled_(site.source, category, disabled$="[[!isPermissionUserControlled_(site.source, category,
site.setting)]]"> site.setting)]]">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment