Skip to content

Commit 29f0271

Browse files
committed
accessible view for notifications
1 parent c9d8ab6 commit 29f0271

File tree

10 files changed

+55
-13
lines changed

10 files changed

+55
-13
lines changed

src/vs/workbench/contrib/accessibility/browser/accessibleView.ts renamed to src/vs/workbench/browser/accessibility/accessibleView.ts

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/cont
2222
import { IContextViewDelegate, IContextViewService } from 'vs/platform/contextview/browser/contextView';
2323
import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation';
2424
import { IOpenerService } from 'vs/platform/opener/common/opener';
25-
import { SelectionClipboardContributionID } from 'vs/workbench/contrib/codeEditor/browser/selectionClipboard';
26-
import { getSimpleEditorOptions } from 'vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
2725
import { alert } from 'vs/base/browser/ui/aria/aria';
26+
import { IEditorOptions } from 'vs/editor/common/config/editorOptions';
2827

2928
const enum DEFAULT {
3029
WIDTH = 800,
@@ -80,7 +79,7 @@ class AccessibleView extends Disposable {
8079
this._editorContainer = document.createElement('div');
8180
this._editorContainer.classList.add('accessible-view');
8281
const codeEditorWidgetOptions: ICodeEditorWidgetOptions = {
83-
contributions: EditorExtensionsRegistry.getSomeEditorContributions([LinkDetector.ID, SelectionClipboardContributionID, 'editor.contrib.selectionAnchorController'])
82+
contributions: EditorExtensionsRegistry.getSomeEditorContributions([LinkDetector.ID, 'editor.contrib.selectionClipboard', 'editor.contrib.selectionAnchorController'])
8483
};
8584
const editorOptions: IEditorConstructionOptions = {
8685
...getSimpleEditorOptions(this._configurationService),
@@ -226,3 +225,34 @@ export class AccessibleViewService extends Disposable implements IAccessibleView
226225
this._accessibleView.show(provider);
227226
}
228227
}
228+
function getSimpleEditorOptions(configurationService: IConfigurationService): IEditorOptions {
229+
return {
230+
wordWrap: 'on',
231+
overviewRulerLanes: 0,
232+
glyphMargin: false,
233+
lineNumbers: 'off',
234+
folding: false,
235+
selectOnLineNumbers: false,
236+
hideCursorInOverviewRuler: true,
237+
selectionHighlight: false,
238+
scrollbar: {
239+
horizontal: 'hidden'
240+
},
241+
lineDecorationsWidth: 0,
242+
overviewRulerBorder: false,
243+
scrollBeyondLastLine: false,
244+
renderLineHighlight: 'none',
245+
fixedOverflowWidgets: true,
246+
acceptSuggestionOnEnter: 'smart',
247+
dragAndDrop: false,
248+
revealHorizontalRightPadding: 5,
249+
minimap: {
250+
enabled: false
251+
},
252+
guides: {
253+
indentation: false
254+
},
255+
accessibilitySupport: configurationService.getValue<'auto' | 'off' | 'on'>('editor.accessibilitySupport'),
256+
cursorBlinking: configurationService.getValue<'blink' | 'smooth' | 'phase' | 'expand' | 'solid'>('editor.cursorBlinking')
257+
};
258+
}

src/vs/workbench/browser/parts/notifications/notificationsList.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { NotificationFocusedContext } from 'vs/workbench/common/contextkeys';
1919
import { Disposable } from 'vs/base/common/lifecycle';
2020
import { AriaRole } from 'vs/base/browser/ui/aria/aria';
2121
import { NotificationActionRunner } from 'vs/workbench/browser/parts/notifications/notificationsCommands';
22+
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
2223

2324
export interface INotificationsListOptions extends IListOptions<INotificationViewItem> {
2425
readonly widgetAriaLabel?: string;
@@ -36,7 +37,8 @@ export class NotificationsList extends Disposable {
3637
private readonly container: HTMLElement,
3738
private readonly options: INotificationsListOptions,
3839
@IInstantiationService private readonly instantiationService: IInstantiationService,
39-
@IContextMenuService private readonly contextMenuService: IContextMenuService
40+
@IContextMenuService private readonly contextMenuService: IContextMenuService,
41+
@IAccessibleViewService private readonly accessibleViewService: IAccessibleViewService
4042
) {
4143
super();
4244
}
@@ -161,7 +163,17 @@ export class NotificationsList extends Disposable {
161163
// Remember focus and relative top of that item
162164
const focusedIndex = list.getFocus()[0];
163165
const focusedItem = this.viewModel[focusedIndex];
164-
166+
this.accessibleViewService.show({
167+
provideContent: () => { return focusedItem.message.original.toString() || ''; },
168+
onClose(): void {
169+
list.setFocus([focusedIndex]);
170+
},
171+
verbositySettingKey: 'notifications',
172+
options: {
173+
ariaLabel: localize('notification', "Notification Accessible View"),
174+
type: AccessibleViewType.View
175+
}
176+
});
165177
let focusRelativeTop: number | null = null;
166178
if (typeof focusedIndex === 'number') {
167179
focusRelativeTop = list.getRelativeTop(focusedIndex);

src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { localize } from 'vs/nls';
1313
import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions';
1414
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
1515
import { AccessibilityHelpAction, AccessibleViewAction, registerAccessibilityConfiguration } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution';
16-
import { AccessibleViewService, AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
16+
import { AccessibleViewService, AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
1717
import * as strings from 'vs/base/common/strings';
1818
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1919
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';

src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { withNullAsUndefined } from 'vs/base/common/types';
1010
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
1111
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
1212
import { IChatWidgetService } from 'vs/workbench/contrib/chat/browser/chat';
13-
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
13+
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
1414
import { InlineChatController } from 'vs/workbench/contrib/inlineChat/browser/inlineChatController';
1515

1616

src/vs/workbench/contrib/chat/browser/chat.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import '../common/chatColors';
3838
import { registerMoveActions } from 'vs/workbench/contrib/chat/browser/actions/chatMoveActions';
3939
import { registerClearActions } from 'vs/workbench/contrib/chat/browser/actions/chatClearActions';
4040
import { AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution';
41-
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
41+
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
4242
import { isResponseVM } from 'vs/workbench/contrib/chat/common/chatViewModel';
4343
import { CONTEXT_IN_CHAT_SESSION } from 'vs/workbench/contrib/chat/common/chatContextKeys';
4444
import { ChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chatAccessibilityService';

src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configur
99
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
1010
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
1111
import { Action2, registerAction2 } from 'vs/platform/actions/common/actions';
12-
import { accessibilityHelpIsShown } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
12+
import { accessibilityHelpIsShown } from 'vs/workbench/browser/accessibility/accessibleView';
1313
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
1414
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
1515
import { alert } from 'vs/base/browser/ui/aria/aria';

src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
2020
import { INotificationService, Severity } from 'vs/platform/notification/common/notification';
2121
import { FloatingClickWidget } from 'vs/workbench/browser/codeeditor';
2222
import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution';
23-
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
23+
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
2424
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
2525

2626
const enum WidgetState {

src/vs/workbench/contrib/notebook/browser/notebookAccessibilityHelp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { format } from 'vs/base/common/strings';
88
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
99
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
1010
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
11-
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
11+
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
1212

1313
export function getAccessibilityHelpText(accessor: ServicesAccessor): string {
1414
const keybindingService = accessor.get(IKeybindingService);

src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis
1313
import { IQuickPick, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
1414
import { terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal';
1515
import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution';
16-
import { IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
16+
import { IAccessibleViewService } from 'vs/workbench/browser/accessibility/accessibleView';
1717
import { ITerminalContribution, ITerminalInstance, ITerminalService, IXtermTerminal } from 'vs/workbench/contrib/terminal/browser/terminal';
1818
import { registerTerminalAction } from 'vs/workbench/contrib/terminal/browser/terminalActions';
1919
import { registerTerminalContribution } from 'vs/workbench/contrib/terminal/browser/terminalExtensions';

src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib
1010
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1111
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
1212
import { ShellIntegrationStatus, WindowsShellType } from 'vs/platform/terminal/common/terminal';
13-
import { AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
13+
import { AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions } from 'vs/workbench/browser/accessibility/accessibleView';
1414
import { ITerminalInstance, IXtermTerminal } from 'vs/workbench/contrib/terminal/browser/terminal';
1515
import { TerminalCommandId } from 'vs/workbench/contrib/terminal/common/terminal';
1616
import type { Terminal } from 'xterm';

0 commit comments

Comments
 (0)