Skip to content

Commit 20521eb

Browse files
committed
manually alert when focusing items in the symbol tree, microsoft#17245
1 parent e6d0de3 commit 20521eb

2 files changed

Lines changed: 25 additions & 9 deletions

File tree

src/vs/editor/contrib/referenceSearch/browser/referencesModel.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ export class OneReference {
6262
this._range = value;
6363
this._eventBus.emit('ref/changed', this);
6464
}
65+
66+
public getAriaMessage(): string {
67+
return localize(
68+
'aria.oneReference', "symbol in {0} on line {1} at column {2}",
69+
this.uri.fsPath, this.range.startLineNumber, this.range.startColumn
70+
);
71+
}
6572
}
6673

6774
export class FilePreview implements IDisposable {
@@ -144,6 +151,15 @@ export class FileReferences implements IDisposable {
144151
return this._loadFailure;
145152
}
146153

154+
getAriaMessage(): string {
155+
const len = this.children.length;
156+
if (len === 1) {
157+
return localize('aria.fileReferences.1', "1 symbol in {0}", this.uri.fsPath);
158+
} else {
159+
return localize('aria.fileReferences.N', "{0} symbols in {1}", len, this.uri.fsPath);
160+
}
161+
}
162+
147163
public resolve(textModelResolverService: ITextModelResolverService): TPromise<FileReferences> {
148164

149165
if (this._resolved) {

src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import 'vs/css!./referencesWidget';
88
import * as nls from 'vs/nls';
9+
import { alert } from 'vs/base/browser/ui/aria/aria';
910
import { onUnexpectedError } from 'vs/base/common/errors';
1011
import { getPathLabel } from 'vs/base/common/labels';
1112
import Event, { Emitter } from 'vs/base/common/event';
@@ -410,15 +411,9 @@ class AriaProvider implements tree.IAccessibilityProvider {
410411

411412
getAriaLabel(tree: tree.ITree, element: FileReferences | OneReference): string {
412413
if (element instanceof FileReferences) {
413-
const len = element.children.length;
414-
if (len === 1) {
415-
return nls.localize('aria.fileReferences.1', "1 reference in {0}", element.uri.fsPath);
416-
} else {
417-
return nls.localize('aria.fileReferences.N', "{0} references in {1}", len, element.uri.fsPath);
418-
}
414+
return element.getAriaMessage();
419415
} else if (element instanceof OneReference) {
420-
return nls.localize('aria.oneReference', "reference in {0} on line {1} at column {2}", element.uri.fsPath, element.range.startLineNumber, element.range.startColumn);
421-
416+
return element.getAriaMessage();
422417
} else {
423418
return undefined;
424419
}
@@ -626,7 +621,8 @@ export class ReferenceWidget extends PeekViewWidget {
626621
dataSource: this._instantiationService.createInstance(DataSource),
627622
renderer: this._instantiationService.createInstance(Renderer),
628623
controller: new Controller(),
629-
accessibilityProvider: new AriaProvider()
624+
// TODO@{Joh,Ben} make this work with the embedded tree
625+
// accessibilityProvider: new AriaProvider()
630626
};
631627

632628
var options = {
@@ -704,6 +700,10 @@ export class ReferenceWidget extends PeekViewWidget {
704700
this._revealReference(element);
705701
this._onDidSelectReference.fire({ element, kind: 'show', source: 'tree' });
706702
}
703+
if (element instanceof OneReference || element instanceof FileReferences) {
704+
const msg = element.getAriaMessage();
705+
alert(msg);
706+
}
707707
}));
708708
this._disposeOnNewModel.push(this._tree.addListener(Controller.Events.SELECTED, (element: any) => {
709709
if (element instanceof OneReference) {

0 commit comments

Comments
 (0)