Adding screen reader optimized mode to slickgrid (#21069)

This commit is contained in:
Aasim Khan
2022-11-02 15:11:16 -07:00
committed by GitHub
parent f6dbe7539c
commit 4823a76833
41 changed files with 165 additions and 73 deletions

View File

@@ -53,6 +53,7 @@ import { RowSelectionModel } from 'sql/base/browser/ui/table/plugins/rowSelectio
import { listFocusAndSelectionBackground } from 'sql/platform/theme/common/colors';
import { timeout } from 'vs/base/common/async';
import { onUnexpectedError } from 'vs/base/common/errors';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
export interface IDesignerStyle {
tabbedPanelStyles?: ITabbedPanelStyles;
@@ -113,7 +114,8 @@ export class Designer extends Disposable implements IThemable {
@INotificationService private readonly _notificationService: INotificationService,
@IDialogService private readonly _dialogService: IDialogService,
@IThemeService private readonly _themeService: IThemeService,
@IContextMenuService private readonly _contextMenuService: IContextMenuService,) {
@IContextMenuService private readonly _contextMenuService: IContextMenuService,
@IAccessibilityService private readonly _accessibilityService: IAccessibilityService) {
super();
this._tableCellEditorFactory = new TableCellEditorFactory(
{
@@ -843,7 +845,7 @@ export class Designer extends Disposable implements IThemable {
const tableProperties = componentDefinition.componentProperties as DesignerTableProperties;
const taskbar = this.addTableTaskbar(container, tableProperties);
const tableContainer = container.appendChild(DOM.$('.full-row'));
const table = new Table(tableContainer, {
const table = new Table(tableContainer, this._accessibilityService, {
dataProvider: new TableDataView()
}, {
editable: true,

View File

@@ -39,6 +39,7 @@ import { ContextMenuColumn, ContextMenuCellValue } from 'sql/base/browser/ui/tab
import { IAction, Separator } from 'vs/base/common/actions';
import { MenuItemAction, MenuRegistry } from 'vs/platform/actions/common/actions';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
export enum ColumnSizingMode {
ForceFit = 0, // all columns will be sized to fit in viewable space, no horiz scroll bar
@@ -90,7 +91,8 @@ export default class TableComponent extends ComponentBase<azdata.TableComponentP
@Inject(ILogService) logService: ILogService,
@Inject(IContextViewService) private contextViewService: IContextViewService,
@Inject(IContextMenuService) private contextMenuService: IContextMenuService,
@Inject(IInstantiationService) private instantiationService: IInstantiationService
@Inject(IInstantiationService) private instantiationService: IInstantiationService,
@Inject(IAccessibilityService) private accessibilityService: IAccessibilityService
) {
super(changeRef, el, logService);
}
@@ -275,7 +277,7 @@ export default class TableComponent extends ComponentBase<azdata.TableComponentP
dataItemColumnValueExtractor: slickGridDataItemColumnValueWithNoData // must change formatter if you are changing explicit column value extractor
};
this._table = new Table<Slick.SlickData>(this._inputContainer.nativeElement, { dataProvider: this._tableData, columns: this._tableColumns }, options);
this._table = new Table<Slick.SlickData>(this._inputContainer.nativeElement, this.accessibilityService, { dataProvider: this._tableData, columns: this._tableColumns }, options);
this._table.setData(this._tableData);
this._table.setSelectionModel(new RowSelectionModel({ selectActiveRow: true }));