Skip to content

Commit cf44916

Browse files
authored
Add aria alerts for sidebar and secondary sidebar visibility toggles (microsoft#257354)
1 parent 36e541e commit cf44916

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/vs/workbench/browser/actions/layoutActions.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ILocalizedString, localize, localize2 } from '../../../nls.js';
77
import { MenuId, MenuRegistry, registerAction2, Action2 } from '../../../platform/actions/common/actions.js';
88
import { Categories } from '../../../platform/action/common/actionCommonCategories.js';
99
import { IConfigurationService } from '../../../platform/configuration/common/configuration.js';
10+
import { alert } from '../../../base/browser/ui/aria/aria.js';
1011
import { EditorActionsLocation, EditorTabsMode, IWorkbenchLayoutService, LayoutSettings, Parts, Position, ZenModeSettings, positionToString } from '../../services/layout/browser/layoutService.js';
1112
import { ServicesAccessor, IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';
1213
import { KeyMod, KeyCode, KeyChord } from '../../../base/common/keyCodes.js';
@@ -319,8 +320,15 @@ export class ToggleSidebarVisibilityAction extends Action2 {
319320

320321
run(accessor: ServicesAccessor): void {
321322
const layoutService = accessor.get(IWorkbenchLayoutService);
323+
const isCurrentlyVisible = layoutService.isVisible(Parts.SIDEBAR_PART);
322324

323-
layoutService.setPartHidden(layoutService.isVisible(Parts.SIDEBAR_PART), Parts.SIDEBAR_PART);
325+
layoutService.setPartHidden(isCurrentlyVisible, Parts.SIDEBAR_PART);
326+
327+
// Announce visibility change to screen readers
328+
const alertMessage = isCurrentlyVisible
329+
? localize('sidebarHidden', "Primary Side Bar hidden")
330+
: localize('sidebarVisible', "Primary Side Bar shown");
331+
alert(alertMessage);
324332
}
325333
}
326334

src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Action2, MenuId, MenuRegistry, registerAction2 } from '../../../../plat
99
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
1010
import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
1111
import { Categories } from '../../../../platform/action/common/actionCommonCategories.js';
12+
import { alert } from '../../../../base/browser/ui/aria/aria.js';
1213
import { AuxiliaryBarMaximizedContext, AuxiliaryBarVisibleContext, IsAuxiliaryWindowContext } from '../../../common/contextkeys.js';
1314
import { ViewContainerLocation, ViewContainerLocationToString } from '../../../common/views.js';
1415
import { ActivityBarPosition, IWorkbenchLayoutService, LayoutSettings, Parts } from '../../../services/layout/browser/layoutService.js';
@@ -69,7 +70,15 @@ export class ToggleAuxiliaryBarAction extends Action2 {
6970

7071
override async run(accessor: ServicesAccessor): Promise<void> {
7172
const layoutService = accessor.get(IWorkbenchLayoutService);
72-
layoutService.setPartHidden(layoutService.isVisible(Parts.AUXILIARYBAR_PART), Parts.AUXILIARYBAR_PART);
73+
const isCurrentlyVisible = layoutService.isVisible(Parts.AUXILIARYBAR_PART);
74+
75+
layoutService.setPartHidden(isCurrentlyVisible, Parts.AUXILIARYBAR_PART);
76+
77+
// Announce visibility change to screen readers
78+
const alertMessage = isCurrentlyVisible
79+
? localize('auxiliaryBarHidden', "Secondary Side Bar hidden")
80+
: localize('auxiliaryBarVisible', "Secondary Side Bar shown");
81+
alert(alertMessage);
7382
}
7483
}
7584

0 commit comments

Comments
 (0)