diff --git a/src/DetailsView/components/base-visual-helper-toggle.tsx b/src/DetailsView/components/base-visual-helper-toggle.tsx index db0580e2fb2..150ae3a4db5 100644 --- a/src/DetailsView/components/base-visual-helper-toggle.tsx +++ b/src/DetailsView/components/base-visual-helper-toggle.tsx @@ -64,7 +64,7 @@ export abstract class BaseVisualHelperToggle extends React.Component diff --git a/src/injected/drawing-controller.ts b/src/injected/drawing-controller.ts index 6cb22fb3dae..69087e7f97c 100644 --- a/src/injected/drawing-controller.ts +++ b/src/injected/drawing-controller.ts @@ -19,8 +19,8 @@ export interface VisualizationWindowMessage { visualizationType?: VisualizationType; isEnabled: boolean; configId: string; - elementResults?: AssessmentVisualizationInstance[]; - featureFlagStoreData?: FeatureFlagStoreData; + elementResults: AssessmentVisualizationInstance[] | null; + featureFlagStoreData: FeatureFlagStoreData; } export class DrawingController { @@ -69,7 +69,7 @@ export class DrawingController { }; private async enableVisualization( - elementResults: AssessmentVisualizationInstance[] | undefined, + elementResults: AssessmentVisualizationInstance[] | null, configId: string, ): Promise { if (elementResults) { @@ -96,7 +96,7 @@ export class DrawingController { const childFrameResults = elementResultsByFrame.filter(results => results.frame != null); await this.allFramesMessenger.sendCommandToMultipleFrames( DrawingController.triggerVisualizationCommand, - childFrameResults.map(results => results.frame), + childFrameResults.map(results => results.frame!), (_frame, index) => this.createEnableVisualizationPayload( configId, @@ -110,12 +110,12 @@ export class DrawingController { await this.allFramesMessenger.sendCommandToAllFrames( DrawingController.triggerVisualizationCommand, - this.createEnableVisualizationPayload(configId), + this.createEnableVisualizationPayload(configId, null), ); } private enableVisualizationInCurrentFrame = async ( - currentFrameResults: AssessmentVisualizationInstance[], + currentFrameResults: AssessmentVisualizationInstance[] | null, configId: string, ): Promise => { const drawer = this.getDrawer(configId); @@ -128,10 +128,10 @@ export class DrawingController { private createEnableVisualizationPayload( configId: string, - frameResults?: AssessmentVisualizationInstance[], + frameResults: AssessmentVisualizationInstance[] | null, ): VisualizationWindowMessage { return { - elementResults: frameResults ?? null, + elementResults: frameResults, isEnabled: true, featureFlagStoreData: this.featureFlagStoreData, configId: configId, @@ -164,8 +164,8 @@ export class DrawingController { } private getInitialElements( - currentFrameResults: AssessmentVisualizationInstance[], - ): AssessmentVisualizationInstance[] { + currentFrameResults: AssessmentVisualizationInstance[] | null, + ): AssessmentVisualizationInstance[] | null { if (currentFrameResults == null) { return null; } diff --git a/src/injected/drawing-initiator.ts b/src/injected/drawing-initiator.ts index 53ca1c06d8e..7a9d9bc9565 100644 --- a/src/injected/drawing-initiator.ts +++ b/src/injected/drawing-initiator.ts @@ -76,6 +76,7 @@ export class DrawingInitiator { isEnabled: false, featureFlagStoreData: featureFlagStoreData, configId: configId, + elementResults: null, }; await this.drawingController.processRequest(visualizationMessage); diff --git a/src/injected/visualization/base-drawer.ts b/src/injected/visualization/base-drawer.ts index da6cfcc19e0..69001233c9c 100644 --- a/src/injected/visualization/base-drawer.ts +++ b/src/injected/visualization/base-drawer.ts @@ -39,7 +39,7 @@ export abstract class BaseDrawer implements Drawer { this.drawerUtils = drawerUtils; } - public abstract initialize(config: DrawerInitData): void; + public abstract initialize(config: DrawerInitData): void; public drawLayout = async (): Promise => { this.addListeners(); diff --git a/src/injected/visualization/drawer.ts b/src/injected/visualization/drawer.ts index e398f1a234f..9e825e5ee16 100644 --- a/src/injected/visualization/drawer.ts +++ b/src/injected/visualization/drawer.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +import { AssessmentVisualizationInstance } from 'injected/frameCommunicators/html-element-axe-results-helper'; import { FeatureFlagStoreData } from '../../common/types/store-data/feature-flag-store-data'; export interface Drawer { - initialize(config: DrawerInitData): void; + initialize(config: DrawerInitData): void; isOverlayEnabled: boolean; drawLayout(): Promise; eraseLayout(): void; } -export interface DrawerInitData { - data: T[]; +export interface DrawerInitData { + data: AssessmentVisualizationInstance[] | null; featureFlagStoreData: FeatureFlagStoreData; } diff --git a/src/injected/visualization/highlight-box-drawer.ts b/src/injected/visualization/highlight-box-drawer.ts index 4ebee18aaa7..8b7e1f629b3 100644 --- a/src/injected/visualization/highlight-box-drawer.ts +++ b/src/injected/visualization/highlight-box-drawer.ts @@ -36,8 +36,8 @@ export class HighlightBoxDrawer extends BaseDrawer { this.dialogRenderer = this.formatter?.getDialogRenderer(); } - public initialize(config: DrawerInitData): void { - this.elementResults = config.data; + public initialize(config: DrawerInitData): void { + this.elementResults = config.data ?? []; this.eraseLayout(); } diff --git a/src/injected/visualization/null-drawer.ts b/src/injected/visualization/null-drawer.ts index d9370aba074..1040ff011c1 100644 --- a/src/injected/visualization/null-drawer.ts +++ b/src/injected/visualization/null-drawer.ts @@ -3,7 +3,7 @@ import { Drawer, DrawerInitData } from './drawer'; export class NullDrawer implements Drawer { - public initialize(drawerData: DrawerInitData): void {} + public initialize(drawerData: DrawerInitData): void {} public isOverlayEnabled: boolean = false; public drawLayout = async (): Promise => {}; public eraseLayout(): void {} diff --git a/src/injected/visualization/single-target-drawer.ts b/src/injected/visualization/single-target-drawer.ts index 213b03bb415..1f4c1ce9a54 100644 --- a/src/injected/visualization/single-target-drawer.ts +++ b/src/injected/visualization/single-target-drawer.ts @@ -17,9 +17,9 @@ export class SingleTargetDrawer implements Drawer { this.formatter = formatter; } - public initialize(drawerInfo: DrawerInitData): void { + public initialize(drawerInfo: DrawerInitData): void { this.eraseLayout(); - const elementResults = drawerInfo.data; + const elementResults = drawerInfo.data ?? []; const myDocument = this.drawerUtils.getDocumentElement(); this.target = this.getFirstElementTarget(myDocument, elementResults); } diff --git a/src/injected/visualization/svg-drawer.ts b/src/injected/visualization/svg-drawer.ts index bdb76609350..d2cacff17ef 100644 --- a/src/injected/visualization/svg-drawer.ts +++ b/src/injected/visualization/svg-drawer.ts @@ -42,20 +42,18 @@ export class SVGDrawer extends BaseDrawer { this.failureItems = []; } - public initialize( - drawerInfo: DrawerInitData, - ): void { - const visualizationInstances: TabStopVisualizationInstance[] = drawerInfo.data.map( - (element: TabStopVisualizationInstance) => { + public initialize(drawerInfo: DrawerInitData): void { + const originalVisualizationInstances = drawerInfo.data ?? []; + const annotatedVisualizationInstances: TabStopVisualizationInstance[] = + originalVisualizationInstances.map((element: TabStopVisualizationInstance) => { return { propertyBag: { tabOrder: this.getTabOrder(element), }, ...element, }; - }, - ); - this.updateTabbedElements(visualizationInstances); + }); + this.updateTabbedElements(annotatedVisualizationInstances); this.tabOrderedItems = this.allVisualizedItems.filter(item => item.tabOrder != null); this.failureItems = this.allVisualizedItems.filter(item => item.isFailure); } diff --git a/src/injected/window-initializer.ts b/src/injected/window-initializer.ts index b73081ee117..e405a0ed515 100644 --- a/src/injected/window-initializer.ts +++ b/src/injected/window-initializer.ts @@ -92,13 +92,21 @@ export class WindowInitializer { const htmlElementUtils = new HTMLElementUtils(); this.clientUtils = new ClientUtils(window); + const extensionId = browserAdapter.getExtensionId(); + if (extensionId == null) { + logger.error( + 'Aborting Accessibility Insights initialization - extension instance is unloaded', + ); + return; + } + this.actionMessageDispatcher = new RemoteActionMessageDispatcher( this.browserAdapter.sendMessageToFrames, null, logger, ); - const telemetrySanitizer = new ExceptionTelemetrySanitizer(browserAdapter.getExtensionId()); + const telemetrySanitizer = new ExceptionTelemetrySanitizer(extensionId); const exceptionTelemetryListener = new ExceptionTelemetryListener( TelemetryEventSource.TargetPage, this.actionMessageDispatcher.sendTelemetry, diff --git a/src/tests/unit/tests/injected/drawing-controller.test.ts b/src/tests/unit/tests/injected/drawing-controller.test.ts index 87b40bf39a4..3e08b14e7a0 100644 --- a/src/tests/unit/tests/injected/drawing-controller.test.ts +++ b/src/tests/unit/tests/injected/drawing-controller.test.ts @@ -1,6 +1,5 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -import { HtmlElementAxeResults } from 'common/types/store-data/visualization-scan-result-data'; import { AllFramesMessenger } from 'injected/frameCommunicators/all-frames-messenger'; import { CommandMessage, @@ -23,12 +22,13 @@ import { HighlightBoxDrawer } from '../../../../injected/visualization/highlight class VisualizationWindowMessageStubBuilder { private isEnabled: boolean; private configId: string; - private elementResults?: AssessmentVisualizationInstance[]; + private elementResults: AssessmentVisualizationInstance[] | null; private featureFlagStoreData?: FeatureFlagStoreData; public constructor(configId: string) { this.configId = configId; this.featureFlagStoreData = getDefaultFeatureFlagsWeb(); + this.elementResults = null; } public setVisualizationEnabled(): VisualizationWindowMessageStubBuilder { @@ -42,7 +42,7 @@ class VisualizationWindowMessageStubBuilder { } public setElementResults( - results: AssessmentVisualizationInstance[], + results: AssessmentVisualizationInstance[] | null, ): VisualizationWindowMessageStubBuilder { this.elementResults = results; return this; @@ -158,7 +158,7 @@ describe('DrawingControllerTest', () => { const iframeResults = ['iframeContent']; const iframeElement = 'iframeElement'; const targetFrame = iframeElement as any; - const visibleResultStub = {} as HtmlElementAxeResults; + const visibleResultStub = {} as AssessmentVisualizationInstance; const disabledResultStub = { isVisualizationEnabled: false, } as AssessmentVisualizationInstance; @@ -207,7 +207,7 @@ describe('DrawingControllerTest', () => { }) .verifiable(Times.once()); - const expected: DrawerInitData = { + const expected: DrawerInitData = { data: [visibleResultStub], featureFlagStoreData, }; diff --git a/src/tests/unit/tests/injected/drawing-initiator.test.ts b/src/tests/unit/tests/injected/drawing-initiator.test.ts index dd7ad3f03d9..d3e07f1bdee 100644 --- a/src/tests/unit/tests/injected/drawing-initiator.test.ts +++ b/src/tests/unit/tests/injected/drawing-initiator.test.ts @@ -51,6 +51,7 @@ describe('DrawingInitiatorTest', () => { isEnabled: false, featureFlagStoreData: getDefaultFeatureFlagsWeb(), configId: configId, + elementResults: null, }; drawingControllerMock diff --git a/src/tests/unit/tests/injected/visualization/drawer.test.ts b/src/tests/unit/tests/injected/visualization/drawer.test.ts index 96261b34cc0..1ed95308449 100644 --- a/src/tests/unit/tests/injected/visualization/drawer.test.ts +++ b/src/tests/unit/tests/injected/visualization/drawer.test.ts @@ -1,11 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. import { getDefaultFeatureFlagsWeb } from 'common/feature-flags'; -import { HtmlElementAxeResults } from 'common/types/store-data/visualization-scan-result-data'; import { WindowUtils } from 'common/window-utils'; import { BoundingRect } from 'injected/bounding-rect'; import { ClientUtils } from 'injected/client-utils'; import { DialogRenderer } from 'injected/dialog-renderer'; +import { AssessmentVisualizationInstance } from 'injected/frameCommunicators/html-element-axe-results-helper'; import { ShadowUtils } from 'injected/shadow-utils'; import { DrawerInitData } from 'injected/visualization/drawer'; import { DrawerUtils } from 'injected/visualization/drawer-utils'; @@ -1195,20 +1195,22 @@ describe('Drawer', () => { verifyOverlayStyle(overlays[2], element4Config); }); - function createDrawerInfo(elementResults: T[]): DrawerInitData { + function createDrawerInfo( + elementResults: AssessmentVisualizationInstance[] | null, + ): DrawerInitData { return { data: elementResults, featureFlagStoreData: getDefaultFeatureFlagsWeb(), }; } - function createElementResults(ids: string[]): HtmlElementAxeResults[] { + function createElementResults(ids: string[]): AssessmentVisualizationInstance[] { return ids.map(id => { return { ruleResults: {}, target: [id], targetIndex: 0, - }; + } as AssessmentVisualizationInstance; }); } diff --git a/src/tests/unit/tests/injected/visualization/single-target-drawer.test.ts b/src/tests/unit/tests/injected/visualization/single-target-drawer.test.ts index f08ad43f66b..0798aa4f59a 100644 --- a/src/tests/unit/tests/injected/visualization/single-target-drawer.test.ts +++ b/src/tests/unit/tests/injected/visualization/single-target-drawer.test.ts @@ -1,6 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -import { HtmlElementAxeResults } from 'common/types/store-data/visualization-scan-result-data'; +import { AssessmentVisualizationInstance } from 'injected/frameCommunicators/html-element-axe-results-helper'; import { IMock, Mock, Times } from 'typemoq'; import { getDefaultFeatureFlagsWeb } from '../../../../../common/feature-flags'; @@ -29,12 +29,12 @@ describe('SingleTargetDrawer Tests', () => { const testSubject = new SingleTargetDrawer(drawerUtilsMock.object, formatterMock.object); - const drawerInfo: DrawerInitData = { + const drawerInfo: DrawerInitData = { data: [ { target: ['body'], - }, - ] as HtmlElementAxeResults[], + } as AssessmentVisualizationInstance, + ], featureFlagStoreData: getDefaultFeatureFlagsWeb(), }; @@ -53,12 +53,12 @@ describe('SingleTargetDrawer Tests', () => { const testSubject = new SingleTargetDrawer(drawerUtilsMock.object, formatterMock.object); - const drawerInfo: DrawerInitData = { + const drawerInfo: DrawerInitData = { data: [ { target: ['body'], - }, - ] as HtmlElementAxeResults[], + } as AssessmentVisualizationInstance, + ], featureFlagStoreData: getDefaultFeatureFlagsWeb(), }; @@ -84,12 +84,12 @@ describe('SingleTargetDrawer Tests', () => { const testSubject = new SingleTargetDrawer(drawerUtilsMock.object, formatterMock.object); - const drawerInfo: DrawerInitData = { + const drawerInfo: DrawerInitData = { data: [ { target: ['body'], - }, - ] as HtmlElementAxeResults[], + } as AssessmentVisualizationInstance, + ], featureFlagStoreData: getDefaultFeatureFlagsWeb(), }; @@ -115,12 +115,12 @@ describe('SingleTargetDrawer Tests', () => { const testSubject = new SingleTargetDrawer(drawerUtilsMock.object, formatterMock.object); - const drawerInfo: DrawerInitData = { + const drawerInfo: DrawerInitData = { data: [ { target: ['body'], - }, - ] as HtmlElementAxeResults[], + } as AssessmentVisualizationInstance, + ], featureFlagStoreData: getDefaultFeatureFlagsWeb(), }; diff --git a/src/tests/unit/tests/injected/visualization/svg-drawer.test.ts b/src/tests/unit/tests/injected/visualization/svg-drawer.test.ts index e84f02cf668..ba160b18729 100644 --- a/src/tests/unit/tests/injected/visualization/svg-drawer.test.ts +++ b/src/tests/unit/tests/injected/visualization/svg-drawer.test.ts @@ -1,7 +1,10 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. import { TabbedElementData } from 'common/types/store-data/visualization-scan-result-data'; -import { TabStopVisualizationInstance } from 'injected/frameCommunicators/html-element-axe-results-helper'; +import { + AssessmentVisualizationInstance, + TabStopVisualizationInstance, +} from 'injected/frameCommunicators/html-element-axe-results-helper'; import { IMock, It, Mock, Times } from 'typemoq'; import { getDefaultFeatureFlagsWeb } from '../../../../../common/feature-flags'; @@ -47,7 +50,9 @@ describe('SVGDrawer', () => { shadowUtilsMock.setup(x => x.getShadowContainer()).returns(() => shadowContainer); }); - function createDrawerInfo(elementResults: T[]): DrawerInitData { + function createDrawerInfo( + elementResults: AssessmentVisualizationInstance[] | null, + ): DrawerInitData { return { data: elementResults, featureFlagStoreData: getDefaultFeatureFlagsWeb(), @@ -176,7 +181,7 @@ describe('SVGDrawer', () => { null, ); - testSubject.initialize(createDrawerInfo(tabbedElements)); + testSubject.initialize(createDrawerInfo(tabbedElements as any)); expect((testSubject as any).allVisualizedItems).toEqual(expectedAllVisualizedItems); drawerUtilsMock.verifyAll(); }); diff --git a/tsconfig.strictNullChecks.json b/tsconfig.strictNullChecks.json index 0a5baab57d6..557241fbe5f 100644 --- a/tsconfig.strictNullChecks.json +++ b/tsconfig.strictNullChecks.json @@ -8,8 +8,10 @@ "./src/DetailsView/components/action-and-cancel-buttons-component.tsx", "./src/DetailsView/components/assessment-instance-details-column.tsx", "./src/DetailsView/components/assessment-instance-selected-button.tsx", + "./src/DetailsView/components/assessment-visualization-enabled-toggle.tsx", "./src/DetailsView/components/auto-detected-failures-dialog.tsx", "./src/DetailsView/components/base-left-nav.tsx", + "./src/DetailsView/components/base-visual-helper-toggle.tsx", "./src/DetailsView/components/change-assessment-dialog.tsx", "./src/DetailsView/components/choice-group-pass-fail.tsx", "./src/DetailsView/components/failure-instance-panel-details.tsx", @@ -38,6 +40,7 @@ "./src/DetailsView/components/report-export-button.tsx", "./src/DetailsView/components/requirement-instructions.tsx", "./src/DetailsView/components/requirement-view-title.tsx", + "./src/DetailsView/components/restart-scan-visual-helper-toggle.tsx", "./src/DetailsView/components/save-assessment-button-factory.tsx", "./src/DetailsView/components/save-assessment-button.tsx", "./src/DetailsView/components/scan-incomplete-warning.tsx", @@ -67,58 +70,32 @@ "./src/DetailsView/tab-stops-failed-counter.ts", "./src/DetailsView/tab-stops-requirement-instances-collapsible-content.tsx", "./src/DetailsView/tab-stops-requirement-result.ts", - "./src/assessments/adaptable-content/test-steps/high-contrast-mode.tsx", - "./src/assessments/adaptable-content/test-steps/hover-focus-content.tsx", - "./src/assessments/adaptable-content/test-steps/orientation.tsx", - "./src/assessments/adaptable-content/test-steps/reflow.tsx", - "./src/assessments/adaptable-content/test-steps/resize-text.tsx", - "./src/assessments/adaptable-content/test-steps/test-step.ts", "./src/assessments/assessment-default-message-generator.tsx", "./src/assessments/auto-pass-if-no-results.ts", - "./src/assessments/color/test-steps/auditory-cues.tsx", - "./src/assessments/color/test-steps/flashing.tsx", - "./src/assessments/color/test-steps/sensory-characteristics.tsx", - "./src/assessments/color/test-steps/test-steps.tsx", - "./src/assessments/contrast/test-steps/test-steps.ts", + "./src/assessments/automated-checks/automated-checks-visualization-enabled-toggle.tsx", + "./src/assessments/automated-checks/build-test-steps-from-rules.tsx", "./src/assessments/custom-widgets/custom-widgets-column-renderer-factory.tsx", "./src/assessments/custom-widgets/custom-widgets-column-renderer.tsx", "./src/assessments/custom-widgets/design-pattern.ts", "./src/assessments/custom-widgets/test-steps/test-steps.ts", + "./src/assessments/headings/test-steps/no-missing-headings.tsx", "./src/assessments/headings/test-steps/test-steps.ts", - "./src/assessments/images/test-steps/captchas.tsx", - "./src/assessments/images/test-steps/test-steps.ts", - "./src/assessments/keyboard-interaction/test-steps/character-key-shortcuts.tsx", - "./src/assessments/keyboard-interaction/test-steps/no-keyboard-traps.tsx", - "./src/assessments/keyboard-interaction/test-steps/no-keystroke-timings.tsx", - "./src/assessments/keyboard-interaction/test-steps/on-focus.tsx", - "./src/assessments/keyboard-interaction/test-steps/on-input.tsx", - "./src/assessments/keyboard-interaction/test-steps/test-steps.ts", "./src/assessments/landmarks/does-result-have-main-role.ts", + "./src/assessments/landmarks/test-steps/no-repeating-content.tsx", + "./src/assessments/landmarks/test-steps/primary-content.tsx", "./src/assessments/landmarks/test-steps/test-steps.ts", + "./src/assessments/links/test-steps/link-function.tsx", + "./src/assessments/links/test-steps/link-purpose.tsx", "./src/assessments/links/test-steps/test-steps.ts", "./src/assessments/markup.tsx", "./src/assessments/medium-pass-requirements.ts", - "./src/assessments/native-widgets/test-steps/test-steps.ts", "./src/assessments/page/pagetitle-instance-details-column-renderer.tsx", "./src/assessments/page/test-steps/general-navigation.tsx", "./src/assessments/page/test-steps/page-title.tsx", "./src/assessments/page/test-steps/test-steps.ts", - "./src/assessments/semantics/test-steps/emphasis.tsx", - "./src/assessments/semantics/test-steps/letter-spacing.tsx", - "./src/assessments/semantics/test-steps/lists.tsx", - "./src/assessments/semantics/test-steps/quotes.tsx", - "./src/assessments/semantics/test-steps/table-semantics.tsx", - "./src/assessments/semantics/test-steps/test-steps.ts", - "./src/assessments/sequence/test-steps/columns.tsx", - "./src/assessments/sequence/test-steps/layout-tables.tsx", - "./src/assessments/sequence/test-steps/test-steps.ts", "./src/assessments/types/instance-table-data.ts", "./src/assessments/types/report-instance-field.ts", "./src/assessments/types/requirement.ts", - "./src/assessments/visible-focus-order/test-steps/closing-content.tsx", - "./src/assessments/visible-focus-order/test-steps/modal-dialogs.tsx", - "./src/assessments/visible-focus-order/test-steps/revealing-content.tsx", - "./src/assessments/visible-focus-order/test-steps/test-steps.ts", "./src/background/IndexedDBDataKeys.ts", "./src/background/actions/action-hub.ts", "./src/background/actions/action-payloads.ts", @@ -391,6 +368,8 @@ "./src/injected/details-dialog-handler.ts", "./src/injected/dialog-renderer-impl.tsx", "./src/injected/dialog-renderer.ts", + "./src/injected/drawing-controller.ts", + "./src/injected/drawing-initiator.ts", "./src/injected/element-based-view-model-creator.ts", "./src/injected/element-finder-by-path.ts", "./src/injected/element-finder-by-position.ts", @@ -574,17 +553,26 @@ "src/Devtools/**/*", "src/ad-hoc-visualizations/**/*", "src/ad-hoc-visualizations/calculated-tab-stops/**/*", + "src/assessments/adaptable-content/test-steps/**/*", "src/assessments/audio-video-only/test-steps/**/*", + "src/assessments/color/test-steps/**/*", "src/assessments/common/**/*", + "src/assessments/contrast/test-steps/**/*", "src/assessments/errors/test-steps/**/*", + "src/assessments/images/test-steps/**/*", + "src/assessments/keyboard-interaction/test-steps/**/*", "src/assessments/language/common/**/*", "src/assessments/language/test-steps/**/*", "src/assessments/live-multimedia/test-steps/**/*", + "src/assessments/native-widgets/test-steps/**/*", "src/assessments/parsing/test-steps/**/*", "src/assessments/pointer-motion/test-steps/**/*", "src/assessments/prerecorded-multimedia/test-steps/**/*", "src/assessments/repetitive-content/test-steps/**/*", + "src/assessments/semantics/test-steps/**/*", + "src/assessments/sequence/test-steps/**/*", "src/assessments/timed-events/test-steps/**/*", + "src/assessments/visible-focus-order/test-steps/**/*", "src/background/global-action-creators/registrar/**/*", "src/background/injector/**/*", "src/common/action/**/*",