mirror of
https://github.com/Microsoft/vscode
synced 2024-10-05 19:02:54 +00:00
Merge pull request #209270 from microsoft/merogge/qp-bug
fix accessibility signal qp bug
This commit is contained in:
commit
e4f949b7d5
|
@ -59,14 +59,12 @@ export class ShowSignalSoundHelp extends Action2 {
|
|||
configurationService.updateValue(signal.settingsKey, { sound });
|
||||
}
|
||||
}
|
||||
|
||||
for (const signal of disabledSounds) {
|
||||
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(signal.settingsKey);
|
||||
sound = userGestureSignals.includes(signal) ? 'never' : 'off';
|
||||
if (announcement) {
|
||||
configurationService.updateValue(signal.settingsKey, { sound, announcement });
|
||||
} else {
|
||||
configurationService.updateValue(signal.settingsKey, { sound });
|
||||
}
|
||||
const announcement = configurationService.getValue(signal.settingsKey + '.announcement');
|
||||
const sound = getDisabledSettingValue(userGestureSignals.includes(signal), accessibilityService.isScreenReaderOptimized());
|
||||
const value = announcement ? { sound, announcement } : { sound };
|
||||
configurationService.updateValue(signal.settingsKey, value);
|
||||
}
|
||||
qp.hide();
|
||||
});
|
||||
|
@ -82,6 +80,10 @@ export class ShowSignalSoundHelp extends Action2 {
|
|||
}
|
||||
}
|
||||
|
||||
function getDisabledSettingValue(isUserGestureSignal: boolean, isScreenReaderOptimized: boolean): string {
|
||||
return isScreenReaderOptimized ? (isUserGestureSignal ? 'never' : 'off') : (isUserGestureSignal ? 'never' : 'auto');
|
||||
}
|
||||
|
||||
export class ShowAccessibilityAnnouncementHelp extends Action2 {
|
||||
static readonly ID = 'accessibility.announcement.help';
|
||||
|
||||
|
@ -115,7 +117,13 @@ export class ShowAccessibilityAnnouncementHelp extends Action2 {
|
|||
const qp = quickInputService.createQuickPick<IQuickPickItem & { signal: AccessibilitySignal }>();
|
||||
qp.items = items;
|
||||
qp.selectedItems = items.filter(i => accessibilitySignalService.isAnnouncementEnabled(i.signal) || userGestureSignals.includes(i.signal) && configurationService.getValue(i.signal.settingsKey + '.announcement') !== 'never');
|
||||
const screenReaderOptimized = accessibilityService.isScreenReaderOptimized();
|
||||
qp.onDidAccept(() => {
|
||||
if (!screenReaderOptimized) {
|
||||
// announcements are off by default when screen reader is not active
|
||||
qp.hide();
|
||||
return;
|
||||
}
|
||||
const enabledAnnouncements = qp.selectedItems.map(i => i.signal);
|
||||
const disabledAnnouncements = AccessibilitySignal.allAccessibilitySignals.filter(cue => !!cue.legacyAnnouncementSettingsKey && !enabledAnnouncements.includes(cue));
|
||||
for (const signal of enabledAnnouncements) {
|
||||
|
@ -123,17 +131,19 @@ export class ShowAccessibilityAnnouncementHelp extends Action2 {
|
|||
announcement = userGestureSignals.includes(signal) ? 'userGesture' : signal.announcementMessage && accessibilityService.isScreenReaderOptimized() ? 'auto' : undefined;
|
||||
configurationService.updateValue(signal.settingsKey, { sound, announcement });
|
||||
}
|
||||
|
||||
for (const signal of disabledAnnouncements) {
|
||||
const announcement = userGestureSignals.includes(signal) ? 'never' : 'off';
|
||||
const announcement = getDisabledSettingValue(userGestureSignals.includes(signal), true);
|
||||
const sound = configurationService.getValue(signal.settingsKey + '.sound');
|
||||
configurationService.updateValue(signal.settingsKey, announcement ? { sound, announcement } : { sound });
|
||||
const value = announcement ? { sound, announcement } : { sound };
|
||||
configurationService.updateValue(signal.settingsKey, value);
|
||||
}
|
||||
qp.hide();
|
||||
});
|
||||
qp.onDidTriggerItemButton(e => {
|
||||
preferencesService.openUserSettings({ jsonEditor: true, revealSetting: { key: e.item.signal.settingsKey, edit: true } });
|
||||
});
|
||||
qp.placeholder = localize('announcement.help.placeholder', 'Select an announcement to configure');
|
||||
qp.placeholder = screenReaderOptimized ? localize('announcement.help.placeholder', 'Select an announcement to configure') : localize('announcement.help.placeholder.disabled', 'Screen reader is not active, announcements are disabled by default.');
|
||||
qp.canSelectMany = true;
|
||||
await qp.show();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue